@opencx/mcp 1.15.25 → 1.15.26
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/salesforce-ai-reply-templates.spec.js +58 -0
- package/dist/salesforce-ai-reply-templates.spec.js.map +1 -1
- package/dist/schema.d.ts +417 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/custom-statuses.d.ts +4 -0
- package/dist/tools/custom-statuses.d.ts.map +1 -0
- package/dist/tools/custom-statuses.js +107 -0
- package/dist/tools/custom-statuses.js.map +1 -0
- package/dist/tools/salesforce-ai-reply-templates.d.ts.map +1 -1
- package/dist/tools/salesforce-ai-reply-templates.js +19 -5
- package/dist/tools/salesforce-ai-reply-templates.js.map +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +31 -0
- package/dist/tools/sessions.js.map +1 -1
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -471,6 +471,30 @@ export interface paths {
|
|
|
471
471
|
patch?: never;
|
|
472
472
|
trace?: never;
|
|
473
473
|
};
|
|
474
|
+
"/chat/sessions/{session_id}/sub-status": {
|
|
475
|
+
parameters: {
|
|
476
|
+
query?: never;
|
|
477
|
+
header?: never;
|
|
478
|
+
path?: never;
|
|
479
|
+
cookie?: never;
|
|
480
|
+
};
|
|
481
|
+
get?: never;
|
|
482
|
+
/**
|
|
483
|
+
* Set the custom status of a chat session
|
|
484
|
+
* @description Apply a custom status (see GET /custom-statuses) to the session. The session moves to the custom status's built-in parent: an open-parented status reopens a closed session, a closed-parented one closes it, with the same side effects as the dashboard (timeline events, ticketing-system sync, workflow triggers). Replaces any custom status already on the session.
|
|
485
|
+
*/
|
|
486
|
+
put: operations["setChatSessionSubStatus"];
|
|
487
|
+
post?: never;
|
|
488
|
+
/**
|
|
489
|
+
* Clear the custom status of a chat session
|
|
490
|
+
* @description Remove the custom status from the session. The built-in status (open / closed_resolved / closed_unresolved) is left exactly as it is, so clearing on a closed session does not reopen or re-close it. To change the built-in status use PATCH /chat/sessions/{session_id}.
|
|
491
|
+
*/
|
|
492
|
+
delete: operations["clearChatSessionSubStatus"];
|
|
493
|
+
options?: never;
|
|
494
|
+
head?: never;
|
|
495
|
+
patch?: never;
|
|
496
|
+
trace?: never;
|
|
497
|
+
};
|
|
474
498
|
"/chat/sessions/{session_id}/send": {
|
|
475
499
|
parameters: {
|
|
476
500
|
query?: never;
|
|
@@ -2237,6 +2261,58 @@ export interface paths {
|
|
|
2237
2261
|
patch?: never;
|
|
2238
2262
|
trace?: never;
|
|
2239
2263
|
};
|
|
2264
|
+
"/custom-statuses": {
|
|
2265
|
+
parameters: {
|
|
2266
|
+
query?: never;
|
|
2267
|
+
header?: never;
|
|
2268
|
+
path?: never;
|
|
2269
|
+
cookie?: never;
|
|
2270
|
+
};
|
|
2271
|
+
/**
|
|
2272
|
+
* List custom statuses
|
|
2273
|
+
* @description List every custom session status defined for your organization. A custom status refines one of the built-in statuses (open, closed_resolved, closed_unresolved) with an agent-facing name and optional customer-facing label, color, and icon. A session carries at most one custom status in its `sub_status_id`; use this list to resolve that id to a name.
|
|
2274
|
+
*/
|
|
2275
|
+
get: operations["listCustomStatuses"];
|
|
2276
|
+
put?: never;
|
|
2277
|
+
/**
|
|
2278
|
+
* Create a custom status
|
|
2279
|
+
* @description Create a custom session status under one of the built-in statuses. Names are unique per organization. Once created, apply it to a session with `PUT /chat/sessions/{session_id}/sub-status`.
|
|
2280
|
+
*/
|
|
2281
|
+
post: operations["createCustomStatus"];
|
|
2282
|
+
delete?: never;
|
|
2283
|
+
options?: never;
|
|
2284
|
+
head?: never;
|
|
2285
|
+
patch?: never;
|
|
2286
|
+
trace?: never;
|
|
2287
|
+
};
|
|
2288
|
+
"/custom-statuses/{id}": {
|
|
2289
|
+
parameters: {
|
|
2290
|
+
query?: never;
|
|
2291
|
+
header?: never;
|
|
2292
|
+
path?: never;
|
|
2293
|
+
cookie?: never;
|
|
2294
|
+
};
|
|
2295
|
+
/**
|
|
2296
|
+
* Get a custom status
|
|
2297
|
+
* @description Fetch one custom session status by id.
|
|
2298
|
+
*/
|
|
2299
|
+
get: operations["getCustomStatus"];
|
|
2300
|
+
put?: never;
|
|
2301
|
+
post?: never;
|
|
2302
|
+
/**
|
|
2303
|
+
* Delete a custom status
|
|
2304
|
+
* @description Delete a custom status. Sessions that carried it fall back to their built-in status (`sub_status_id` becomes null); their timeline history keeps the id.
|
|
2305
|
+
*/
|
|
2306
|
+
delete: operations["deleteCustomStatus"];
|
|
2307
|
+
options?: never;
|
|
2308
|
+
head?: never;
|
|
2309
|
+
/**
|
|
2310
|
+
* Update a custom status
|
|
2311
|
+
* @description Update any subset of a custom status. Omitted fields are left unchanged; the nullable display fields accept null to clear them. Sessions already carrying this status keep it.
|
|
2312
|
+
*/
|
|
2313
|
+
patch: operations["updateCustomStatus"];
|
|
2314
|
+
trace?: never;
|
|
2315
|
+
};
|
|
2240
2316
|
"/workflows/definitions": {
|
|
2241
2317
|
parameters: {
|
|
2242
2318
|
query?: never;
|
|
@@ -5319,7 +5395,7 @@ export interface paths {
|
|
|
5319
5395
|
};
|
|
5320
5396
|
/**
|
|
5321
5397
|
* Search connected orgs with health signals (paginated)
|
|
5322
|
-
* @description Find, filter, sort and page through the calling partner's connected orgs (its customers), each with the health signals the Partner Admin console shows: `health.status` — `new` (connected < 7 days, no sessions yet), `setup_incomplete` (no knowledge sources and no actions), `inactive` (no session in the last 30 days), `healthy` (everything else) — plus `members`, `data_sources`, `has_ai_training`, `has_actions`, `sessions_30d`, `total_sessions`, `last_session_at`, and per-channel connected flags (`chat`, `email`, `whatsapp`, `voice`). `q` matches name or external_id; `status`, `tags` and `
|
|
5398
|
+
* @description Find, filter, sort and page through the calling partner's connected orgs (its customers), each with the health signals the Partner Admin console shows: `health.status` — `new` (connected < 7 days, no sessions yet), `setup_incomplete` (no knowledge sources and no actions), `inactive` (no session in the last 30 days), `healthy` (everything else) — plus `members`, `data_sources`, `has_ai_training`, `has_actions`, `sessions_30d`, `total_sessions`, `last_session_at`, and per-channel connected flags (`chat`, `email`, `whatsapp`, `instagram`, `messenger`, `sms`, `voice`). `q` matches name or external_id; `status`, `tags`, `channels` and `addons` are comma-separated (tags match ANY, channels and add-ons match ALL; add-ons are `fareharbor`, `shopify`, `jira`); `has_ai` / `has_actions` are 'true' / 'false'; `archived=only` lists the partner's archived orgs, which are hidden unless asked for. Max 100 rows per page (`limit`/`offset`); `total` is the filtered count. For volume, quality and behaviour beyond these signals use `runPartnerAnalyticsQuery`; for the full id → name roster use `listPartnerOrgs`. Only available to partner admin organizations (403 otherwise).
|
|
5323
5399
|
*/
|
|
5324
5400
|
get: operations["searchPartnerOrgs"];
|
|
5325
5401
|
put?: never;
|
|
@@ -5493,7 +5569,7 @@ export interface paths {
|
|
|
5493
5569
|
put?: never;
|
|
5494
5570
|
/**
|
|
5495
5571
|
* Create an AI reply template
|
|
5496
|
-
* @description Create a reply template (Salesforce v2 integration only). The organization's first template becomes the default automatically; `is_default: true` on a later one moves the default atomically. Template HTML. Put {{content}} where the AI agent's reply goes (anything above is the greeting, anything below the signature); without it the template is appended below the reply. Variables: system objects {{contact.full_name}} / {{contact.first_name}} / {{contact.email}} / {{session.number}} / {{session.language}} / {{org.name}} (HTML-escaped) and any session attribute such as {{sf_case_Regards__c}} (inserted raw — Salesforce formula fields hold HTML fragments — then sanitized). {{#if sf_case_Language__c == "de"}}…{{else}}…{{/if}} conditions are supported. Scripts, handlers and non-https images are stripped; {{content}} may appear at most once. Optional `rules` (ANDed attribute/tag conditions) make the template pick itself for matching sessions; the first matching rule-bearing template in creation order wins, otherwise the default.
|
|
5572
|
+
* @description Create a reply template (Salesforce v2 integration only). The organization's first template becomes the default automatically; `is_default: true` on a later one moves the default atomically. Template HTML. Put {{content}} where the AI agent's reply goes (anything above is the greeting, anything below the signature); without it the template is appended below the reply. Variables: system objects {{contact.full_name}} / {{contact.first_name}} / {{contact.email}} / {{session.number}} / {{session.language}} / {{org.name}} (HTML-escaped) and any session attribute such as {{sf_case_Regards__c}} (inserted raw — Salesforce formula fields hold HTML fragments — then sanitized). {{#if sf_case_Language__c == "de"}}…{{else}}…{{/if}} conditions are supported. Scripts, handlers and non-https images are stripped; {{content}} may appear at most once. Optional `rules` (ANDed attribute/tag conditions) make the template pick itself for matching sessions; the first matching rule-bearing template in creation order wins, otherwise the default. Optional `from_address` / `to_address` set the From and To of the autopilot email per session: a literal address, a {{session attribute}} (e.g. {{sf_case_LatestPOSEmail__c}} as From, {{reservation_email}} as To) or an {{#if …}} branch. Each is used only when it resolves to an email address on that session; otherwise the From stays Salesforce's default sender and the To stays the Case contact. A literal that is not an email address is rejected with 400. Combine with `rules` to use different addresses for different sessions.
|
|
5497
5573
|
*/
|
|
5498
5574
|
post: operations["createSalesforceAiReplyTemplate"];
|
|
5499
5575
|
delete?: never;
|
|
@@ -5521,7 +5597,7 @@ export interface paths {
|
|
|
5521
5597
|
head?: never;
|
|
5522
5598
|
/**
|
|
5523
5599
|
* Update an AI reply template
|
|
5524
|
-
* @description Partially update a reply template: name, template_html, is_default (true moves the default onto it), rules (null clears them). Template HTML. Put {{content}} where the AI agent's reply goes (anything above is the greeting, anything below the signature); without it the template is appended below the reply. Variables: system objects {{contact.full_name}} / {{contact.first_name}} / {{contact.email}} / {{session.number}} / {{session.language}} / {{org.name}} (HTML-escaped) and any session attribute such as {{sf_case_Regards__c}} (inserted raw — Salesforce formula fields hold HTML fragments — then sanitized). {{#if sf_case_Language__c == "de"}}…{{else}}…{{/if}} conditions are supported. Scripts, handlers and non-https images are stripped; {{content}} may appear at most once.
|
|
5600
|
+
* @description Partially update a reply template: name, template_html, is_default (true moves the default onto it), rules (null clears them), from_address / to_address (null clears them). Template HTML. Put {{content}} where the AI agent's reply goes (anything above is the greeting, anything below the signature); without it the template is appended below the reply. Variables: system objects {{contact.full_name}} / {{contact.first_name}} / {{contact.email}} / {{session.number}} / {{session.language}} / {{org.name}} (HTML-escaped) and any session attribute such as {{sf_case_Regards__c}} (inserted raw — Salesforce formula fields hold HTML fragments — then sanitized). {{#if sf_case_Language__c == "de"}}…{{else}}…{{/if}} conditions are supported. Scripts, handlers and non-https images are stripped; {{content}} may appear at most once. Optional `from_address` / `to_address` set the From and To of the autopilot email per session: a literal address, a {{session attribute}} (e.g. {{sf_case_LatestPOSEmail__c}} as From, {{reservation_email}} as To) or an {{#if …}} branch. Each is used only when it resolves to an email address on that session; otherwise the From stays Salesforce's default sender and the To stays the Case contact. A literal that is not an email address is rejected with 400. Combine with `rules` to use different addresses for different sessions.
|
|
5525
5601
|
*/
|
|
5526
5602
|
patch: operations["updateSalesforceAiReplyTemplate"];
|
|
5527
5603
|
trace?: never;
|
|
@@ -5537,7 +5613,7 @@ export interface paths {
|
|
|
5537
5613
|
put?: never;
|
|
5538
5614
|
/**
|
|
5539
5615
|
* Preview an AI reply template
|
|
5540
|
-
* @description Render a template (saved or not) exactly as the AI agent would send it, against a real session of the organization: the session with `session_number`, else the most recent Salesforce-linked session, else an empty context. Returns the rendered HTML and text, the session used,
|
|
5616
|
+
* @description Render a template (saved or not) exactly as the AI agent would send it, against a real session of the organization: the session with `session_number`, else the most recent Salesforce-linked session, else an empty context. Returns the rendered HTML and text, the session used, the variables that came out empty, and — when `from_address` / `to_address` are passed — the From and To the AI would use on that session (null = the default applies). Requires the write scope because it resolves real contact data.
|
|
5541
5617
|
*/
|
|
5542
5618
|
post: operations["previewSalesforceAiReplyTemplate"];
|
|
5543
5619
|
delete?: never;
|
|
@@ -5821,16 +5897,28 @@ export interface components {
|
|
|
5821
5897
|
template_html: string;
|
|
5822
5898
|
is_default?: boolean;
|
|
5823
5899
|
rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
|
|
5900
|
+
/** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
|
|
5901
|
+
from_address?: string | null;
|
|
5902
|
+
/** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
|
|
5903
|
+
to_address?: string | null;
|
|
5824
5904
|
};
|
|
5825
5905
|
UpdateSalesforceAiReplyTemplateDto: {
|
|
5826
5906
|
name?: string;
|
|
5827
5907
|
template_html?: string;
|
|
5828
5908
|
is_default?: boolean;
|
|
5829
5909
|
rules?: components["schemas"]["SalesforceReplyTemplateRules"] | null;
|
|
5910
|
+
/** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
|
|
5911
|
+
from_address?: string | null;
|
|
5912
|
+
/** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
|
|
5913
|
+
to_address?: string | null;
|
|
5830
5914
|
};
|
|
5831
5915
|
PreviewSalesforceAiReplyTemplateDto: {
|
|
5832
5916
|
template_html: string;
|
|
5833
5917
|
session_number?: number;
|
|
5918
|
+
/** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
|
|
5919
|
+
from_address?: string | null;
|
|
5920
|
+
/** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
|
|
5921
|
+
to_address?: string | null;
|
|
5834
5922
|
};
|
|
5835
5923
|
CreateSlaPolicyDto: {
|
|
5836
5924
|
name: string;
|
|
@@ -7055,8 +7143,10 @@ export interface components {
|
|
|
7055
7143
|
};
|
|
7056
7144
|
/** @description Filter by channels (web, email, whatsapp, phone_voice, sms, slack, etc.) */
|
|
7057
7145
|
channels?: components["schemas"]["SessionChannel"][];
|
|
7058
|
-
/** @description Filter by status codes (0 = open, 1 = closed_resolved, 2 = closed_unresolved
|
|
7146
|
+
/** @description Filter by built-in status codes (0 = open, 1 = closed_resolved, 2 = closed_unresolved) */
|
|
7059
7147
|
status?: number[];
|
|
7148
|
+
/** @description Filter by custom status ids (sessions whose `sub_status_id` is any of these). Ids come from GET /custom-statuses. An empty array applies no filter, like the other array filters here. */
|
|
7149
|
+
sub_status_ids?: string[];
|
|
7060
7150
|
/** @description Filter by AI closure type (e.g. "handed_off", "resolved", "no_resolution") */
|
|
7061
7151
|
ai_closure?: ("assumed_resolved" | "handed_off" | "resolved")[];
|
|
7062
7152
|
/** @description Filter by customer sentiment (angry, happy, neutral) */
|
|
@@ -7197,6 +7287,44 @@ export interface components {
|
|
|
7197
7287
|
end_time: string;
|
|
7198
7288
|
}[];
|
|
7199
7289
|
};
|
|
7290
|
+
CreateCustomStatusDto: {
|
|
7291
|
+
/** @description Internal name shown to agents in the inbox (unique per organization, 1-100 chars) */
|
|
7292
|
+
name: string;
|
|
7293
|
+
/** @description Internal note for agents on when to use this status. Never shown to customers. */
|
|
7294
|
+
description?: string;
|
|
7295
|
+
/**
|
|
7296
|
+
* @description Built-in status this custom status refines: "open", "closed_resolved", or "closed_unresolved". Applying the custom status to a session moves the session to this built-in status, so an "open"-parented status reopens a closed session and a "closed_*"-parented one closes it.
|
|
7297
|
+
* @enum {string}
|
|
7298
|
+
*/
|
|
7299
|
+
parent_status: "closed_resolved" | "closed_unresolved" | "open";
|
|
7300
|
+
/** @description Customer-facing label (max 100 chars). Falls back to `name` when omitted. */
|
|
7301
|
+
display_name?: string;
|
|
7302
|
+
/** @description Customer-facing explanation. No fallback: when omitted, customers see no description. */
|
|
7303
|
+
display_description?: string;
|
|
7304
|
+
/** @description Badge color as #RRGGBB. Omit to inherit the parent status color. */
|
|
7305
|
+
color?: string;
|
|
7306
|
+
/** @description Inline SVG markup for the badge icon (sanitized server-side, max 10,000 chars). Omit for the default icon. */
|
|
7307
|
+
icon?: string;
|
|
7308
|
+
};
|
|
7309
|
+
UpdateCustomStatusPublicDto: {
|
|
7310
|
+
/** @description Internal name shown to agents (unique per organization, 1-100 chars) */
|
|
7311
|
+
name?: string;
|
|
7312
|
+
/** @description Internal note for agents on when to use this status */
|
|
7313
|
+
description?: string;
|
|
7314
|
+
/**
|
|
7315
|
+
* @description Built-in status this custom status refines: "open", "closed_resolved", or "closed_unresolved". Applying the custom status to a session moves the session to this built-in status, so an "open"-parented status reopens a closed session and a "closed_*"-parented one closes it. Moving a status across the open/closed boundary drops its ticketing-system stage mappings.
|
|
7316
|
+
* @enum {string}
|
|
7317
|
+
*/
|
|
7318
|
+
parent_status?: "closed_resolved" | "closed_unresolved" | "open";
|
|
7319
|
+
/** @description Customer-facing label (max 100 chars). null clears it back to `name`; omit to leave unchanged. */
|
|
7320
|
+
display_name?: string | null;
|
|
7321
|
+
/** @description Customer-facing explanation. null clears it; omit to leave unchanged. */
|
|
7322
|
+
display_description?: string | null;
|
|
7323
|
+
/** @description Badge color as #RRGGBB. null restores the parent status color; omit to leave unchanged. */
|
|
7324
|
+
color?: string | null;
|
|
7325
|
+
/** @description Inline SVG markup for the badge icon. null restores the default icon; omit to leave unchanged. */
|
|
7326
|
+
icon?: string | null;
|
|
7327
|
+
};
|
|
7200
7328
|
CreateWorkflowPublicInput: {
|
|
7201
7329
|
/** @description Workflow name */
|
|
7202
7330
|
name: string;
|
|
@@ -7267,6 +7395,11 @@ export interface components {
|
|
|
7267
7395
|
type?: "inbound" | "outbound";
|
|
7268
7396
|
/** @description Voice ID from the /phone/voices endpoint. Omit for default voice. */
|
|
7269
7397
|
voice_id?: string | null;
|
|
7398
|
+
/**
|
|
7399
|
+
* @description Voice provider returned by the /phone/voices endpoint. It is inferred from voice_id when omitted.
|
|
7400
|
+
* @enum {string}
|
|
7401
|
+
*/
|
|
7402
|
+
tts_provider?: "elevenlabs" | "cartesia";
|
|
7270
7403
|
/** @description ISO-639-1 language codes the agent should speak. A subset of {en, es, fr, de, hi, ru, pt, ja, it, nl} can be combined freely. Any other code (e.g. "ar", "tr", "zh") must be the only entry; Arabic accepts dialect tags such as "ar-SA". */
|
|
7271
7404
|
language?: string[];
|
|
7272
7405
|
/** @description What the agent says when it picks up (default: "Hello?") */
|
|
@@ -7296,6 +7429,11 @@ export interface components {
|
|
|
7296
7429
|
type?: "inbound" | "outbound";
|
|
7297
7430
|
/** @description Voice ID from the /phone/voices endpoint. Omit for default voice. */
|
|
7298
7431
|
voice_id?: string | null;
|
|
7432
|
+
/**
|
|
7433
|
+
* @description Voice provider returned by the /phone/voices endpoint. It is inferred from voice_id when omitted.
|
|
7434
|
+
* @enum {string}
|
|
7435
|
+
*/
|
|
7436
|
+
tts_provider?: "elevenlabs" | "cartesia";
|
|
7299
7437
|
/** @description ISO-639-1 language codes the agent should speak. A subset of {en, es, fr, de, hi, ru, pt, ja, it, nl} can be combined freely. Any other code (e.g. "ar", "tr", "zh") must be the only entry; Arabic accepts dialect tags such as "ar-SA". */
|
|
7300
7438
|
language?: string[];
|
|
7301
7439
|
/** @description What the agent says when it picks up (default: "Hello?") */
|
|
@@ -7556,6 +7694,13 @@ export interface components {
|
|
|
7556
7694
|
/** @description Additional context about the situation */
|
|
7557
7695
|
context?: string;
|
|
7558
7696
|
};
|
|
7697
|
+
SetChatSessionSubStatusInput: {
|
|
7698
|
+
/**
|
|
7699
|
+
* Format: uuid
|
|
7700
|
+
* @description Id of the custom status to apply, from GET /custom-statuses
|
|
7701
|
+
*/
|
|
7702
|
+
sub_status_id: string;
|
|
7703
|
+
};
|
|
7559
7704
|
InvestigateSessionDebugInput: {
|
|
7560
7705
|
/**
|
|
7561
7706
|
* Format: uuid
|
|
@@ -8351,6 +8496,10 @@ export interface components {
|
|
|
8351
8496
|
template_html: string;
|
|
8352
8497
|
is_default: boolean;
|
|
8353
8498
|
rules: components["schemas"]["SalesforceReplyTemplateRules"] | null;
|
|
8499
|
+
/** @description From address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{sf_case_LatestPOSEmail__c}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise Salesforce's default sender applies. Empty or null clears it. */
|
|
8500
|
+
from_address: string | null;
|
|
8501
|
+
/** @description To address of the AI agent's autopilot Case email: a literal address, a {{session attribute}} such as {{reservation_email}}, or an {{#if …}} branch, resolved per session. Used only when it resolves to an email address; otherwise the Case contact's address applies. Empty or null clears it. */
|
|
8502
|
+
to_address: string | null;
|
|
8354
8503
|
/** Format: date-time */
|
|
8355
8504
|
created_at: string;
|
|
8356
8505
|
/** Format: date-time */
|
|
@@ -8364,6 +8513,8 @@ export interface components {
|
|
|
8364
8513
|
text: string;
|
|
8365
8514
|
session_number: number | null;
|
|
8366
8515
|
missing_variables: string[];
|
|
8516
|
+
from_address: string | null;
|
|
8517
|
+
to_address: string | null;
|
|
8367
8518
|
};
|
|
8368
8519
|
ContactsFilter: {
|
|
8369
8520
|
/** @constant */
|
|
@@ -8538,6 +8689,22 @@ export interface components {
|
|
|
8538
8689
|
customDataKeys?: string[];
|
|
8539
8690
|
}[];
|
|
8540
8691
|
};
|
|
8692
|
+
CustomSessionStatusDto: {
|
|
8693
|
+
id: string;
|
|
8694
|
+
org_id: string;
|
|
8695
|
+
name: string;
|
|
8696
|
+
description: string | null;
|
|
8697
|
+
display_name: string | null;
|
|
8698
|
+
display_description: string | null;
|
|
8699
|
+
color: string | null;
|
|
8700
|
+
icon: string | null;
|
|
8701
|
+
/** @enum {string} */
|
|
8702
|
+
parent_status: "closed_resolved" | "closed_unresolved" | "open";
|
|
8703
|
+
/** Format: date-time */
|
|
8704
|
+
created_at: string;
|
|
8705
|
+
/** Format: date-time */
|
|
8706
|
+
updated_at: string;
|
|
8707
|
+
};
|
|
8541
8708
|
StructuredFieldSystemOptionDto: {
|
|
8542
8709
|
value: string;
|
|
8543
8710
|
label: string;
|
|
@@ -8918,11 +9085,15 @@ export interface components {
|
|
|
8918
9085
|
stt_keyterms: string[];
|
|
8919
9086
|
stt_model: ("deepgram/flux-general" | "deepgram/nova-3" | "deepgram/nova-3-medical" | "cartesia/ink-whisper" | "elevenlabs/scribe_v2_realtime" | "xai/stt-1" | "assemblyai/universal-3-5-pro" | "speechmatics/enhanced" | "google/gemini-3.5-transcribe-live" | "soniox/stt-rt-v5") | null;
|
|
8920
9087
|
tts_speed_pct: number | null;
|
|
9088
|
+
/** @enum {string} */
|
|
9089
|
+
tts_provider: "elevenlabs" | "cartesia";
|
|
8921
9090
|
failover_transfer_destination_id: string | null;
|
|
8922
9091
|
/** @description Transfer destinations the agent may transfer to (`transfer_call` targets). */
|
|
8923
9092
|
transfer_destination_ids: string[];
|
|
8924
9093
|
};
|
|
8925
9094
|
PhoneAgentVoiceDto: {
|
|
9095
|
+
/** @enum {string} */
|
|
9096
|
+
provider: "elevenlabs" | "cartesia";
|
|
8926
9097
|
voice_id: string;
|
|
8927
9098
|
name: string;
|
|
8928
9099
|
labels: {
|
|
@@ -10945,6 +11116,8 @@ export interface components {
|
|
|
10945
11116
|
id: string;
|
|
10946
11117
|
/** @enum {string} */
|
|
10947
11118
|
status: "open" | "closed_resolved" | "closed_unresolved";
|
|
11119
|
+
/** @description Id of the custom status refining `status`, or null when only the built-in status applies. Resolve it with GET /custom-statuses. */
|
|
11120
|
+
sub_status_id: string | null;
|
|
10948
11121
|
ai_closure_type: ("assumed_resolved" | "handed_off" | "resolved") | null;
|
|
10949
11122
|
sentiment: ("angry" | "happy" | "neutral") | null;
|
|
10950
11123
|
/** @description AI-generated summary of the conversation. Populated for both AI-resolved and handed-off sessions once the session has been summarized; null otherwise. */
|
|
@@ -12496,6 +12669,9 @@ export interface components {
|
|
|
12496
12669
|
chat: boolean;
|
|
12497
12670
|
email: boolean;
|
|
12498
12671
|
whatsapp: boolean;
|
|
12672
|
+
instagram: boolean;
|
|
12673
|
+
messenger: boolean;
|
|
12674
|
+
sms: boolean;
|
|
12499
12675
|
voice: boolean;
|
|
12500
12676
|
};
|
|
12501
12677
|
};
|
|
@@ -12766,6 +12942,10 @@ export interface components {
|
|
|
12766
12942
|
enabled: boolean;
|
|
12767
12943
|
};
|
|
12768
12944
|
ListTagCategoriesOutput: components["schemas"]["TagCategoryPublicResponseDto"][];
|
|
12945
|
+
ListCustomStatusesOutput: components["schemas"]["CustomSessionStatusDto"][];
|
|
12946
|
+
DeleteCustomStatusOutput: {
|
|
12947
|
+
message: string;
|
|
12948
|
+
};
|
|
12769
12949
|
ListWorkflowsOutput: components["schemas"]["WorkflowPublicResponseDto"][];
|
|
12770
12950
|
DeleteWorkflowOutput: {
|
|
12771
12951
|
success: boolean;
|
|
@@ -13854,6 +14034,74 @@ export interface operations {
|
|
|
13854
14034
|
};
|
|
13855
14035
|
};
|
|
13856
14036
|
};
|
|
14037
|
+
setChatSessionSubStatus: {
|
|
14038
|
+
parameters: {
|
|
14039
|
+
query?: never;
|
|
14040
|
+
header?: never;
|
|
14041
|
+
path: {
|
|
14042
|
+
/** @description The unique identifier of the chat session */
|
|
14043
|
+
session_id: string;
|
|
14044
|
+
};
|
|
14045
|
+
cookie?: never;
|
|
14046
|
+
};
|
|
14047
|
+
requestBody: {
|
|
14048
|
+
content: {
|
|
14049
|
+
"application/json": components["schemas"]["SetChatSessionSubStatusInput"];
|
|
14050
|
+
};
|
|
14051
|
+
};
|
|
14052
|
+
responses: {
|
|
14053
|
+
/** @description Default Response */
|
|
14054
|
+
200: {
|
|
14055
|
+
headers: {
|
|
14056
|
+
[name: string]: unknown;
|
|
14057
|
+
};
|
|
14058
|
+
content: {
|
|
14059
|
+
"application/json": components["schemas"]["GetChatSessionOutput"];
|
|
14060
|
+
};
|
|
14061
|
+
};
|
|
14062
|
+
/** @description Internal Server Error */
|
|
14063
|
+
500: {
|
|
14064
|
+
headers: {
|
|
14065
|
+
[name: string]: unknown;
|
|
14066
|
+
};
|
|
14067
|
+
content: {
|
|
14068
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
14069
|
+
};
|
|
14070
|
+
};
|
|
14071
|
+
};
|
|
14072
|
+
};
|
|
14073
|
+
clearChatSessionSubStatus: {
|
|
14074
|
+
parameters: {
|
|
14075
|
+
query?: never;
|
|
14076
|
+
header?: never;
|
|
14077
|
+
path: {
|
|
14078
|
+
/** @description The unique identifier of the chat session */
|
|
14079
|
+
session_id: string;
|
|
14080
|
+
};
|
|
14081
|
+
cookie?: never;
|
|
14082
|
+
};
|
|
14083
|
+
requestBody?: never;
|
|
14084
|
+
responses: {
|
|
14085
|
+
/** @description Default Response */
|
|
14086
|
+
200: {
|
|
14087
|
+
headers: {
|
|
14088
|
+
[name: string]: unknown;
|
|
14089
|
+
};
|
|
14090
|
+
content: {
|
|
14091
|
+
"application/json": components["schemas"]["GetChatSessionOutput"];
|
|
14092
|
+
};
|
|
14093
|
+
};
|
|
14094
|
+
/** @description Internal Server Error */
|
|
14095
|
+
500: {
|
|
14096
|
+
headers: {
|
|
14097
|
+
[name: string]: unknown;
|
|
14098
|
+
};
|
|
14099
|
+
content: {
|
|
14100
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
14101
|
+
};
|
|
14102
|
+
};
|
|
14103
|
+
};
|
|
14104
|
+
};
|
|
13857
14105
|
sendMessage: {
|
|
13858
14106
|
parameters: {
|
|
13859
14107
|
query?: never;
|
|
@@ -17770,6 +18018,168 @@ export interface operations {
|
|
|
17770
18018
|
};
|
|
17771
18019
|
};
|
|
17772
18020
|
};
|
|
18021
|
+
listCustomStatuses: {
|
|
18022
|
+
parameters: {
|
|
18023
|
+
query?: never;
|
|
18024
|
+
header?: never;
|
|
18025
|
+
path?: never;
|
|
18026
|
+
cookie?: never;
|
|
18027
|
+
};
|
|
18028
|
+
requestBody?: never;
|
|
18029
|
+
responses: {
|
|
18030
|
+
/** @description Default Response */
|
|
18031
|
+
200: {
|
|
18032
|
+
headers: {
|
|
18033
|
+
[name: string]: unknown;
|
|
18034
|
+
};
|
|
18035
|
+
content: {
|
|
18036
|
+
"application/json": components["schemas"]["ListCustomStatusesOutput"];
|
|
18037
|
+
};
|
|
18038
|
+
};
|
|
18039
|
+
/** @description Internal Server Error */
|
|
18040
|
+
500: {
|
|
18041
|
+
headers: {
|
|
18042
|
+
[name: string]: unknown;
|
|
18043
|
+
};
|
|
18044
|
+
content: {
|
|
18045
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
18046
|
+
};
|
|
18047
|
+
};
|
|
18048
|
+
};
|
|
18049
|
+
};
|
|
18050
|
+
createCustomStatus: {
|
|
18051
|
+
parameters: {
|
|
18052
|
+
query?: never;
|
|
18053
|
+
header?: never;
|
|
18054
|
+
path?: never;
|
|
18055
|
+
cookie?: never;
|
|
18056
|
+
};
|
|
18057
|
+
requestBody: {
|
|
18058
|
+
content: {
|
|
18059
|
+
"application/json": components["schemas"]["CreateCustomStatusDto"];
|
|
18060
|
+
};
|
|
18061
|
+
};
|
|
18062
|
+
responses: {
|
|
18063
|
+
/** @description Default Response */
|
|
18064
|
+
201: {
|
|
18065
|
+
headers: {
|
|
18066
|
+
[name: string]: unknown;
|
|
18067
|
+
};
|
|
18068
|
+
content: {
|
|
18069
|
+
"application/json": components["schemas"]["CustomSessionStatusDto"];
|
|
18070
|
+
};
|
|
18071
|
+
};
|
|
18072
|
+
/** @description Internal Server Error */
|
|
18073
|
+
500: {
|
|
18074
|
+
headers: {
|
|
18075
|
+
[name: string]: unknown;
|
|
18076
|
+
};
|
|
18077
|
+
content: {
|
|
18078
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
18079
|
+
};
|
|
18080
|
+
};
|
|
18081
|
+
};
|
|
18082
|
+
};
|
|
18083
|
+
getCustomStatus: {
|
|
18084
|
+
parameters: {
|
|
18085
|
+
query?: never;
|
|
18086
|
+
header?: never;
|
|
18087
|
+
path: {
|
|
18088
|
+
/** @description The custom status id */
|
|
18089
|
+
id: string;
|
|
18090
|
+
};
|
|
18091
|
+
cookie?: never;
|
|
18092
|
+
};
|
|
18093
|
+
requestBody?: never;
|
|
18094
|
+
responses: {
|
|
18095
|
+
/** @description Default Response */
|
|
18096
|
+
200: {
|
|
18097
|
+
headers: {
|
|
18098
|
+
[name: string]: unknown;
|
|
18099
|
+
};
|
|
18100
|
+
content: {
|
|
18101
|
+
"application/json": components["schemas"]["CustomSessionStatusDto"];
|
|
18102
|
+
};
|
|
18103
|
+
};
|
|
18104
|
+
/** @description Internal Server Error */
|
|
18105
|
+
500: {
|
|
18106
|
+
headers: {
|
|
18107
|
+
[name: string]: unknown;
|
|
18108
|
+
};
|
|
18109
|
+
content: {
|
|
18110
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
18111
|
+
};
|
|
18112
|
+
};
|
|
18113
|
+
};
|
|
18114
|
+
};
|
|
18115
|
+
deleteCustomStatus: {
|
|
18116
|
+
parameters: {
|
|
18117
|
+
query?: never;
|
|
18118
|
+
header?: never;
|
|
18119
|
+
path: {
|
|
18120
|
+
/** @description The custom status id */
|
|
18121
|
+
id: string;
|
|
18122
|
+
};
|
|
18123
|
+
cookie?: never;
|
|
18124
|
+
};
|
|
18125
|
+
requestBody?: never;
|
|
18126
|
+
responses: {
|
|
18127
|
+
/** @description Default Response */
|
|
18128
|
+
200: {
|
|
18129
|
+
headers: {
|
|
18130
|
+
[name: string]: unknown;
|
|
18131
|
+
};
|
|
18132
|
+
content: {
|
|
18133
|
+
"application/json": components["schemas"]["DeleteCustomStatusOutput"];
|
|
18134
|
+
};
|
|
18135
|
+
};
|
|
18136
|
+
/** @description Internal Server Error */
|
|
18137
|
+
500: {
|
|
18138
|
+
headers: {
|
|
18139
|
+
[name: string]: unknown;
|
|
18140
|
+
};
|
|
18141
|
+
content: {
|
|
18142
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
18143
|
+
};
|
|
18144
|
+
};
|
|
18145
|
+
};
|
|
18146
|
+
};
|
|
18147
|
+
updateCustomStatus: {
|
|
18148
|
+
parameters: {
|
|
18149
|
+
query?: never;
|
|
18150
|
+
header?: never;
|
|
18151
|
+
path: {
|
|
18152
|
+
/** @description The custom status id */
|
|
18153
|
+
id: string;
|
|
18154
|
+
};
|
|
18155
|
+
cookie?: never;
|
|
18156
|
+
};
|
|
18157
|
+
requestBody: {
|
|
18158
|
+
content: {
|
|
18159
|
+
"application/json": components["schemas"]["UpdateCustomStatusPublicDto"];
|
|
18160
|
+
};
|
|
18161
|
+
};
|
|
18162
|
+
responses: {
|
|
18163
|
+
/** @description Default Response */
|
|
18164
|
+
200: {
|
|
18165
|
+
headers: {
|
|
18166
|
+
[name: string]: unknown;
|
|
18167
|
+
};
|
|
18168
|
+
content: {
|
|
18169
|
+
"application/json": components["schemas"]["CustomSessionStatusDto"];
|
|
18170
|
+
};
|
|
18171
|
+
};
|
|
18172
|
+
/** @description Internal Server Error */
|
|
18173
|
+
500: {
|
|
18174
|
+
headers: {
|
|
18175
|
+
[name: string]: unknown;
|
|
18176
|
+
};
|
|
18177
|
+
content: {
|
|
18178
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
18179
|
+
};
|
|
18180
|
+
};
|
|
18181
|
+
};
|
|
18182
|
+
};
|
|
17773
18183
|
listWorkflowDefinitions: {
|
|
17774
18184
|
parameters: {
|
|
17775
18185
|
query?: never;
|
|
@@ -23655,6 +24065,8 @@ export interface operations {
|
|
|
23655
24065
|
has_actions?: "true" | "false";
|
|
23656
24066
|
tags?: string;
|
|
23657
24067
|
channels?: string;
|
|
24068
|
+
addons?: string;
|
|
24069
|
+
archived?: "only";
|
|
23658
24070
|
sort_by?: "created_at" | "name" | "members" | "data_sources" | "sessions_30d" | "total_sessions" | "last_session_at";
|
|
23659
24071
|
sort_dir?: "asc" | "desc";
|
|
23660
24072
|
};
|