skedyul 1.7.15 → 1.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-stamp +1 -1
- package/dist/cli/index.js +7 -2
- package/dist/config/define.d.ts +8 -8
- package/dist/config/types/app-event.d.ts +3 -3
- package/dist/config/types/batch-operation.d.ts +3 -3
- package/dist/config/types/entity.d.ts +29 -3
- package/dist/config/types/model.d.ts +5 -0
- package/dist/config/types/setup.d.ts +12 -0
- package/dist/core/client.d.ts +13 -13
- package/dist/esm/index.mjs +12 -7
- package/dist/index.js +12 -7
- package/dist/schemas/crm-schema.d.ts +3 -0
- package/dist/schemas.d.ts +8 -8
- package/dist/types/data-blocks.d.ts +4 -0
- package/dist/types/webhook.d.ts +3 -3
- package/package.json +1 -1
package/dist/.build-stamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1786319639134
|
package/dist/cli/index.js
CHANGED
|
@@ -1206,7 +1206,7 @@ function parseInstallConfigFromSource(content) {
|
|
|
1206
1206
|
return parseEnvConfigFromSource(content);
|
|
1207
1207
|
}
|
|
1208
1208
|
var INSTALL_HANDLER_PATHS = [
|
|
1209
|
-
// Standard integration layout (used by
|
|
1209
|
+
// Standard integration layout (used by public/private integration apps)
|
|
1210
1210
|
"src/server/hooks/install.ts",
|
|
1211
1211
|
"src/server/hooks/install.js",
|
|
1212
1212
|
"dist/server/hooks/install.js",
|
|
@@ -6403,7 +6403,12 @@ var CRMFieldSchemaZ = import_v42.z.object({
|
|
|
6403
6403
|
unique: import_v42.z.boolean().optional(),
|
|
6404
6404
|
list: import_v42.z.boolean().optional(),
|
|
6405
6405
|
default: import_v42.z.unknown().optional(),
|
|
6406
|
-
definition: CRMFieldDefinitionSchema.optional()
|
|
6406
|
+
definition: CRMFieldDefinitionSchema.optional(),
|
|
6407
|
+
/**
|
|
6408
|
+
* Workplace-scoped field section handle (visualization helper).
|
|
6409
|
+
* Find-or-create on apply; display name is derived from the handle on create.
|
|
6410
|
+
*/
|
|
6411
|
+
section: import_v42.z.string().regex(/^[a-z][a-z0-9_-]*$/, "Section handle must be lowercase alphanumeric with underscores/hyphens, starting with a letter").optional()
|
|
6407
6412
|
});
|
|
6408
6413
|
var CRMModelSchemaZ = import_v42.z.object({
|
|
6409
6414
|
handle: import_v42.z.string().regex(/^[a-z][a-z0-9_]*$/, "Handle must be lowercase alphanumeric with underscores, starting with a letter"),
|
package/dist/config/define.d.ts
CHANGED
|
@@ -45,14 +45,14 @@ export declare function defineModel(model: ModelDefinition): ModelDefinition;
|
|
|
45
45
|
*
|
|
46
46
|
* Entities describe external payload shapes that workplaces map to CRM at
|
|
47
47
|
* install time. They are not shared models — workflows apply maps via Liquid
|
|
48
|
-
* filters named after the app handle (e.g. `|
|
|
48
|
+
* filters named after the app handle (e.g. `| acme: "format", "member"`).
|
|
49
49
|
*
|
|
50
50
|
* @example
|
|
51
51
|
* export default defineEntity({
|
|
52
52
|
* handle: 'member',
|
|
53
|
-
* label: '
|
|
53
|
+
* label: 'Member',
|
|
54
54
|
* fields: [
|
|
55
|
-
* { handle: '
|
|
55
|
+
* { handle: 'external_id', label: 'External ID', matchCandidate: true, required: true },
|
|
56
56
|
* { handle: 'first_name', label: 'First Name' },
|
|
57
57
|
* ],
|
|
58
58
|
* contextFields: [
|
|
@@ -120,8 +120,8 @@ export declare function defineAgent(agent: AgentDefinition): AgentDefinition;
|
|
|
120
120
|
*
|
|
121
121
|
* @example
|
|
122
122
|
* export default defineEnv({
|
|
123
|
-
*
|
|
124
|
-
* label: '
|
|
123
|
+
* ACME_API_KEY: {
|
|
124
|
+
* label: 'Acme API Key',
|
|
125
125
|
* scope: 'provision',
|
|
126
126
|
* required: true,
|
|
127
127
|
* visibility: 'encrypted'
|
|
@@ -179,12 +179,12 @@ export declare function defineSetupStep(step: SetupStepDefinition): SetupStepDef
|
|
|
179
179
|
* label: 'Import Members',
|
|
180
180
|
* entity: 'member',
|
|
181
181
|
* setup: async (ctx) => {
|
|
182
|
-
* const count = await
|
|
182
|
+
* const count = await acmeApi.getMemberCount()
|
|
183
183
|
* return { total: count }
|
|
184
184
|
* },
|
|
185
185
|
* iterate: async (ctx) => {
|
|
186
|
-
* const apiKey = ctx.env.
|
|
187
|
-
* const { data, pagination } = await
|
|
186
|
+
* const apiKey = ctx.env.ACME_API_KEY
|
|
187
|
+
* const { data, pagination } = await acmeApi.getMembers({
|
|
188
188
|
* apiKey,
|
|
189
189
|
* limit: ctx.limit,
|
|
190
190
|
* offset: ctx.cursor ?? 0,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* App event definition for integration executable config.
|
|
3
3
|
*
|
|
4
4
|
* Events are emitted via event.create and subscribed to as
|
|
5
|
-
* `app.{appHandle}.{name}` (e.g. app.
|
|
5
|
+
* `app.{appHandle}.{name}` (e.g. app.acme.member.updated).
|
|
6
6
|
*/
|
|
7
7
|
export interface AppEventDefinition {
|
|
8
8
|
/** Event suffix after app handle, e.g. member.created */
|
|
@@ -16,7 +16,7 @@ export interface AppEventDefinition {
|
|
|
16
16
|
/** Optional Lucide icon name for pickers */
|
|
17
17
|
icon?: string;
|
|
18
18
|
/**
|
|
19
|
-
* Example flat domain payload for liquid context reference (e.g.
|
|
19
|
+
* Example flat domain payload for liquid context reference (e.g. external_id, phone, …).
|
|
20
20
|
* Not the full emit payload — studio/branch metadata is added at emit time.
|
|
21
21
|
*/
|
|
22
22
|
examplePayload?: Record<string, unknown>;
|
|
@@ -26,7 +26,7 @@ export interface AppEventDefinition {
|
|
|
26
26
|
*/
|
|
27
27
|
contextFields?: AppEventContextField[];
|
|
28
28
|
/**
|
|
29
|
-
* Workflow input type for app-event payloads, e.g. @app/
|
|
29
|
+
* Workflow input type for app-event payloads, e.g. @app/acme/member/updated.
|
|
30
30
|
* Workflows declare this on inputs.data and subscribe with {{ data }}.
|
|
31
31
|
*/
|
|
32
32
|
workflowInputType?: string;
|
|
@@ -157,12 +157,12 @@ export type BatchOperationIterateFn = (ctx: BatchOperationContext & {
|
|
|
157
157
|
* label: 'Import Members',
|
|
158
158
|
* entity: 'member',
|
|
159
159
|
* setup: async (ctx) => {
|
|
160
|
-
* const count = await
|
|
160
|
+
* const count = await acmeApi.getMemberCount()
|
|
161
161
|
* return { total: count }
|
|
162
162
|
* },
|
|
163
163
|
* iterate: async (ctx) => {
|
|
164
|
-
* const apiKey = ctx.env.
|
|
165
|
-
* const { data, pagination } = await
|
|
164
|
+
* const apiKey = ctx.env.ACME_API_KEY
|
|
165
|
+
* const { data, pagination } = await acmeApi.getMembers({
|
|
166
166
|
* apiKey,
|
|
167
167
|
* limit: ctx.limit,
|
|
168
168
|
* offset: ctx.cursor ?? 0,
|
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* App entity definition types.
|
|
3
3
|
*
|
|
4
|
-
* Entities describe external/logical payload shapes
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Entities describe external/logical payload shapes that workplaces map to CRM
|
|
5
|
+
* via install-time CRM maps. They are NOT shared models — the app does not own
|
|
6
|
+
* CRM writes; workflows/agents apply maps.
|
|
7
7
|
*/
|
|
8
8
|
import type { BaseDefinition, FieldOption } from './base';
|
|
9
|
+
/**
|
|
10
|
+
* Suggested CRM map defaults for an entity when a workplace has matching models.
|
|
11
|
+
* Declared by the app (industry-specific); consumed generically by core install UI.
|
|
12
|
+
*/
|
|
13
|
+
export interface EntityCrmMapDefaults {
|
|
14
|
+
/** Workplace model handle to prefer */
|
|
15
|
+
modelHandle: string;
|
|
16
|
+
/** Prefer this field as match when present on the model */
|
|
17
|
+
matchFieldHandle?: string;
|
|
18
|
+
/** Ordered entity paths for match fallbacks (maps to same-named CRM fields) */
|
|
19
|
+
matchRuleEntityPaths?: string[];
|
|
20
|
+
/** entityPath → workplace field handle */
|
|
21
|
+
fieldHandles: Record<string, string>;
|
|
22
|
+
/** entity relationship handle → workplace field handle */
|
|
23
|
+
relationshipHandles?: Record<string, string>;
|
|
24
|
+
/**
|
|
25
|
+
* Optional enum remaps per entity path when suggesting valueMaps
|
|
26
|
+
* (e.g. membership_status: { trial_member: 'visiting_member' }).
|
|
27
|
+
*/
|
|
28
|
+
valueAliases?: Record<string, Record<string, string>>;
|
|
29
|
+
}
|
|
9
30
|
/**
|
|
10
31
|
* Field on an app entity contract (maps to a path on tool/event payloads).
|
|
11
32
|
*/
|
|
@@ -64,4 +85,9 @@ export interface EntityDefinition extends BaseDefinition {
|
|
|
64
85
|
contextFields?: EntityFieldDefinition[];
|
|
65
86
|
/** Relationship handles that can be mapped to CRM relationship fields */
|
|
66
87
|
relationships?: EntityRelationshipDefinition[];
|
|
88
|
+
/**
|
|
89
|
+
* Optional suggested CRM map when the workplace has a matching model schema.
|
|
90
|
+
* Used by install suggest/analyze — not applied automatically.
|
|
91
|
+
*/
|
|
92
|
+
crmMapDefaults?: EntityCrmMapDefaults;
|
|
67
93
|
}
|
|
@@ -139,6 +139,11 @@ export interface FieldDefinition {
|
|
|
139
139
|
owner?: FieldOwner;
|
|
140
140
|
/** AI-specific metadata for agent interactions */
|
|
141
141
|
aiMeta?: FieldAIMeta;
|
|
142
|
+
/**
|
|
143
|
+
* Workplace-scoped field section handle (visualization helper).
|
|
144
|
+
* Find-or-create on provision/schema apply.
|
|
145
|
+
*/
|
|
146
|
+
section?: string;
|
|
142
147
|
}
|
|
143
148
|
/**
|
|
144
149
|
* Model definition.
|
|
@@ -34,4 +34,16 @@ export interface SetupStepDefinition {
|
|
|
34
34
|
listenToEnv?: boolean;
|
|
35
35
|
/** Capability keys unlocked when this step is READY */
|
|
36
36
|
capabilities?: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Optional tool handle for an APP-step CTA (invoked as page_action with no form).
|
|
39
|
+
* Declared by the app — platform UI must not hardcode app/tool names.
|
|
40
|
+
*/
|
|
41
|
+
actionTool?: string;
|
|
42
|
+
/** Optional label for the APP-step CTA button */
|
|
43
|
+
actionLabel?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Optional install-relative path for post-setup navigation
|
|
46
|
+
* (e.g. `/leads`). Prefer entity pages over industry-specific defaults.
|
|
47
|
+
*/
|
|
48
|
+
href?: string;
|
|
37
49
|
}
|
package/dist/core/client.d.ts
CHANGED
|
@@ -98,7 +98,7 @@ export interface ReceiveMessageInput {
|
|
|
98
98
|
message: CreateMessageType;
|
|
99
99
|
/** Optional contact metadata to associate the message */
|
|
100
100
|
contact?: ReceiveMessageContact;
|
|
101
|
-
/** Optional remote/external message ID (
|
|
101
|
+
/** Optional remote/external message ID (provider message id) */
|
|
102
102
|
remoteId?: string;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
@@ -176,7 +176,7 @@ export declare const communicationChannel: {
|
|
|
176
176
|
* Receive an inbound message on a communication channel.
|
|
177
177
|
*
|
|
178
178
|
* This is typically called from webhook handlers to process incoming messages
|
|
179
|
-
* (e.g., SMS
|
|
179
|
+
* (e.g., SMS, email, or messaging-channel providers).
|
|
180
180
|
*
|
|
181
181
|
* @example
|
|
182
182
|
* ```ts
|
|
@@ -185,7 +185,7 @@ export declare const communicationChannel: {
|
|
|
185
185
|
* communicationChannelId: channel.id,
|
|
186
186
|
* from: '+1234567890',
|
|
187
187
|
* message: 'Hello!',
|
|
188
|
-
* remoteId: '
|
|
188
|
+
* remoteId: 'provider-message-id-123',
|
|
189
189
|
* });
|
|
190
190
|
* ```
|
|
191
191
|
*/
|
|
@@ -617,14 +617,14 @@ export declare const webhook: {
|
|
|
617
617
|
*
|
|
618
618
|
* @example
|
|
619
619
|
* ```ts
|
|
620
|
-
* // Create a webhook for
|
|
620
|
+
* // Create a webhook for provider compliance callbacks
|
|
621
621
|
* const { url, id } = await webhook.create('compliance_status', {
|
|
622
622
|
* bundleSid: bundle.sid,
|
|
623
623
|
* complianceRecordId: record.id,
|
|
624
624
|
* })
|
|
625
625
|
*
|
|
626
|
-
* // Pass the URL to
|
|
627
|
-
* await
|
|
626
|
+
* // Pass the URL to the upstream provider
|
|
627
|
+
* await providerClient.updateBundle(bundle.sid, {
|
|
628
628
|
* statusCallback: url,
|
|
629
629
|
* })
|
|
630
630
|
* ```
|
|
@@ -1022,18 +1022,18 @@ export declare const ai: {
|
|
|
1022
1022
|
generateObject<S extends z.ZodTypeAny>(options: GenerateObjectOptions<S>): Promise<z.infer<S>>;
|
|
1023
1023
|
};
|
|
1024
1024
|
export interface CallStartParams {
|
|
1025
|
-
/** Communication channel (
|
|
1025
|
+
/** Communication channel (voice number) this call belongs to */
|
|
1026
1026
|
communicationChannelId: string;
|
|
1027
1027
|
/** Caller number in E.164 */
|
|
1028
1028
|
fromNumber: string;
|
|
1029
|
-
/** The dialed number (our
|
|
1029
|
+
/** The dialed number (our channel number) in E.164 */
|
|
1030
1030
|
toNumber: string;
|
|
1031
1031
|
/** Number the call is forwarded/dialed to (the human agent leg) */
|
|
1032
1032
|
forwardedToNumber?: string | null;
|
|
1033
1033
|
direction?: 'INBOUND' | 'OUTBOUND';
|
|
1034
|
-
/** Provider call id (
|
|
1034
|
+
/** Provider call id (opaque) */
|
|
1035
1035
|
externalId?: string | null;
|
|
1036
|
-
/** Raw provider status string (
|
|
1036
|
+
/** Raw provider status string (opaque; not interpreted by the platform) */
|
|
1037
1037
|
externalStatus?: string | null;
|
|
1038
1038
|
/** Transcription provider/engine name (e.g. "deepgram", "google") */
|
|
1039
1039
|
transcriptionEngine?: string | null;
|
|
@@ -1075,10 +1075,10 @@ export interface CallSummarizeResult {
|
|
|
1075
1075
|
/**
|
|
1076
1076
|
* Call client - manage a voice call session and its real-time transcript.
|
|
1077
1077
|
*
|
|
1078
|
-
*
|
|
1078
|
+
* Typical phone-integration flow:
|
|
1079
1079
|
* - `start` when the inbound call arrives (creates the CallSession + thread + CALL block)
|
|
1080
|
-
* - `appendTranscript` for each
|
|
1081
|
-
* - `end` on call completion
|
|
1080
|
+
* - `appendTranscript` for each transcription event (stored as a tagged ThreadMessage)
|
|
1081
|
+
* - `end` on call completion (pass an explicit platform `status`)
|
|
1082
1082
|
* - `summarize` to generate and persist an end-of-call summary
|
|
1083
1083
|
*
|
|
1084
1084
|
* **Requires sk_wkp_ or sk_app_ token.**
|
package/dist/esm/index.mjs
CHANGED
|
@@ -376,7 +376,12 @@ var CRMFieldSchemaZ = z3.object({
|
|
|
376
376
|
unique: z3.boolean().optional(),
|
|
377
377
|
list: z3.boolean().optional(),
|
|
378
378
|
default: z3.unknown().optional(),
|
|
379
|
-
definition: CRMFieldDefinitionSchema.optional()
|
|
379
|
+
definition: CRMFieldDefinitionSchema.optional(),
|
|
380
|
+
/**
|
|
381
|
+
* Workplace-scoped field section handle (visualization helper).
|
|
382
|
+
* Find-or-create on apply; display name is derived from the handle on create.
|
|
383
|
+
*/
|
|
384
|
+
section: z3.string().regex(/^[a-z][a-z0-9_-]*$/, "Section handle must be lowercase alphanumeric with underscores/hyphens, starting with a letter").optional()
|
|
380
385
|
});
|
|
381
386
|
var CRMModelSchemaZ = z3.object({
|
|
382
387
|
handle: z3.string().regex(/^[a-z][a-z0-9_]*$/, "Handle must be lowercase alphanumeric with underscores, starting with a letter"),
|
|
@@ -1655,7 +1660,7 @@ var EventWiringPanelComponentDefinitionSchema = FormV2StylePropsSchema.extend({
|
|
|
1655
1660
|
z8.object({
|
|
1656
1661
|
type: z8.string(),
|
|
1657
1662
|
label: z8.string(),
|
|
1658
|
-
|
|
1663
|
+
sourceType: z8.string().optional(),
|
|
1659
1664
|
description: z8.string().optional(),
|
|
1660
1665
|
icon: z8.string().optional()
|
|
1661
1666
|
})
|
|
@@ -2574,7 +2579,7 @@ var communicationChannel = {
|
|
|
2574
2579
|
* Receive an inbound message on a communication channel.
|
|
2575
2580
|
*
|
|
2576
2581
|
* This is typically called from webhook handlers to process incoming messages
|
|
2577
|
-
* (e.g., SMS
|
|
2582
|
+
* (e.g., SMS, email, or messaging-channel providers).
|
|
2578
2583
|
*
|
|
2579
2584
|
* @example
|
|
2580
2585
|
* ```ts
|
|
@@ -2583,7 +2588,7 @@ var communicationChannel = {
|
|
|
2583
2588
|
* communicationChannelId: channel.id,
|
|
2584
2589
|
* from: '+1234567890',
|
|
2585
2590
|
* message: 'Hello!',
|
|
2586
|
-
* remoteId: '
|
|
2591
|
+
* remoteId: 'provider-message-id-123',
|
|
2587
2592
|
* });
|
|
2588
2593
|
* ```
|
|
2589
2594
|
*/
|
|
@@ -3238,14 +3243,14 @@ var webhook = {
|
|
|
3238
3243
|
*
|
|
3239
3244
|
* @example
|
|
3240
3245
|
* ```ts
|
|
3241
|
-
* // Create a webhook for
|
|
3246
|
+
* // Create a webhook for provider compliance callbacks
|
|
3242
3247
|
* const { url, id } = await webhook.create('compliance_status', {
|
|
3243
3248
|
* bundleSid: bundle.sid,
|
|
3244
3249
|
* complianceRecordId: record.id,
|
|
3245
3250
|
* })
|
|
3246
3251
|
*
|
|
3247
|
-
* // Pass the URL to
|
|
3248
|
-
* await
|
|
3252
|
+
* // Pass the URL to the upstream provider
|
|
3253
|
+
* await providerClient.updateBundle(bundle.sid, {
|
|
3249
3254
|
* statusCallback: url,
|
|
3250
3255
|
* })
|
|
3251
3256
|
* ```
|
package/dist/index.js
CHANGED
|
@@ -764,7 +764,12 @@ var CRMFieldSchemaZ = import_v43.z.object({
|
|
|
764
764
|
unique: import_v43.z.boolean().optional(),
|
|
765
765
|
list: import_v43.z.boolean().optional(),
|
|
766
766
|
default: import_v43.z.unknown().optional(),
|
|
767
|
-
definition: CRMFieldDefinitionSchema.optional()
|
|
767
|
+
definition: CRMFieldDefinitionSchema.optional(),
|
|
768
|
+
/**
|
|
769
|
+
* Workplace-scoped field section handle (visualization helper).
|
|
770
|
+
* Find-or-create on apply; display name is derived from the handle on create.
|
|
771
|
+
*/
|
|
772
|
+
section: import_v43.z.string().regex(/^[a-z][a-z0-9_-]*$/, "Section handle must be lowercase alphanumeric with underscores/hyphens, starting with a letter").optional()
|
|
768
773
|
});
|
|
769
774
|
var CRMModelSchemaZ = import_v43.z.object({
|
|
770
775
|
handle: import_v43.z.string().regex(/^[a-z][a-z0-9_]*$/, "Handle must be lowercase alphanumeric with underscores, starting with a letter"),
|
|
@@ -2043,7 +2048,7 @@ var EventWiringPanelComponentDefinitionSchema = FormV2StylePropsSchema.extend({
|
|
|
2043
2048
|
import_v48.z.object({
|
|
2044
2049
|
type: import_v48.z.string(),
|
|
2045
2050
|
label: import_v48.z.string(),
|
|
2046
|
-
|
|
2051
|
+
sourceType: import_v48.z.string().optional(),
|
|
2047
2052
|
description: import_v48.z.string().optional(),
|
|
2048
2053
|
icon: import_v48.z.string().optional()
|
|
2049
2054
|
})
|
|
@@ -2962,7 +2967,7 @@ var communicationChannel = {
|
|
|
2962
2967
|
* Receive an inbound message on a communication channel.
|
|
2963
2968
|
*
|
|
2964
2969
|
* This is typically called from webhook handlers to process incoming messages
|
|
2965
|
-
* (e.g., SMS
|
|
2970
|
+
* (e.g., SMS, email, or messaging-channel providers).
|
|
2966
2971
|
*
|
|
2967
2972
|
* @example
|
|
2968
2973
|
* ```ts
|
|
@@ -2971,7 +2976,7 @@ var communicationChannel = {
|
|
|
2971
2976
|
* communicationChannelId: channel.id,
|
|
2972
2977
|
* from: '+1234567890',
|
|
2973
2978
|
* message: 'Hello!',
|
|
2974
|
-
* remoteId: '
|
|
2979
|
+
* remoteId: 'provider-message-id-123',
|
|
2975
2980
|
* });
|
|
2976
2981
|
* ```
|
|
2977
2982
|
*/
|
|
@@ -3626,14 +3631,14 @@ var webhook = {
|
|
|
3626
3631
|
*
|
|
3627
3632
|
* @example
|
|
3628
3633
|
* ```ts
|
|
3629
|
-
* // Create a webhook for
|
|
3634
|
+
* // Create a webhook for provider compliance callbacks
|
|
3630
3635
|
* const { url, id } = await webhook.create('compliance_status', {
|
|
3631
3636
|
* bundleSid: bundle.sid,
|
|
3632
3637
|
* complianceRecordId: record.id,
|
|
3633
3638
|
* })
|
|
3634
3639
|
*
|
|
3635
|
-
* // Pass the URL to
|
|
3636
|
-
* await
|
|
3640
|
+
* // Pass the URL to the upstream provider
|
|
3641
|
+
* await providerClient.updateBundle(bundle.sid, {
|
|
3637
3642
|
* statusCallback: url,
|
|
3638
3643
|
* })
|
|
3639
3644
|
* ```
|
|
@@ -123,6 +123,7 @@ export declare const CRMFieldSchemaZ: z.ZodObject<{
|
|
|
123
123
|
max: z.ZodOptional<z.ZodNumber>;
|
|
124
124
|
pattern: z.ZodOptional<z.ZodString>;
|
|
125
125
|
}, z.core.$strip>]>>;
|
|
126
|
+
section: z.ZodOptional<z.ZodString>;
|
|
126
127
|
}, z.core.$strip>;
|
|
127
128
|
export type CRMFieldSchema = z.infer<typeof CRMFieldSchemaZ>;
|
|
128
129
|
/**
|
|
@@ -178,6 +179,7 @@ export declare const CRMModelSchemaZ: z.ZodObject<{
|
|
|
178
179
|
max: z.ZodOptional<z.ZodNumber>;
|
|
179
180
|
pattern: z.ZodOptional<z.ZodString>;
|
|
180
181
|
}, z.core.$strip>]>>;
|
|
182
|
+
section: z.ZodOptional<z.ZodString>;
|
|
181
183
|
}, z.core.$strip>>;
|
|
182
184
|
}, z.core.$strip>;
|
|
183
185
|
export type CRMModelSchema = z.infer<typeof CRMModelSchemaZ>;
|
|
@@ -378,6 +380,7 @@ export declare const CRMSchemaZ: z.ZodObject<{
|
|
|
378
380
|
max: z.ZodOptional<z.ZodNumber>;
|
|
379
381
|
pattern: z.ZodOptional<z.ZodString>;
|
|
380
382
|
}, z.core.$strip>]>>;
|
|
383
|
+
section: z.ZodOptional<z.ZodString>;
|
|
381
384
|
}, z.core.$strip>>;
|
|
382
385
|
}, z.core.$strip>>;
|
|
383
386
|
relationships: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
package/dist/schemas.d.ts
CHANGED
|
@@ -1054,7 +1054,7 @@ export declare const EventWiringPanelComponentDefinitionSchema: z.ZodObject<{
|
|
|
1054
1054
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
1055
1055
|
type: z.ZodString;
|
|
1056
1056
|
label: z.ZodString;
|
|
1057
|
-
|
|
1057
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
1058
1058
|
description: z.ZodOptional<z.ZodString>;
|
|
1059
1059
|
icon: z.ZodOptional<z.ZodString>;
|
|
1060
1060
|
}, z.core.$strip>>;
|
|
@@ -1419,7 +1419,7 @@ export declare const FormV2ComponentDefinitionSchema: z.ZodDiscriminatedUnion<[z
|
|
|
1419
1419
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
1420
1420
|
type: z.ZodString;
|
|
1421
1421
|
label: z.ZodString;
|
|
1422
|
-
|
|
1422
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
1423
1423
|
description: z.ZodOptional<z.ZodString>;
|
|
1424
1424
|
icon: z.ZodOptional<z.ZodString>;
|
|
1425
1425
|
}, z.core.$strip>>;
|
|
@@ -1718,7 +1718,7 @@ export declare const FormV2PropsDefinitionSchema: z.ZodObject<{
|
|
|
1718
1718
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
1719
1719
|
type: z.ZodString;
|
|
1720
1720
|
label: z.ZodString;
|
|
1721
|
-
|
|
1721
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
1722
1722
|
description: z.ZodOptional<z.ZodString>;
|
|
1723
1723
|
icon: z.ZodOptional<z.ZodString>;
|
|
1724
1724
|
}, z.core.$strip>>;
|
|
@@ -2058,7 +2058,7 @@ export declare const CardBlockDefinitionSchema: z.ZodObject<{
|
|
|
2058
2058
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
2059
2059
|
type: z.ZodString;
|
|
2060
2060
|
label: z.ZodString;
|
|
2061
|
-
|
|
2061
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
2062
2062
|
description: z.ZodOptional<z.ZodString>;
|
|
2063
2063
|
icon: z.ZodOptional<z.ZodString>;
|
|
2064
2064
|
}, z.core.$strip>>;
|
|
@@ -2497,7 +2497,7 @@ export declare const PageBlockDefinitionSchema: z.ZodUnion<readonly [z.ZodObject
|
|
|
2497
2497
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
2498
2498
|
type: z.ZodString;
|
|
2499
2499
|
label: z.ZodString;
|
|
2500
|
-
|
|
2500
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
2501
2501
|
description: z.ZodOptional<z.ZodString>;
|
|
2502
2502
|
icon: z.ZodOptional<z.ZodString>;
|
|
2503
2503
|
}, z.core.$strip>>;
|
|
@@ -3044,7 +3044,7 @@ export declare const PageDefinitionSchema: z.ZodObject<{
|
|
|
3044
3044
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
3045
3045
|
type: z.ZodString;
|
|
3046
3046
|
label: z.ZodString;
|
|
3047
|
-
|
|
3047
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
3048
3048
|
description: z.ZodOptional<z.ZodString>;
|
|
3049
3049
|
icon: z.ZodOptional<z.ZodString>;
|
|
3050
3050
|
}, z.core.$strip>>;
|
|
@@ -4121,7 +4121,7 @@ export declare const ProvisionConfigSchema: z.ZodObject<{
|
|
|
4121
4121
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
4122
4122
|
type: z.ZodString;
|
|
4123
4123
|
label: z.ZodString;
|
|
4124
|
-
|
|
4124
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
4125
4125
|
description: z.ZodOptional<z.ZodString>;
|
|
4126
4126
|
icon: z.ZodOptional<z.ZodString>;
|
|
4127
4127
|
}, z.core.$strip>>;
|
|
@@ -4970,7 +4970,7 @@ export declare const SkedyulConfigSchema: z.ZodObject<{
|
|
|
4970
4970
|
eventTypes: z.ZodArray<z.ZodObject<{
|
|
4971
4971
|
type: z.ZodString;
|
|
4972
4972
|
label: z.ZodString;
|
|
4973
|
-
|
|
4973
|
+
sourceType: z.ZodOptional<z.ZodString>;
|
|
4974
4974
|
description: z.ZodOptional<z.ZodString>;
|
|
4975
4975
|
icon: z.ZodOptional<z.ZodString>;
|
|
4976
4976
|
}, z.core.$strip>>;
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
* Link structure for navigating to CRM views or external URLs.
|
|
8
8
|
*/
|
|
9
9
|
export interface DataBlockLink {
|
|
10
|
+
/** App CRM entity handle (e.g. "class", "booking") for UI map gating */
|
|
11
|
+
entityHandle?: string;
|
|
10
12
|
modelHandle?: string;
|
|
11
13
|
modelHandlePlural?: string;
|
|
12
14
|
modelLabel?: string;
|
|
@@ -49,6 +51,8 @@ export interface ProfileAvatar {
|
|
|
49
51
|
export interface ProfileField {
|
|
50
52
|
label: string;
|
|
51
53
|
value: string;
|
|
54
|
+
/** Optional CRM navigation for this field value */
|
|
55
|
+
link?: DataBlockLink;
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* Profile block - entity card with key fields.
|
package/dist/types/webhook.d.ts
CHANGED
|
@@ -78,7 +78,7 @@ export interface CommunicationChannelLifecycleContext extends WebhookLifecycleCo
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
export interface WebhookLifecycleResult {
|
|
81
|
-
/** External ID from the provider (e.g.,
|
|
81
|
+
/** External ID from the provider (e.g., phone number SID) */
|
|
82
82
|
externalId: string;
|
|
83
83
|
/** Optional message describing what was configured */
|
|
84
84
|
message?: string;
|
|
@@ -93,7 +93,7 @@ export type WebhookLifecycleHook<TContext = WebhookLifecycleContext> = (context:
|
|
|
93
93
|
/**
|
|
94
94
|
* Webhook invocation mode - determines how responses are handled.
|
|
95
95
|
* - WEBHOOK: Fire-and-forget. Returns 200 immediately, processes asynchronously.
|
|
96
|
-
* - CALLBACK: Waits for handler response and returns it to the caller (e.g.,
|
|
96
|
+
* - CALLBACK: Waits for handler response and returns it to the caller (e.g., voice XML).
|
|
97
97
|
*/
|
|
98
98
|
export type WebhookInvocationMode = 'WEBHOOK' | 'CALLBACK';
|
|
99
99
|
/**
|
|
@@ -107,7 +107,7 @@ export interface WebhookDefinition {
|
|
|
107
107
|
methods?: ('GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH')[];
|
|
108
108
|
/**
|
|
109
109
|
* Invocation mode. Defaults to 'WEBHOOK' (fire-and-forget).
|
|
110
|
-
* Use 'CALLBACK' when the caller expects the handler's response (e.g.,
|
|
110
|
+
* Use 'CALLBACK' when the caller expects the handler's response (e.g., voice XML).
|
|
111
111
|
*/
|
|
112
112
|
type?: WebhookInvocationMode;
|
|
113
113
|
handler: WebhookHandler;
|