@opencx/mcp 1.15.29 → 1.15.31

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.
Files changed (36) hide show
  1. package/dist/inbox-view-tools.spec.d.ts +2 -0
  2. package/dist/inbox-view-tools.spec.d.ts.map +1 -0
  3. package/dist/inbox-view-tools.spec.js +152 -0
  4. package/dist/inbox-view-tools.spec.js.map +1 -0
  5. package/dist/schema.d.ts +613 -17
  6. package/dist/schema.d.ts.map +1 -1
  7. package/dist/server.d.ts.map +1 -1
  8. package/dist/server.js +4 -0
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/audit-logs.d.ts.map +1 -1
  11. package/dist/tools/audit-logs.js +1 -0
  12. package/dist/tools/audit-logs.js.map +1 -1
  13. package/dist/tools/campaign-channel.d.ts.map +1 -1
  14. package/dist/tools/campaign-channel.js +4 -2
  15. package/dist/tools/campaign-channel.js.map +1 -1
  16. package/dist/tools/campaign-spine.d.ts.map +1 -1
  17. package/dist/tools/campaign-spine.js +46 -0
  18. package/dist/tools/campaign-spine.js.map +1 -1
  19. package/dist/tools/email.js +1 -1
  20. package/dist/tools/email.js.map +1 -1
  21. package/dist/tools/inbox-views.d.ts +4 -0
  22. package/dist/tools/inbox-views.d.ts.map +1 -0
  23. package/dist/tools/inbox-views.js +146 -0
  24. package/dist/tools/inbox-views.js.map +1 -0
  25. package/dist/tools/outbound-blocklist.d.ts +4 -0
  26. package/dist/tools/outbound-blocklist.d.ts.map +1 -0
  27. package/dist/tools/outbound-blocklist.js +101 -0
  28. package/dist/tools/outbound-blocklist.js.map +1 -0
  29. package/dist/tools/phone.js +1 -1
  30. package/dist/tools/phone.js.map +1 -1
  31. package/dist/tools/sessions.d.ts.map +1 -1
  32. package/dist/tools/sessions.js +10 -4
  33. package/dist/tools/sessions.js.map +1 -1
  34. package/dist/tools/whatsapp.js +1 -1
  35. package/dist/tools/whatsapp.js.map +1 -1
  36. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -398,7 +398,7 @@ export interface paths {
398
398
  put?: never;
399
399
  /**
400
400
  * Assign or unassign a chat session
401
- * @description Assign a chat session to a human agent by user ID, or set assignee_id to null to unassign it.
401
+ * @description Assign a chat session to a human agent, named either by `assignee_id` or by `assignee_email` — exactly one. The email is matched case-insensitively against this organization’s members, so a sync can assign straight from the address it already holds. Send either field as null to unassign. A teammate who is not a member of this organization is rejected.
402
402
  */
403
403
  post: operations["assignChatSession"];
404
404
  delete?: never;
@@ -2433,6 +2433,54 @@ export interface paths {
2433
2433
  patch: operations["updateCustomStatus"];
2434
2434
  trace?: never;
2435
2435
  };
2436
+ "/inbox-views": {
2437
+ parameters: {
2438
+ query?: never;
2439
+ header?: never;
2440
+ path?: never;
2441
+ cookie?: never;
2442
+ };
2443
+ /**
2444
+ * List saved inbox views
2445
+ * @description List the saved inbox views the calling user can see: their own, the ones shared with them or their teams, and the organization-wide ones. A saved view is a named session filter set that agents pick from the inbox sidebar.
2446
+ */
2447
+ get: operations["listInboxViews"];
2448
+ put?: never;
2449
+ /**
2450
+ * Create a saved inbox view
2451
+ * @description Create a named, filtered view of the inbox and share it with the organization, named teams, or named users. The view is evaluated fresh every time it is opened, so `$current_user` assignees and `date.preset` windows stay dynamic. Leave both share lists empty to share the view with the whole organization. Name users and/or teams to restrict it to them, or pass only your own user id to keep it private. Sharing requires the `sessions-shared-views:write` permission — without it a created view is locked to its creator and the share lists on an update are ignored.
2452
+ */
2453
+ post: operations["createInboxView"];
2454
+ delete?: never;
2455
+ options?: never;
2456
+ head?: never;
2457
+ patch?: never;
2458
+ trace?: never;
2459
+ };
2460
+ "/inbox-views/{id}": {
2461
+ parameters: {
2462
+ query?: never;
2463
+ header?: never;
2464
+ path?: never;
2465
+ cookie?: never;
2466
+ };
2467
+ get?: never;
2468
+ put?: never;
2469
+ post?: never;
2470
+ /**
2471
+ * Delete a saved inbox view
2472
+ * @description Delete a saved view. It disappears from the sidebar for everyone it was shared with; the sessions it matched are untouched. Requires the same permission as updating it (see `can_delete`).
2473
+ */
2474
+ delete: operations["deleteInboxView"];
2475
+ options?: never;
2476
+ head?: never;
2477
+ /**
2478
+ * Update a saved inbox view
2479
+ * @description Update any subset of a saved view. Omitted fields are left unchanged; sending `filters` replaces the saved query outright. Only the view's creator, or someone with the `sessions-shared-views:write` permission editing a shared view, may update it (see `can_edit`).
2480
+ */
2481
+ patch: operations["updateInboxView"];
2482
+ trace?: never;
2483
+ };
2436
2484
  "/workflows/definitions": {
2437
2485
  parameters: {
2438
2486
  query?: never;
@@ -3180,7 +3228,7 @@ export interface paths {
3180
3228
  };
3181
3229
  /**
3182
3230
  * List the mailboxes this org can bind as sequence email senders
3183
- * @description Every email mailbox of the organization with its bindability verdict AND its health NUMBERS. `eligible` mailboxes are accepted by setSequenceSenders on the email channel; ineligible ones carry the reason (`not_active` — still provisioning or paused; `domain_not_live` — its domain lapsed, so sending would fail authentication). `health` carries warm-up status, inbox rate, spam rate, an overall score, warming-since, and the share of recent real sends that hard-bounced with its sample size. There is deliberately no pass/fail: a null is "not known yet" (common for a new mailbox), never "bad", and nothing here blocks a send or a binding.
3231
+ * @description Every email mailbox of the organization with its bindability verdict AND its health NUMBERS. `eligible` mailboxes are accepted by setSequenceSenders on the email channel including a mailbox still provisioning (`pending`/`created`): binding it early is safe, sending itself waits for the mailbox to finish becoming `active` on its own. Ineligible ones carry the reason (`not_active` — a human hold or the mailbox being removed, neither of which resolves on its own; `domain_not_live` — its domain lapsed, so sending would fail authentication). `health` carries warm-up status, inbox rate, spam rate, an overall score, warming-since, and the share of recent real sends that hard-bounced with its sample size. There is deliberately no pass/fail: a null is "not known yet" (common for a new mailbox), never "bad", and nothing here blocks a send or a binding.
3184
3232
  */
3185
3233
  get: operations["listEmailSenders"];
3186
3234
  put?: never;
@@ -3534,6 +3582,48 @@ export interface paths {
3534
3582
  patch?: never;
3535
3583
  trace?: never;
3536
3584
  };
3585
+ "/sequences/{sequenceId}/contacts/{contactId}/continue": {
3586
+ parameters: {
3587
+ query?: never;
3588
+ header?: never;
3589
+ path?: never;
3590
+ cookie?: never;
3591
+ };
3592
+ get?: never;
3593
+ put?: never;
3594
+ /**
3595
+ * Continue the sequence for a person a reply took out of it
3596
+ * @description A reply concludes a journey — the person exits as "replied" and receives no further steps. When that reply was not real engagement (an out-of-office, a "who is this?"), this puts them back in: active at the NEXT step, with that step's wait counted from now. The step they answered is never re-sent.
3597
+ *
3598
+ * Never an error for "cannot continue": `nothing_to_continue` when they replied on the last step or the journey already completed; `not_resumable` when the journey is still in play or ended by suppression (consent is not overridden here); `contact_not_found` when there is no live enrollment.
3599
+ */
3600
+ post: operations["continueSequenceContact"];
3601
+ delete?: never;
3602
+ options?: never;
3603
+ head?: never;
3604
+ patch?: never;
3605
+ trace?: never;
3606
+ };
3607
+ "/sequences/contacts/{contactId}/sequences": {
3608
+ parameters: {
3609
+ query?: never;
3610
+ header?: never;
3611
+ path?: never;
3612
+ cookie?: never;
3613
+ };
3614
+ /**
3615
+ * Every sequence a contact is in, across the workspace
3616
+ * @description The cross-sequence read: which sequences hold this contact, their status in each (candidate, active, parked, exited, completed), why they left or parked, and the step they are on. Live enrollments only — a removed person is off the list. Use it before enrolling someone, or when a message arrives and you need to know whether they are mid-sequence.
3617
+ */
3618
+ get: operations["listContactSequences"];
3619
+ put?: never;
3620
+ post?: never;
3621
+ delete?: never;
3622
+ options?: never;
3623
+ head?: never;
3624
+ patch?: never;
3625
+ trace?: never;
3626
+ };
3537
3627
  "/sequences/{sequenceId}/contacts/exit": {
3538
3628
  parameters: {
3539
3629
  query?: never;
@@ -7268,7 +7358,9 @@ export interface components {
7268
7358
  };
7269
7359
  SessionAssigneeUpdateInput: {
7270
7360
  /** @description Agent user ID to assign, or null to unassign the session */
7271
- assignee_id: number | null;
7361
+ assignee_id?: number | null;
7362
+ /** @description Email of the agent to assign, matched case-insensitively against this organization’s members, or null to unassign the session */
7363
+ assignee_email?: string | null;
7272
7364
  };
7273
7365
  SessionTeamTransferInput: {
7274
7366
  /**
@@ -7427,6 +7519,11 @@ export interface components {
7427
7519
  channel: "web" | "email" | "phone" | "whatsapp" | "slack" | "sms" | "instagram" | "messenger" | "api" | "web_voice";
7428
7520
  /** @description Set true to enable autopilot, false to disable */
7429
7521
  autopilot_enabled: boolean;
7522
+ /**
7523
+ * @description AI agent version to use for this channel
7524
+ * @enum {string}
7525
+ */
7526
+ ai_agent_version?: "v1" | "v2";
7430
7527
  };
7431
7528
  UpdateProhibitedTopicsInputDto: {
7432
7529
  /** @description Full replacement list of prohibited topics. Each entry is either a name string or an object with a name and an optional description. A name-only entry keeps whatever description that topic already has. Empty array clears all topics. Duplicates and blank entries are removed. */
@@ -7532,6 +7629,162 @@ export interface components {
7532
7629
  /** @description Inline SVG markup for the badge icon. null restores the default icon; omit to leave unchanged. */
7533
7630
  icon?: string | null;
7534
7631
  };
7632
+ CreateInboxViewDto: {
7633
+ /** @description Name shown in the inbox view picker */
7634
+ name: string;
7635
+ /**
7636
+ * @description Filters the view applies, ANDed together. Omit for a view over every session. Same vocabulary as POST /chat/sessions/filter, plus the saved-view-only `$current_user` assignee token and rolling `date.preset`.
7637
+ * @default {}
7638
+ */
7639
+ filters: {
7640
+ /** @description Date range filter on session creation time */
7641
+ date?: {
7642
+ /**
7643
+ * Format: date-time
7644
+ * @description Start date (ISO 8601)
7645
+ */
7646
+ from?: string;
7647
+ /**
7648
+ * Format: date-time
7649
+ * @description End date (ISO 8601)
7650
+ */
7651
+ to?: string;
7652
+ /**
7653
+ * @description Rolling window resolved every time the view is opened: "today", "last_3_days" or "last_7_days". Mutually exclusive with from/to.
7654
+ * @enum {string}
7655
+ */
7656
+ preset?: "today" | "last_3_days" | "last_7_days";
7657
+ };
7658
+ /** @description Filter by channels (web, email, whatsapp, phone_voice, sms, slack, etc.) */
7659
+ channels?: components["schemas"]["SessionChannel"][];
7660
+ /** @description Filter by built-in status codes (0 = open, 1 = closed_resolved, 2 = closed_unresolved) */
7661
+ status?: number[];
7662
+ /** @description Filter by custom status ids (sessions whose `sub_status_id` is any of these). Ids come from GET /custom-statuses. An empty array applies no filter, like the other array filters here. */
7663
+ sub_status_ids?: string[];
7664
+ /** @description Filter by AI closure type (e.g. "handed_off", "resolved", "no_resolution") */
7665
+ ai_closure?: ("assumed_resolved" | "handed_off" | "resolved")[];
7666
+ /** @description Filter by customer sentiment (angry, happy, neutral) */
7667
+ sentiment?: ("angry" | "happy" | "neutral")[];
7668
+ /** @description Filter by assignee user IDs (empty array = unassigned). The "$current_user" token resolves to whoever opens the view, so one shared view can mean "assigned to me" for every teammate. */
7669
+ assignees?: (number | "$current_user")[];
7670
+ /** @description Filter by team/group IDs */
7671
+ team_ids?: string[];
7672
+ /** @description Filter by contact IDs */
7673
+ contact_ids?: string[];
7674
+ /** @description Filter by exact ticket number */
7675
+ ticket_number?: number;
7676
+ /** @description Filter by session language codes */
7677
+ language?: string[];
7678
+ /** @description Filter by tag names (sessions must have ALL specified tags) */
7679
+ tags?: string[];
7680
+ /**
7681
+ * @description Filter by who the session is waiting on
7682
+ * @enum {string}
7683
+ */
7684
+ waiting_on?: "customers" | "human_agents";
7685
+ /** @description Filter by session custom data (OR between objects, AND within each object) */
7686
+ custom_data?: {
7687
+ [key: string]: string;
7688
+ }[];
7689
+ };
7690
+ /**
7691
+ * @description Sort field (default: last_message_at)
7692
+ * @enum {string}
7693
+ */
7694
+ sort_by?: "last_message_at" | "created_at" | "sla_urgency";
7695
+ /**
7696
+ * @description Sort direction (default: desc)
7697
+ * @enum {string}
7698
+ */
7699
+ sort_order?: "asc" | "desc";
7700
+ /**
7701
+ * @description Group the session list by this field. Omit for a flat list.
7702
+ * @enum {string}
7703
+ */
7704
+ group_by?: "channel" | "assignee_id" | "status" | "ai_closure_type" | "language" | "inbox_id";
7705
+ /**
7706
+ * @description User ids the view is shared with. Leave both share lists empty to share the view with the whole organization. Name users and/or teams to restrict it to them, or pass only your own user id to keep it private. Sharing requires the `sessions-shared-views:write` permission — without it a created view is locked to its creator and the share lists on an update are ignored.
7707
+ * @default []
7708
+ */
7709
+ shared_with_user_ids: number[];
7710
+ /**
7711
+ * @description Team ids (from GET /teams) whose members can see the view.
7712
+ * @default []
7713
+ */
7714
+ shared_with_team_ids: string[];
7715
+ };
7716
+ UpdateInboxViewDto: {
7717
+ /** @description New name for the view */
7718
+ name?: string;
7719
+ /** @description Replaces the entire saved filter set — including the OR/exclude groups of an `advanced` view. Omit to leave the query untouched. */
7720
+ filters?: {
7721
+ /** @description Date range filter on session creation time */
7722
+ date?: {
7723
+ /**
7724
+ * Format: date-time
7725
+ * @description Start date (ISO 8601)
7726
+ */
7727
+ from?: string;
7728
+ /**
7729
+ * Format: date-time
7730
+ * @description End date (ISO 8601)
7731
+ */
7732
+ to?: string;
7733
+ /**
7734
+ * @description Rolling window resolved every time the view is opened: "today", "last_3_days" or "last_7_days". Mutually exclusive with from/to.
7735
+ * @enum {string}
7736
+ */
7737
+ preset?: "today" | "last_3_days" | "last_7_days";
7738
+ };
7739
+ /** @description Filter by channels (web, email, whatsapp, phone_voice, sms, slack, etc.) */
7740
+ channels?: components["schemas"]["SessionChannel"][];
7741
+ /** @description Filter by built-in status codes (0 = open, 1 = closed_resolved, 2 = closed_unresolved) */
7742
+ status?: number[];
7743
+ /** @description Filter by custom status ids (sessions whose `sub_status_id` is any of these). Ids come from GET /custom-statuses. An empty array applies no filter, like the other array filters here. */
7744
+ sub_status_ids?: string[];
7745
+ /** @description Filter by AI closure type (e.g. "handed_off", "resolved", "no_resolution") */
7746
+ ai_closure?: ("assumed_resolved" | "handed_off" | "resolved")[];
7747
+ /** @description Filter by customer sentiment (angry, happy, neutral) */
7748
+ sentiment?: ("angry" | "happy" | "neutral")[];
7749
+ /** @description Filter by assignee user IDs (empty array = unassigned). The "$current_user" token resolves to whoever opens the view, so one shared view can mean "assigned to me" for every teammate. */
7750
+ assignees?: (number | "$current_user")[];
7751
+ /** @description Filter by team/group IDs */
7752
+ team_ids?: string[];
7753
+ /** @description Filter by contact IDs */
7754
+ contact_ids?: string[];
7755
+ /** @description Filter by exact ticket number */
7756
+ ticket_number?: number;
7757
+ /** @description Filter by session language codes */
7758
+ language?: string[];
7759
+ /** @description Filter by tag names (sessions must have ALL specified tags) */
7760
+ tags?: string[];
7761
+ /**
7762
+ * @description Filter by who the session is waiting on
7763
+ * @enum {string}
7764
+ */
7765
+ waiting_on?: "customers" | "human_agents";
7766
+ /** @description Filter by session custom data (OR between objects, AND within each object) */
7767
+ custom_data?: {
7768
+ [key: string]: string;
7769
+ }[];
7770
+ };
7771
+ /**
7772
+ * @description New sort field
7773
+ * @enum {string}
7774
+ */
7775
+ sort_by?: "last_message_at" | "created_at" | "sla_urgency";
7776
+ /**
7777
+ * @description New sort direction
7778
+ * @enum {string}
7779
+ */
7780
+ sort_order?: "asc" | "desc";
7781
+ /** @description New grouping field; null removes grouping. Omit to leave it unchanged. */
7782
+ group_by?: ("channel" | "assignee_id" | "status" | "ai_closure_type" | "language" | "inbox_id") | null;
7783
+ /** @description User ids the view is shared with. Leave both share lists empty to share the view with the whole organization. Name users and/or teams to restrict it to them, or pass only your own user id to keep it private. Sharing requires the `sessions-shared-views:write` permission — without it a created view is locked to its creator and the share lists on an update are ignored. */
7784
+ shared_with_user_ids?: number[];
7785
+ /** @description Team ids (from GET /teams) whose members can see the view. */
7786
+ shared_with_team_ids?: string[];
7787
+ };
7535
7788
  CreateWorkflowPublicInput: {
7536
7789
  /** @description Workflow name */
7537
7790
  name: string;
@@ -7541,7 +7794,7 @@ export interface components {
7541
7794
  * @description What starts the workflow. Use "manual-trigger" for on-demand execution, "ai-trigger" for AI-initiated, "webhook" for external HTTP triggers, "cron-trigger" for scheduled runs, or event-based triggers like "ticket-created", "contact-created", etc.
7542
7795
  * @enum {string}
7543
7796
  */
7544
- trigger_type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "sequence-completed" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated";
7797
+ trigger_type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated" | "sequence-contact-replied" | "sequence-contact-completed" | "sequence-contact-parked" | "sequence-step-failed" | "sequence-contact-suppressed";
7545
7798
  /** @description Trigger-specific configuration (e.g. cron expression for cron-trigger) */
7546
7799
  trigger_configuration?: unknown | null;
7547
7800
  /** @description Array of workflow steps and control-flow blocks. Each step is an object with { "$kind": "Action", "id": "<unique-step-id>", "type": "<action-type>", "name": "<display-name>", "input": { ... } }. Control-flow blocks use { "$kind": "Block", "type": "if-else", "id": "<unique-id>", "inputs": { "condition": { "operatorName": "equals", "left": "{{step_id.field}}", "right": "value" } }, "branches": { "then": [...steps], "else": [...steps] } }. Use {{step_id.field}} to reference outputs from previous steps (no `.output.` segment — the field sits directly under the step id). */
@@ -7558,7 +7811,7 @@ export interface components {
7558
7811
  * @description New trigger type
7559
7812
  * @enum {string}
7560
7813
  */
7561
- trigger_type?: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "sequence-completed" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated";
7814
+ trigger_type?: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated" | "sequence-contact-replied" | "sequence-contact-completed" | "sequence-contact-parked" | "sequence-step-failed" | "sequence-contact-suppressed";
7562
7815
  /** @description New trigger configuration */
7563
7816
  trigger_configuration?: unknown | null;
7564
7817
  /** @description New workflow step/block definitions (replaces existing blocks) */
@@ -7571,7 +7824,7 @@ export interface components {
7571
7824
  * @description Trigger type to validate against
7572
7825
  * @enum {string}
7573
7826
  */
7574
- trigger_type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "sequence-completed" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated";
7827
+ trigger_type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated" | "sequence-contact-replied" | "sequence-contact-completed" | "sequence-contact-parked" | "sequence-step-failed" | "sequence-contact-suppressed";
7575
7828
  /** @description Trigger configuration to validate against the trigger's configuration_def. When omitted, the trigger is validated as if unconfigured — triggers with required configuration (e.g. cron-trigger, ai-trigger) will report errors. */
7576
7829
  trigger_configuration?: unknown | null;
7577
7830
  /** @description Workflow blocks to validate */
@@ -7584,7 +7837,7 @@ export interface components {
7584
7837
  * @description Trigger type whose payload shape this synthetic payload should match
7585
7838
  * @enum {string}
7586
7839
  */
7587
- type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "sequence-completed" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated";
7840
+ type: "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "ticket-reassigned" | "ticket-resolved" | "ticket-handoff" | "pre-ticket-handoff" | "ticket-tag-added" | "ticket-inactive" | "agent-inactive" | "csat-score-submit" | "prohibited-topic-detected" | "sla-first-reply-breached" | "sla-next-reply-breached" | "sla-resolution-breached" | "voice-call-transferred" | "pre-voice-call-transfer" | "pre-phone-call-finished" | "manual-ticket-trigger" | "contact-message-received" | "first-contact-message-received" | "macro-called" | "ai-response-completed" | "agent-availability-changed" | "agent-avail-in-team-changed" | "ai-response-requested" | "ticket-reopened" | "agent-mentioned" | "agent-message-posted" | "ticket-team-changed" | "session-updated" | "sequence-contact-replied" | "sequence-contact-completed" | "sequence-contact-parked" | "sequence-step-failed" | "sequence-contact-suppressed";
7588
7841
  payload: unknown;
7589
7842
  };
7590
7843
  };
@@ -8357,7 +8610,7 @@ export interface components {
8357
8610
  /** @constant */
8358
8611
  type: "response_skipped";
8359
8612
  /** @enum {string} */
8360
- reason?: "empty_response" | "potential_answers_dead_end" | "silent_handoff" | "assist_human_handling_recommended" | "superseded_by_newer_run" | "interrupted" | "flagged_as_spam";
8613
+ reason?: "empty_response" | "potential_answers_dead_end" | "silent_handoff" | "assist_human_handling_recommended" | "superseded_by_newer_run" | "interrupted" | "answered_in_narration" | "steered_into_live_turn" | "session_busy" | "flagged_as_spam";
8361
8614
  reasoning?: ({
8362
8615
  /** @constant */
8363
8616
  type: "reasoning";
@@ -8660,7 +8913,7 @@ export interface components {
8660
8913
  }) | null;
8661
8914
  knowledgebase_called?: boolean | null;
8662
8915
  /** @enum {string} */
8663
- type: "agent_assigned_by_integration" | "agent_assigned_by_system" | "agent_assigned_by_user" | "agent_changed" | "agent_comment" | "agent_initiated_session" | "agent_joined" | "agent_message" | "agent_reopened_session" | "agent_took_session_from_ai" | "agent_unassigned_by_integration" | "agent_unassigned_by_system" | "agent_unassigned_by_user" | "ai_assumed_the_session_resolved" | "ai_decided_to_not_reply" | "ai_decided_to_resolve_the_issue" | "ai_reopened_session" | "ai_response_cancelled" | "ai_resumed_by_system" | "ai_suggestion" | "call_history" | "call_transferred" | "closed_resolved_by_agent" | "closed_resolved_by_api" | "closed_resolved_by_contact" | "closed_resolved_by_integration" | "closed_resolved_by_system" | "closed_unresolved_by_agent" | "closed_unresolved_by_api" | "closed_unresolved_by_system" | "contact_data_updated" | "csat_request_cancelled" | "csat_requested" | "csat_submitted" | "email_draft_message" | "handoff" | "handoff_to_salesforce_miaw" | "handoff_to_zendesk" | "integration_reopened_session" | "message" | "pii_attachment_removed" | "prohibited_topic_detected" | "quoted_content_modified" | "salesforce_fields_updated" | "sequence_message" | "session_forwarded" | "session_language_changed_by_agent" | "session_language_changed_by_api" | "session_language_changed_by_integration" | "session_language_changed_by_system" | "skills_added_by_system" | "sla_applied_by_agent" | "sla_applied_by_system" | "sla_first_reply_breached" | "sla_first_reply_completed_after_breach" | "sla_first_reply_fulfilled" | "sla_first_reply_metric_started" | "sla_freezed_office_hours_ended" | "sla_freezed_snoozed" | "sla_next_reply_breached" | "sla_next_reply_completed_after_breach" | "sla_next_reply_fulfilled" | "sla_next_reply_metric_started" | "sla_removed_by_agent" | "sla_removed_by_system" | "sla_resolution_breached" | "sla_resolution_completed_after_breach" | "sla_resolution_fulfilled" | "sla_resolution_metric_started" | "sla_resolution_paused_resolved" | "sla_resolution_paused_waiting_on_customer" | "sla_resolution_resumed_customer_replied" | "sla_resolution_resumed_reopened" | "sla_resumed_office_hours_started" | "sla_resumed_snooze_cancelled" | "sla_resumed_snooze_expired" | "state_checkpoint" | "sub_session_created" | "sub_session_linked_by_agent" | "sub_session_linked_by_api" | "sub_session_linked_by_integration" | "sub_session_linked_by_system" | "sub_session_unlinked_by_agent" | "sub_session_unlinked_by_api" | "sub_session_unlinked_by_integration" | "sub_session_unlinked_by_system" | "sub_status_removed_by_agent" | "sub_status_removed_by_api" | "sub_status_removed_by_integration" | "sub_status_removed_by_system" | "sub_status_set_by_agent" | "sub_status_set_by_api" | "sub_status_set_by_integration" | "sub_status_set_by_system" | "system_reopened_session" | "tag_added_by_agent" | "tag_added_by_api" | "tag_added_by_integration" | "tag_added_by_system" | "tag_removed_by_agent" | "tag_removed_by_api" | "tag_removed_by_integration" | "tag_removed_by_system" | "team_assigned_by_integration" | "team_assigned_by_system" | "team_assigned_by_user" | "team_unassigned_by_integration" | "team_unassigned_by_system" | "team_unassigned_by_user" | "user_confirmed_the_session_resolved" | "workflow_message" | "workflow_note" | "workflow_triggered";
8916
+ type: "agent_assigned_by_integration" | "agent_assigned_by_system" | "agent_assigned_by_user" | "agent_changed" | "agent_comment" | "agent_initiated_session" | "agent_joined" | "agent_message" | "agent_reopened_session" | "agent_took_session_from_ai" | "agent_unassigned_by_integration" | "agent_unassigned_by_system" | "agent_unassigned_by_user" | "ai_assumed_the_session_resolved" | "ai_decided_to_not_reply" | "ai_decided_to_resolve_the_issue" | "ai_follow_up_cancelled" | "ai_follow_up_fired" | "ai_follow_up_scheduled" | "ai_reopened_session" | "ai_response_cancelled" | "ai_resumed_by_system" | "ai_suggestion" | "call_history" | "call_transferred" | "closed_resolved_by_agent" | "closed_resolved_by_api" | "closed_resolved_by_contact" | "closed_resolved_by_integration" | "closed_resolved_by_system" | "closed_unresolved_by_agent" | "closed_unresolved_by_api" | "closed_unresolved_by_system" | "contact_data_updated" | "csat_request_cancelled" | "csat_requested" | "csat_submitted" | "email_draft_message" | "handoff" | "handoff_to_salesforce_miaw" | "handoff_to_third_party_failed" | "handoff_to_zendesk" | "integration_reopened_session" | "message" | "pii_attachment_removed" | "prohibited_topic_detected" | "quoted_content_modified" | "salesforce_fields_updated" | "sequence_message" | "session_forwarded" | "session_language_changed_by_agent" | "session_language_changed_by_api" | "session_language_changed_by_integration" | "session_language_changed_by_system" | "skills_added_by_system" | "sla_applied_by_agent" | "sla_applied_by_system" | "sla_first_reply_breached" | "sla_first_reply_completed_after_breach" | "sla_first_reply_fulfilled" | "sla_first_reply_metric_started" | "sla_freezed_office_hours_ended" | "sla_freezed_snoozed" | "sla_next_reply_breached" | "sla_next_reply_completed_after_breach" | "sla_next_reply_fulfilled" | "sla_next_reply_metric_started" | "sla_removed_by_agent" | "sla_removed_by_system" | "sla_resolution_breached" | "sla_resolution_completed_after_breach" | "sla_resolution_fulfilled" | "sla_resolution_metric_started" | "sla_resolution_paused_resolved" | "sla_resolution_paused_waiting_on_customer" | "sla_resolution_resumed_customer_replied" | "sla_resolution_resumed_reopened" | "sla_resumed_office_hours_started" | "sla_resumed_snooze_cancelled" | "sla_resumed_snooze_expired" | "state_checkpoint" | "sub_session_created" | "sub_session_linked_by_agent" | "sub_session_linked_by_api" | "sub_session_linked_by_integration" | "sub_session_linked_by_system" | "sub_session_unlinked_by_agent" | "sub_session_unlinked_by_api" | "sub_session_unlinked_by_integration" | "sub_session_unlinked_by_system" | "sub_status_removed_by_agent" | "sub_status_removed_by_api" | "sub_status_removed_by_integration" | "sub_status_removed_by_system" | "sub_status_set_by_agent" | "sub_status_set_by_api" | "sub_status_set_by_integration" | "sub_status_set_by_system" | "system_reopened_session" | "tag_added_by_agent" | "tag_added_by_api" | "tag_added_by_integration" | "tag_added_by_system" | "tag_removed_by_agent" | "tag_removed_by_api" | "tag_removed_by_integration" | "tag_removed_by_system" | "team_assigned_by_integration" | "team_assigned_by_system" | "team_assigned_by_user" | "team_unassigned_by_integration" | "team_unassigned_by_system" | "team_unassigned_by_user" | "user_confirmed_the_session_resolved" | "workflow_message" | "workflow_note" | "workflow_triggered";
8664
8917
  extra_params?: {
8665
8918
  [key: string]: unknown;
8666
8919
  } | null;
@@ -9947,6 +10200,28 @@ export interface components {
9947
10200
  fit: null;
9948
10201
  previous_fit: number | null;
9949
10202
  };
10203
+ ContinueSequenceContactOutputDto: {
10204
+ /** @enum {string} */
10205
+ outcome: "resumed" | "nothing_to_continue" | "not_resumable" | "contact_not_found";
10206
+ contact_id: string | null;
10207
+ next_step_index: number | null;
10208
+ };
10209
+ ContactSequencesDto: {
10210
+ sequences: {
10211
+ /** Format: uuid */
10212
+ sequence_id: string;
10213
+ sequence_name: string;
10214
+ /** @enum {string} */
10215
+ sequence_status: "draft" | "active" | "paused";
10216
+ /** @enum {string} */
10217
+ status: "candidate" | "active" | "parked" | "exited" | "completed";
10218
+ exit_reason: ("replied" | "suppressed") | null;
10219
+ park_reason: ("needs_data" | "unsendable_person" | "template_broken") | null;
10220
+ next_step_index: number;
10221
+ /** Format: date-time */
10222
+ enrolled_at: string;
10223
+ }[];
10224
+ };
9950
10225
  MailboxHealthDto: {
9951
10226
  warmupStatus: string | null;
9952
10227
  inboxRate: number | null;
@@ -11497,9 +11772,31 @@ export interface components {
11497
11772
  /** Format: uuid */
11498
11773
  id: string;
11499
11774
  };
11775
+ SessionTagOutput: {
11776
+ tag_name: string;
11777
+ /** Format: date-time */
11778
+ created_at: string;
11779
+ };
11780
+ /** @description Current session assignment. AI and unassigned sessions have no assignee ID. */
11781
+ ChatSessionAssignee: {
11782
+ /** @constant */
11783
+ type: "human";
11784
+ /** @description Human user ID, matching the numeric ID in GET /users. */
11785
+ id: number;
11786
+ /** @description Current organization display name, matching GET /users, or null if the user is no longer a member of this organization or cannot be found. The recorded human ID is retained. */
11787
+ name: string | null;
11788
+ } | {
11789
+ /** @constant */
11790
+ type: "ai";
11791
+ } | {
11792
+ /** @constant */
11793
+ type: "none";
11794
+ };
11500
11795
  GetChatSessionOutput: {
11501
11796
  /** Format: uuid */
11502
11797
  id: string;
11798
+ /** @description All tags currently assigned to this session, ordered by tag name. Empty when no tags are assigned. */
11799
+ tags: components["schemas"]["SessionTagOutput"][];
11503
11800
  /** @enum {string} */
11504
11801
  status: "open" | "closed_resolved" | "closed_unresolved";
11505
11802
  /** @description Id of the custom status refining `status`, or null when only the built-in status applies. Resolve it with GET /custom-statuses. */
@@ -11531,7 +11828,12 @@ export interface components {
11531
11828
  } | null;
11532
11829
  };
11533
11830
  language?: string;
11831
+ /**
11832
+ * @deprecated
11833
+ * @description Deprecated: use assignee. Contains the recorded human user ID as a string, or null for AI and unassigned sessions. Use assignee.type to distinguish them. This deprecation applies only to response fields; assignment requests still accept assignee_id.
11834
+ */
11534
11835
  assignee_id?: string | null;
11836
+ assignee: components["schemas"]["ChatSessionAssignee"];
11535
11837
  /** @description Session-level custom data stored on the chat session. */
11536
11838
  custom_data?: {
11537
11839
  [key: string]: string | number | boolean;
@@ -11542,6 +11844,15 @@ export interface components {
11542
11844
  name: string;
11543
11845
  description?: string;
11544
11846
  };
11847
+ /** @description Support team assigned to this session. Null when no team can be resolved within the session organization. */
11848
+ support_team: {
11849
+ /**
11850
+ * Format: uuid
11851
+ * @description Stable team ID, preserved when the team is renamed.
11852
+ */
11853
+ id: string;
11854
+ name: string;
11855
+ } | null;
11545
11856
  handoff?: {
11546
11857
  /** @enum {string} */
11547
11858
  sentiment?: "angry" | "happy" | "neutral";
@@ -11560,6 +11871,8 @@ export interface components {
11560
11871
  created_at: string;
11561
11872
  /** Format: date-time */
11562
11873
  updated_at: string;
11874
+ /** @description Timestamp of the first recorded human reply to this session. Null when no human reply has been recorded. */
11875
+ first_human_message_at: string | null;
11563
11876
  };
11564
11877
  SessionAssigneeUpdateOutput: {
11565
11878
  no_change: boolean;
@@ -11572,11 +11885,6 @@ export interface components {
11572
11885
  no_change: boolean;
11573
11886
  session: components["schemas"]["GetChatSessionOutput"];
11574
11887
  };
11575
- SessionTagOutput: {
11576
- tag_name: string;
11577
- /** Format: date-time */
11578
- created_at: string;
11579
- };
11580
11888
  SessionTagMutationOutput: {
11581
11889
  /** Format: uuid */
11582
11890
  session_id: string;
@@ -11591,7 +11899,7 @@ export interface components {
11591
11899
  } | ({
11592
11900
  /** @constant */
11593
11901
  success: true;
11594
- code?: string | "session_assigned_to_human_agent" | "response_cancelled" | "skipping_unuseful_response" | "duplicate_message_ignored" | "ai_response_skipped_by_workflow" | "ai_skipped_spam";
11902
+ code?: string | "session_assigned_to_human_agent" | "response_cancelled" | "skipping_unuseful_response" | "duplicate_message_ignored" | "ai_response_skipped_by_workflow" | "ai_skipped_spam" | "steered_into_live_turn" | "session_busy";
11595
11903
  autopilotResponse?: {
11596
11904
  /** @constant */
11597
11905
  type: "text";
@@ -11744,6 +12052,7 @@ export interface components {
11744
12052
  mightSolveUserIssue: boolean;
11745
12053
  };
11746
12054
  sessionIsHandedOff?: boolean;
12055
+ steeredIntoTurnId?: string;
11747
12056
  resolveArgs?: {
11748
12057
  /** @description Summary of the conversation with the user to be viewed by a human agent. */
11749
12058
  summary: string;
@@ -12048,6 +12357,10 @@ export interface components {
12048
12357
  * @description When the follow-up fires (UTC)
12049
12358
  */
12050
12359
  fire_at: string;
12360
+ repeat: {
12361
+ every_minutes: number;
12362
+ times: number;
12363
+ } | null;
12051
12364
  is_active: boolean;
12052
12365
  /** Format: date-time */
12053
12366
  created_at: string;
@@ -12305,6 +12618,11 @@ export interface components {
12305
12618
  channel: string;
12306
12619
  /** @description Whether the AI autopilot is enabled on this channel */
12307
12620
  autopilot_enabled: boolean;
12621
+ /**
12622
+ * @description AI agent version used on this channel
12623
+ * @enum {string}
12624
+ */
12625
+ ai_agent_version: "v1" | "v2";
12308
12626
  }[];
12309
12627
  };
12310
12628
  ProhibitedTopicsResponseDto: {
@@ -12490,6 +12808,87 @@ export interface components {
12490
12808
  /** Format: date-time */
12491
12809
  updated_at: string;
12492
12810
  };
12811
+ InboxViewDto: {
12812
+ /** Format: uuid */
12813
+ id: string;
12814
+ /** @description Name shown in the inbox view picker */
12815
+ name: string;
12816
+ /** @description The saved filter set. `null` when `advanced` is true — the view uses filters this API cannot express. */
12817
+ filters: {
12818
+ /** @description Date range filter on session creation time */
12819
+ date?: {
12820
+ /**
12821
+ * Format: date-time
12822
+ * @description Start date (ISO 8601)
12823
+ */
12824
+ from?: string;
12825
+ /**
12826
+ * Format: date-time
12827
+ * @description End date (ISO 8601)
12828
+ */
12829
+ to?: string;
12830
+ /**
12831
+ * @description Rolling window resolved every time the view is opened: "today", "last_3_days" or "last_7_days". Mutually exclusive with from/to.
12832
+ * @enum {string}
12833
+ */
12834
+ preset?: "today" | "last_3_days" | "last_7_days";
12835
+ };
12836
+ /** @description Filter by channels (web, email, whatsapp, phone_voice, sms, slack, etc.) */
12837
+ channels?: components["schemas"]["SessionChannel"][];
12838
+ /** @description Filter by built-in status codes (0 = open, 1 = closed_resolved, 2 = closed_unresolved) */
12839
+ status?: number[];
12840
+ /** @description Filter by custom status ids (sessions whose `sub_status_id` is any of these). Ids come from GET /custom-statuses. An empty array applies no filter, like the other array filters here. */
12841
+ sub_status_ids?: string[];
12842
+ /** @description Filter by AI closure type (e.g. "handed_off", "resolved", "no_resolution") */
12843
+ ai_closure?: ("assumed_resolved" | "handed_off" | "resolved")[];
12844
+ /** @description Filter by customer sentiment (angry, happy, neutral) */
12845
+ sentiment?: ("angry" | "happy" | "neutral")[];
12846
+ /** @description Filter by assignee user IDs (empty array = unassigned). The "$current_user" token resolves to whoever opens the view, so one shared view can mean "assigned to me" for every teammate. */
12847
+ assignees?: (number | "$current_user")[];
12848
+ /** @description Filter by team/group IDs */
12849
+ team_ids?: string[];
12850
+ /** @description Filter by contact IDs */
12851
+ contact_ids?: string[];
12852
+ /** @description Filter by exact ticket number */
12853
+ ticket_number?: number;
12854
+ /** @description Filter by session language codes */
12855
+ language?: string[];
12856
+ /** @description Filter by tag names (sessions must have ALL specified tags) */
12857
+ tags?: string[];
12858
+ /**
12859
+ * @description Filter by who the session is waiting on
12860
+ * @enum {string}
12861
+ */
12862
+ waiting_on?: "customers" | "human_agents";
12863
+ /** @description Filter by session custom data (OR between objects, AND within each object) */
12864
+ custom_data?: {
12865
+ [key: string]: string;
12866
+ }[];
12867
+ } | null;
12868
+ /** @description True when the view was built in the dashboard with OR/exclude groups or filters outside this API's vocabulary. Its `filters` read back as null, and updating `filters` on it REPLACES the whole saved query with the simple set you send. */
12869
+ advanced: boolean;
12870
+ /** @description Sort field the view opens with */
12871
+ sort_by: ("last_message_at" | "created_at" | "sla_urgency") | null;
12872
+ /** @description Sort direction the view opens with */
12873
+ sort_order: ("asc" | "desc") | null;
12874
+ /** @description Field sessions are grouped by in the list, when the view groups them */
12875
+ group_by: ("channel" | "assignee_id" | "status" | "ai_closure_type" | "language" | "inbox_id") | null;
12876
+ /** @description User ids the view is shared with. Empty (with no teams) means the whole org. */
12877
+ shared_with_user_ids: number[];
12878
+ /** @description Team ids the view is shared with. Empty (with no users) means the whole org. */
12879
+ shared_with_team_ids: string[];
12880
+ /** @enum {string} */
12881
+ visibility: "organization" | "personal" | "restricted";
12882
+ created_by_user_id: number;
12883
+ /** @description Whether the calling user may update this view */
12884
+ can_edit: boolean;
12885
+ /** @description Whether the calling user may delete this view */
12886
+ can_delete: boolean;
12887
+ /** Format: date-time */
12888
+ created_at: string;
12889
+ /** Format: date-time */
12890
+ updated_at: string;
12891
+ };
12493
12892
  WorkflowPublicResponseDto: {
12494
12893
  /** @description Version serial ID */
12495
12894
  id: number;
@@ -12790,7 +13189,7 @@ export interface components {
12790
13189
  * @description Which jsonb bag the key was observed in: contact vs session, verified vs not.
12791
13190
  * @enum {string}
12792
13191
  */
12793
- source: "contact_custom_data" | "contact_non_verified_custom_data" | "session_custom_data" | "session_editable_custom_data";
13192
+ source: "company_custom_data" | "contact_custom_data" | "contact_non_verified_custom_data" | "session_custom_data" | "session_editable_custom_data";
12794
13193
  }[];
12795
13194
  total: number;
12796
13195
  };
@@ -13360,6 +13759,7 @@ export interface components {
13360
13759
  DeleteCustomStatusOutput: {
13361
13760
  message: string;
13362
13761
  };
13762
+ ListInboxViewsOutput: components["schemas"]["InboxViewDto"][];
13363
13763
  ListWorkflowsOutput: components["schemas"]["WorkflowPublicResponseDto"][];
13364
13764
  DeleteWorkflowOutput: {
13365
13765
  success: boolean;
@@ -18924,6 +19324,136 @@ export interface operations {
18924
19324
  };
18925
19325
  };
18926
19326
  };
19327
+ listInboxViews: {
19328
+ parameters: {
19329
+ query?: never;
19330
+ header?: never;
19331
+ path?: never;
19332
+ cookie?: never;
19333
+ };
19334
+ requestBody?: never;
19335
+ responses: {
19336
+ /** @description Default Response */
19337
+ 200: {
19338
+ headers: {
19339
+ [name: string]: unknown;
19340
+ };
19341
+ content: {
19342
+ "application/json": components["schemas"]["ListInboxViewsOutput"];
19343
+ };
19344
+ };
19345
+ /** @description Internal Server Error */
19346
+ 500: {
19347
+ headers: {
19348
+ [name: string]: unknown;
19349
+ };
19350
+ content: {
19351
+ "application/json": components["schemas"]["ErrorDto"];
19352
+ };
19353
+ };
19354
+ };
19355
+ };
19356
+ createInboxView: {
19357
+ parameters: {
19358
+ query?: never;
19359
+ header?: never;
19360
+ path?: never;
19361
+ cookie?: never;
19362
+ };
19363
+ requestBody: {
19364
+ content: {
19365
+ "application/json": components["schemas"]["CreateInboxViewDto"];
19366
+ };
19367
+ };
19368
+ responses: {
19369
+ /** @description Default Response */
19370
+ 201: {
19371
+ headers: {
19372
+ [name: string]: unknown;
19373
+ };
19374
+ content: {
19375
+ "application/json": components["schemas"]["InboxViewDto"];
19376
+ };
19377
+ };
19378
+ /** @description Internal Server Error */
19379
+ 500: {
19380
+ headers: {
19381
+ [name: string]: unknown;
19382
+ };
19383
+ content: {
19384
+ "application/json": components["schemas"]["ErrorDto"];
19385
+ };
19386
+ };
19387
+ };
19388
+ };
19389
+ deleteInboxView: {
19390
+ parameters: {
19391
+ query?: never;
19392
+ header?: never;
19393
+ path: {
19394
+ /** @description The inbox view id */
19395
+ id: string;
19396
+ };
19397
+ cookie?: never;
19398
+ };
19399
+ requestBody?: never;
19400
+ responses: {
19401
+ /** @description Default Response */
19402
+ 200: {
19403
+ headers: {
19404
+ [name: string]: unknown;
19405
+ };
19406
+ content: {
19407
+ "application/json": components["schemas"]["GenericResponseDto"];
19408
+ };
19409
+ };
19410
+ /** @description Internal Server Error */
19411
+ 500: {
19412
+ headers: {
19413
+ [name: string]: unknown;
19414
+ };
19415
+ content: {
19416
+ "application/json": components["schemas"]["ErrorDto"];
19417
+ };
19418
+ };
19419
+ };
19420
+ };
19421
+ updateInboxView: {
19422
+ parameters: {
19423
+ query?: never;
19424
+ header?: never;
19425
+ path: {
19426
+ /** @description The inbox view id */
19427
+ id: string;
19428
+ };
19429
+ cookie?: never;
19430
+ };
19431
+ requestBody: {
19432
+ content: {
19433
+ "application/json": components["schemas"]["UpdateInboxViewDto"];
19434
+ };
19435
+ };
19436
+ responses: {
19437
+ /** @description Default Response */
19438
+ 200: {
19439
+ headers: {
19440
+ [name: string]: unknown;
19441
+ };
19442
+ content: {
19443
+ "application/json": components["schemas"]["InboxViewDto"];
19444
+ };
19445
+ };
19446
+ /** @description Internal Server Error */
19447
+ 500: {
19448
+ headers: {
19449
+ [name: string]: unknown;
19450
+ };
19451
+ content: {
19452
+ "application/json": components["schemas"]["ErrorDto"];
19453
+ };
19454
+ };
19455
+ };
19456
+ };
18927
19457
  listWorkflowDefinitions: {
18928
19458
  parameters: {
18929
19459
  query?: never;
@@ -21303,6 +21833,72 @@ export interface operations {
21303
21833
  };
21304
21834
  };
21305
21835
  };
21836
+ continueSequenceContact: {
21837
+ parameters: {
21838
+ query?: never;
21839
+ header?: never;
21840
+ path: {
21841
+ /** @description The unique identifier of the sequence */
21842
+ sequenceId: string;
21843
+ /** @description The person's contact id (from enroll results or the people list) */
21844
+ contactId: string;
21845
+ };
21846
+ cookie?: never;
21847
+ };
21848
+ requestBody?: never;
21849
+ responses: {
21850
+ /** @description Default Response */
21851
+ 201: {
21852
+ headers: {
21853
+ [name: string]: unknown;
21854
+ };
21855
+ content: {
21856
+ "application/json": components["schemas"]["ContinueSequenceContactOutputDto"];
21857
+ };
21858
+ };
21859
+ /** @description Internal Server Error */
21860
+ 500: {
21861
+ headers: {
21862
+ [name: string]: unknown;
21863
+ };
21864
+ content: {
21865
+ "application/json": components["schemas"]["ErrorDto"];
21866
+ };
21867
+ };
21868
+ };
21869
+ };
21870
+ listContactSequences: {
21871
+ parameters: {
21872
+ query?: never;
21873
+ header?: never;
21874
+ path: {
21875
+ /** @description The person's contact id */
21876
+ contactId: string;
21877
+ };
21878
+ cookie?: never;
21879
+ };
21880
+ requestBody?: never;
21881
+ responses: {
21882
+ /** @description Default Response */
21883
+ 200: {
21884
+ headers: {
21885
+ [name: string]: unknown;
21886
+ };
21887
+ content: {
21888
+ "application/json": components["schemas"]["ContactSequencesDto"];
21889
+ };
21890
+ };
21891
+ /** @description Internal Server Error */
21892
+ 500: {
21893
+ headers: {
21894
+ [name: string]: unknown;
21895
+ };
21896
+ content: {
21897
+ "application/json": components["schemas"]["ErrorDto"];
21898
+ };
21899
+ };
21900
+ };
21901
+ };
21306
21902
  exitSequenceContact: {
21307
21903
  parameters: {
21308
21904
  query?: never;
@@ -21516,7 +22112,7 @@ export interface operations {
21516
22112
  parameters: {
21517
22113
  query?: {
21518
22114
  /** @description Filter to specific bags; default: all four. */
21519
- sources?: ("contact_custom_data" | "contact_non_verified_custom_data" | "session_custom_data" | "session_editable_custom_data")[];
22115
+ sources?: ("company_custom_data" | "contact_custom_data" | "contact_non_verified_custom_data" | "session_custom_data" | "session_editable_custom_data")[];
21520
22116
  /** @description Case-insensitive substring match on the key. */
21521
22117
  search?: string;
21522
22118
  /** @description Default 500. */