@opencx/mcp 1.15.62 → 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;
@@ -2115,6 +2115,50 @@ export interface paths {
2115
2115
  patch?: never;
2116
2116
  trace?: never;
2117
2117
  };
2118
+ "/macros/suggestion-insights": {
2119
+ parameters: {
2120
+ query?: never;
2121
+ header?: never;
2122
+ path?: never;
2123
+ cookie?: never;
2124
+ };
2125
+ /**
2126
+ * List macro suggestion insights
2127
+ * @description How each org-wide macro is doing as a suggestion over the last 30 days: how often it was shown, used from the suggestions, or reached for by search instead, and the state it is in (`learning`, `steady`, `proven`, `muted`, or `off` when the macro is excluded or suggestions are off). Pass `include_weekly=true` for 12 weekly counts per macro. Macros excluded from suggestions with no activity in the last 30 days are left out.
2128
+ */
2129
+ get: operations["listMacroSuggestionInsights"];
2130
+ put?: never;
2131
+ post?: never;
2132
+ delete?: never;
2133
+ options?: never;
2134
+ head?: never;
2135
+ patch?: never;
2136
+ trace?: never;
2137
+ };
2138
+ "/macros/settings": {
2139
+ parameters: {
2140
+ query?: never;
2141
+ header?: never;
2142
+ path?: never;
2143
+ cookie?: never;
2144
+ };
2145
+ /**
2146
+ * Get macro settings
2147
+ * @description The macro settings: the languages every org-wide macro is translated into (`translation_languages`, empty when translation is off), the most that can be chosen, the language codes that can be chosen, and whether suggested macros are on for the workspace.
2148
+ */
2149
+ get: operations["getMacroSettings"];
2150
+ /**
2151
+ * Update macro settings
2152
+ * @description Choose the languages every org-wide macro is translated into. Choosing a language translates every org-wide macro into it; languages that are already chosen are not translated again. Translations are read-only generated copies: edit the macro and they refresh. Variables are never translated. Whether suggested macros are on for the workspace is read-only here (`suggestions_enabled` in the response); it is changed in Settings → Workspace. Returns the new settings.
2153
+ */
2154
+ put: operations["updateMacroSettings"];
2155
+ post?: never;
2156
+ delete?: never;
2157
+ options?: never;
2158
+ head?: never;
2159
+ patch?: never;
2160
+ trace?: never;
2161
+ };
2118
2162
  "/macros/{id}": {
2119
2163
  parameters: {
2120
2164
  query?: never;
@@ -2143,6 +2187,66 @@ export interface paths {
2143
2187
  patch: operations["updateMacro"];
2144
2188
  trace?: never;
2145
2189
  };
2190
+ "/macros/{id}/suggestion-insights": {
2191
+ parameters: {
2192
+ query?: never;
2193
+ header?: never;
2194
+ path?: never;
2195
+ cookie?: never;
2196
+ };
2197
+ /**
2198
+ * Get macro suggestion insights
2199
+ * @description How one org-wide macro is doing as a suggestion over the last 30 days, with 12 weekly counts: shown, used from the suggestions, reached for by search instead, hit rate, the bar it has to clear, and its state (`learning`, `steady`, `proven`, `muted`, or `off`).
2200
+ */
2201
+ get: operations["getMacroSuggestionInsights"];
2202
+ put?: never;
2203
+ post?: never;
2204
+ delete?: never;
2205
+ options?: never;
2206
+ head?: never;
2207
+ patch?: never;
2208
+ trace?: never;
2209
+ };
2210
+ "/macros/{id}/translations": {
2211
+ parameters: {
2212
+ query?: never;
2213
+ header?: never;
2214
+ path?: never;
2215
+ cookie?: never;
2216
+ };
2217
+ /**
2218
+ * Get macro translations
2219
+ * @description One org-wide macro's translation into each selected language: its `status` (`ready`, `pending` while it is being translated or after the macro changed, or `failed`) and the translated `title`, `content` and option labels, which are empty until the translation is ready. `source_language` is the language the macro itself is written in, which gets no translation. Translations are read-only generated copies: edit the macro and they refresh. Personal macros are not included.
2220
+ */
2221
+ get: operations["getMacroTranslations"];
2222
+ put?: never;
2223
+ post?: never;
2224
+ delete?: never;
2225
+ options?: never;
2226
+ head?: never;
2227
+ patch?: never;
2228
+ trace?: never;
2229
+ };
2230
+ "/macros/{id}/translations/retranslate": {
2231
+ parameters: {
2232
+ query?: never;
2233
+ header?: never;
2234
+ path?: never;
2235
+ cookie?: never;
2236
+ };
2237
+ get?: never;
2238
+ put?: never;
2239
+ /**
2240
+ * Retranslate a macro
2241
+ * @description Translate one org-wide macro again into the listed languages, or into every selected language when `languages` is left out (failed ones included). Send `{}` to redo every selected language. Returns the languages now waiting. Fails with 400 when no translation languages are selected (see `updateMacroSettings`), when a listed language is not one of them, or when the macro has no translation in a listed language (such as its own).
2242
+ */
2243
+ post: operations["retranslateMacro"];
2244
+ delete?: never;
2245
+ options?: never;
2246
+ head?: never;
2247
+ patch?: never;
2248
+ trace?: never;
2249
+ };
2146
2250
  "/skills": {
2147
2251
  parameters: {
2148
2252
  query?: never;
@@ -6865,50 +6969,6 @@ export interface components {
6865
6969
  SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
6866
6970
  /** @enum {string} */
6867
6971
  MessageOptionType: "text" | "workflow";
6868
- SalesforceReplyTemplateRules: {
6869
- conditions: ({
6870
- /** @constant */
6871
- type: "attribute";
6872
- key: string;
6873
- /** @enum {string} */
6874
- op: "exists" | "not_exists" | "eq" | "neq" | "contains";
6875
- value?: string;
6876
- } | {
6877
- /** @constant */
6878
- type: "tag";
6879
- /** @enum {string} */
6880
- op: "has" | "not_has";
6881
- value: string;
6882
- })[];
6883
- };
6884
- CreateSalesforceAiReplyTemplateDto: {
6885
- name: string;
6886
- template_html: string;
6887
- is_default?: boolean;
6888
- rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
6889
- /** @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. */
6890
- from_address?: string | null;
6891
- /** @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. */
6892
- to_address?: string | null;
6893
- };
6894
- UpdateSalesforceAiReplyTemplateDto: {
6895
- name?: string;
6896
- template_html?: string;
6897
- is_default?: boolean;
6898
- rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
6899
- /** @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. */
6900
- from_address?: string | null;
6901
- /** @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. */
6902
- to_address?: string | null;
6903
- };
6904
- PreviewSalesforceAiReplyTemplateDto: {
6905
- template_html: string;
6906
- session_number?: number;
6907
- /** @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. */
6908
- from_address?: string | null;
6909
- /** @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. */
6910
- to_address?: string | null;
6911
- };
6912
6972
  ContactsFilter: {
6913
6973
  /** @constant */
6914
6974
  type: "all_contacts";
@@ -7001,6 +7061,50 @@ export interface components {
7001
7061
  value?: string;
7002
7062
  }[];
7003
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
+ };
7004
7108
  OfficeHoursExceptionDto: {
7005
7109
  name: string;
7006
7110
  /**
@@ -7052,6 +7156,9 @@ export interface components {
7052
7156
  } | null;
7053
7157
  /** @enum {string} */
7054
7158
  PhoneHandoffReason: "ai_initiated" | "no_agent_assigned" | "agent_unavailable" | "caller_requested" | "timeout" | "unknown";
7159
+ RetranslateMacroDto: {
7160
+ languages?: string[];
7161
+ };
7055
7162
  CreateStructuredFieldGroupDto: {
7056
7163
  name: string;
7057
7164
  description?: string | null;
@@ -8795,6 +8902,10 @@ export interface components {
8795
8902
  */
8796
8903
  region?: "eu-west-1" | "us-east-1";
8797
8904
  };
8905
+ UpdateMacroSettingsDto: {
8906
+ /** @description The full list of language codes (lower-case, such as `es`; at most 10, each from `supported_translation_languages`, no repeats) to translate every org-wide macro into. It replaces the current list, so send every language you want to keep. `[]` turns macro translation off. */
8907
+ translation_languages: string[];
8908
+ };
8798
8909
  CreateOfficeHoursPublicDto: {
8799
8910
  /** @description Schedule name (e.g. "Business Hours", "Weekend Support") */
8800
8911
  name: string;
@@ -9052,7 +9163,7 @@ export interface components {
9052
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.
9053
9164
  * @enum {string}
9054
9165
  */
9055
- 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";
9056
9167
  /** @description Trigger-specific configuration (e.g. cron expression for cron-trigger) */
9057
9168
  trigger_configuration?: unknown | null;
9058
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). */
@@ -9069,7 +9180,7 @@ export interface components {
9069
9180
  * @description New trigger type
9070
9181
  * @enum {string}
9071
9182
  */
9072
- 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";
9073
9184
  /** @description New trigger configuration */
9074
9185
  trigger_configuration?: unknown | null;
9075
9186
  /** @description New workflow step/block definitions (replaces existing blocks) */
@@ -9082,7 +9193,7 @@ export interface components {
9082
9193
  * @description Trigger type to validate against
9083
9194
  * @enum {string}
9084
9195
  */
9085
- 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";
9086
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. */
9087
9198
  trigger_configuration?: unknown | null;
9088
9199
  /** @description Workflow blocks to validate */
@@ -9095,7 +9206,7 @@ export interface components {
9095
9206
  * @description Trigger type whose payload shape this synthetic payload should match
9096
9207
  * @enum {string}
9097
9208
  */
9098
- 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";
9099
9210
  payload: unknown;
9100
9211
  };
9101
9212
  };
@@ -9456,6 +9567,8 @@ export interface components {
9456
9567
  content: string;
9457
9568
  /** @description Up to 3 options the customer can tap instead of typing, sent with the macro on channels that show them. Each `label` is up to 20 characters. `type` is `text` (the tap reaches the session as the customer's reply) or `workflow` (the tap runs the macro's Macro Option Clicked workflows and the AI doesn't reply). This is the full list: on update, pass an existing option's `id` to keep it (workflows branching on that id keep working); options left out are removed, `[]` removes all, and omitting the field leaves them untouched. A macro with options needs body text. */
9458
9569
  options?: components["schemas"]["MacroOptionInputDto"][];
9570
+ /** @description When true, this macro is never suggested to agents. They can still search for it and use it. Defaults to false. */
9571
+ exclude_from_suggestions?: boolean;
9459
9572
  };
9460
9573
  UpdateMacroInput: {
9461
9574
  category?: string;
@@ -9464,6 +9577,8 @@ export interface components {
9464
9577
  content?: string;
9465
9578
  /** @description Up to 3 options the customer can tap instead of typing, sent with the macro on channels that show them. Each `label` is up to 20 characters. `type` is `text` (the tap reaches the session as the customer's reply) or `workflow` (the tap runs the macro's Macro Option Clicked workflows and the AI doesn't reply). This is the full list: on update, pass an existing option's `id` to keep it (workflows branching on that id keep working); options left out are removed, `[]` removes all, and omitting the field leaves them untouched. A macro with options needs body text. */
9466
9579
  options?: components["schemas"]["MacroOptionInputDto"][];
9580
+ /** @description When true, this macro is never suggested to agents. They can still search for it and use it. */
9581
+ exclude_from_suggestions?: boolean;
9467
9582
  };
9468
9583
  UpsertTagInputDto: {
9469
9584
  /** @description Tag name (e.g. "billing", "refund", "feature-request") */
@@ -10405,6 +10520,26 @@ export interface components {
10405
10520
  customDataKeys?: string[];
10406
10521
  }[];
10407
10522
  };
10523
+ MacroTranslationsDto: {
10524
+ saved_reply_id: string;
10525
+ source_language: string | null;
10526
+ items: {
10527
+ language: string;
10528
+ /** @enum {string} */
10529
+ status: "pending" | "ready" | "failed";
10530
+ title: string;
10531
+ content: string;
10532
+ options: {
10533
+ id: string;
10534
+ label: string;
10535
+ }[];
10536
+ /** Format: date-time */
10537
+ updated_at: string;
10538
+ }[];
10539
+ };
10540
+ RetranslateMacroResponseDto: {
10541
+ queued_languages: string[];
10542
+ };
10408
10543
  StructuredFieldGroupDto: {
10409
10544
  /** Format: uuid */
10410
10545
  id: string;
@@ -10481,8 +10616,11 @@ export interface components {
10481
10616
  attachments: components["schemas"]["MacroAttachmentDto"][];
10482
10617
  options: components["schemas"]["MessageOptionDto"][];
10483
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;
10484
10621
  overrides_saved_reply_id: string | null;
10485
10622
  exclude_from_suggestions: boolean;
10623
+ source_language: string | null;
10486
10624
  /** Format: date-time */
10487
10625
  created_at: string;
10488
10626
  /** Format: date-time */
@@ -11116,7 +11254,7 @@ export interface components {
11116
11254
  OutboundCallCapacityError: {
11117
11255
  statusCode: 429 | 503;
11118
11256
  message: string;
11119
- /** @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. */
11120
11258
  error?: string;
11121
11259
  };
11122
11260
  TransferDestinationDto: {
@@ -11328,21 +11466,33 @@ export interface components {
11328
11466
  /** Format: date-time */
11329
11467
  updated_at: string;
11330
11468
  };
11469
+ MacroSuggestionInsightsDto: {
11470
+ saved_reply_id: string;
11471
+ /** @constant */
11472
+ window_days: 30;
11473
+ /** @enum {string} */
11474
+ state: "off" | "learning" | "proven" | "steady" | "muted";
11475
+ shown: number;
11476
+ applied: number;
11477
+ missed: number;
11478
+ hit_rate: number | null;
11479
+ threshold: number;
11480
+ weekly: {
11481
+ week_start: string;
11482
+ shown: number;
11483
+ applied: number;
11484
+ missed: number;
11485
+ }[];
11486
+ };
11487
+ MacroSuggestionInsightsListDto: {
11488
+ items: components["schemas"]["MacroSuggestionInsightsDto"][];
11489
+ };
11331
11490
  /** @enum {string} */
11332
11491
  SavedReplyVariableEnum: "agent.full_name" | "agent.first_name" | "agent.email" | "contact.full_name" | "contact.first_name" | "contact.last_name" | "contact.email" | "contact.phone" | "session.number" | "session.status" | "session.language" | "org.name";
11333
11492
  SavedReplyVariablesResponseDto: {
11334
11493
  enums: components["schemas"]["SavedReplyVariableEnum"][];
11335
11494
  custom: components["schemas"]["SavedReplyVariableDto"][];
11336
11495
  };
11337
- SecretMetadataDto: {
11338
- /** Format: uuid */
11339
- id: string;
11340
- name: string;
11341
- /** Format: date-time */
11342
- created_at: string;
11343
- /** Format: date-time */
11344
- updated_at: string;
11345
- };
11346
11496
  SkipSequenceStepResponse: {
11347
11497
  /** @enum {string} */
11348
11498
  outcome: "skipped" | "already_skipped" | "contact_not_found" | "not_skippable" | "no_pending_step" | "step_not_found" | "step_not_pending" | "dispatch_in_progress";
@@ -11353,6 +11503,15 @@ export interface components {
11353
11503
  step_index: number | null;
11354
11504
  channel: ("whatsapp" | "voice" | "email") | null;
11355
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
+ };
11356
11515
  WhatsAppTemplateButtonOptionDto: {
11357
11516
  /** @description Meta's 0-based button index — the key a step's `buttons` binding uses. */
11358
11517
  index: number;
@@ -14173,7 +14332,7 @@ export interface components {
14173
14332
  summary: string;
14174
14333
  explanation: string | null;
14175
14334
  sentiment: ("angry" | "happy" | "neutral") | null;
14176
- 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")[];
14177
14336
  references: components["schemas"]["InvestigationReferenceItem"][];
14178
14337
  referenced_documents: components["schemas"]["InvestigationReferenceBuckets"];
14179
14338
  } | null;
@@ -14433,7 +14592,7 @@ export interface components {
14433
14592
  } | ({
14434
14593
  /** @constant */
14435
14594
  success: true;
14436
- 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";
14437
14596
  autopilotResponse?: {
14438
14597
  /** @constant */
14439
14598
  type: "text";
@@ -14595,6 +14754,7 @@ export interface components {
14595
14754
  };
14596
14755
  assistMode: boolean;
14597
14756
  emailContactRevision?: number;
14757
+ emailDelivered?: boolean;
14598
14758
  mode?: {
14599
14759
  id: string;
14600
14760
  name: string;
@@ -14960,6 +15120,16 @@ export interface components {
14960
15120
  domainRecords: unknown | null;
14961
15121
  domainStatus: string | null;
14962
15122
  };
15123
+ MacroSettingsDto: {
15124
+ /** @description Language codes (lower-case, such as `es`) every org-wide macro is translated into, in the order they were chosen. Empty means macro translation is off. */
15125
+ translation_languages: string[];
15126
+ /** @description The most languages that can be chosen. */
15127
+ max_translation_languages: number;
15128
+ /** @description The language codes that can be chosen. */
15129
+ supported_translation_languages: string[];
15130
+ /** @description Whether suggested macros are on for the workspace. When off, no agent sees them. */
15131
+ suggestions_enabled: boolean;
15132
+ };
14963
15133
  HandoffAnalyticsPublicResponseDto: {
14964
15134
  summary: string;
14965
15135
  total_handoffs: number;
@@ -14968,12 +15138,12 @@ export interface components {
14968
15138
  end_date: string;
14969
15139
  reasons: {
14970
15140
  /** @enum {string} */
14971
- 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";
14972
15142
  count: number;
14973
15143
  percentage: number;
14974
15144
  }[];
14975
15145
  reason_combinations: {
14976
- 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")[];
14977
15147
  session_count: number;
14978
15148
  percentage: number;
14979
15149
  }[];
@@ -15664,7 +15834,7 @@ export interface components {
15664
15834
  /** Format: email */
15665
15835
  email: string;
15666
15836
  avatar_url?: string | null;
15667
- permissions?: ("*" | "sessions:read" | "sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
15837
+ permissions?: ("*" | "sessions:read" | "sessions:write" | "team-sessions:read" | "team-sessions:write" | "assigned-sessions:read" | "assigned-sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
15668
15838
  roles: components["schemas"]["OrgUserRole"][];
15669
15839
  };
15670
15840
  OrgUserDetail: {
@@ -15674,7 +15844,7 @@ export interface components {
15674
15844
  /** Format: email */
15675
15845
  email: string;
15676
15846
  avatar_url?: string | null;
15677
- permissions?: ("*" | "sessions:read" | "sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
15847
+ permissions?: ("*" | "sessions:read" | "sessions:write" | "team-sessions:read" | "team-sessions:write" | "assigned-sessions:read" | "assigned-sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
15678
15848
  roles: components["schemas"]["OrgUserRole"][];
15679
15849
  teams: {
15680
15850
  group: components["schemas"]["GroupDto"];
@@ -15696,7 +15866,7 @@ export interface components {
15696
15866
  id: string;
15697
15867
  name: string;
15698
15868
  description: string | null;
15699
- permissions: ("*" | "sessions:read" | "sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[];
15869
+ permissions: ("*" | "sessions:read" | "sessions:write" | "team-sessions:read" | "team-sessions:write" | "assigned-sessions:read" | "assigned-sessions:write" | "hybrid-inbox:read" | "sessions-personal-views:write" | "sessions-shared-views:read" | "sessions-shared-views:write" | "sessions-create:write" | "sessions-sub-sessions:write" | "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "sequences:read" | "sequences:write" | "ai-training:read" | "ai-training:write" | "reports:read" | "reports:write" | "help-center:read" | "help-center:write" | "help-center-content:read" | "help-center-content:write" | "workflows:read" | "workflows:write" | "workflows:execute" | "actions:read" | "actions:write" | "mini-apps:read" | "mini-apps:write" | "companion:read" | "companion:write" | "redaction:read" | "redaction:write" | "voc:read" | "voc:write" | "audit-logs:read" | "settings:read" | "settings:write" | "settings-general:read" | "settings-general:write" | "settings-billing:read" | "settings-billing:write" | "settings-api-keys:read" | "settings-api-keys:write" | "settings-autopilot:read" | "settings-autopilot:write" | "settings-structured-fields:read" | "settings-structured-fields:write" | "settings-webhooks:read" | "settings-webhooks:write" | "settings-secrets:read" | "settings-secrets:write" | "settings-handoff:read" | "settings-handoff:write" | "settings-translations:read" | "settings-translations:write" | "settings-sso:read" | "settings-sso:write" | "settings-integrations:read" | "settings-integrations:write" | "settings-members:read" | "settings-members:write" | "settings-agent-availability:read" | "settings-agent-availability:write" | "settings-tags:read" | "settings-tags:write" | "settings-sla:read" | "settings-sla:write" | "settings-csat:read" | "settings-csat:write" | "settings-reports:read" | "settings-reports:write" | "settings-office-hours:read" | "settings-office-hours:write" | "settings-channels:read" | "settings-channels:write" | "settings-channels-voice:read" | "settings-channels-voice:write" | "settings-email-fleet:read" | "settings-email-fleet:write" | "settings-helpdesk:read" | "settings-helpdesk:write" | "settings-custom-statuses:read" | "settings-custom-statuses:write" | "settings-availability-statuses:read" | "settings-availability-statuses:write" | "settings-personal-profile:read" | "settings-personal-profile:write" | "settings-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[];
15700
15870
  };
15701
15871
  PublicInsight: {
15702
15872
  /** Format: uuid */
@@ -15955,7 +16125,7 @@ export interface components {
15955
16125
  summary: string;
15956
16126
  explanation: string | null;
15957
16127
  sentiment: string | null;
15958
- 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")[];
15959
16129
  references: {
15960
16130
  /** @enum {string} */
15961
16131
  reference_type: "ai_profile" | "instruction" | "knowledge" | "prohibited_topic" | "tool";
@@ -16134,7 +16304,7 @@ export interface components {
16134
16304
  session_id: string;
16135
16305
  summary: string;
16136
16306
  explanation: string | null;
16137
- 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")[];
16138
16308
  sentiment: ("angry" | "happy" | "neutral") | null;
16139
16309
  created_at: string;
16140
16310
  }[];
@@ -20998,6 +21168,99 @@ export interface operations {
20998
21168
  };
20999
21169
  };
21000
21170
  };
21171
+ listMacroSuggestionInsights: {
21172
+ parameters: {
21173
+ query?: {
21174
+ include_weekly?: "true" | "false";
21175
+ };
21176
+ header?: never;
21177
+ path?: never;
21178
+ cookie?: never;
21179
+ };
21180
+ requestBody?: never;
21181
+ responses: {
21182
+ /** @description Default Response */
21183
+ 200: {
21184
+ headers: {
21185
+ [name: string]: unknown;
21186
+ };
21187
+ content: {
21188
+ "application/json": components["schemas"]["MacroSuggestionInsightsListDto"];
21189
+ };
21190
+ };
21191
+ /** @description Internal Server Error */
21192
+ 500: {
21193
+ headers: {
21194
+ [name: string]: unknown;
21195
+ };
21196
+ content: {
21197
+ "application/json": components["schemas"]["ErrorDto"];
21198
+ };
21199
+ };
21200
+ };
21201
+ };
21202
+ getMacroSettings: {
21203
+ parameters: {
21204
+ query?: never;
21205
+ header?: never;
21206
+ path?: never;
21207
+ cookie?: never;
21208
+ };
21209
+ requestBody?: never;
21210
+ responses: {
21211
+ /** @description Default Response */
21212
+ 200: {
21213
+ headers: {
21214
+ [name: string]: unknown;
21215
+ };
21216
+ content: {
21217
+ "application/json": components["schemas"]["MacroSettingsDto"];
21218
+ };
21219
+ };
21220
+ /** @description Internal Server Error */
21221
+ 500: {
21222
+ headers: {
21223
+ [name: string]: unknown;
21224
+ };
21225
+ content: {
21226
+ "application/json": components["schemas"]["ErrorDto"];
21227
+ };
21228
+ };
21229
+ };
21230
+ };
21231
+ updateMacroSettings: {
21232
+ parameters: {
21233
+ query?: never;
21234
+ header?: never;
21235
+ path?: never;
21236
+ cookie?: never;
21237
+ };
21238
+ requestBody: {
21239
+ content: {
21240
+ "application/json": components["schemas"]["UpdateMacroSettingsDto"];
21241
+ };
21242
+ };
21243
+ responses: {
21244
+ /** @description Default Response */
21245
+ 200: {
21246
+ headers: {
21247
+ [name: string]: unknown;
21248
+ };
21249
+ content: {
21250
+ "application/json": components["schemas"]["MacroSettingsDto"];
21251
+ };
21252
+ };
21253
+ /** @description Internal Server Error */
21254
+ 500: {
21255
+ headers: {
21256
+ [name: string]: unknown;
21257
+ };
21258
+ content: {
21259
+ "application/json": components["schemas"]["ErrorDto"];
21260
+ };
21261
+ };
21262
+ };
21263
+ };
21001
21264
  getMacro: {
21002
21265
  parameters: {
21003
21266
  query?: never;
@@ -21096,6 +21359,106 @@ export interface operations {
21096
21359
  };
21097
21360
  };
21098
21361
  };
21362
+ getMacroSuggestionInsights: {
21363
+ parameters: {
21364
+ query?: never;
21365
+ header?: never;
21366
+ path: {
21367
+ /** @description Macro ID */
21368
+ id: string;
21369
+ };
21370
+ cookie?: never;
21371
+ };
21372
+ requestBody?: never;
21373
+ responses: {
21374
+ /** @description Default Response */
21375
+ 200: {
21376
+ headers: {
21377
+ [name: string]: unknown;
21378
+ };
21379
+ content: {
21380
+ "application/json": components["schemas"]["MacroSuggestionInsightsDto"];
21381
+ };
21382
+ };
21383
+ /** @description Internal Server Error */
21384
+ 500: {
21385
+ headers: {
21386
+ [name: string]: unknown;
21387
+ };
21388
+ content: {
21389
+ "application/json": components["schemas"]["ErrorDto"];
21390
+ };
21391
+ };
21392
+ };
21393
+ };
21394
+ getMacroTranslations: {
21395
+ parameters: {
21396
+ query?: never;
21397
+ header?: never;
21398
+ path: {
21399
+ /** @description Macro ID */
21400
+ id: string;
21401
+ };
21402
+ cookie?: never;
21403
+ };
21404
+ requestBody?: never;
21405
+ responses: {
21406
+ /** @description Default Response */
21407
+ 200: {
21408
+ headers: {
21409
+ [name: string]: unknown;
21410
+ };
21411
+ content: {
21412
+ "application/json": components["schemas"]["MacroTranslationsDto"];
21413
+ };
21414
+ };
21415
+ /** @description Internal Server Error */
21416
+ 500: {
21417
+ headers: {
21418
+ [name: string]: unknown;
21419
+ };
21420
+ content: {
21421
+ "application/json": components["schemas"]["ErrorDto"];
21422
+ };
21423
+ };
21424
+ };
21425
+ };
21426
+ retranslateMacro: {
21427
+ parameters: {
21428
+ query?: never;
21429
+ header?: never;
21430
+ path: {
21431
+ /** @description Macro ID */
21432
+ id: string;
21433
+ };
21434
+ cookie?: never;
21435
+ };
21436
+ requestBody: {
21437
+ content: {
21438
+ "application/json": components["schemas"]["RetranslateMacroDto"];
21439
+ };
21440
+ };
21441
+ responses: {
21442
+ /** @description Default Response */
21443
+ 202: {
21444
+ headers: {
21445
+ [name: string]: unknown;
21446
+ };
21447
+ content: {
21448
+ "application/json": components["schemas"]["RetranslateMacroResponseDto"];
21449
+ };
21450
+ };
21451
+ /** @description Internal Server Error */
21452
+ 500: {
21453
+ headers: {
21454
+ [name: string]: unknown;
21455
+ };
21456
+ content: {
21457
+ "application/json": components["schemas"]["ErrorDto"];
21458
+ };
21459
+ };
21460
+ };
21461
+ };
21099
21462
  listSkills: {
21100
21463
  parameters: {
21101
21464
  query?: never;
@@ -21330,7 +21693,7 @@ export interface operations {
21330
21693
  /** @description Pagination cursor from a previous response */
21331
21694
  cursor?: string;
21332
21695
  /** @description Only return handoffs that include this reason */
21333
- 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";
21334
21697
  /** @description Start date in ISO 8601 format (defaults to 30 days ago) */
21335
21698
  start_date?: string;
21336
21699
  /** @description End date in ISO 8601 format (defaults to now) */