@opencx/mcp 1.15.63 → 1.15.64

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/schema.d.ts CHANGED
@@ -288,7 +288,7 @@ export interface paths {
288
288
  };
289
289
  /**
290
290
  * List chat sessions
291
- * @description Returns a paginated list of chat sessions for the organization. Supports filtering by status, channel, handoff state, and date ranges.
291
+ * @description Returns a paginated list of chat sessions for the organization. Supports filtering by status, channel, handoff state, and date ranges. Companion searches may briefly lag recent changes and return an error when unavailable or too large; date ranges have no fixed maximum.
292
292
  */
293
293
  get: operations["listChatSessions"];
294
294
  put?: never;
@@ -314,7 +314,7 @@ export interface paths {
314
314
  put?: never;
315
315
  /**
316
316
  * Filter chat sessions
317
- * @description Search and filter chat sessions with advanced criteria. Supports filtering by date range, channels, status, sentiment, tags, assignees, teams, contacts, language, custom data, and more. Results are paginated and sortable.
317
+ * @description Search and filter chat sessions with advanced criteria. Supports filtering by date range, channels, status, sentiment, tags, assignees, teams, contacts, language, custom data, and more. Results are paginated and sortable. Companion searches may briefly lag recent changes and return an error when unavailable or too large; date ranges have no fixed maximum.
318
318
  */
319
319
  post: operations["filterChatSessions"];
320
320
  delete?: never;
@@ -438,7 +438,7 @@ export interface paths {
438
438
  put?: never;
439
439
  /**
440
440
  * Assign or unassign a chat session
441
- * @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.
441
+ * @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. Assigning the AI agent is refused with a 429 `feature_limit_reached` error while the organization’s monthly AI resolutions limit is reached.
442
442
  */
443
443
  post: operations["assignChatSession"];
444
444
  delete?: never;
@@ -6969,50 +6969,6 @@ export interface components {
6969
6969
  SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
6970
6970
  /** @enum {string} */
6971
6971
  MessageOptionType: "text" | "workflow";
6972
- SalesforceReplyTemplateRules: {
6973
- conditions: ({
6974
- /** @constant */
6975
- type: "attribute";
6976
- key: string;
6977
- /** @enum {string} */
6978
- op: "exists" | "not_exists" | "eq" | "neq" | "contains";
6979
- value?: string;
6980
- } | {
6981
- /** @constant */
6982
- type: "tag";
6983
- /** @enum {string} */
6984
- op: "has" | "not_has";
6985
- value: string;
6986
- })[];
6987
- };
6988
- CreateSalesforceAiReplyTemplateDto: {
6989
- name: string;
6990
- template_html: string;
6991
- is_default?: boolean;
6992
- rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
6993
- /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
6994
- from_address?: string | null;
6995
- /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
6996
- to_address?: string | null;
6997
- };
6998
- UpdateSalesforceAiReplyTemplateDto: {
6999
- name?: string;
7000
- template_html?: string;
7001
- is_default?: boolean;
7002
- rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
7003
- /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
7004
- from_address?: string | null;
7005
- /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
7006
- to_address?: string | null;
7007
- };
7008
- PreviewSalesforceAiReplyTemplateDto: {
7009
- template_html: string;
7010
- session_number?: number;
7011
- /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
7012
- from_address?: string | null;
7013
- /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
7014
- to_address?: string | null;
7015
- };
7016
6972
  ContactsFilter: {
7017
6973
  /** @constant */
7018
6974
  type: "all_contacts";
@@ -7105,6 +7061,50 @@ export interface components {
7105
7061
  value?: string;
7106
7062
  }[];
7107
7063
  };
7064
+ SalesforceReplyTemplateRules: {
7065
+ conditions: ({
7066
+ /** @constant */
7067
+ type: "attribute";
7068
+ key: string;
7069
+ /** @enum {string} */
7070
+ op: "exists" | "not_exists" | "eq" | "neq" | "contains";
7071
+ value?: string;
7072
+ } | {
7073
+ /** @constant */
7074
+ type: "tag";
7075
+ /** @enum {string} */
7076
+ op: "has" | "not_has";
7077
+ value: string;
7078
+ })[];
7079
+ };
7080
+ CreateSalesforceAiReplyTemplateDto: {
7081
+ name: string;
7082
+ template_html: string;
7083
+ is_default?: boolean;
7084
+ rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
7085
+ /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
7086
+ from_address?: string | null;
7087
+ /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
7088
+ to_address?: string | null;
7089
+ };
7090
+ UpdateSalesforceAiReplyTemplateDto: {
7091
+ name?: string;
7092
+ template_html?: string;
7093
+ is_default?: boolean;
7094
+ rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
7095
+ /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
7096
+ from_address?: string | null;
7097
+ /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
7098
+ to_address?: string | null;
7099
+ };
7100
+ PreviewSalesforceAiReplyTemplateDto: {
7101
+ template_html: string;
7102
+ session_number?: number;
7103
+ /** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
7104
+ from_address?: string | null;
7105
+ /** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
7106
+ to_address?: string | null;
7107
+ };
7108
7108
  OfficeHoursExceptionDto: {
7109
7109
  name: string;
7110
7110
  /**
@@ -9163,7 +9163,7 @@ export interface components {
9163
9163
  * @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.
9164
9164
  * @enum {string}
9165
9165
  */
9166
- trigger_type: "ivr-incoming-call" | "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" | "macro-option-clicked" | "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";
9166
+ trigger_type: "ivr-incoming-call" | "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "sub-session-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" | "macro-option-clicked" | "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";
9167
9167
  /** @description Trigger-specific configuration (e.g. cron expression for cron-trigger) */
9168
9168
  trigger_configuration?: unknown | null;
9169
9169
  /** @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). */
@@ -9180,7 +9180,7 @@ export interface components {
9180
9180
  * @description New trigger type
9181
9181
  * @enum {string}
9182
9182
  */
9183
- trigger_type?: "ivr-incoming-call" | "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" | "macro-option-clicked" | "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";
9183
+ trigger_type?: "ivr-incoming-call" | "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "sub-session-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" | "macro-option-clicked" | "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";
9184
9184
  /** @description New trigger configuration */
9185
9185
  trigger_configuration?: unknown | null;
9186
9186
  /** @description New workflow step/block definitions (replaces existing blocks) */
@@ -9193,7 +9193,7 @@ export interface components {
9193
9193
  * @description Trigger type to validate against
9194
9194
  * @enum {string}
9195
9195
  */
9196
- trigger_type: "ivr-incoming-call" | "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" | "macro-option-clicked" | "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";
9196
+ trigger_type: "ivr-incoming-call" | "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "sub-session-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" | "macro-option-clicked" | "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";
9197
9197
  /** @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. */
9198
9198
  trigger_configuration?: unknown | null;
9199
9199
  /** @description Workflow blocks to validate */
@@ -9206,7 +9206,7 @@ export interface components {
9206
9206
  * @description Trigger type whose payload shape this synthetic payload should match
9207
9207
  * @enum {string}
9208
9208
  */
9209
- type: "ivr-incoming-call" | "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" | "macro-option-clicked" | "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";
9209
+ type: "ivr-incoming-call" | "manual-trigger" | "ai-trigger" | "cron-trigger" | "form-trigger" | "webhook" | "contact-created" | "contact-updated" | "phone-call-started" | "phone-call-finished" | "ticket-created" | "sub-session-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" | "macro-option-clicked" | "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";
9210
9210
  payload: unknown;
9211
9211
  };
9212
9212
  };
@@ -10616,6 +10616,8 @@ export interface components {
10616
10616
  attachments: components["schemas"]["MacroAttachmentDto"][];
10617
10617
  options: components["schemas"]["MessageOptionDto"][];
10618
10618
  user_id: number | null;
10619
+ /** @description Authenticated creator, when known. Read-only; null for legacy or integration-created macros. */
10620
+ created_by_user_id: number | null;
10619
10621
  overrides_saved_reply_id: string | null;
10620
10622
  exclude_from_suggestions: boolean;
10621
10623
  source_language: string | null;
@@ -11252,7 +11254,7 @@ export interface components {
11252
11254
  OutboundCallCapacityError: {
11253
11255
  statusCode: 429 | 503;
11254
11256
  message: string;
11255
- /** @description outbound_call_org_limit or outbound_call_global_limit for call capacity rejection; outbound_call_capacity_unavailable when capacity cannot be checked. */
11257
+ /** @description outbound_call_org_limit or outbound_call_global_limit for call capacity rejection; outbound_call_capacity_unavailable when capacity cannot be checked; feature_limit_reached when the monthly AI voice minutes limit set in Billing is reached. */
11256
11258
  error?: string;
11257
11259
  };
11258
11260
  TransferDestinationDto: {
@@ -11491,15 +11493,6 @@ export interface components {
11491
11493
  enums: components["schemas"]["SavedReplyVariableEnum"][];
11492
11494
  custom: components["schemas"]["SavedReplyVariableDto"][];
11493
11495
  };
11494
- SecretMetadataDto: {
11495
- /** Format: uuid */
11496
- id: string;
11497
- name: string;
11498
- /** Format: date-time */
11499
- created_at: string;
11500
- /** Format: date-time */
11501
- updated_at: string;
11502
- };
11503
11496
  SkipSequenceStepResponse: {
11504
11497
  /** @enum {string} */
11505
11498
  outcome: "skipped" | "already_skipped" | "contact_not_found" | "not_skippable" | "no_pending_step" | "step_not_found" | "step_not_pending" | "dispatch_in_progress";
@@ -11510,6 +11503,15 @@ export interface components {
11510
11503
  step_index: number | null;
11511
11504
  channel: ("whatsapp" | "voice" | "email") | null;
11512
11505
  };
11506
+ SecretMetadataDto: {
11507
+ /** Format: uuid */
11508
+ id: string;
11509
+ name: string;
11510
+ /** Format: date-time */
11511
+ created_at: string;
11512
+ /** Format: date-time */
11513
+ updated_at: string;
11514
+ };
11513
11515
  WhatsAppTemplateButtonOptionDto: {
11514
11516
  /** @description Meta's 0-based button index — the key a step's `buttons` binding uses. */
11515
11517
  index: number;
@@ -14330,7 +14332,7 @@ export interface components {
14330
14332
  summary: string;
14331
14333
  explanation: string | null;
14332
14334
  sentiment: ("angry" | "happy" | "neutral") | null;
14333
- reasons: ("ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
14335
+ reasons: ("ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
14334
14336
  references: components["schemas"]["InvestigationReferenceItem"][];
14335
14337
  referenced_documents: components["schemas"]["InvestigationReferenceBuckets"];
14336
14338
  } | null;
@@ -14590,7 +14592,7 @@ export interface components {
14590
14592
  } | ({
14591
14593
  /** @constant */
14592
14594
  success: true;
14593
- code?: string | "session_assigned_to_human_agent" | "response_cancelled" | "skipping_unuseful_response" | "duplicate_message_ignored" | "ai_response_skipped_by_workflow" | "message_option_workflow_triggered" | "ai_skipped_spam" | "steered_into_live_turn" | "session_busy";
14595
+ code?: string | "session_assigned_to_human_agent" | "response_cancelled" | "skipping_unuseful_response" | "duplicate_message_ignored" | "ai_response_skipped_by_workflow" | "message_option_workflow_triggered" | "ai_skipped_spam" | "steered_into_live_turn" | "session_busy" | "feature_limit_reached";
14594
14596
  autopilotResponse?: {
14595
14597
  /** @constant */
14596
14598
  type: "text";
@@ -14752,6 +14754,7 @@ export interface components {
14752
14754
  };
14753
14755
  assistMode: boolean;
14754
14756
  emailContactRevision?: number;
14757
+ emailDelivered?: boolean;
14755
14758
  mode?: {
14756
14759
  id: string;
14757
14760
  name: string;
@@ -15135,12 +15138,12 @@ export interface components {
15135
15138
  end_date: string;
15136
15139
  reasons: {
15137
15140
  /** @enum {string} */
15138
- reason: "ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance";
15141
+ reason: "ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance";
15139
15142
  count: number;
15140
15143
  percentage: number;
15141
15144
  }[];
15142
15145
  reason_combinations: {
15143
- reasons: ("ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
15146
+ reasons: ("ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
15144
15147
  session_count: number;
15145
15148
  percentage: number;
15146
15149
  }[];
@@ -16122,7 +16125,7 @@ export interface components {
16122
16125
  summary: string;
16123
16126
  explanation: string | null;
16124
16127
  sentiment: string | null;
16125
- reasons: ("ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
16128
+ reasons: ("ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
16126
16129
  references: {
16127
16130
  /** @enum {string} */
16128
16131
  reference_type: "ai_profile" | "instruction" | "knowledge" | "prohibited_topic" | "tool";
@@ -16301,7 +16304,7 @@ export interface components {
16301
16304
  session_id: string;
16302
16305
  summary: string;
16303
16306
  explanation: string | null;
16304
- reasons: ("ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
16307
+ reasons: ("ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance")[];
16305
16308
  sentiment: ("angry" | "happy" | "neutral") | null;
16306
16309
  created_at: string;
16307
16310
  }[];
@@ -21690,7 +21693,7 @@ export interface operations {
21690
21693
  /** @description Pagination cursor from a previous response */
21691
21694
  cursor?: string;
21692
21695
  /** @description Only return handoffs that include this reason */
21693
- reason?: "ai_implied_handoff" | "based_on_instructions" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance";
21696
+ reason?: "ai_implied_handoff" | "based_on_instructions" | "feature_limit_reached__ai_resolutions" | "feature_limit_reached__ai_voice_minutes" | "instructions_not_clear" | "insufficient_knowledge" | "insufficient_tools" | "prohibited_topic" | "user_requested_human_assistance";
21694
21697
  /** @description Start date in ISO 8601 format (defaults to 30 days ago) */
21695
21698
  start_date?: string;
21696
21699
  /** @description End date in ISO 8601 format (defaults to now) */