@helpai/elements 0.14.0 → 0.14.2
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/README.md +3 -3
- package/configurator.mjs +16 -16
- package/elements-web-component.esm.js +25 -25
- package/elements-web-component.esm.js.map +4 -4
- package/elements.cjs.js +27 -27
- package/elements.cjs.js.map +4 -4
- package/elements.esm.js +27 -27
- package/elements.esm.js.map +4 -4
- package/elements.js +25 -25
- package/elements.js.map +4 -4
- package/index.d.ts +46 -45
- package/index.mjs +663 -688
- package/package.json +1 -1
- package/schema.d.ts +55 -57
- package/schema.json +17 -33
- package/schema.mjs +18 -18
- package/style.css +1 -1
- package/web-component.d.ts +1 -1
- package/web-component.mjs +661 -686
package/package.json
CHANGED
package/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, L as Link, P as PAGE_AREA_SUGGESTIONS, g as PageContext, S as ServerConfig, b as SiteConfig, c as
|
|
1
|
+
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, L as Link, P as PAGE_AREA_SUGGESTIONS, g as PageContext, S as ServerConfig, b as SiteConfig, c as StartConversationResponse, U as UserContext, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial, h as assetSchema, i as blocksConfigSchema, j as connectionConfigPartialSchema, k as connectionConfigSchema, l as cssColorSchema, m as cssLengthSchema, n as endpointsSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, t as startConversationResponseSchema, u as userContextSchema, v as uuid7Schema, w as widgetConfigPartialSchema, x as widgetConfigSchema, y as widgetSettingsPartialSchema, z as widgetSettingsSchema } from './deployment-CWyouRob.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -56,9 +56,9 @@ declare const presentationSchema: z.ZodObject<{
|
|
|
56
56
|
inset: z.ZodOptional<z.ZodString>;
|
|
57
57
|
initialSize: z.ZodDefault<z.ZodEnum<{
|
|
58
58
|
fullscreen: "fullscreen";
|
|
59
|
+
normal: "normal";
|
|
59
60
|
expanded: "expanded";
|
|
60
61
|
auto: "auto";
|
|
61
|
-
normal: "normal";
|
|
62
62
|
}>>;
|
|
63
63
|
autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
|
|
64
64
|
}, z.core.$loose>>;
|
|
@@ -148,9 +148,9 @@ declare const launcherSizeSchema: z.ZodEnum<{
|
|
|
148
148
|
}>;
|
|
149
149
|
type LauncherSize = z.infer<typeof launcherSizeSchema>;
|
|
150
150
|
declare const calloutShapeSchema: z.ZodEnum<{
|
|
151
|
-
callout: "callout";
|
|
152
151
|
pill: "pill";
|
|
153
152
|
bubble: "bubble";
|
|
153
|
+
callout: "callout";
|
|
154
154
|
}>;
|
|
155
155
|
type CalloutShape = z.infer<typeof calloutShapeSchema>;
|
|
156
156
|
declare const calloutPositionSchema: z.ZodEnum<{
|
|
@@ -162,9 +162,9 @@ type CalloutPosition = z.infer<typeof calloutPositionSchema>;
|
|
|
162
162
|
declare const launcherCalloutSchema: z.ZodObject<{
|
|
163
163
|
text: z.ZodDefault<z.ZodString>;
|
|
164
164
|
shape: z.ZodDefault<z.ZodEnum<{
|
|
165
|
-
callout: "callout";
|
|
166
165
|
pill: "pill";
|
|
167
166
|
bubble: "bubble";
|
|
167
|
+
callout: "callout";
|
|
168
168
|
}>>;
|
|
169
169
|
position: z.ZodDefault<z.ZodEnum<{
|
|
170
170
|
auto: "auto";
|
|
@@ -195,9 +195,9 @@ declare const launcherOptionsSchema: z.ZodObject<{
|
|
|
195
195
|
callout: z.ZodOptional<z.ZodObject<{
|
|
196
196
|
text: z.ZodDefault<z.ZodString>;
|
|
197
197
|
shape: z.ZodDefault<z.ZodEnum<{
|
|
198
|
-
callout: "callout";
|
|
199
198
|
pill: "pill";
|
|
200
199
|
bubble: "bubble";
|
|
200
|
+
callout: "callout";
|
|
201
201
|
}>>;
|
|
202
202
|
position: z.ZodDefault<z.ZodEnum<{
|
|
203
203
|
auto: "auto";
|
|
@@ -240,9 +240,9 @@ type LauncherOptions = z.infer<typeof launcherOptionsSchema>;
|
|
|
240
240
|
|
|
241
241
|
declare const initialSizeSchema: z.ZodEnum<{
|
|
242
242
|
fullscreen: "fullscreen";
|
|
243
|
+
normal: "normal";
|
|
243
244
|
expanded: "expanded";
|
|
244
245
|
auto: "auto";
|
|
245
|
-
normal: "normal";
|
|
246
246
|
}>;
|
|
247
247
|
declare const resizeOptionsSchema: z.ZodObject<{
|
|
248
248
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -269,9 +269,9 @@ declare const sizeOptionsSchema: z.ZodObject<{
|
|
|
269
269
|
inset: z.ZodOptional<z.ZodString>;
|
|
270
270
|
initialSize: z.ZodDefault<z.ZodEnum<{
|
|
271
271
|
fullscreen: "fullscreen";
|
|
272
|
+
normal: "normal";
|
|
272
273
|
expanded: "expanded";
|
|
273
274
|
auto: "auto";
|
|
274
|
-
normal: "normal";
|
|
275
275
|
}>>;
|
|
276
276
|
autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
|
|
277
277
|
}, z.core.$loose>;
|
|
@@ -323,40 +323,40 @@ type FeatureFlags = z.infer<typeof featureFlagsSchema>;
|
|
|
323
323
|
*/
|
|
324
324
|
|
|
325
325
|
declare const actionNameSchema: z.ZodEnum<{
|
|
326
|
-
close: "close";
|
|
327
326
|
expand: "expand";
|
|
328
327
|
fullscreen: "fullscreen";
|
|
329
328
|
popOut: "popOut";
|
|
330
|
-
|
|
331
|
-
theme: "theme";
|
|
329
|
+
close: "close";
|
|
332
330
|
language: "language";
|
|
331
|
+
theme: "theme";
|
|
333
332
|
history: "history";
|
|
333
|
+
clear: "clear";
|
|
334
334
|
sound: "sound";
|
|
335
335
|
}>;
|
|
336
336
|
type ActionName = z.infer<typeof actionNameSchema>;
|
|
337
337
|
declare const headerActionsSchema: z.ZodArray<z.ZodEnum<{
|
|
338
|
-
close: "close";
|
|
339
338
|
expand: "expand";
|
|
340
339
|
fullscreen: "fullscreen";
|
|
341
340
|
popOut: "popOut";
|
|
342
|
-
|
|
343
|
-
theme: "theme";
|
|
341
|
+
close: "close";
|
|
344
342
|
language: "language";
|
|
343
|
+
theme: "theme";
|
|
345
344
|
history: "history";
|
|
345
|
+
clear: "clear";
|
|
346
346
|
sound: "sound";
|
|
347
347
|
}>>;
|
|
348
348
|
type HeaderActions = z.infer<typeof headerActionsSchema>;
|
|
349
349
|
/** Section wrapper — `actions` list wrapped under `header` in the dashboard form. */
|
|
350
350
|
declare const headerSchema: z.ZodObject<{
|
|
351
351
|
actions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
352
|
-
close: "close";
|
|
353
352
|
expand: "expand";
|
|
354
353
|
fullscreen: "fullscreen";
|
|
355
354
|
popOut: "popOut";
|
|
356
|
-
|
|
357
|
-
theme: "theme";
|
|
355
|
+
close: "close";
|
|
358
356
|
language: "language";
|
|
357
|
+
theme: "theme";
|
|
359
358
|
history: "history";
|
|
359
|
+
clear: "clear";
|
|
360
360
|
sound: "sound";
|
|
361
361
|
}>>>;
|
|
362
362
|
}, z.core.$loose>;
|
|
@@ -372,33 +372,33 @@ type HeaderOptions = z.infer<typeof headerSchema>;
|
|
|
372
372
|
*/
|
|
373
373
|
|
|
374
374
|
declare const feedbackEventSchema: z.ZodEnum<{
|
|
375
|
-
voiceStart: "voiceStart";
|
|
376
|
-
voiceStop: "voiceStop";
|
|
377
375
|
error: "error";
|
|
378
376
|
messageReceived: "messageReceived";
|
|
379
377
|
messageSent: "messageSent";
|
|
378
|
+
voiceStart: "voiceStart";
|
|
379
|
+
voiceStop: "voiceStop";
|
|
380
380
|
}>;
|
|
381
381
|
type FeedbackEvent = z.infer<typeof feedbackEventSchema>;
|
|
382
382
|
declare const soundOptionsSchema: z.ZodObject<{
|
|
383
383
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
384
384
|
volume: z.ZodDefault<z.ZodNumber>;
|
|
385
385
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
386
|
-
voiceStart: "voiceStart";
|
|
387
|
-
voiceStop: "voiceStop";
|
|
388
386
|
error: "error";
|
|
389
387
|
messageReceived: "messageReceived";
|
|
390
388
|
messageSent: "messageSent";
|
|
389
|
+
voiceStart: "voiceStart";
|
|
390
|
+
voiceStop: "voiceStop";
|
|
391
391
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
392
392
|
}, z.core.$loose>;
|
|
393
393
|
type SoundOptions = z.infer<typeof soundOptionsSchema>;
|
|
394
394
|
declare const hapticsOptionsSchema: z.ZodObject<{
|
|
395
395
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
396
396
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
397
|
-
voiceStart: "voiceStart";
|
|
398
|
-
voiceStop: "voiceStop";
|
|
399
397
|
error: "error";
|
|
400
398
|
messageReceived: "messageReceived";
|
|
401
399
|
messageSent: "messageSent";
|
|
400
|
+
voiceStart: "voiceStart";
|
|
401
|
+
voiceStop: "voiceStop";
|
|
402
402
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
|
|
403
403
|
}, z.core.$loose>;
|
|
404
404
|
type HapticsOptions = z.infer<typeof hapticsOptionsSchema>;
|
|
@@ -407,21 +407,21 @@ declare const feedbackSchema: z.ZodObject<{
|
|
|
407
407
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
408
408
|
volume: z.ZodDefault<z.ZodNumber>;
|
|
409
409
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
410
|
-
voiceStart: "voiceStart";
|
|
411
|
-
voiceStop: "voiceStop";
|
|
412
410
|
error: "error";
|
|
413
411
|
messageReceived: "messageReceived";
|
|
414
412
|
messageSent: "messageSent";
|
|
413
|
+
voiceStart: "voiceStart";
|
|
414
|
+
voiceStop: "voiceStop";
|
|
415
415
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
416
416
|
}, z.core.$loose>>;
|
|
417
417
|
haptics: z.ZodOptional<z.ZodObject<{
|
|
418
418
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
419
419
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
420
|
-
voiceStart: "voiceStart";
|
|
421
|
-
voiceStop: "voiceStop";
|
|
422
420
|
error: "error";
|
|
423
421
|
messageReceived: "messageReceived";
|
|
424
422
|
messageSent: "messageSent";
|
|
423
|
+
voiceStart: "voiceStart";
|
|
424
|
+
voiceStop: "voiceStop";
|
|
425
425
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
|
|
426
426
|
}, z.core.$loose>>;
|
|
427
427
|
}, z.core.$loose>;
|
|
@@ -504,7 +504,7 @@ type ComposerOptions = z.infer<typeof composerOptionsSchema>;
|
|
|
504
504
|
/**
|
|
505
505
|
* Welcome section — how the agent's greeting messages render when
|
|
506
506
|
* the chat opens. Content (the actual message text + suggestions)
|
|
507
|
-
* comes from the server's start-
|
|
507
|
+
* comes from the server's start-conversation response; this schema only
|
|
508
508
|
* governs the visual presentation (animation style + speed).
|
|
509
509
|
*/
|
|
510
510
|
|
|
@@ -550,8 +550,8 @@ type FooterOptions = z.infer<typeof footerSchema>;
|
|
|
550
550
|
/**
|
|
551
551
|
* Forms section — an **event-driven forms engine**. A deployment declares an
|
|
552
552
|
* ordered array of form definitions, each bound to trigger event(s), shown as a
|
|
553
|
-
*
|
|
554
|
-
* recorded via one shared submit endpoint (`endpoints.
|
|
553
|
+
* a prompt that replaces the composer (gating chat until submit/skip), deduped
|
|
554
|
+
* by frequency, and recorded via one shared submit endpoint (`endpoints.submitForm`).
|
|
555
555
|
*
|
|
556
556
|
* Generic across verticals (healthcare, insurance, dealerships, clinics) — the
|
|
557
557
|
* widget has NO industry logic; a clinic triage intake, an insurance claim form,
|
|
@@ -562,16 +562,16 @@ type FooterOptions = z.infer<typeof footerSchema>;
|
|
|
562
562
|
|
|
563
563
|
declare const fieldTypeSchema: z.ZodEnum<{
|
|
564
564
|
number: "number";
|
|
565
|
-
select: "select";
|
|
566
|
-
textarea: "textarea";
|
|
567
|
-
time: "time";
|
|
568
565
|
text: "text";
|
|
569
|
-
checkbox: "checkbox";
|
|
570
|
-
radio: "radio";
|
|
571
566
|
url: "url";
|
|
572
567
|
email: "email";
|
|
573
568
|
tel: "tel";
|
|
574
569
|
date: "date";
|
|
570
|
+
time: "time";
|
|
571
|
+
textarea: "textarea";
|
|
572
|
+
select: "select";
|
|
573
|
+
radio: "radio";
|
|
574
|
+
checkbox: "checkbox";
|
|
575
575
|
multiselect: "multiselect";
|
|
576
576
|
}>;
|
|
577
577
|
type FieldType = z.infer<typeof fieldTypeSchema>;
|
|
@@ -596,16 +596,16 @@ declare const formFieldSchema: z.ZodObject<{
|
|
|
596
596
|
label: z.ZodString;
|
|
597
597
|
type: z.ZodEnum<{
|
|
598
598
|
number: "number";
|
|
599
|
-
select: "select";
|
|
600
|
-
textarea: "textarea";
|
|
601
|
-
time: "time";
|
|
602
599
|
text: "text";
|
|
603
|
-
checkbox: "checkbox";
|
|
604
|
-
radio: "radio";
|
|
605
600
|
url: "url";
|
|
606
601
|
email: "email";
|
|
607
602
|
tel: "tel";
|
|
608
603
|
date: "date";
|
|
604
|
+
time: "time";
|
|
605
|
+
textarea: "textarea";
|
|
606
|
+
select: "select";
|
|
607
|
+
radio: "radio";
|
|
608
|
+
checkbox: "checkbox";
|
|
609
609
|
multiselect: "multiselect";
|
|
610
610
|
}>;
|
|
611
611
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
@@ -656,16 +656,16 @@ declare const formDefSchema: z.ZodObject<{
|
|
|
656
656
|
label: z.ZodString;
|
|
657
657
|
type: z.ZodEnum<{
|
|
658
658
|
number: "number";
|
|
659
|
-
select: "select";
|
|
660
|
-
textarea: "textarea";
|
|
661
|
-
time: "time";
|
|
662
659
|
text: "text";
|
|
663
|
-
checkbox: "checkbox";
|
|
664
|
-
radio: "radio";
|
|
665
660
|
url: "url";
|
|
666
661
|
email: "email";
|
|
667
662
|
tel: "tel";
|
|
668
663
|
date: "date";
|
|
664
|
+
time: "time";
|
|
665
|
+
textarea: "textarea";
|
|
666
|
+
select: "select";
|
|
667
|
+
radio: "radio";
|
|
668
|
+
checkbox: "checkbox";
|
|
669
669
|
multiselect: "multiselect";
|
|
670
670
|
}>;
|
|
671
671
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
@@ -692,10 +692,9 @@ declare const formDefSchema: z.ZodObject<{
|
|
|
692
692
|
description: z.ZodOptional<z.ZodString>;
|
|
693
693
|
submitLabel: z.ZodOptional<z.ZodString>;
|
|
694
694
|
skippable: z.ZodDefault<z.ZodBoolean>;
|
|
695
|
-
blocking: z.ZodDefault<z.ZodBoolean>;
|
|
696
695
|
frequency: z.ZodDefault<z.ZodEnum<{
|
|
697
696
|
once: "once";
|
|
698
|
-
|
|
697
|
+
conversation: "conversation";
|
|
699
698
|
always: "always";
|
|
700
699
|
}>>;
|
|
701
700
|
mirrorToContext: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -715,16 +714,16 @@ declare const formsSchema: z.ZodArray<z.ZodObject<{
|
|
|
715
714
|
label: z.ZodString;
|
|
716
715
|
type: z.ZodEnum<{
|
|
717
716
|
number: "number";
|
|
718
|
-
select: "select";
|
|
719
|
-
textarea: "textarea";
|
|
720
|
-
time: "time";
|
|
721
717
|
text: "text";
|
|
722
|
-
checkbox: "checkbox";
|
|
723
|
-
radio: "radio";
|
|
724
718
|
url: "url";
|
|
725
719
|
email: "email";
|
|
726
720
|
tel: "tel";
|
|
727
721
|
date: "date";
|
|
722
|
+
time: "time";
|
|
723
|
+
textarea: "textarea";
|
|
724
|
+
select: "select";
|
|
725
|
+
radio: "radio";
|
|
726
|
+
checkbox: "checkbox";
|
|
728
727
|
multiselect: "multiselect";
|
|
729
728
|
}>;
|
|
730
729
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
@@ -751,10 +750,9 @@ declare const formsSchema: z.ZodArray<z.ZodObject<{
|
|
|
751
750
|
description: z.ZodOptional<z.ZodString>;
|
|
752
751
|
submitLabel: z.ZodOptional<z.ZodString>;
|
|
753
752
|
skippable: z.ZodDefault<z.ZodBoolean>;
|
|
754
|
-
blocking: z.ZodDefault<z.ZodBoolean>;
|
|
755
753
|
frequency: z.ZodDefault<z.ZodEnum<{
|
|
756
754
|
once: "once";
|
|
757
|
-
|
|
755
|
+
conversation: "conversation";
|
|
758
756
|
always: "always";
|
|
759
757
|
}>>;
|
|
760
758
|
mirrorToContext: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -791,24 +789,24 @@ type I18nOptions = z.infer<typeof i18nSchema>;
|
|
|
791
789
|
* One tab → no tab bar (just that content). Zero → an empty state. Only
|
|
792
790
|
* meaningful in `floating` / `drawer` / `modal` modes.
|
|
793
791
|
*
|
|
794
|
-
* The list arrives via the start-
|
|
792
|
+
* The list arrives via the start-conversation (`config.modules`); each non-chat
|
|
795
793
|
* tab lazy-fetches its content from `GET /ai/agent/content` scoped by its
|
|
796
794
|
* `category`. See `docs/api/messenger-modules.md` + `docs/api/content.md`.
|
|
797
795
|
*/
|
|
798
796
|
|
|
799
797
|
declare const moduleLayoutSchema: z.ZodEnum<{
|
|
800
|
-
home: "home";
|
|
801
798
|
chat: "chat";
|
|
802
799
|
help: "help";
|
|
800
|
+
home: "home";
|
|
803
801
|
news: "news";
|
|
804
802
|
}>;
|
|
805
803
|
type ModuleLayout = z.infer<typeof moduleLayoutSchema>;
|
|
806
804
|
declare const moduleSchema: z.ZodObject<{
|
|
807
805
|
label: z.ZodString;
|
|
808
806
|
layout: z.ZodEnum<{
|
|
809
|
-
home: "home";
|
|
810
807
|
chat: "chat";
|
|
811
808
|
help: "help";
|
|
809
|
+
home: "home";
|
|
812
810
|
news: "news";
|
|
813
811
|
}>;
|
|
814
812
|
contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -834,9 +832,9 @@ type ModuleOptions = z.infer<typeof moduleSchema>;
|
|
|
834
832
|
declare const modulesSchema: z.ZodArray<z.ZodObject<{
|
|
835
833
|
label: z.ZodString;
|
|
836
834
|
layout: z.ZodEnum<{
|
|
837
|
-
home: "home";
|
|
838
835
|
chat: "chat";
|
|
839
836
|
help: "help";
|
|
837
|
+
home: "home";
|
|
840
838
|
news: "news";
|
|
841
839
|
}>;
|
|
842
840
|
contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
package/schema.json
CHANGED
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
},
|
|
168
168
|
"submitForm": {
|
|
169
169
|
"default": "/ai/agent/submit-form",
|
|
170
|
-
"description": "Form submission endpoint. The widget POSTs each completed form's values here (fire-and-forget), keyed by the same visitorId +
|
|
170
|
+
"description": "Form submission endpoint. The widget POSTs each completed form's values here (fire-and-forget), keyed by the same visitorId + conversationId as the conversation; the payload carries `formId` + `trigger` so the backend can route. Optional — a 404 is ignored.",
|
|
171
171
|
"type": "string",
|
|
172
172
|
"minLength": 1,
|
|
173
173
|
"maxLength": 2048
|
|
@@ -469,7 +469,7 @@
|
|
|
469
469
|
"type": "boolean"
|
|
470
470
|
},
|
|
471
471
|
"popOutUrl": {
|
|
472
|
-
"description": "URL the `popOut` action opens in a new tab (carries `?chat=<id>&widgetId=<id>` query params). Falls back to the brand's build-time default. Set this to point at your own dedicated chat page (e.g. `https://app.acme.com/chat`). Server-pushable on `/start-
|
|
472
|
+
"description": "URL the `popOut` action opens in a new tab (carries `?chat=<id>&widgetId=<id>` query params). Falls back to the brand's build-time default. Set this to point at your own dedicated chat page (e.g. `https://app.acme.com/chat`). Server-pushable on `/start-conversation.widget.behavior.popOutUrl`.",
|
|
473
473
|
"type": "string",
|
|
474
474
|
"minLength": 1,
|
|
475
475
|
"maxLength": 2048
|
|
@@ -1586,21 +1586,16 @@
|
|
|
1586
1586
|
},
|
|
1587
1587
|
"skippable": {
|
|
1588
1588
|
"default": false,
|
|
1589
|
-
"description": "Show a Skip control.",
|
|
1590
|
-
"type": "boolean"
|
|
1591
|
-
},
|
|
1592
|
-
"blocking": {
|
|
1593
|
-
"default": false,
|
|
1594
|
-
"description": "Gate the composer (honored only for `pre-chat` / `after-messages`); otherwise renders inline.",
|
|
1589
|
+
"description": "Show a Skip control so the visitor can dismiss the form.",
|
|
1595
1590
|
"type": "boolean"
|
|
1596
1591
|
},
|
|
1597
1592
|
"frequency": {
|
|
1598
1593
|
"default": "once",
|
|
1599
|
-
"description": "`once` (
|
|
1594
|
+
"description": "`once` (per device, persisted), `conversation` (re-eligible each new conversation), or `always`.",
|
|
1600
1595
|
"type": "string",
|
|
1601
1596
|
"enum": [
|
|
1602
1597
|
"once",
|
|
1603
|
-
"
|
|
1598
|
+
"conversation",
|
|
1604
1599
|
"always"
|
|
1605
1600
|
]
|
|
1606
1601
|
},
|
|
@@ -1615,19 +1610,17 @@
|
|
|
1615
1610
|
"on",
|
|
1616
1611
|
"fields",
|
|
1617
1612
|
"skippable",
|
|
1618
|
-
"blocking",
|
|
1619
1613
|
"frequency",
|
|
1620
1614
|
"mirrorToContext"
|
|
1621
1615
|
],
|
|
1622
1616
|
"additionalProperties": {}
|
|
1623
1617
|
},
|
|
1624
|
-
"description": "Event-driven forms — an ordered list (order = priority). Each binds to trigger event(s),
|
|
1618
|
+
"description": "Event-driven forms — an ordered list (order = priority). Each binds to trigger event(s), gates the chat until submit/skip, dedupes by frequency, and records via `endpoints.submitForm`. Generic across verticals.",
|
|
1625
1619
|
"examples": [
|
|
1626
1620
|
[
|
|
1627
1621
|
{
|
|
1628
1622
|
"id": "intake",
|
|
1629
1623
|
"on": "pre-chat",
|
|
1630
|
-
"blocking": true,
|
|
1631
1624
|
"fields": [
|
|
1632
1625
|
{
|
|
1633
1626
|
"name": "email",
|
|
@@ -1641,7 +1634,6 @@
|
|
|
1641
1634
|
{
|
|
1642
1635
|
"id": "lead",
|
|
1643
1636
|
"on": "pre-chat",
|
|
1644
|
-
"blocking": true,
|
|
1645
1637
|
"title": "Before we start",
|
|
1646
1638
|
"fields": [
|
|
1647
1639
|
{
|
|
@@ -1883,10 +1875,10 @@
|
|
|
1883
1875
|
]
|
|
1884
1876
|
},
|
|
1885
1877
|
"site": {
|
|
1886
|
-
"description": "Site config — applies in `mode: \"page\"`. Comes from the start-
|
|
1878
|
+
"description": "Site config — applies in `mode: \"page\"`. Comes from the start-conversation response, not user-edited."
|
|
1887
1879
|
},
|
|
1888
1880
|
"blocks": {
|
|
1889
|
-
"description": "Blocks (nav + link cards) — applies in `mode: \"page\"`. Comes from the start-
|
|
1881
|
+
"description": "Blocks (nav + link cards) — applies in `mode: \"page\"`. Comes from the start-conversation response."
|
|
1890
1882
|
}
|
|
1891
1883
|
},
|
|
1892
1884
|
"required": [
|
|
@@ -1917,7 +1909,7 @@
|
|
|
1917
1909
|
}
|
|
1918
1910
|
]
|
|
1919
1911
|
},
|
|
1920
|
-
"
|
|
1912
|
+
"StartConversationResponse": {
|
|
1921
1913
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1922
1914
|
"type": "object",
|
|
1923
1915
|
"properties": {
|
|
@@ -2230,7 +2222,7 @@
|
|
|
2230
2222
|
"type": "boolean"
|
|
2231
2223
|
},
|
|
2232
2224
|
"popOutUrl": {
|
|
2233
|
-
"description": "URL the `popOut` action opens in a new tab (carries `?chat=<id>&widgetId=<id>` query params). Falls back to the brand's build-time default. Set this to point at your own dedicated chat page (e.g. `https://app.acme.com/chat`). Server-pushable on `/start-
|
|
2225
|
+
"description": "URL the `popOut` action opens in a new tab (carries `?chat=<id>&widgetId=<id>` query params). Falls back to the brand's build-time default. Set this to point at your own dedicated chat page (e.g. `https://app.acme.com/chat`). Server-pushable on `/start-conversation.widget.behavior.popOutUrl`.",
|
|
2234
2226
|
"type": "string",
|
|
2235
2227
|
"minLength": 1,
|
|
2236
2228
|
"maxLength": 2048
|
|
@@ -3347,21 +3339,16 @@
|
|
|
3347
3339
|
},
|
|
3348
3340
|
"skippable": {
|
|
3349
3341
|
"default": false,
|
|
3350
|
-
"description": "Show a Skip control.",
|
|
3351
|
-
"type": "boolean"
|
|
3352
|
-
},
|
|
3353
|
-
"blocking": {
|
|
3354
|
-
"default": false,
|
|
3355
|
-
"description": "Gate the composer (honored only for `pre-chat` / `after-messages`); otherwise renders inline.",
|
|
3342
|
+
"description": "Show a Skip control so the visitor can dismiss the form.",
|
|
3356
3343
|
"type": "boolean"
|
|
3357
3344
|
},
|
|
3358
3345
|
"frequency": {
|
|
3359
3346
|
"default": "once",
|
|
3360
|
-
"description": "`once` (
|
|
3347
|
+
"description": "`once` (per device, persisted), `conversation` (re-eligible each new conversation), or `always`.",
|
|
3361
3348
|
"type": "string",
|
|
3362
3349
|
"enum": [
|
|
3363
3350
|
"once",
|
|
3364
|
-
"
|
|
3351
|
+
"conversation",
|
|
3365
3352
|
"always"
|
|
3366
3353
|
]
|
|
3367
3354
|
},
|
|
@@ -3376,19 +3363,17 @@
|
|
|
3376
3363
|
"on",
|
|
3377
3364
|
"fields",
|
|
3378
3365
|
"skippable",
|
|
3379
|
-
"blocking",
|
|
3380
3366
|
"frequency",
|
|
3381
3367
|
"mirrorToContext"
|
|
3382
3368
|
],
|
|
3383
3369
|
"additionalProperties": {}
|
|
3384
3370
|
},
|
|
3385
|
-
"description": "Event-driven forms — an ordered list (order = priority). Each binds to trigger event(s),
|
|
3371
|
+
"description": "Event-driven forms — an ordered list (order = priority). Each binds to trigger event(s), gates the chat until submit/skip, dedupes by frequency, and records via `endpoints.submitForm`. Generic across verticals.",
|
|
3386
3372
|
"examples": [
|
|
3387
3373
|
[
|
|
3388
3374
|
{
|
|
3389
3375
|
"id": "intake",
|
|
3390
3376
|
"on": "pre-chat",
|
|
3391
|
-
"blocking": true,
|
|
3392
3377
|
"fields": [
|
|
3393
3378
|
{
|
|
3394
3379
|
"name": "email",
|
|
@@ -3402,7 +3387,6 @@
|
|
|
3402
3387
|
{
|
|
3403
3388
|
"id": "lead",
|
|
3404
3389
|
"on": "pre-chat",
|
|
3405
|
-
"blocking": true,
|
|
3406
3390
|
"title": "Before we start",
|
|
3407
3391
|
"fields": [
|
|
3408
3392
|
{
|
|
@@ -3856,7 +3840,7 @@
|
|
|
3856
3840
|
"visitorId": {
|
|
3857
3841
|
"type": "string"
|
|
3858
3842
|
},
|
|
3859
|
-
"
|
|
3843
|
+
"conversationId": {
|
|
3860
3844
|
"type": "string"
|
|
3861
3845
|
},
|
|
3862
3846
|
"canContinue": {
|
|
@@ -3884,7 +3868,7 @@
|
|
|
3884
3868
|
"invalid"
|
|
3885
3869
|
]
|
|
3886
3870
|
},
|
|
3887
|
-
"
|
|
3871
|
+
"conversationId": {
|
|
3888
3872
|
"type": "string",
|
|
3889
3873
|
"enum": [
|
|
3890
3874
|
"conflict",
|
|
@@ -3900,7 +3884,7 @@
|
|
|
3900
3884
|
"deployment",
|
|
3901
3885
|
"agent",
|
|
3902
3886
|
"visitorId",
|
|
3903
|
-
"
|
|
3887
|
+
"conversationId",
|
|
3904
3888
|
"canContinue",
|
|
3905
3889
|
"messages"
|
|
3906
3890
|
],
|