@opencx/mcp 1.15.21 → 1.15.22

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
@@ -1256,6 +1256,98 @@ export interface paths {
1256
1256
  patch: operations["updateCsatSettings"];
1257
1257
  trace?: never;
1258
1258
  };
1259
+ "/structured-fields": {
1260
+ parameters: {
1261
+ query?: never;
1262
+ header?: never;
1263
+ path?: never;
1264
+ cookie?: never;
1265
+ };
1266
+ /**
1267
+ * List Structured Fields
1268
+ * @description List every Structured Field for the organization, including each enum field’s complete choice tree.
1269
+ */
1270
+ get: operations["listStructuredFields"];
1271
+ put?: never;
1272
+ /**
1273
+ * Create a structured field
1274
+ * @description Create a new structured field definition. `key` is its immutable, API-safe identifier (lowercase letters, numbers, underscores) — workflows reference it by this key, so choose carefully; neither `key` nor `type` can be changed after creation. Enum choices are authored separately. Field definitions never accept a default value.
1275
+ */
1276
+ post: operations["createStructuredField"];
1277
+ delete?: never;
1278
+ options?: never;
1279
+ head?: never;
1280
+ patch?: never;
1281
+ trace?: never;
1282
+ };
1283
+ "/structured-fields/{fieldId}": {
1284
+ parameters: {
1285
+ query?: never;
1286
+ header?: never;
1287
+ path?: never;
1288
+ cookie?: never;
1289
+ };
1290
+ get?: never;
1291
+ put?: never;
1292
+ post?: never;
1293
+ /**
1294
+ * Delete a structured field
1295
+ * @description Delete a Structured Field. It must have zero Choices first — remove every Choice (deepest first) before deleting the Structured Field itself.
1296
+ */
1297
+ delete: operations["deleteStructuredField"];
1298
+ options?: never;
1299
+ head?: never;
1300
+ /**
1301
+ * Update a structured field
1302
+ * @description Update a structured field’s display name and/or description. The key and type are immutable, and field definitions never accept a default value.
1303
+ */
1304
+ patch: operations["updateStructuredField"];
1305
+ trace?: never;
1306
+ };
1307
+ "/structured-fields/{fieldId}/variants": {
1308
+ parameters: {
1309
+ query?: never;
1310
+ header?: never;
1311
+ path?: never;
1312
+ cookie?: never;
1313
+ };
1314
+ get?: never;
1315
+ put?: never;
1316
+ /**
1317
+ * Create a structured field choice
1318
+ * @description Create a Choice under a Structured Field, optionally nested under another Choice via `parent_id`. `value` is its immutable, API-safe identifier that workflows read/write — choose a short, stable slug. Structured Fields can be nested up to 10 levels deep and hold at most 1000 Choices total.
1319
+ */
1320
+ post: operations["createStructuredFieldChoice"];
1321
+ delete?: never;
1322
+ options?: never;
1323
+ head?: never;
1324
+ patch?: never;
1325
+ trace?: never;
1326
+ };
1327
+ "/structured-fields/{fieldId}/variants/{optionId}": {
1328
+ parameters: {
1329
+ query?: never;
1330
+ header?: never;
1331
+ path?: never;
1332
+ cookie?: never;
1333
+ };
1334
+ get?: never;
1335
+ put?: never;
1336
+ post?: never;
1337
+ /**
1338
+ * Delete a structured field choice
1339
+ * @description Delete a Choice. It must have zero children first — remove every descendant (deepest first) before deleting an ancestor.
1340
+ */
1341
+ delete: operations["deleteStructuredFieldChoice"];
1342
+ options?: never;
1343
+ head?: never;
1344
+ /**
1345
+ * Rename, redescribe, or re-parent a structured field choice
1346
+ * @description Update a Choice’s display name and/or description, or move it to a new parent (or to the root) by setting `parent_id`. The immutable `value` cannot be changed.
1347
+ */
1348
+ patch: operations["updateStructuredFieldChoice"];
1349
+ trace?: never;
1350
+ };
1259
1351
  "/autopilot": {
1260
1352
  parameters: {
1261
1353
  query?: never;
@@ -5667,7 +5759,7 @@ export type webhooks = Record<string, never>;
5667
5759
  export interface components {
5668
5760
  schemas: {
5669
5761
  /** @enum {string} */
5670
- SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review";
5762
+ SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
5671
5763
  SalesforceReplyTemplateRules: {
5672
5764
  conditions: ({
5673
5765
  /** @constant */
@@ -5829,6 +5921,29 @@ export interface components {
5829
5921
  /** @description Subject line for the custom CSAT request email. Null falls back to the default. */
5830
5922
  email_template_subject?: string | null;
5831
5923
  };
5924
+ /** @enum {string} */
5925
+ StructuredFieldTypeDto: "enum" | "text" | "number" | "boolean" | "date" | "user" | "team" | "tag";
5926
+ CreateStructuredFieldDto: {
5927
+ key: string;
5928
+ name: string;
5929
+ description: string;
5930
+ type?: components["schemas"]["StructuredFieldTypeDto"];
5931
+ };
5932
+ UpdateStructuredFieldDto: {
5933
+ name?: string;
5934
+ description?: string;
5935
+ };
5936
+ CreateStructuredFieldVariantDto: {
5937
+ value: string;
5938
+ variant_display_name: string;
5939
+ variant_description: string;
5940
+ parent_id?: string | null;
5941
+ };
5942
+ UpdateStructuredFieldVariantDto: {
5943
+ variant_display_name?: string;
5944
+ variant_description?: string;
5945
+ parent_id?: string | null;
5946
+ };
5832
5947
  CreateEmailTemplateBodyDto: {
5833
5948
  body: string;
5834
5949
  name: string;
@@ -6339,34 +6454,6 @@ export interface components {
6339
6454
  tlds?: ("com" | "org")[];
6340
6455
  limit?: number;
6341
6456
  };
6342
- UpdateAgentAvailabilityPublicDto: {
6343
- /** @description Whether the agent is available to take chats */
6344
- is_available?: boolean;
6345
- /** @description Free-form status label */
6346
- custom_status?: string | null;
6347
- /** @description Per-agent chat capacity */
6348
- max_concurrent_chats?: number;
6349
- /** @description Whether the agent is available for inbound phone calls */
6350
- call_available?: boolean;
6351
- };
6352
- ApplyUserAvailabilityStatusDto: {
6353
- /**
6354
- * @description Hardcoded shortcut: 'online' = main availability on + available on every support team; 'offline' = main availability off + unavailable on every support team. Takes priority if status_id is also sent.
6355
- * @enum {string}
6356
- */
6357
- special: "online" | "offline";
6358
- } | {
6359
- /**
6360
- * Format: uuid
6361
- * @description Id of a defined availability status (see listAvailabilityStatuses)
6362
- */
6363
- status_id: string;
6364
- };
6365
- SalesforceMiawWebhookBody: {
6366
- /** @enum {string} */
6367
- event: "message:new";
6368
- session_id: string;
6369
- };
6370
6457
  EditArticleDto: {
6371
6458
  title: string;
6372
6459
  content_markdown?: string;
@@ -6483,6 +6570,12 @@ export interface components {
6483
6570
  */
6484
6571
  url: string;
6485
6572
  };
6573
+ PatchOnboardingDto: {
6574
+ /** @enum {string} */
6575
+ step?: "training" | "channels" | "teammates";
6576
+ /** @enum {string} */
6577
+ action: "complete" | "skip" | "dismiss";
6578
+ };
6486
6579
  CreateActionPublicDto: {
6487
6580
  /** @description Action display name */
6488
6581
  name: string;
@@ -6663,27 +6756,28 @@ export interface components {
6663
6756
  sessionId?: string;
6664
6757
  };
6665
6758
  };
6666
- UpdateAutopilotInputDto: {
6759
+ UpdateAgentAvailabilityPublicDto: {
6760
+ /** @description Whether the agent is available to take chats */
6761
+ is_available?: boolean;
6762
+ /** @description Free-form status label */
6763
+ custom_status?: string | null;
6764
+ /** @description Per-agent chat capacity */
6765
+ max_concurrent_chats?: number;
6766
+ /** @description Whether the agent is available for inbound phone calls */
6767
+ call_available?: boolean;
6768
+ };
6769
+ ApplyUserAvailabilityStatusDto: {
6667
6770
  /**
6668
- * @description Channel to update: web, email, phone, whatsapp, slack, sms, instagram, messenger, api, web_voice
6771
+ * @description Hardcoded shortcut: 'online' = main availability on + available on every support team; 'offline' = main availability off + unavailable on every support team. Takes priority if status_id is also sent.
6669
6772
  * @enum {string}
6670
6773
  */
6671
- channel: "web" | "email" | "phone" | "whatsapp" | "slack" | "sms" | "instagram" | "messenger" | "api" | "web_voice";
6672
- /** @description Set true to enable autopilot, false to disable */
6673
- autopilot_enabled: boolean;
6774
+ special: "online" | "offline";
6775
+ } | {
6674
6776
  /**
6675
- * @description AI agent version to use for this channel
6676
- * @enum {string}
6777
+ * Format: uuid
6778
+ * @description Id of a defined availability status (see listAvailabilityStatuses)
6677
6779
  */
6678
- ai_agent_version?: "v1" | "v2";
6679
- };
6680
- UpdateProhibitedTopicsInputDto: {
6681
- /** @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. */
6682
- topics: (string | {
6683
- name: string;
6684
- /** @description Guidance for when a session matches this topic. Omit it to keep the stored description; pass null to clear it. */
6685
- description?: string | null;
6686
- })[];
6780
+ status_id: string;
6687
6781
  };
6688
6782
  ChatAttachmentInput: {
6689
6783
  /** @description The name of the file */
@@ -6983,6 +7077,28 @@ export interface components {
6983
7077
  visibility?: "internal" | "public";
6984
7078
  title?: string;
6985
7079
  };
7080
+ UpdateAutopilotInputDto: {
7081
+ /**
7082
+ * @description Channel to update: web, email, phone, whatsapp, slack, sms, instagram, messenger, api, web_voice
7083
+ * @enum {string}
7084
+ */
7085
+ channel: "web" | "email" | "phone" | "whatsapp" | "slack" | "sms" | "instagram" | "messenger" | "api" | "web_voice";
7086
+ /** @description Set true to enable autopilot, false to disable */
7087
+ autopilot_enabled: boolean;
7088
+ /**
7089
+ * @description AI agent version to use for this channel
7090
+ * @enum {string}
7091
+ */
7092
+ ai_agent_version?: "v1" | "v2";
7093
+ };
7094
+ UpdateProhibitedTopicsInputDto: {
7095
+ /** @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. */
7096
+ topics: (string | {
7097
+ name: string;
7098
+ /** @description Guidance for when a session matches this topic. Omit it to keep the stored description; pass null to clear it. */
7099
+ description?: string | null;
7100
+ })[];
7101
+ };
6986
7102
  EmailRecipient: {
6987
7103
  /** Format: email */
6988
7104
  to_email: string;
@@ -7003,11 +7119,6 @@ export interface components {
7003
7119
  PutCustomDomainInput: {
7004
7120
  domainName: string;
7005
7121
  };
7006
- RunReportQueryBody: {
7007
- sql: string;
7008
- /** @default [] */
7009
- parameters: unknown[];
7010
- };
7011
7122
  CreateOfficeHoursPublicDto: {
7012
7123
  /** @description Schedule name (e.g. "Business Hours", "Weekend Support") */
7013
7124
  name: string;
@@ -7046,6 +7157,62 @@ export interface components {
7046
7157
  end_time: string;
7047
7158
  }[];
7048
7159
  };
7160
+ CreateWorkflowPublicInput: {
7161
+ /** @description Workflow name */
7162
+ name: string;
7163
+ /** @description Workflow description */
7164
+ description?: string;
7165
+ /**
7166
+ * @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.
7167
+ * @enum {string}
7168
+ */
7169
+ 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";
7170
+ /** @description Trigger-specific configuration (e.g. cron expression for cron-trigger) */
7171
+ trigger_configuration?: unknown | null;
7172
+ /** @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). */
7173
+ workflow_blocks: unknown[];
7174
+ /** @description React Flow editor state (nodes, edges, viewport) for the dashboard visual editor */
7175
+ workflow_editor_state?: unknown | null;
7176
+ };
7177
+ UpdateWorkflowPublicInput: {
7178
+ /** @description New workflow name */
7179
+ name?: string;
7180
+ /** @description New workflow description */
7181
+ description?: string | null;
7182
+ /**
7183
+ * @description New trigger type
7184
+ * @enum {string}
7185
+ */
7186
+ 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";
7187
+ /** @description New trigger configuration */
7188
+ trigger_configuration?: unknown | null;
7189
+ /** @description New workflow step/block definitions (replaces existing blocks) */
7190
+ workflow_blocks?: unknown[];
7191
+ /** @description React Flow editor state (nodes, edges, viewport) for the dashboard visual editor */
7192
+ workflow_editor_state?: unknown | null;
7193
+ };
7194
+ ValidateWorkflowPublicInput: {
7195
+ /**
7196
+ * @description Trigger type to validate against
7197
+ * @enum {string}
7198
+ */
7199
+ 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";
7200
+ /** @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. */
7201
+ trigger_configuration?: unknown | null;
7202
+ /** @description Workflow blocks to validate */
7203
+ workflow_blocks: unknown[];
7204
+ };
7205
+ TestWorkflowPublicInput: {
7206
+ /** @description Synthetic trigger event to dry-run the workflow against */
7207
+ trigger_payload: {
7208
+ /**
7209
+ * @description Trigger type whose payload shape this synthetic payload should match
7210
+ * @enum {string}
7211
+ */
7212
+ 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";
7213
+ payload: unknown;
7214
+ };
7215
+ };
7049
7216
  UpdateOrganizationInputDto: {
7050
7217
  /** @description The name of the organization. */
7051
7218
  name?: string;
@@ -7126,6 +7293,34 @@ export interface components {
7126
7293
  max_people?: number;
7127
7294
  min_similarity?: number;
7128
7295
  };
7296
+ UpdateSlackNotificationSettingsInputDto: {
7297
+ /** @description Channel to post handoff notifications to. Must be a channel the bot is in (see GET /slack/bot-channels); its name is resolved from Slack. Pass null to turn channel notifications off while keeping Slack connected. Omit to leave unchanged. */
7298
+ notification_channel_id?: string | null;
7299
+ /** @description Whether the assigned agent is DMed on assignment and handoff, and @mentioned in the Slack thread. Omit to leave unchanged. */
7300
+ notify_assignee_enabled?: boolean;
7301
+ };
7302
+ UpdateSlackTagDirectoryInputDto: {
7303
+ tag_directory: {
7304
+ [key: string]: {
7305
+ /** @constant */
7306
+ type: "usergroup";
7307
+ id: string;
7308
+ } | {
7309
+ /** @constant */
7310
+ type: "user";
7311
+ id: string;
7312
+ } | {
7313
+ /** @constant */
7314
+ type: "channel";
7315
+ id: string;
7316
+ } | {
7317
+ /** @constant */
7318
+ type: "special";
7319
+ /** @enum {string} */
7320
+ id: "here" | "channel";
7321
+ };
7322
+ };
7323
+ };
7129
7324
  CreateTrainingPublicDto: {
7130
7325
  /** @description The scenario title or trigger phrase */
7131
7326
  title: string;
@@ -7199,34 +7394,6 @@ export interface components {
7199
7394
  /** Format: uuid */
7200
7395
  groupId: string;
7201
7396
  };
7202
- UpdateSlackNotificationSettingsInputDto: {
7203
- /** @description Channel to post handoff notifications to. Must be a channel the bot is in (see GET /slack/bot-channels); its name is resolved from Slack. Pass null to turn channel notifications off while keeping Slack connected. Omit to leave unchanged. */
7204
- notification_channel_id?: string | null;
7205
- /** @description Whether the assigned agent is DMed on assignment and handoff, and @mentioned in the Slack thread. Omit to leave unchanged. */
7206
- notify_assignee_enabled?: boolean;
7207
- };
7208
- UpdateSlackTagDirectoryInputDto: {
7209
- tag_directory: {
7210
- [key: string]: {
7211
- /** @constant */
7212
- type: "usergroup";
7213
- id: string;
7214
- } | {
7215
- /** @constant */
7216
- type: "user";
7217
- id: string;
7218
- } | {
7219
- /** @constant */
7220
- type: "channel";
7221
- id: string;
7222
- } | {
7223
- /** @constant */
7224
- type: "special";
7225
- /** @enum {string} */
7226
- id: "here" | "channel";
7227
- };
7228
- };
7229
- };
7230
7397
  SendTemplateInputDto: {
7231
7398
  template_id: string;
7232
7399
  phone_number_id: string;
@@ -7242,62 +7409,6 @@ export interface components {
7242
7409
  };
7243
7410
  session_id?: string;
7244
7411
  };
7245
- CreateWorkflowPublicInput: {
7246
- /** @description Workflow name */
7247
- name: string;
7248
- /** @description Workflow description */
7249
- description?: string;
7250
- /**
7251
- * @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.
7252
- * @enum {string}
7253
- */
7254
- 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" | "ticket-team-changed" | "session-updated";
7255
- /** @description Trigger-specific configuration (e.g. cron expression for cron-trigger) */
7256
- trigger_configuration?: unknown | null;
7257
- /** @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). */
7258
- workflow_blocks: unknown[];
7259
- /** @description React Flow editor state (nodes, edges, viewport) for the dashboard visual editor */
7260
- workflow_editor_state?: unknown | null;
7261
- };
7262
- UpdateWorkflowPublicInput: {
7263
- /** @description New workflow name */
7264
- name?: string;
7265
- /** @description New workflow description */
7266
- description?: string | null;
7267
- /**
7268
- * @description New trigger type
7269
- * @enum {string}
7270
- */
7271
- 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" | "ticket-team-changed" | "session-updated";
7272
- /** @description New trigger configuration */
7273
- trigger_configuration?: unknown | null;
7274
- /** @description New workflow step/block definitions (replaces existing blocks) */
7275
- workflow_blocks?: unknown[];
7276
- /** @description React Flow editor state (nodes, edges, viewport) for the dashboard visual editor */
7277
- workflow_editor_state?: unknown | null;
7278
- };
7279
- ValidateWorkflowPublicInput: {
7280
- /**
7281
- * @description Trigger type to validate against
7282
- * @enum {string}
7283
- */
7284
- 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" | "ticket-team-changed" | "session-updated";
7285
- /** @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. */
7286
- trigger_configuration?: unknown | null;
7287
- /** @description Workflow blocks to validate */
7288
- workflow_blocks: unknown[];
7289
- };
7290
- TestWorkflowPublicInput: {
7291
- /** @description Synthetic trigger event to dry-run the workflow against */
7292
- trigger_payload: {
7293
- /**
7294
- * @description Trigger type whose payload shape this synthetic payload should match
7295
- * @enum {string}
7296
- */
7297
- 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" | "ticket-team-changed" | "session-updated";
7298
- payload: unknown;
7299
- };
7300
- };
7301
7412
  SyncContentTreeDto: {
7302
7413
  categories: {
7303
7414
  name: string;
@@ -7379,6 +7490,16 @@ export interface components {
7379
7490
  }[];
7380
7491
  openapi_spec?: string;
7381
7492
  };
7493
+ RunReportQueryBody: {
7494
+ sql: string;
7495
+ /** @default [] */
7496
+ parameters: unknown[];
7497
+ };
7498
+ SalesforceMiawWebhookBody: {
7499
+ /** @enum {string} */
7500
+ event: "message:new";
7501
+ session_id: string;
7502
+ };
7382
7503
  SetCoworkerTodosDto: {
7383
7504
  items: {
7384
7505
  label: string;
@@ -7389,12 +7510,6 @@ export interface components {
7389
7510
  /** @enum {string} */
7390
7511
  status: "pending" | "in_progress" | "completed";
7391
7512
  };
7392
- PatchOnboardingDto: {
7393
- /** @enum {string} */
7394
- step?: "training" | "channels" | "teammates";
7395
- /** @enum {string} */
7396
- action: "complete" | "skip" | "dismiss";
7397
- };
7398
7513
  CoworkerNotifyTeamInput: {
7399
7514
  /** @description Summary of what the user needs help with */
7400
7515
  summary: string;
@@ -8320,6 +8435,28 @@ export interface components {
8320
8435
  start_time: string | null;
8321
8436
  end_time: string | null;
8322
8437
  };
8438
+ AvailabilityStatusDto: {
8439
+ id: string;
8440
+ org_id: string;
8441
+ name: string;
8442
+ group_ids: string[];
8443
+ sort_order: number;
8444
+ /**
8445
+ * @description What applying the status does to the agent: 'online' turns main availability on with the status's teams; 'offline' turns main availability and every support team off (e.g. a Break status)
8446
+ * @enum {string}
8447
+ */
8448
+ availability_type: "offline" | "online";
8449
+ /**
8450
+ * @description Display color for the status dot across the dashboard
8451
+ * @enum {string}
8452
+ */
8453
+ color: "blue" | "gray" | "green" | "orange" | "red";
8454
+ /** Format: date-time */
8455
+ created_at: string;
8456
+ /** Format: date-time */
8457
+ updated_at: string;
8458
+ deleted_at: string | null;
8459
+ };
8323
8460
  SankeyReportResDto: {
8324
8461
  nodes: {
8325
8462
  id: string;
@@ -8361,28 +8498,6 @@ export interface components {
8361
8498
  customDataKeys?: string[];
8362
8499
  }[];
8363
8500
  };
8364
- AvailabilityStatusDto: {
8365
- id: string;
8366
- org_id: string;
8367
- name: string;
8368
- group_ids: string[];
8369
- sort_order: number;
8370
- /**
8371
- * @description What applying the status does to the agent: 'online' turns main availability on with the status's teams; 'offline' turns main availability and every support team off (e.g. a Break status)
8372
- * @enum {string}
8373
- */
8374
- availability_type: "offline" | "online";
8375
- /**
8376
- * @description Display color for the status dot across the dashboard
8377
- * @enum {string}
8378
- */
8379
- color: "blue" | "gray" | "green" | "orange" | "red";
8380
- /** Format: date-time */
8381
- created_at: string;
8382
- /** Format: date-time */
8383
- updated_at: string;
8384
- deleted_at: string | null;
8385
- };
8386
8501
  GenericResponseDto: {
8387
8502
  data?: {
8388
8503
  success: boolean;
@@ -8531,6 +8646,48 @@ export interface components {
8531
8646
  */
8532
8647
  updated_at: string;
8533
8648
  };
8649
+ StructuredFieldSystemOptionDto: {
8650
+ value: string;
8651
+ label: string;
8652
+ description: string | null;
8653
+ };
8654
+ StructuredFieldVariantTreeDto: {
8655
+ /** Format: uuid */
8656
+ id: string;
8657
+ org_id: string;
8658
+ /** Format: uuid */
8659
+ field_id: string;
8660
+ parent_id: string | null;
8661
+ value: string;
8662
+ variant_display_name: string;
8663
+ variant_description: string;
8664
+ position: number;
8665
+ archived_at: string | null;
8666
+ /** Format: date-time */
8667
+ created_at: string;
8668
+ /** Format: date-time */
8669
+ updated_at: string;
8670
+ children: components["schemas"]["StructuredFieldVariantTreeDto"][];
8671
+ };
8672
+ StructuredFieldTreeDto: {
8673
+ /** Format: uuid */
8674
+ id: string;
8675
+ org_id: string;
8676
+ key: string;
8677
+ name: string;
8678
+ description: string;
8679
+ type: components["schemas"]["StructuredFieldTypeDto"];
8680
+ value: string | null;
8681
+ position: number;
8682
+ archived_at: string | null;
8683
+ /** Format: date-time */
8684
+ created_at: string;
8685
+ /** Format: date-time */
8686
+ updated_at: string;
8687
+ variants: components["schemas"]["StructuredFieldVariantTreeDto"][];
8688
+ system_options: components["schemas"]["StructuredFieldSystemOptionDto"][];
8689
+ };
8690
+ StructuredFieldListDto: components["schemas"]["StructuredFieldTreeDto"][];
8534
8691
  CustomDomainMutationOutputDto: {
8535
8692
  /** @constant */
8536
8693
  success: true;
@@ -8539,7 +8696,7 @@ export interface components {
8539
8696
  statusCode: 400 | 404 | 503;
8540
8697
  message: string;
8541
8698
  /** @enum {string} */
8542
- error: "domain_registered_elsewhere" | "domain_create_failed" | "domain_not_found" | "domain_verify_failed" | "domain_delete_failed" | "domain_provider_unavailable";
8699
+ error: "domain_registered_elsewhere" | "domain_create_failed" | "domain_not_found" | "domain_verify_failed" | "domain_delete_failed" | "domain_tracking_update_failed" | "domain_provider_unavailable";
8543
8700
  };
8544
8701
  EmailTemplateActivityItemDto: {
8545
8702
  id: string;
@@ -8670,170 +8827,17 @@ export interface components {
8670
8827
  end_time: string;
8671
8828
  }[];
8672
8829
  };
8673
- SlaOverviewResponseDto: {
8674
- coverage_rate: number;
8675
- total_sessions: number;
8676
- sla_sessions: number;
8677
- compliance: {
8678
- overall: number;
8679
- first_reply: {
8680
- fulfilled: number;
8681
- breached: number;
8682
- completed_after_breach: number;
8683
- active: number;
8684
- rate: number;
8685
- };
8686
- next_reply: {
8687
- fulfilled: number;
8688
- breached: number;
8689
- completed_after_breach: number;
8690
- active: number;
8691
- rate: number;
8692
- };
8693
- resolution: {
8694
- fulfilled: number;
8695
- breached: number;
8696
- completed_after_breach: number;
8697
- active: number;
8698
- rate: number;
8699
- };
8700
- };
8701
- percentiles: {
8702
- first_reply: {
8703
- p50: number;
8704
- p90: number;
8705
- p95: number;
8706
- };
8707
- next_reply: {
8708
- p50: number;
8709
- p90: number;
8710
- p95: number;
8711
- };
8712
- resolution: {
8713
- p50: number;
8714
- p90: number;
8715
- p95: number;
8716
- };
8717
- };
8718
- };
8719
- SlaBreakdownResponseDto: {
8720
- grouping: {
8721
- /** @enum {string} */
8722
- type: "policy" | "team" | "agent" | "channel";
8723
- id: string | number | null;
8724
- name: string;
8725
- };
8726
- sessions_count: number;
8727
- compliance: {
8728
- overall: number;
8729
- first_reply: {
8730
- fulfilled: number;
8731
- breached: number;
8732
- completed_after_breach: number;
8733
- active: number;
8734
- rate: number;
8735
- };
8736
- next_reply: {
8737
- fulfilled: number;
8738
- breached: number;
8739
- completed_after_breach: number;
8740
- active: number;
8741
- rate: number;
8742
- };
8743
- resolution: {
8744
- fulfilled: number;
8745
- breached: number;
8746
- completed_after_breach: number;
8747
- active: number;
8748
- rate: number;
8749
- };
8750
- };
8751
- percentiles: {
8752
- first_reply: {
8753
- p50: number;
8754
- p90: number;
8755
- p95: number;
8756
- };
8757
- next_reply: {
8758
- p50: number;
8759
- p90: number;
8760
- p95: number;
8761
- };
8762
- resolution: {
8763
- p50: number;
8764
- p90: number;
8765
- p95: number;
8766
- };
8767
- };
8768
- }[];
8769
- SlaTrendResponseDto: {
8770
- /** @enum {string} */
8771
- granularity: "day" | "week";
8772
- data: {
8773
- date: string;
8774
- sessions_count: number;
8775
- compliance: {
8776
- overall: number;
8777
- first_reply: {
8778
- fulfilled: number;
8779
- breached: number;
8780
- completed_after_breach: number;
8781
- active: number;
8782
- rate: number;
8783
- };
8784
- next_reply: {
8785
- fulfilled: number;
8786
- breached: number;
8787
- completed_after_breach: number;
8788
- active: number;
8789
- rate: number;
8790
- };
8791
- resolution: {
8792
- fulfilled: number;
8793
- breached: number;
8794
- completed_after_breach: number;
8795
- active: number;
8796
- rate: number;
8797
- };
8798
- };
8799
- percentiles: {
8800
- first_reply: {
8801
- p50: number;
8802
- p90: number;
8803
- p95: number;
8804
- };
8805
- next_reply: {
8806
- p50: number;
8807
- p90: number;
8808
- p95: number;
8809
- };
8810
- resolution: {
8811
- p50: number;
8812
- p90: number;
8813
- p95: number;
8814
- };
8815
- };
8816
- }[];
8817
- };
8818
- SlaBreachHeatmapResponseDto: {
8819
- timezone: string;
8820
- data: {
8821
- day_of_week: number;
8822
- hour: number;
8823
- breaches: number;
8824
- }[];
8825
- };
8826
- AgentWorkflowItemDto: {
8827
- /** @description The logical workflow UUID */
8828
- workflowId: string;
8829
- /** @description Display name of the workflow */
8830
- name: string;
8831
- /** @description Description of the workflow */
8832
- description: string | null;
8833
- /** @description The goal of the workflow from AI trigger config */
8834
- goal: string | null;
8835
- /** @description Whether this workflow is selected for the agent */
8836
- selected: boolean;
8830
+ AgentWorkflowItemDto: {
8831
+ /** @description The logical workflow UUID */
8832
+ workflowId: string;
8833
+ /** @description Display name of the workflow */
8834
+ name: string;
8835
+ /** @description Description of the workflow */
8836
+ description: string | null;
8837
+ /** @description The goal of the workflow from AI trigger config */
8838
+ goal: string | null;
8839
+ /** @description Whether this workflow is selected for the agent */
8840
+ selected: boolean;
8837
8841
  };
8838
8842
  AgentWorkflowListDto: {
8839
8843
  workflows: components["schemas"]["AgentWorkflowItemDto"][];
@@ -8973,14 +8977,158 @@ export interface components {
8973
8977
  region?: ("apac" | "eu" | "us") | null;
8974
8978
  twilio_phone_number_sid?: string | null;
8975
8979
  };
8976
- SecretMetadataDto: {
8977
- /** Format: uuid */
8978
- id: string;
8979
- name: string;
8980
- /** Format: date-time */
8981
- created_at: string;
8982
- /** Format: date-time */
8983
- updated_at: string;
8980
+ SlaOverviewResponseDto: {
8981
+ coverage_rate: number;
8982
+ total_sessions: number;
8983
+ sla_sessions: number;
8984
+ compliance: {
8985
+ overall: number;
8986
+ first_reply: {
8987
+ fulfilled: number;
8988
+ breached: number;
8989
+ completed_after_breach: number;
8990
+ active: number;
8991
+ rate: number;
8992
+ };
8993
+ next_reply: {
8994
+ fulfilled: number;
8995
+ breached: number;
8996
+ completed_after_breach: number;
8997
+ active: number;
8998
+ rate: number;
8999
+ };
9000
+ resolution: {
9001
+ fulfilled: number;
9002
+ breached: number;
9003
+ completed_after_breach: number;
9004
+ active: number;
9005
+ rate: number;
9006
+ };
9007
+ };
9008
+ percentiles: {
9009
+ first_reply: {
9010
+ p50: number;
9011
+ p90: number;
9012
+ p95: number;
9013
+ };
9014
+ next_reply: {
9015
+ p50: number;
9016
+ p90: number;
9017
+ p95: number;
9018
+ };
9019
+ resolution: {
9020
+ p50: number;
9021
+ p90: number;
9022
+ p95: number;
9023
+ };
9024
+ };
9025
+ };
9026
+ SlaBreakdownResponseDto: {
9027
+ grouping: {
9028
+ /** @enum {string} */
9029
+ type: "policy" | "team" | "agent" | "channel";
9030
+ id: string | number | null;
9031
+ name: string;
9032
+ };
9033
+ sessions_count: number;
9034
+ compliance: {
9035
+ overall: number;
9036
+ first_reply: {
9037
+ fulfilled: number;
9038
+ breached: number;
9039
+ completed_after_breach: number;
9040
+ active: number;
9041
+ rate: number;
9042
+ };
9043
+ next_reply: {
9044
+ fulfilled: number;
9045
+ breached: number;
9046
+ completed_after_breach: number;
9047
+ active: number;
9048
+ rate: number;
9049
+ };
9050
+ resolution: {
9051
+ fulfilled: number;
9052
+ breached: number;
9053
+ completed_after_breach: number;
9054
+ active: number;
9055
+ rate: number;
9056
+ };
9057
+ };
9058
+ percentiles: {
9059
+ first_reply: {
9060
+ p50: number;
9061
+ p90: number;
9062
+ p95: number;
9063
+ };
9064
+ next_reply: {
9065
+ p50: number;
9066
+ p90: number;
9067
+ p95: number;
9068
+ };
9069
+ resolution: {
9070
+ p50: number;
9071
+ p90: number;
9072
+ p95: number;
9073
+ };
9074
+ };
9075
+ }[];
9076
+ SlaTrendResponseDto: {
9077
+ /** @enum {string} */
9078
+ granularity: "day" | "week";
9079
+ data: {
9080
+ date: string;
9081
+ sessions_count: number;
9082
+ compliance: {
9083
+ overall: number;
9084
+ first_reply: {
9085
+ fulfilled: number;
9086
+ breached: number;
9087
+ completed_after_breach: number;
9088
+ active: number;
9089
+ rate: number;
9090
+ };
9091
+ next_reply: {
9092
+ fulfilled: number;
9093
+ breached: number;
9094
+ completed_after_breach: number;
9095
+ active: number;
9096
+ rate: number;
9097
+ };
9098
+ resolution: {
9099
+ fulfilled: number;
9100
+ breached: number;
9101
+ completed_after_breach: number;
9102
+ active: number;
9103
+ rate: number;
9104
+ };
9105
+ };
9106
+ percentiles: {
9107
+ first_reply: {
9108
+ p50: number;
9109
+ p90: number;
9110
+ p95: number;
9111
+ };
9112
+ next_reply: {
9113
+ p50: number;
9114
+ p90: number;
9115
+ p95: number;
9116
+ };
9117
+ resolution: {
9118
+ p50: number;
9119
+ p90: number;
9120
+ p95: number;
9121
+ };
9122
+ };
9123
+ }[];
9124
+ };
9125
+ SlaBreachHeatmapResponseDto: {
9126
+ timezone: string;
9127
+ data: {
9128
+ day_of_week: number;
9129
+ hour: number;
9130
+ breaches: number;
9131
+ }[];
8984
9132
  };
8985
9133
  MacroAttachmentDto: {
8986
9134
  id: string;
@@ -9015,11 +9163,20 @@ export interface components {
9015
9163
  updated_at: string;
9016
9164
  };
9017
9165
  /** @enum {string} */
9018
- SavedReplyVariableEnum: "agent.full_name" | "agent.email" | "contact.full_name" | "contact.email" | "contact.phone" | "session.number" | "session.status" | "session.language" | "org.name";
9166
+ SavedReplyVariableEnum: "agent.full_name" | "agent.email" | "contact.full_name" | "contact.first_name" | "contact.email" | "contact.phone" | "session.number" | "session.status" | "session.language" | "org.name";
9019
9167
  SavedReplyVariablesResponseDto: {
9020
9168
  enums: components["schemas"]["SavedReplyVariableEnum"][];
9021
9169
  custom: components["schemas"]["SavedReplyVariableDto"][];
9022
9170
  };
9171
+ SecretMetadataDto: {
9172
+ /** Format: uuid */
9173
+ id: string;
9174
+ name: string;
9175
+ /** Format: date-time */
9176
+ created_at: string;
9177
+ /** Format: date-time */
9178
+ updated_at: string;
9179
+ };
9023
9180
  WhatsAppTemplateOptionDto: {
9024
9181
  id: string;
9025
9182
  /** @description The value a sequence step's content.template_name takes. */
@@ -9803,155 +9960,6 @@ export interface components {
9803
9960
  totalPages: number;
9804
9961
  };
9805
9962
  };
9806
- AgentAvailability: {
9807
- id: string;
9808
- user_id: number;
9809
- organization_id: string;
9810
- is_available: boolean;
9811
- custom_status: string | null;
9812
- /** Format: date-time */
9813
- last_status_change: string;
9814
- current_chat_count: number;
9815
- max_concurrent_chats: number;
9816
- notes: string | null;
9817
- /** Format: date-time */
9818
- created_at: string;
9819
- /** Format: date-time */
9820
- updated_at: string;
9821
- call_available: boolean;
9822
- call_locked: boolean;
9823
- availability_status_id: string | null;
9824
- };
9825
- ResolvedAvailabilityStatusDto: {
9826
- /**
9827
- * @description A defined availability status is applied
9828
- * @constant
9829
- */
9830
- kind: "custom";
9831
- /** @description Id of the applied availability status */
9832
- status_id: string;
9833
- /** @description Name of the applied availability status */
9834
- name: string;
9835
- /**
9836
- * @description Whether the applied status sets the agent online or offline
9837
- * @enum {string}
9838
- */
9839
- availability_type: "offline" | "online";
9840
- /**
9841
- * @description Display color configured on the applied status
9842
- * @enum {string}
9843
- */
9844
- color: "blue" | "gray" | "green" | "orange" | "red";
9845
- } | {
9846
- /**
9847
- * @description Main availability on and available on every support team
9848
- * @constant
9849
- */
9850
- kind: "online";
9851
- /**
9852
- * @description Always 'green' — the fixed color of the derived online state
9853
- * @enum {string}
9854
- */
9855
- color: "blue" | "gray" | "green" | "orange" | "red";
9856
- } | {
9857
- /**
9858
- * @description Main availability off
9859
- * @constant
9860
- */
9861
- kind: "offline";
9862
- /**
9863
- * @description Always 'gray' — the fixed color of the derived offline state
9864
- * @enum {string}
9865
- */
9866
- color: "blue" | "gray" | "green" | "orange" | "red";
9867
- } | {
9868
- /**
9869
- * @description Main availability on but only available on some support teams
9870
- * @constant
9871
- */
9872
- kind: "mixed";
9873
- /**
9874
- * @description Always 'green' — mixed is an online-related state
9875
- * @enum {string}
9876
- */
9877
- color: "blue" | "gray" | "green" | "orange" | "red";
9878
- /** @description Support teams the user is currently available on */
9879
- available_teams: {
9880
- id: string;
9881
- name: string;
9882
- }[];
9883
- };
9884
- UserAvailabilityStatusDto: {
9885
- /** @description The user's raw availability record */
9886
- availability: {
9887
- id: string;
9888
- user_id: number;
9889
- organization_id: string;
9890
- is_available: boolean;
9891
- custom_status: string | null;
9892
- /** Format: date-time */
9893
- last_status_change: string;
9894
- current_chat_count: number;
9895
- max_concurrent_chats: number;
9896
- notes: string | null;
9897
- /** Format: date-time */
9898
- created_at: string;
9899
- /** Format: date-time */
9900
- updated_at: string;
9901
- call_available: boolean;
9902
- call_locked: boolean;
9903
- availability_status_id: string | null;
9904
- };
9905
- resolved_status: components["schemas"]["ResolvedAvailabilityStatusDto"];
9906
- /** @description The user's full per-support-team availability switch matrix */
9907
- teams: {
9908
- id: string;
9909
- name: string;
9910
- available: boolean;
9911
- }[];
9912
- };
9913
- AuditLogPublicDto: {
9914
- id: string;
9915
- org_id: string;
9916
- actor_id: number | null;
9917
- /** @enum {string} */
9918
- actor_type: "api" | "system" | "user";
9919
- actor_email: string | null;
9920
- actor_name: string | null;
9921
- entity_type: string;
9922
- entity_id: string;
9923
- event_type: string;
9924
- /** @enum {string} */
9925
- event_category: "access" | "agent_availability" | "communication" | "configuration" | "data" | "security";
9926
- changes: {
9927
- before?: {
9928
- [key: string]: unknown | null;
9929
- };
9930
- after?: {
9931
- [key: string]: unknown | null;
9932
- };
9933
- } | null;
9934
- metadata: {
9935
- [key: string]: unknown | null;
9936
- } | null;
9937
- /** Format: date-time */
9938
- created_at: string;
9939
- ip_address: string | null;
9940
- user_agent: string | null;
9941
- };
9942
- AuditLogsPublicResponse: {
9943
- data: components["schemas"]["AuditLogPublicDto"][];
9944
- pagination: {
9945
- total: number;
9946
- page: number;
9947
- limit: number;
9948
- totalPages: number;
9949
- };
9950
- };
9951
- SalesforceMiawWebhookResponse: {
9952
- success: boolean;
9953
- message?: string;
9954
- };
9955
9963
  ArticleWithVersionsResponseDto: {
9956
9964
  entity: {
9957
9965
  /** Format: uuid */
@@ -10509,86 +10517,190 @@ export interface components {
10509
10517
  /** @description Parsed JSON when the response is JSON, else the raw text */
10510
10518
  body: unknown;
10511
10519
  };
10512
- AutopilotStatusResponseDto: {
10513
- channels: {
10514
- /** @description Channel name */
10515
- channel: string;
10516
- /** @description Whether the AI autopilot is enabled on this channel */
10517
- autopilot_enabled: boolean;
10518
- /**
10519
- * @description AI agent version used on this channel
10520
- * @enum {string}
10521
- */
10522
- ai_agent_version: "v1" | "v2";
10523
- }[];
10524
- };
10525
- ProhibitedTopicsResponseDto: {
10526
- /** @description Topic names only. When a session matches any of these, the AI hands off to a human (subject to per-channel handoff behavior). */
10527
- topics: string[];
10528
- /** @description The same topics, each with its description. */
10529
- items: {
10530
- /** @description The topic name. */
10531
- name: string;
10532
- /** @description Guidance the AI uses when deciding whether a session matches this topic, or null. Conditions stated here are applied as strict rules. */
10533
- description: string | null;
10534
- }[];
10535
- };
10536
- OutboundBlocklistEntryDto: {
10520
+ AgentAvailability: {
10537
10521
  id: string;
10538
- /** @description "phone", "email" or "whatsapp_user_id". */
10539
- identity_type: string;
10540
- /** @description The address, as we stored it after normalizing. */
10541
- identity_value: string;
10542
- /** @description The channel this entry covers. Null means every channel — that is what entries added through this API always are. A specific channel appears when someone opted out of that channel alone. */
10543
- channel: string | null;
10544
- /** @description Why the address was blocked. */
10545
- reason: string;
10546
- /** @description Where the entry came from. "api" is one you added. Anything else was recorded when the person opted out themselves, and is not removable by default. */
10547
- source: string | null;
10522
+ user_id: number;
10523
+ organization_id: string;
10524
+ is_available: boolean;
10525
+ custom_status: string | null;
10526
+ /** Format: date-time */
10527
+ last_status_change: string;
10528
+ current_chat_count: number;
10529
+ max_concurrent_chats: number;
10530
+ notes: string | null;
10548
10531
  /** Format: date-time */
10549
10532
  created_at: string;
10550
- /** @description When the block lifts automatically. Null means it never does. */
10551
- expires_at: string | null;
10552
- };
10553
- SaveContactOutput: {
10554
- /** Format: uuid */
10555
- id?: string;
10556
- };
10557
- Contact: {
10558
- /** Format: uuid */
10559
- id: string;
10560
- email: string | null;
10561
- phone_number: string | null;
10562
- name: string | null;
10563
- custom_data: {
10564
- [key: string]: string;
10565
- } | null;
10566
- /** @description ISO 8601 timestamp of when the contact was created */
10567
- created_at: string;
10568
- /** @description ISO 8601 timestamp of when the contact was last updated */
10533
+ /** Format: date-time */
10569
10534
  updated_at: string;
10535
+ call_available: boolean;
10536
+ call_locked: boolean;
10537
+ availability_status_id: string | null;
10570
10538
  };
10571
- InvestigationContact: {
10572
- /** Format: uuid */
10539
+ AuditLogPublicDto: {
10573
10540
  id: string;
10574
- email: string | null;
10575
- phone_number: string | null;
10576
- name: string | null;
10577
- custom_data: {
10578
- [key: string]: string;
10541
+ org_id: string;
10542
+ actor_id: number | null;
10543
+ /** @enum {string} */
10544
+ actor_type: "api" | "system" | "user";
10545
+ actor_email: string | null;
10546
+ actor_name: string | null;
10547
+ entity_type: string;
10548
+ entity_id: string;
10549
+ event_type: string;
10550
+ /** @enum {string} */
10551
+ event_category: "access" | "agent_availability" | "communication" | "configuration" | "data" | "security";
10552
+ changes: {
10553
+ before?: {
10554
+ [key: string]: unknown | null;
10555
+ };
10556
+ after?: {
10557
+ [key: string]: unknown | null;
10558
+ };
10579
10559
  } | null;
10580
- /** @description ISO 8601 timestamp of when the contact was created */
10581
- created_at: string;
10582
- /** @description ISO 8601 timestamp of when the contact was last updated */
10583
- updated_at: string;
10584
- non_verified_name: string | null;
10585
- non_verified_email: string | null;
10586
- non_verified_custom_data: {
10587
- [key: string]: string | number | boolean;
10560
+ metadata: {
10561
+ [key: string]: unknown | null;
10588
10562
  } | null;
10563
+ /** Format: date-time */
10564
+ created_at: string;
10565
+ ip_address: string | null;
10566
+ user_agent: string | null;
10589
10567
  };
10590
- InvestigationAssignee: {
10591
- id: number;
10568
+ AuditLogsPublicResponse: {
10569
+ data: components["schemas"]["AuditLogPublicDto"][];
10570
+ pagination: {
10571
+ total: number;
10572
+ page: number;
10573
+ limit: number;
10574
+ totalPages: number;
10575
+ };
10576
+ };
10577
+ ResolvedAvailabilityStatusDto: {
10578
+ /**
10579
+ * @description A defined availability status is applied
10580
+ * @constant
10581
+ */
10582
+ kind: "custom";
10583
+ /** @description Id of the applied availability status */
10584
+ status_id: string;
10585
+ /** @description Name of the applied availability status */
10586
+ name: string;
10587
+ /**
10588
+ * @description Whether the applied status sets the agent online or offline
10589
+ * @enum {string}
10590
+ */
10591
+ availability_type: "offline" | "online";
10592
+ /**
10593
+ * @description Display color configured on the applied status
10594
+ * @enum {string}
10595
+ */
10596
+ color: "blue" | "gray" | "green" | "orange" | "red";
10597
+ } | {
10598
+ /**
10599
+ * @description Main availability on and available on every support team
10600
+ * @constant
10601
+ */
10602
+ kind: "online";
10603
+ /**
10604
+ * @description Always 'green' — the fixed color of the derived online state
10605
+ * @enum {string}
10606
+ */
10607
+ color: "blue" | "gray" | "green" | "orange" | "red";
10608
+ } | {
10609
+ /**
10610
+ * @description Main availability off
10611
+ * @constant
10612
+ */
10613
+ kind: "offline";
10614
+ /**
10615
+ * @description Always 'gray' — the fixed color of the derived offline state
10616
+ * @enum {string}
10617
+ */
10618
+ color: "blue" | "gray" | "green" | "orange" | "red";
10619
+ } | {
10620
+ /**
10621
+ * @description Main availability on but only available on some support teams
10622
+ * @constant
10623
+ */
10624
+ kind: "mixed";
10625
+ /**
10626
+ * @description Always 'green' — mixed is an online-related state
10627
+ * @enum {string}
10628
+ */
10629
+ color: "blue" | "gray" | "green" | "orange" | "red";
10630
+ /** @description Support teams the user is currently available on */
10631
+ available_teams: {
10632
+ id: string;
10633
+ name: string;
10634
+ }[];
10635
+ };
10636
+ UserAvailabilityStatusDto: {
10637
+ /** @description The user's raw availability record */
10638
+ availability: {
10639
+ id: string;
10640
+ user_id: number;
10641
+ organization_id: string;
10642
+ is_available: boolean;
10643
+ custom_status: string | null;
10644
+ /** Format: date-time */
10645
+ last_status_change: string;
10646
+ current_chat_count: number;
10647
+ max_concurrent_chats: number;
10648
+ notes: string | null;
10649
+ /** Format: date-time */
10650
+ created_at: string;
10651
+ /** Format: date-time */
10652
+ updated_at: string;
10653
+ call_available: boolean;
10654
+ call_locked: boolean;
10655
+ availability_status_id: string | null;
10656
+ };
10657
+ resolved_status: components["schemas"]["ResolvedAvailabilityStatusDto"];
10658
+ /** @description The user's full per-support-team availability switch matrix */
10659
+ teams: {
10660
+ id: string;
10661
+ name: string;
10662
+ available: boolean;
10663
+ }[];
10664
+ };
10665
+ SaveContactOutput: {
10666
+ /** Format: uuid */
10667
+ id?: string;
10668
+ };
10669
+ Contact: {
10670
+ /** Format: uuid */
10671
+ id: string;
10672
+ email: string | null;
10673
+ phone_number: string | null;
10674
+ name: string | null;
10675
+ custom_data: {
10676
+ [key: string]: string;
10677
+ } | null;
10678
+ /** @description ISO 8601 timestamp of when the contact was created */
10679
+ created_at: string;
10680
+ /** @description ISO 8601 timestamp of when the contact was last updated */
10681
+ updated_at: string;
10682
+ };
10683
+ InvestigationContact: {
10684
+ /** Format: uuid */
10685
+ id: string;
10686
+ email: string | null;
10687
+ phone_number: string | null;
10688
+ name: string | null;
10689
+ custom_data: {
10690
+ [key: string]: string;
10691
+ } | null;
10692
+ /** @description ISO 8601 timestamp of when the contact was created */
10693
+ created_at: string;
10694
+ /** @description ISO 8601 timestamp of when the contact was last updated */
10695
+ updated_at: string;
10696
+ non_verified_name: string | null;
10697
+ non_verified_email: string | null;
10698
+ non_verified_custom_data: {
10699
+ [key: string]: string | number | boolean;
10700
+ } | null;
10701
+ };
10702
+ InvestigationAssignee: {
10703
+ id: number;
10592
10704
  name: string | null;
10593
10705
  email: string | null;
10594
10706
  avatar_url: string | null;
@@ -11476,6 +11588,50 @@ export interface components {
11476
11588
  total: number;
11477
11589
  total_pages: number;
11478
11590
  };
11591
+ StructuredFieldsPublicMessageDto: {
11592
+ message: string;
11593
+ };
11594
+ AutopilotStatusResponseDto: {
11595
+ channels: {
11596
+ /** @description Channel name */
11597
+ channel: string;
11598
+ /** @description Whether the AI autopilot is enabled on this channel */
11599
+ autopilot_enabled: boolean;
11600
+ /**
11601
+ * @description AI agent version used on this channel
11602
+ * @enum {string}
11603
+ */
11604
+ ai_agent_version: "v1" | "v2";
11605
+ }[];
11606
+ };
11607
+ ProhibitedTopicsResponseDto: {
11608
+ /** @description Topic names only. When a session matches any of these, the AI hands off to a human (subject to per-channel handoff behavior). */
11609
+ topics: string[];
11610
+ /** @description The same topics, each with its description. */
11611
+ items: {
11612
+ /** @description The topic name. */
11613
+ name: string;
11614
+ /** @description Guidance the AI uses when deciding whether a session matches this topic, or null. Conditions stated here are applied as strict rules. */
11615
+ description: string | null;
11616
+ }[];
11617
+ };
11618
+ OutboundBlocklistEntryDto: {
11619
+ id: string;
11620
+ /** @description "phone", "email" or "whatsapp_user_id". */
11621
+ identity_type: string;
11622
+ /** @description The address, as we stored it after normalizing. */
11623
+ identity_value: string;
11624
+ /** @description The channel this entry covers. Null means every channel — that is what entries added through this API always are. A specific channel appears when someone opted out of that channel alone. */
11625
+ channel: string | null;
11626
+ /** @description Why the address was blocked. */
11627
+ reason: string;
11628
+ /** @description Where the entry came from. "api" is one you added. Anything else was recorded when the person opted out themselves, and is not removable by default. */
11629
+ source: string | null;
11630
+ /** Format: date-time */
11631
+ created_at: string;
11632
+ /** @description When the block lifts automatically. Null means it never does. */
11633
+ expires_at: string | null;
11634
+ };
11479
11635
  PutCustomDomainOutput: {
11480
11636
  domainRecords: unknown | null;
11481
11637
  domainStatus: string | null;
@@ -11570,64 +11726,6 @@ export interface components {
11570
11726
  in_progress: number;
11571
11727
  };
11572
11728
  };
11573
- RunReportQueryResponseDto: {
11574
- rows: {
11575
- [key: string]: unknown;
11576
- }[];
11577
- row_count: number;
11578
- truncated: boolean;
11579
- };
11580
- PartnerOrgDto: {
11581
- id: string;
11582
- name: string;
11583
- external_id: string | null;
11584
- tags: string[];
11585
- created_at: string | null;
11586
- };
11587
- ListPartnerOrgsResponseDto: {
11588
- partner: {
11589
- id: string;
11590
- name: string;
11591
- };
11592
- data: components["schemas"]["PartnerOrgDto"][];
11593
- total: number;
11594
- };
11595
- PartnerOrgHealthDto: {
11596
- id: string;
11597
- name: string;
11598
- external_id: string | null;
11599
- website: string | null;
11600
- logo_url: string | null;
11601
- created_at: string | null;
11602
- tags: string[];
11603
- health: {
11604
- /** @enum {string} */
11605
- status: "healthy" | "setup_incomplete" | "inactive" | "new";
11606
- members: number;
11607
- data_sources: number;
11608
- has_ai_training: boolean;
11609
- has_actions: boolean;
11610
- sessions_30d: number;
11611
- total_sessions: number;
11612
- last_session_at: string | null;
11613
- };
11614
- channels: {
11615
- chat: boolean;
11616
- email: boolean;
11617
- whatsapp: boolean;
11618
- voice: boolean;
11619
- };
11620
- };
11621
- SearchPartnerOrgsResponseDto: {
11622
- partner: {
11623
- id: string;
11624
- name: string;
11625
- };
11626
- data: components["schemas"]["PartnerOrgHealthDto"][];
11627
- total: number;
11628
- limit: number;
11629
- offset: number;
11630
- };
11631
11729
  OfficeHoursPublicResponseDto: {
11632
11730
  /** @description Office hours schedule ID */
11633
11731
  id: string;
@@ -11658,25 +11756,250 @@ export interface components {
11658
11756
  updated_at: string;
11659
11757
  }[];
11660
11758
  };
11661
- OrganizationDto: {
11662
- /** @description The name of the organization. */
11663
- name: string;
11664
- /** @description When the organization was created. */
11665
- created_at: string | null;
11666
- /** @description When the organization was last updated. */
11667
- updated_at: string | null;
11668
- };
11669
- SetPhoneAgentCallerNumberOutput: {
11670
- phone_agent_id: string;
11671
- caller_number: string | null;
11672
- };
11673
- PublicResourceUsageConversationsDto: {
11674
- conversations: {
11675
- session_id: string;
11676
- /** @description Inbox ticket number, if assigned */
11677
- ticket_number: number | null;
11678
- /** @description The conversation’s most recent message */
11679
- last_message: string | null;
11759
+ TagPublicResponseDto: {
11760
+ /** @description The tag name (unique per org) */
11761
+ tag_name: string;
11762
+ /** @description Optional description of what this tag means */
11763
+ description: string | null;
11764
+ /** @description If true, the AI will never auto-apply this tag */
11765
+ exclude_from_auto_tagging: boolean;
11766
+ /** @description Category this tag belongs to, or null if uncategorized */
11767
+ category_id: string | null;
11768
+ /** Format: date-time */
11769
+ created_at: string;
11770
+ /** Format: date-time */
11771
+ updated_at: string;
11772
+ };
11773
+ TagCategoryPublicResponseDto: {
11774
+ /**
11775
+ * Format: uuid
11776
+ * @description The category id
11777
+ */
11778
+ id: string;
11779
+ /** @description The organization this category belongs to */
11780
+ org_id: string;
11781
+ /** @description The category name (unique per org) */
11782
+ name: string;
11783
+ /** @description What this category groups together */
11784
+ description: string;
11785
+ /** Format: date-time */
11786
+ created_at: string;
11787
+ /** Format: date-time */
11788
+ updated_at: string;
11789
+ };
11790
+ WorkflowPublicResponseDto: {
11791
+ /** @description Version serial ID */
11792
+ id: number;
11793
+ /** @description Workflow UUID (groups all versions of the same workflow) */
11794
+ workflow_id: string;
11795
+ /** @description Workflow name */
11796
+ name: string;
11797
+ /** @description Workflow description */
11798
+ description: string | null;
11799
+ /** @description Whether this version is currently active */
11800
+ is_active: boolean | null;
11801
+ /** @description Trigger type: "manual-trigger", "ai-trigger", "cron-trigger", "webhook", "form-trigger", or event-based triggers */
11802
+ trigger_type: string;
11803
+ /** @description Version number (increments with each edit) */
11804
+ version_number: number;
11805
+ /** Format: date-time */
11806
+ created_at: string;
11807
+ /** Format: date-time */
11808
+ updated_at: string;
11809
+ };
11810
+ WorkflowDetailPublicResponseDto: {
11811
+ /** @description Version serial ID */
11812
+ id: number;
11813
+ /** @description Workflow UUID (groups all versions of the same workflow) */
11814
+ workflow_id: string;
11815
+ /** @description Workflow name */
11816
+ name: string;
11817
+ /** @description Workflow description */
11818
+ description: string | null;
11819
+ /** @description Whether this version is currently active */
11820
+ is_active: boolean | null;
11821
+ /** @description Trigger type: "manual-trigger", "ai-trigger", "cron-trigger", "webhook", "form-trigger", or event-based triggers */
11822
+ trigger_type: string;
11823
+ /** @description Version number (increments with each edit) */
11824
+ version_number: number;
11825
+ /** Format: date-time */
11826
+ created_at: string;
11827
+ /** Format: date-time */
11828
+ updated_at: string;
11829
+ /** @description Workflow step/block definitions */
11830
+ workflow_blocks: unknown[] | null;
11831
+ /** @description Trigger-specific configuration */
11832
+ trigger_configuration: unknown | null;
11833
+ /** @description Trigger URL for webhook-type workflows. Call this URL (POST) to trigger the workflow. Null for non-webhook workflows. */
11834
+ webhook_url: string | null;
11835
+ };
11836
+ WorkflowRunPublicResponseDto: {
11837
+ /** @description Run UUID */
11838
+ id: string;
11839
+ /** @description Workflow version serial ID that was executed */
11840
+ workflow_id: number;
11841
+ /** @description Run status: "idle", "in_progress", "completed", "failed", "canceled" */
11842
+ status: ("canceled" | "completed" | "failed" | "idle" | "in_progress" | "waiting") | null;
11843
+ /**
11844
+ * @description What caused the run: "manual", "automatic", "scheduled"
11845
+ * @enum {string}
11846
+ */
11847
+ trigger_cause: "automatic" | "manual" | "scheduled";
11848
+ /** @description How long the run took */
11849
+ duration_in_seconds: number | null;
11850
+ run_started_at: string | null;
11851
+ run_ended_at: string | null;
11852
+ /** @description Whether this was a test run */
11853
+ is_test_run: boolean;
11854
+ /** Format: date-time */
11855
+ created_at: string;
11856
+ };
11857
+ ValidateWorkflowPublicOutput: {
11858
+ /** @description Whether the workflow definition is valid (no error-severity issues) */
11859
+ valid: boolean;
11860
+ /** @description List of validation issues found */
11861
+ issues: {
11862
+ /** @description The step ID where the issue was found, if applicable */
11863
+ step_id: string | null;
11864
+ /** @description Description of the validation issue */
11865
+ message: string;
11866
+ /**
11867
+ * @description "error" blocks create/update/activate; "warning" is advisory only
11868
+ * @enum {string}
11869
+ */
11870
+ severity: "error" | "warning";
11871
+ }[];
11872
+ /** @description List of action types referenced in the workflow */
11873
+ action_types_used: string[];
11874
+ };
11875
+ WorkflowValidationErrorResponse: {
11876
+ /** @constant */
11877
+ statusCode: 400;
11878
+ /** @description Human-readable summary of the validation failure */
11879
+ message: string;
11880
+ error: string;
11881
+ /** @description Structured validation issues — fix each step_id and retry */
11882
+ issues: {
11883
+ /** @description The step ID where the issue was found, if applicable */
11884
+ step_id: string | null;
11885
+ /** @description Description of the validation issue */
11886
+ message: string;
11887
+ /**
11888
+ * @description "error" blocks create/update/activate; "warning" is advisory only
11889
+ * @enum {string}
11890
+ */
11891
+ severity: "error" | "warning";
11892
+ }[];
11893
+ };
11894
+ FieldSchemaPublicDto: {
11895
+ /** @description Field name (use as key in input object) */
11896
+ name: string;
11897
+ /** @description Field type: text, number, boolean, select, object, array, etc. */
11898
+ type: string;
11899
+ /** @description Human-readable label */
11900
+ display_name: string;
11901
+ /** @description What this field does */
11902
+ description?: string;
11903
+ /** @description Whether this field must be provided */
11904
+ required: boolean;
11905
+ };
11906
+ ActionTypePublicDto: {
11907
+ /** @description Action type identifier (e.g. "ask-ai", "send-webhook"). Use this as the "type" in workflow_blocks. */
11908
+ type: string;
11909
+ /** @description Human-readable name */
11910
+ name: string;
11911
+ /** @description What this action does */
11912
+ description: string;
11913
+ /** @description Action category (e.g. "AI", "Session", "Outbound") */
11914
+ category: string;
11915
+ /** @description Icon name */
11916
+ icon: string;
11917
+ /** @description Input fields this action accepts. Pass these in the "input" object of the workflow block. */
11918
+ input_fields: components["schemas"]["FieldSchemaPublicDto"][] | null;
11919
+ /** @description Output fields this action produces. Reference via {{step_id.field_name}}. */
11920
+ output_fields: components["schemas"]["FieldSchemaPublicDto"][] | null;
11921
+ /** @description Raw nested input schema for actions whose inputs include `Field.Object` or `Field.JsonSchema` properties (e.g. ask-ai's resultShape, make-http-call's responseSchema). When set, this is the source of truth — input_fields is a flattened summary. */
11922
+ input_shape: unknown | null;
11923
+ /** @description Raw nested output schema, same shape as input_shape for outputs. */
11924
+ output_shape: unknown | null;
11925
+ /** @description Trigger types this action is compatible with. Filter actions by this when composing a workflow for a specific trigger. Null means compatible with any trigger. */
11926
+ supported_trigger_types: string[] | null;
11927
+ /** @description Whether this action supports being tested in isolation via the dashboard test runner. */
11928
+ can_test: boolean;
11929
+ };
11930
+ TriggerTypePublicDto: {
11931
+ /** @description Trigger type identifier. Use this as the "trigger_type" when creating a workflow. */
11932
+ type: string;
11933
+ /** @description Human-readable name */
11934
+ name: string;
11935
+ /** @description What this trigger does */
11936
+ description: string;
11937
+ /** @description Icon name */
11938
+ icon: string;
11939
+ /** @description Field schema for the trigger payload (the event shape the runtime receives). For triggers whose payload is defined per-workflow (`ai-trigger`, `form-trigger`, `manual-ticket-trigger`), this is empty — the real per-workflow payload contract lives in configuration_def's `Field.JsonSchema`-typed property (aiPayloadShape / formSchema) that the workflow author sets via trigger_configuration. */
11940
+ payload_def: unknown | null;
11941
+ /** @description Field schema for the trigger configuration. When non-empty, the workflow author MUST set every required property in trigger_configuration. Examples: ai-trigger needs theGoalOfTheWorkflow + aiPayloadShape; cron-trigger needs cronExpression; webhook needs accessControl. */
11942
+ configuration_def: unknown | null;
11943
+ };
11944
+ OperatorPublicDto: {
11945
+ /** @description Operator identifier — use this exact value as "operatorName" in conditions (e.g. "equals", "notEquals", "stringContains"). */
11946
+ name: string;
11947
+ /** @description Human-readable name */
11948
+ display_name: string;
11949
+ /**
11950
+ * @description Operator arity. "Unary": condition takes "left" only. "Binary": condition takes "left" and "right". "Logical": "and"/"or" take a "conditions" array of nested conditions; "not" takes a single "condition".
11951
+ * @enum {string}
11952
+ */
11953
+ type: "Unary" | "Binary" | "Logical";
11954
+ /** @description Field types this operator can be applied to */
11955
+ applies_to: ("String" | "Number" | "Boolean" | "Array" | "Object" | "DateTime" | "LongText" | "Url" | "Email" | "Select" | "LazySelect" | "Code" | "MultiSelect" | "LazyMultiSelect" | "JsonSchema" | "Any" | "AnyObject" | "RichText" | "File" | "PhoneNumber" | "DateOnly" | "CronExpression" | "Integer")[];
11956
+ };
11957
+ WorkflowDefinitionsPublicDto: {
11958
+ /** @description Available action types with their input/output schemas */
11959
+ action_types: components["schemas"]["ActionTypePublicDto"][];
11960
+ /** @description Available trigger types */
11961
+ trigger_types: components["schemas"]["TriggerTypePublicDto"][];
11962
+ /** @description Available control-flow block types */
11963
+ block_types: {
11964
+ type: string;
11965
+ name: string;
11966
+ description: string;
11967
+ }[];
11968
+ /** @description Condition operators for if-else blocks, from the engine registry. This is the complete set the runtime evaluates — always pick "operatorName" from this list. */
11969
+ operators: components["schemas"]["OperatorPublicDto"][];
11970
+ /** @description Field schemas for the extra reference scopes available in every run, beyond the trigger payload and step outputs. Each entry's "name" is the scope root and its "properties" are the referenceable fields: {{metadata.<field>}} (date/time of the run), {{run.<field>}}, {{workflow.<field>}}, {{organization.<field>}}, and {{variables.<key>}} for the organization's global variables. Leaf scopes have no "properties" and are referenced directly, e.g. {{routingSkills}} — a JSON string of every org skill (name + description). */
11971
+ extra_variables: unknown[];
11972
+ };
11973
+ TestWorkflowPublicOutput: {
11974
+ /** @description UUID of the test run — feed into /workflows/:workflow_id/runs/:run_id */
11975
+ run_id: string;
11976
+ };
11977
+ RerunWorkflowRunPublicOutput: {
11978
+ success: boolean;
11979
+ /** @description UUID of the new run when the rerun was kicked off (even if it then failed) */
11980
+ new_run_id?: string;
11981
+ /** @description Failure reason when success is false */
11982
+ error?: string;
11983
+ };
11984
+ OrganizationDto: {
11985
+ /** @description The name of the organization. */
11986
+ name: string;
11987
+ /** @description When the organization was created. */
11988
+ created_at: string | null;
11989
+ /** @description When the organization was last updated. */
11990
+ updated_at: string | null;
11991
+ };
11992
+ SetPhoneAgentCallerNumberOutput: {
11993
+ phone_agent_id: string;
11994
+ caller_number: string | null;
11995
+ };
11996
+ PublicResourceUsageConversationsDto: {
11997
+ conversations: {
11998
+ session_id: string;
11999
+ /** @description Inbox ticket number, if assigned */
12000
+ ticket_number: number | null;
12001
+ /** @description The conversation’s most recent message */
12002
+ last_message: string | null;
11680
12003
  /** @description AI replies in this conversation that used the resource */
11681
12004
  reply_count: number;
11682
12005
  /** @description ISO 8601 timestamp of first use in this conversation */
@@ -11768,36 +12091,51 @@ export interface components {
11768
12091
  }[];
11769
12092
  total: number;
11770
12093
  };
11771
- TagPublicResponseDto: {
11772
- /** @description The tag name (unique per org) */
11773
- tag_name: string;
11774
- /** @description Optional description of what this tag means */
11775
- description: string | null;
11776
- /** @description If true, the AI will never auto-apply this tag */
11777
- exclude_from_auto_tagging: boolean;
11778
- /** @description Category this tag belongs to, or null if uncategorized */
11779
- category_id: string | null;
11780
- /** Format: date-time */
11781
- created_at: string;
11782
- /** Format: date-time */
11783
- updated_at: string;
12094
+ SlackConnectionStatusOutputDto: {
12095
+ connected: boolean;
12096
+ workspace_id: string | null;
12097
+ workspace_name: string | null;
11784
12098
  };
11785
- TagCategoryPublicResponseDto: {
11786
- /**
11787
- * Format: uuid
11788
- * @description The category id
11789
- */
11790
- id: string;
11791
- /** @description The organization this category belongs to */
11792
- org_id: string;
11793
- /** @description The category name (unique per org) */
11794
- name: string;
11795
- /** @description What this category groups together */
11796
- description: string;
11797
- /** Format: date-time */
11798
- created_at: string;
11799
- /** Format: date-time */
11800
- updated_at: string;
12099
+ SlackBotChannelsOutputDto: {
12100
+ connected: boolean;
12101
+ channels: {
12102
+ /** @description Slack channel ID, e.g. C0123456789 */
12103
+ id: string;
12104
+ /** @description Channel name without the leading # */
12105
+ name: string;
12106
+ is_private: boolean;
12107
+ }[];
12108
+ };
12109
+ SlackNotificationSettingsOutputDto: {
12110
+ connected: boolean;
12111
+ /** @description Channel handoff notifications are posted to, or null when they are disabled */
12112
+ notification_channel_id: string | null;
12113
+ notification_channel_name: string | null;
12114
+ /** @description Whether the assigned agent is DMed on assignment and handoff, and @mentioned in the Slack thread */
12115
+ notify_assignee_enabled: boolean;
12116
+ };
12117
+ SlackTagDirectoryOutputDto: {
12118
+ connected: boolean;
12119
+ tag_directory: {
12120
+ [key: string]: {
12121
+ /** @constant */
12122
+ type: "usergroup";
12123
+ id: string;
12124
+ } | {
12125
+ /** @constant */
12126
+ type: "user";
12127
+ id: string;
12128
+ } | {
12129
+ /** @constant */
12130
+ type: "channel";
12131
+ id: string;
12132
+ } | {
12133
+ /** @constant */
12134
+ type: "special";
12135
+ /** @enum {string} */
12136
+ id: "here" | "channel";
12137
+ };
12138
+ };
11801
12139
  };
11802
12140
  TrainingPublicResponseDto: {
11803
12141
  /** @description Unique training ID */
@@ -11859,7 +12197,7 @@ export interface components {
11859
12197
  /** Format: email */
11860
12198
  email: string;
11861
12199
  avatar_url?: string | null;
11862
- permissions?: ("*" | "sessions:read" | "sessions: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" | "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-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-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-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
12200
+ permissions?: ("*" | "sessions:read" | "sessions: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" | "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-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-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
11863
12201
  };
11864
12202
  OrgUserDetail: {
11865
12203
  id: number;
@@ -11868,7 +12206,7 @@ export interface components {
11868
12206
  /** Format: email */
11869
12207
  email: string;
11870
12208
  avatar_url?: string | null;
11871
- permissions?: ("*" | "sessions:read" | "sessions: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" | "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-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-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-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
12209
+ permissions?: ("*" | "sessions:read" | "sessions: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" | "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-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-groups:read" | "settings-groups:write" | "settings-roles:read" | "settings-roles:write" | "settings-macros:read" | "settings-macros:write" | "settings-skills:read" | "settings-skills:write")[] | null;
11872
12210
  teams: {
11873
12211
  group: components["schemas"]["GroupDto"];
11874
12212
  is_user_available_on_group: boolean;
@@ -11960,251 +12298,11 @@ export interface components {
11960
12298
  /** @description Dashboard: Customer Insights → Settings → AI Instructions. Org-specific analysis constraints injected into the VOC insights analyzer for future runs. Max 1000 chars. Null means unset. */
11961
12299
  custom_analysis_instructions: string | null;
11962
12300
  };
11963
- SlackConnectionStatusOutputDto: {
11964
- connected: boolean;
11965
- workspace_id: string | null;
11966
- workspace_name: string | null;
11967
- };
11968
- SlackBotChannelsOutputDto: {
11969
- connected: boolean;
11970
- channels: {
11971
- /** @description Slack channel ID, e.g. C0123456789 */
11972
- id: string;
11973
- /** @description Channel name without the leading # */
11974
- name: string;
11975
- is_private: boolean;
11976
- }[];
11977
- };
11978
- SlackNotificationSettingsOutputDto: {
11979
- connected: boolean;
11980
- /** @description Channel handoff notifications are posted to, or null when they are disabled */
11981
- notification_channel_id: string | null;
11982
- notification_channel_name: string | null;
11983
- /** @description Whether the assigned agent is DMed on assignment and handoff, and @mentioned in the Slack thread */
11984
- notify_assignee_enabled: boolean;
11985
- };
11986
- SlackTagDirectoryOutputDto: {
11987
- connected: boolean;
11988
- tag_directory: {
11989
- [key: string]: {
11990
- /** @constant */
11991
- type: "usergroup";
11992
- id: string;
11993
- } | {
11994
- /** @constant */
11995
- type: "user";
11996
- id: string;
11997
- } | {
11998
- /** @constant */
11999
- type: "channel";
12000
- id: string;
12001
- } | {
12002
- /** @constant */
12003
- type: "special";
12004
- /** @enum {string} */
12005
- id: "here" | "channel";
12006
- };
12007
- };
12008
- };
12009
12301
  SendTemplateOutputDto: {
12010
12302
  whatsapp_message_id: string;
12011
12303
  opencx_message_id: string;
12012
12304
  opencx_session_id: string;
12013
12305
  };
12014
- WorkflowPublicResponseDto: {
12015
- /** @description Version serial ID */
12016
- id: number;
12017
- /** @description Workflow UUID (groups all versions of the same workflow) */
12018
- workflow_id: string;
12019
- /** @description Workflow name */
12020
- name: string;
12021
- /** @description Workflow description */
12022
- description: string | null;
12023
- /** @description Whether this version is currently active */
12024
- is_active: boolean | null;
12025
- /** @description Trigger type: "manual-trigger", "ai-trigger", "cron-trigger", "webhook", "form-trigger", or event-based triggers */
12026
- trigger_type: string;
12027
- /** @description Version number (increments with each edit) */
12028
- version_number: number;
12029
- /** Format: date-time */
12030
- created_at: string;
12031
- /** Format: date-time */
12032
- updated_at: string;
12033
- };
12034
- WorkflowDetailPublicResponseDto: {
12035
- /** @description Version serial ID */
12036
- id: number;
12037
- /** @description Workflow UUID (groups all versions of the same workflow) */
12038
- workflow_id: string;
12039
- /** @description Workflow name */
12040
- name: string;
12041
- /** @description Workflow description */
12042
- description: string | null;
12043
- /** @description Whether this version is currently active */
12044
- is_active: boolean | null;
12045
- /** @description Trigger type: "manual-trigger", "ai-trigger", "cron-trigger", "webhook", "form-trigger", or event-based triggers */
12046
- trigger_type: string;
12047
- /** @description Version number (increments with each edit) */
12048
- version_number: number;
12049
- /** Format: date-time */
12050
- created_at: string;
12051
- /** Format: date-time */
12052
- updated_at: string;
12053
- /** @description Workflow step/block definitions */
12054
- workflow_blocks: unknown[] | null;
12055
- /** @description Trigger-specific configuration */
12056
- trigger_configuration: unknown | null;
12057
- /** @description Trigger URL for webhook-type workflows. Call this URL (POST) to trigger the workflow. Null for non-webhook workflows. */
12058
- webhook_url: string | null;
12059
- };
12060
- WorkflowRunPublicResponseDto: {
12061
- /** @description Run UUID */
12062
- id: string;
12063
- /** @description Workflow version serial ID that was executed */
12064
- workflow_id: number;
12065
- /** @description Run status: "idle", "in_progress", "completed", "failed", "canceled" */
12066
- status: ("canceled" | "completed" | "failed" | "idle" | "in_progress" | "waiting") | null;
12067
- /**
12068
- * @description What caused the run: "manual", "automatic", "scheduled"
12069
- * @enum {string}
12070
- */
12071
- trigger_cause: "automatic" | "manual" | "scheduled";
12072
- /** @description How long the run took */
12073
- duration_in_seconds: number | null;
12074
- run_started_at: string | null;
12075
- run_ended_at: string | null;
12076
- /** @description Whether this was a test run */
12077
- is_test_run: boolean;
12078
- /** Format: date-time */
12079
- created_at: string;
12080
- };
12081
- ValidateWorkflowPublicOutput: {
12082
- /** @description Whether the workflow definition is valid (no error-severity issues) */
12083
- valid: boolean;
12084
- /** @description List of validation issues found */
12085
- issues: {
12086
- /** @description The step ID where the issue was found, if applicable */
12087
- step_id: string | null;
12088
- /** @description Description of the validation issue */
12089
- message: string;
12090
- /**
12091
- * @description "error" blocks create/update/activate; "warning" is advisory only
12092
- * @enum {string}
12093
- */
12094
- severity: "error" | "warning";
12095
- }[];
12096
- /** @description List of action types referenced in the workflow */
12097
- action_types_used: string[];
12098
- };
12099
- WorkflowValidationErrorResponse: {
12100
- /** @constant */
12101
- statusCode: 400;
12102
- /** @description Human-readable summary of the validation failure */
12103
- message: string;
12104
- error: string;
12105
- /** @description Structured validation issues — fix each step_id and retry */
12106
- issues: {
12107
- /** @description The step ID where the issue was found, if applicable */
12108
- step_id: string | null;
12109
- /** @description Description of the validation issue */
12110
- message: string;
12111
- /**
12112
- * @description "error" blocks create/update/activate; "warning" is advisory only
12113
- * @enum {string}
12114
- */
12115
- severity: "error" | "warning";
12116
- }[];
12117
- };
12118
- FieldSchemaPublicDto: {
12119
- /** @description Field name (use as key in input object) */
12120
- name: string;
12121
- /** @description Field type: text, number, boolean, select, object, array, etc. */
12122
- type: string;
12123
- /** @description Human-readable label */
12124
- display_name: string;
12125
- /** @description What this field does */
12126
- description?: string;
12127
- /** @description Whether this field must be provided */
12128
- required: boolean;
12129
- };
12130
- ActionTypePublicDto: {
12131
- /** @description Action type identifier (e.g. "ask-ai", "send-webhook"). Use this as the "type" in workflow_blocks. */
12132
- type: string;
12133
- /** @description Human-readable name */
12134
- name: string;
12135
- /** @description What this action does */
12136
- description: string;
12137
- /** @description Action category (e.g. "AI", "Session", "Outbound") */
12138
- category: string;
12139
- /** @description Icon name */
12140
- icon: string;
12141
- /** @description Input fields this action accepts. Pass these in the "input" object of the workflow block. */
12142
- input_fields: components["schemas"]["FieldSchemaPublicDto"][] | null;
12143
- /** @description Output fields this action produces. Reference via {{step_id.field_name}}. */
12144
- output_fields: components["schemas"]["FieldSchemaPublicDto"][] | null;
12145
- /** @description Raw nested input schema for actions whose inputs include `Field.Object` or `Field.JsonSchema` properties (e.g. ask-ai's resultShape, make-http-call's responseSchema). When set, this is the source of truth — input_fields is a flattened summary. */
12146
- input_shape: unknown | null;
12147
- /** @description Raw nested output schema, same shape as input_shape for outputs. */
12148
- output_shape: unknown | null;
12149
- /** @description Trigger types this action is compatible with. Filter actions by this when composing a workflow for a specific trigger. Null means compatible with any trigger. */
12150
- supported_trigger_types: string[] | null;
12151
- /** @description Whether this action supports being tested in isolation via the dashboard test runner. */
12152
- can_test: boolean;
12153
- };
12154
- TriggerTypePublicDto: {
12155
- /** @description Trigger type identifier. Use this as the "trigger_type" when creating a workflow. */
12156
- type: string;
12157
- /** @description Human-readable name */
12158
- name: string;
12159
- /** @description What this trigger does */
12160
- description: string;
12161
- /** @description Icon name */
12162
- icon: string;
12163
- /** @description Field schema for the trigger payload (the event shape the runtime receives). For triggers whose payload is defined per-workflow (`ai-trigger`, `form-trigger`, `manual-ticket-trigger`), this is empty — the real per-workflow payload contract lives in configuration_def's `Field.JsonSchema`-typed property (aiPayloadShape / formSchema) that the workflow author sets via trigger_configuration. */
12164
- payload_def: unknown | null;
12165
- /** @description Field schema for the trigger configuration. When non-empty, the workflow author MUST set every required property in trigger_configuration. Examples: ai-trigger needs theGoalOfTheWorkflow + aiPayloadShape; cron-trigger needs cronExpression; webhook needs accessControl. */
12166
- configuration_def: unknown | null;
12167
- };
12168
- OperatorPublicDto: {
12169
- /** @description Operator identifier — use this exact value as "operatorName" in conditions (e.g. "equals", "notEquals", "stringContains"). */
12170
- name: string;
12171
- /** @description Human-readable name */
12172
- display_name: string;
12173
- /**
12174
- * @description Operator arity. "Unary": condition takes "left" only. "Binary": condition takes "left" and "right". "Logical": "and"/"or" take a "conditions" array of nested conditions; "not" takes a single "condition".
12175
- * @enum {string}
12176
- */
12177
- type: "Unary" | "Binary" | "Logical";
12178
- /** @description Field types this operator can be applied to */
12179
- applies_to: ("String" | "Number" | "Boolean" | "Array" | "Object" | "DateTime" | "LongText" | "Url" | "Email" | "Select" | "LazySelect" | "Code" | "MultiSelect" | "LazyMultiSelect" | "JsonSchema" | "Any" | "AnyObject" | "RichText" | "File" | "PhoneNumber" | "DateOnly" | "CronExpression" | "Integer")[];
12180
- };
12181
- WorkflowDefinitionsPublicDto: {
12182
- /** @description Available action types with their input/output schemas */
12183
- action_types: components["schemas"]["ActionTypePublicDto"][];
12184
- /** @description Available trigger types */
12185
- trigger_types: components["schemas"]["TriggerTypePublicDto"][];
12186
- /** @description Available control-flow block types */
12187
- block_types: {
12188
- type: string;
12189
- name: string;
12190
- description: string;
12191
- }[];
12192
- /** @description Condition operators for if-else blocks, from the engine registry. This is the complete set the runtime evaluates — always pick "operatorName" from this list. */
12193
- operators: components["schemas"]["OperatorPublicDto"][];
12194
- /** @description Field schemas for the extra reference scopes available in every run, beyond the trigger payload and step outputs. Each entry's "name" is the scope root and its "properties" are the referenceable fields: {{metadata.<field>}} (date/time of the run), {{run.<field>}}, {{workflow.<field>}}, {{organization.<field>}}, and {{variables.<key>}} for the organization's global variables. Leaf scopes have no "properties" and are referenced directly, e.g. {{routingSkills}} — a JSON string of every org skill (name + description). */
12195
- extra_variables: unknown[];
12196
- };
12197
- TestWorkflowPublicOutput: {
12198
- /** @description UUID of the test run — feed into /workflows/:workflow_id/runs/:run_id */
12199
- run_id: string;
12200
- };
12201
- RerunWorkflowRunPublicOutput: {
12202
- success: boolean;
12203
- /** @description UUID of the new run when the rerun was kicked off (even if it then failed) */
12204
- new_run_id?: string;
12205
- /** @description Failure reason when success is false */
12206
- error?: string;
12207
- };
12208
12306
  SyncResultDto: {
12209
12307
  changes: {
12210
12308
  categories: {
@@ -12219,20 +12317,82 @@ export interface components {
12219
12317
  };
12220
12318
  };
12221
12319
  };
12222
- HelpCenterListItemDto: {
12320
+ HelpCenterListItemDto: {
12321
+ id: string;
12322
+ name: string;
12323
+ };
12324
+ MediaUploadResponseDto: {
12325
+ /** @description Unique identifier for the stored file. */
12326
+ id: string;
12327
+ /** @description Public URL for the uploaded image. */
12328
+ url: string;
12329
+ };
12330
+ MediaPublicErrorResponseDto: {
12331
+ statusCode: number;
12332
+ message: string;
12333
+ error?: string;
12334
+ };
12335
+ RunReportQueryResponseDto: {
12336
+ rows: {
12337
+ [key: string]: unknown;
12338
+ }[];
12339
+ row_count: number;
12340
+ truncated: boolean;
12341
+ };
12342
+ PartnerOrgDto: {
12343
+ id: string;
12344
+ name: string;
12345
+ external_id: string | null;
12346
+ tags: string[];
12347
+ created_at: string | null;
12348
+ };
12349
+ ListPartnerOrgsResponseDto: {
12350
+ partner: {
12351
+ id: string;
12352
+ name: string;
12353
+ };
12354
+ data: components["schemas"]["PartnerOrgDto"][];
12355
+ total: number;
12356
+ };
12357
+ PartnerOrgHealthDto: {
12223
12358
  id: string;
12224
12359
  name: string;
12360
+ external_id: string | null;
12361
+ website: string | null;
12362
+ logo_url: string | null;
12363
+ created_at: string | null;
12364
+ tags: string[];
12365
+ health: {
12366
+ /** @enum {string} */
12367
+ status: "healthy" | "setup_incomplete" | "inactive" | "new";
12368
+ members: number;
12369
+ data_sources: number;
12370
+ has_ai_training: boolean;
12371
+ has_actions: boolean;
12372
+ sessions_30d: number;
12373
+ total_sessions: number;
12374
+ last_session_at: string | null;
12375
+ };
12376
+ channels: {
12377
+ chat: boolean;
12378
+ email: boolean;
12379
+ whatsapp: boolean;
12380
+ voice: boolean;
12381
+ };
12225
12382
  };
12226
- MediaUploadResponseDto: {
12227
- /** @description Unique identifier for the stored file. */
12228
- id: string;
12229
- /** @description Public URL for the uploaded image. */
12230
- url: string;
12383
+ SearchPartnerOrgsResponseDto: {
12384
+ partner: {
12385
+ id: string;
12386
+ name: string;
12387
+ };
12388
+ data: components["schemas"]["PartnerOrgHealthDto"][];
12389
+ total: number;
12390
+ limit: number;
12391
+ offset: number;
12231
12392
  };
12232
- MediaPublicErrorResponseDto: {
12233
- statusCode: number;
12234
- message: string;
12235
- error?: string;
12393
+ SalesforceMiawWebhookResponse: {
12394
+ success: boolean;
12395
+ message?: string;
12236
12396
  };
12237
12397
  CoworkerTodoItem: {
12238
12398
  label: string;
@@ -15200,6 +15360,244 @@ export interface operations {
15200
15360
  };
15201
15361
  };
15202
15362
  };
15363
+ listStructuredFields: {
15364
+ parameters: {
15365
+ query?: never;
15366
+ header?: never;
15367
+ path?: never;
15368
+ cookie?: never;
15369
+ };
15370
+ requestBody?: never;
15371
+ responses: {
15372
+ /** @description Default Response */
15373
+ 200: {
15374
+ headers: {
15375
+ [name: string]: unknown;
15376
+ };
15377
+ content: {
15378
+ "application/json": components["schemas"]["StructuredFieldListDto"];
15379
+ };
15380
+ };
15381
+ /** @description Internal Server Error */
15382
+ 500: {
15383
+ headers: {
15384
+ [name: string]: unknown;
15385
+ };
15386
+ content: {
15387
+ "application/json": components["schemas"]["ErrorDto"];
15388
+ };
15389
+ };
15390
+ };
15391
+ };
15392
+ createStructuredField: {
15393
+ parameters: {
15394
+ query?: never;
15395
+ header?: never;
15396
+ path?: never;
15397
+ cookie?: never;
15398
+ };
15399
+ requestBody: {
15400
+ content: {
15401
+ "application/json": components["schemas"]["CreateStructuredFieldDto"];
15402
+ };
15403
+ };
15404
+ responses: {
15405
+ /** @description Default Response */
15406
+ 201: {
15407
+ headers: {
15408
+ [name: string]: unknown;
15409
+ };
15410
+ content: {
15411
+ "application/json": components["schemas"]["StructuredFieldTreeDto"];
15412
+ };
15413
+ };
15414
+ /** @description Internal Server Error */
15415
+ 500: {
15416
+ headers: {
15417
+ [name: string]: unknown;
15418
+ };
15419
+ content: {
15420
+ "application/json": components["schemas"]["ErrorDto"];
15421
+ };
15422
+ };
15423
+ };
15424
+ };
15425
+ deleteStructuredField: {
15426
+ parameters: {
15427
+ query?: never;
15428
+ header?: never;
15429
+ path: {
15430
+ /** @description Structured Field ID */
15431
+ fieldId: string;
15432
+ };
15433
+ cookie?: never;
15434
+ };
15435
+ requestBody?: never;
15436
+ responses: {
15437
+ /** @description Default Response */
15438
+ 200: {
15439
+ headers: {
15440
+ [name: string]: unknown;
15441
+ };
15442
+ content: {
15443
+ "application/json": components["schemas"]["StructuredFieldsPublicMessageDto"];
15444
+ };
15445
+ };
15446
+ /** @description Internal Server Error */
15447
+ 500: {
15448
+ headers: {
15449
+ [name: string]: unknown;
15450
+ };
15451
+ content: {
15452
+ "application/json": components["schemas"]["ErrorDto"];
15453
+ };
15454
+ };
15455
+ };
15456
+ };
15457
+ updateStructuredField: {
15458
+ parameters: {
15459
+ query?: never;
15460
+ header?: never;
15461
+ path: {
15462
+ /** @description Structured Field ID */
15463
+ fieldId: string;
15464
+ };
15465
+ cookie?: never;
15466
+ };
15467
+ requestBody: {
15468
+ content: {
15469
+ "application/json": components["schemas"]["UpdateStructuredFieldDto"];
15470
+ };
15471
+ };
15472
+ responses: {
15473
+ /** @description Default Response */
15474
+ 200: {
15475
+ headers: {
15476
+ [name: string]: unknown;
15477
+ };
15478
+ content: {
15479
+ "application/json": components["schemas"]["StructuredFieldTreeDto"];
15480
+ };
15481
+ };
15482
+ /** @description Internal Server Error */
15483
+ 500: {
15484
+ headers: {
15485
+ [name: string]: unknown;
15486
+ };
15487
+ content: {
15488
+ "application/json": components["schemas"]["ErrorDto"];
15489
+ };
15490
+ };
15491
+ };
15492
+ };
15493
+ createStructuredFieldChoice: {
15494
+ parameters: {
15495
+ query?: never;
15496
+ header?: never;
15497
+ path: {
15498
+ /** @description Structured Field ID */
15499
+ fieldId: string;
15500
+ };
15501
+ cookie?: never;
15502
+ };
15503
+ requestBody: {
15504
+ content: {
15505
+ "application/json": components["schemas"]["CreateStructuredFieldVariantDto"];
15506
+ };
15507
+ };
15508
+ responses: {
15509
+ /** @description Default Response */
15510
+ 201: {
15511
+ headers: {
15512
+ [name: string]: unknown;
15513
+ };
15514
+ content: {
15515
+ "application/json": components["schemas"]["StructuredFieldVariantTreeDto"];
15516
+ };
15517
+ };
15518
+ /** @description Internal Server Error */
15519
+ 500: {
15520
+ headers: {
15521
+ [name: string]: unknown;
15522
+ };
15523
+ content: {
15524
+ "application/json": components["schemas"]["ErrorDto"];
15525
+ };
15526
+ };
15527
+ };
15528
+ };
15529
+ deleteStructuredFieldChoice: {
15530
+ parameters: {
15531
+ query?: never;
15532
+ header?: never;
15533
+ path: {
15534
+ /** @description Structured Field ID */
15535
+ fieldId: string;
15536
+ /** @description Choice ID */
15537
+ optionId: string;
15538
+ };
15539
+ cookie?: never;
15540
+ };
15541
+ requestBody?: never;
15542
+ responses: {
15543
+ /** @description Default Response */
15544
+ 200: {
15545
+ headers: {
15546
+ [name: string]: unknown;
15547
+ };
15548
+ content: {
15549
+ "application/json": components["schemas"]["StructuredFieldsPublicMessageDto"];
15550
+ };
15551
+ };
15552
+ /** @description Internal Server Error */
15553
+ 500: {
15554
+ headers: {
15555
+ [name: string]: unknown;
15556
+ };
15557
+ content: {
15558
+ "application/json": components["schemas"]["ErrorDto"];
15559
+ };
15560
+ };
15561
+ };
15562
+ };
15563
+ updateStructuredFieldChoice: {
15564
+ parameters: {
15565
+ query?: never;
15566
+ header?: never;
15567
+ path: {
15568
+ /** @description Structured Field ID */
15569
+ fieldId: string;
15570
+ /** @description Choice ID */
15571
+ optionId: string;
15572
+ };
15573
+ cookie?: never;
15574
+ };
15575
+ requestBody: {
15576
+ content: {
15577
+ "application/json": components["schemas"]["UpdateStructuredFieldVariantDto"];
15578
+ };
15579
+ };
15580
+ responses: {
15581
+ /** @description Default Response */
15582
+ 200: {
15583
+ headers: {
15584
+ [name: string]: unknown;
15585
+ };
15586
+ content: {
15587
+ "application/json": components["schemas"]["StructuredFieldVariantTreeDto"];
15588
+ };
15589
+ };
15590
+ /** @description Internal Server Error */
15591
+ 500: {
15592
+ headers: {
15593
+ [name: string]: unknown;
15594
+ };
15595
+ content: {
15596
+ "application/json": components["schemas"]["ErrorDto"];
15597
+ };
15598
+ };
15599
+ };
15600
+ };
15203
15601
  getAutopilotStatus: {
15204
15602
  parameters: {
15205
15603
  query?: never;
@@ -22824,7 +23222,7 @@ export interface operations {
22824
23222
  timezone?: string;
22825
23223
  policy_id?: string;
22826
23224
  team_id?: string;
22827
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review";
23225
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
22828
23226
  agent_id?: number;
22829
23227
  };
22830
23228
  header?: never;
@@ -22861,7 +23259,7 @@ export interface operations {
22861
23259
  timezone?: string;
22862
23260
  policy_id?: string;
22863
23261
  team_id?: string;
22864
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review";
23262
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
22865
23263
  agent_id?: number;
22866
23264
  group_by: "policy" | "team" | "agent" | "channel";
22867
23265
  };
@@ -22899,7 +23297,7 @@ export interface operations {
22899
23297
  timezone?: string;
22900
23298
  policy_id?: string;
22901
23299
  team_id?: string;
22902
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review";
23300
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
22903
23301
  agent_id?: number;
22904
23302
  granularity?: "day" | "week";
22905
23303
  };
@@ -22937,7 +23335,7 @@ export interface operations {
22937
23335
  timezone?: string;
22938
23336
  policy_id?: string;
22939
23337
  team_id?: string;
22940
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review";
23338
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
22941
23339
  agent_id?: number;
22942
23340
  };
22943
23341
  header?: never;