@opencx/mcp 1.15.68 → 1.15.70
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/campaign-tools.spec.js +19 -0
- package/dist/campaign-tools.spec.js.map +1 -1
- package/dist/schema.d.ts +502 -17
- package/dist/schema.d.ts.map +1 -1
- package/dist/tools/campaign-spine.d.ts.map +1 -1
- package/dist/tools/campaign-spine.js +36 -0
- package/dist/tools/campaign-spine.js.map +1 -1
- package/dist/tools/sessions.js +1 -1
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/sla-analytics.d.ts.map +1 -1
- package/dist/tools/sla-analytics.js +56 -0
- package/dist/tools/sla-analytics.js.map +1 -1
- package/dist/tools/team-settings.d.ts +1 -0
- package/dist/tools/team-settings.d.ts.map +1 -1
- package/dist/tools/team-settings.js +6 -0
- package/dist/tools/team-settings.js.map +1 -1
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -290,7 +290,7 @@ export interface paths {
|
|
|
290
290
|
put?: never;
|
|
291
291
|
/**
|
|
292
292
|
* Merge sessions
|
|
293
|
-
* @description Permanently close source sessions and attach them to this primary. Sources cannot be reopened or replied to. All replies use the primary channel and recipients. Requires merge-sessions:write and OpenCX ticketing. Reuse idempotencyKey with the identical request when retrying.
|
|
293
|
+
* @description Permanently close source sessions and attach them to this primary. Sources cannot be reopened or replied to. All replies use the primary channel and recipients. Requires merge-sessions:write and OpenCX or Zendesk ticketing. Reuse idempotencyKey with the identical request when retrying.
|
|
294
294
|
*/
|
|
295
295
|
post: operations["mergeSessions"];
|
|
296
296
|
delete?: never;
|
|
@@ -3713,6 +3713,26 @@ export interface paths {
|
|
|
3713
3713
|
patch?: never;
|
|
3714
3714
|
trace?: never;
|
|
3715
3715
|
};
|
|
3716
|
+
"/sequences/number-pool-call-metrics": {
|
|
3717
|
+
parameters: {
|
|
3718
|
+
query?: never;
|
|
3719
|
+
header?: never;
|
|
3720
|
+
path?: never;
|
|
3721
|
+
cookie?: never;
|
|
3722
|
+
};
|
|
3723
|
+
/**
|
|
3724
|
+
* Read per-number metrics for sequence calls made through number pools
|
|
3725
|
+
* @description Read-only, workspace-scoped metrics from persisted pool attempts and call records. Excludes ordinary single-number/trunk calls and one-time calls. Returns zero totals and no rows when no pool calls match. Historical callers remain included after number replacement or pool reassignment. Filter by call start time (maximum 31 days), pool, agent, or sequence; group by caller number, UTC day, or retry position. No calls or settings are changed. Requires sequences:read.
|
|
3726
|
+
*/
|
|
3727
|
+
get: operations["getSequenceNumberPoolCallMetrics"];
|
|
3728
|
+
put?: never;
|
|
3729
|
+
post?: never;
|
|
3730
|
+
delete?: never;
|
|
3731
|
+
options?: never;
|
|
3732
|
+
head?: never;
|
|
3733
|
+
patch?: never;
|
|
3734
|
+
trace?: never;
|
|
3735
|
+
};
|
|
3716
3736
|
"/sequences/{sequenceId}/stats": {
|
|
3717
3737
|
parameters: {
|
|
3718
3738
|
query?: never;
|
|
@@ -6155,6 +6175,11 @@ export interface paths {
|
|
|
6155
6175
|
first_reply_target_seconds: number | null;
|
|
6156
6176
|
next_reply_target_seconds: number | null;
|
|
6157
6177
|
resolution_target_seconds: number | null;
|
|
6178
|
+
answer_target_seconds: number | null;
|
|
6179
|
+
answer_target_percent: number | null;
|
|
6180
|
+
/** @enum {string} */
|
|
6181
|
+
answer_count_mode: "all_offered" | "answered_only";
|
|
6182
|
+
answer_short_abandon_seconds: number | null;
|
|
6158
6183
|
created_at: string;
|
|
6159
6184
|
updated_at: string;
|
|
6160
6185
|
}[];
|
|
@@ -6202,6 +6227,11 @@ export interface paths {
|
|
|
6202
6227
|
first_reply_target_seconds: number | null;
|
|
6203
6228
|
next_reply_target_seconds: number | null;
|
|
6204
6229
|
resolution_target_seconds: number | null;
|
|
6230
|
+
answer_target_seconds: number | null;
|
|
6231
|
+
answer_target_percent: number | null;
|
|
6232
|
+
/** @enum {string} */
|
|
6233
|
+
answer_count_mode: "all_offered" | "answered_only";
|
|
6234
|
+
answer_short_abandon_seconds: number | null;
|
|
6205
6235
|
created_at: string;
|
|
6206
6236
|
updated_at: string;
|
|
6207
6237
|
};
|
|
@@ -6259,6 +6289,11 @@ export interface paths {
|
|
|
6259
6289
|
first_reply_target_seconds: number | null;
|
|
6260
6290
|
next_reply_target_seconds: number | null;
|
|
6261
6291
|
resolution_target_seconds: number | null;
|
|
6292
|
+
answer_target_seconds: number | null;
|
|
6293
|
+
answer_target_percent: number | null;
|
|
6294
|
+
/** @enum {string} */
|
|
6295
|
+
answer_count_mode: "all_offered" | "answered_only";
|
|
6296
|
+
answer_short_abandon_seconds: number | null;
|
|
6262
6297
|
created_at: string;
|
|
6263
6298
|
updated_at: string;
|
|
6264
6299
|
};
|
|
@@ -6307,6 +6342,11 @@ export interface paths {
|
|
|
6307
6342
|
first_reply_target_seconds: number | null;
|
|
6308
6343
|
next_reply_target_seconds: number | null;
|
|
6309
6344
|
resolution_target_seconds: number | null;
|
|
6345
|
+
answer_target_seconds: number | null;
|
|
6346
|
+
answer_target_percent: number | null;
|
|
6347
|
+
/** @enum {string} */
|
|
6348
|
+
answer_count_mode: "all_offered" | "answered_only";
|
|
6349
|
+
answer_short_abandon_seconds: number | null;
|
|
6310
6350
|
created_at: string;
|
|
6311
6351
|
updated_at: string;
|
|
6312
6352
|
};
|
|
@@ -6439,6 +6479,66 @@ export interface paths {
|
|
|
6439
6479
|
patch?: never;
|
|
6440
6480
|
trace?: never;
|
|
6441
6481
|
};
|
|
6482
|
+
"/sla/analytics/phone": {
|
|
6483
|
+
parameters: {
|
|
6484
|
+
query?: never;
|
|
6485
|
+
header?: never;
|
|
6486
|
+
path?: never;
|
|
6487
|
+
cookie?: never;
|
|
6488
|
+
};
|
|
6489
|
+
/**
|
|
6490
|
+
* Get phone answer-time analytics
|
|
6491
|
+
* @description Get how quickly callers waiting for an agent were answered: answer-time compliance, outcomes (answered, hung up, timed out, no agents, voicemail) and answer-time percentiles for a date range.
|
|
6492
|
+
*/
|
|
6493
|
+
get: operations["getPhoneAnswerAnalyticsOverview"];
|
|
6494
|
+
put?: never;
|
|
6495
|
+
post?: never;
|
|
6496
|
+
delete?: never;
|
|
6497
|
+
options?: never;
|
|
6498
|
+
head?: never;
|
|
6499
|
+
patch?: never;
|
|
6500
|
+
trace?: never;
|
|
6501
|
+
};
|
|
6502
|
+
"/sla/analytics/phone/breakdown": {
|
|
6503
|
+
parameters: {
|
|
6504
|
+
query?: never;
|
|
6505
|
+
header?: never;
|
|
6506
|
+
path?: never;
|
|
6507
|
+
cookie?: never;
|
|
6508
|
+
};
|
|
6509
|
+
/**
|
|
6510
|
+
* Get phone answer-time analytics breakdown
|
|
6511
|
+
* @description Get phone answer-time compliance and outcomes grouped by team, policy, day, or hour of day.
|
|
6512
|
+
*/
|
|
6513
|
+
get: operations["getPhoneAnswerAnalyticsBreakdown"];
|
|
6514
|
+
put?: never;
|
|
6515
|
+
post?: never;
|
|
6516
|
+
delete?: never;
|
|
6517
|
+
options?: never;
|
|
6518
|
+
head?: never;
|
|
6519
|
+
patch?: never;
|
|
6520
|
+
trace?: never;
|
|
6521
|
+
};
|
|
6522
|
+
"/sla/analytics/phone/agents": {
|
|
6523
|
+
parameters: {
|
|
6524
|
+
query?: never;
|
|
6525
|
+
header?: never;
|
|
6526
|
+
path?: never;
|
|
6527
|
+
cookie?: never;
|
|
6528
|
+
};
|
|
6529
|
+
/**
|
|
6530
|
+
* Get phone answer analytics per agent
|
|
6531
|
+
* @description Get each agent's rings: how many they were offered, answered, declined and missed, their answer rate and how quickly they answered once rung.
|
|
6532
|
+
*/
|
|
6533
|
+
get: operations["getPhoneAnswerAnalyticsAgents"];
|
|
6534
|
+
put?: never;
|
|
6535
|
+
post?: never;
|
|
6536
|
+
delete?: never;
|
|
6537
|
+
options?: never;
|
|
6538
|
+
head?: never;
|
|
6539
|
+
patch?: never;
|
|
6540
|
+
trace?: never;
|
|
6541
|
+
};
|
|
6442
6542
|
"/reports/query": {
|
|
6443
6543
|
parameters: {
|
|
6444
6544
|
query?: never;
|
|
@@ -7007,8 +7107,6 @@ export interface components {
|
|
|
7007
7107
|
schemas: {
|
|
7008
7108
|
/** @enum {string} */
|
|
7009
7109
|
SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions" | "app_review" | "internal";
|
|
7010
|
-
/** @enum {string} */
|
|
7011
|
-
MessageOptionType: "text" | "workflow";
|
|
7012
7110
|
MergeSessionsInput: {
|
|
7013
7111
|
/** Format: uuid */
|
|
7014
7112
|
idempotencyKey?: string;
|
|
@@ -7111,6 +7209,8 @@ export interface components {
|
|
|
7111
7209
|
value?: string;
|
|
7112
7210
|
}[];
|
|
7113
7211
|
};
|
|
7212
|
+
/** @enum {string} */
|
|
7213
|
+
MessageOptionType: "text" | "workflow";
|
|
7114
7214
|
SalesforceReplyTemplateRules: {
|
|
7115
7215
|
conditions: ({
|
|
7116
7216
|
/** @constant */
|
|
@@ -7184,6 +7284,17 @@ export interface components {
|
|
|
7184
7284
|
first_reply_target_seconds?: number | null;
|
|
7185
7285
|
next_reply_target_seconds?: number | null;
|
|
7186
7286
|
resolution_target_seconds?: number | null;
|
|
7287
|
+
/** @description Phone: callers waiting for a human must be answered within this many seconds (office hours only, when the policy has them). */
|
|
7288
|
+
answer_target_seconds?: number | null;
|
|
7289
|
+
/** @description Phone: goal for the share of calls answered within the target. */
|
|
7290
|
+
answer_target_percent?: number | null;
|
|
7291
|
+
/**
|
|
7292
|
+
* @description Phone: all_offered counts callers who were never answered as missed; answered_only grades answered calls only.
|
|
7293
|
+
* @enum {string}
|
|
7294
|
+
*/
|
|
7295
|
+
answer_count_mode?: "all_offered" | "answered_only";
|
|
7296
|
+
/** @description Phone: leave out callers who hang up within this many seconds of waiting. */
|
|
7297
|
+
answer_short_abandon_seconds?: number | null;
|
|
7187
7298
|
};
|
|
7188
7299
|
UpdateSlaPolicyDto: {
|
|
7189
7300
|
name?: string;
|
|
@@ -7191,6 +7302,17 @@ export interface components {
|
|
|
7191
7302
|
first_reply_target_seconds?: number | null;
|
|
7192
7303
|
next_reply_target_seconds?: number | null;
|
|
7193
7304
|
resolution_target_seconds?: number | null;
|
|
7305
|
+
/** @description Phone: callers waiting for a human must be answered within this many seconds (office hours only, when the policy has them). */
|
|
7306
|
+
answer_target_seconds?: number | null;
|
|
7307
|
+
/** @description Phone: goal for the share of calls answered within the target. */
|
|
7308
|
+
answer_target_percent?: number | null;
|
|
7309
|
+
/**
|
|
7310
|
+
* @description Phone: all_offered counts callers who were never answered as missed; answered_only grades answered calls only.
|
|
7311
|
+
* @enum {string}
|
|
7312
|
+
*/
|
|
7313
|
+
answer_count_mode?: "all_offered" | "answered_only";
|
|
7314
|
+
/** @description Phone: leave out callers who hang up within this many seconds of waiting. */
|
|
7315
|
+
answer_short_abandon_seconds?: number | null;
|
|
7194
7316
|
};
|
|
7195
7317
|
CreateVocCategoryDto: {
|
|
7196
7318
|
name: string;
|
|
@@ -7432,6 +7554,8 @@ export interface components {
|
|
|
7432
7554
|
telephony_queue_wait_seconds?: number;
|
|
7433
7555
|
/** @enum {string} */
|
|
7434
7556
|
telephony_distribution?: "fewest_answered_today" | "longest_available";
|
|
7557
|
+
/** @description SLA policy whose phone answer-time target grades calls waiting in this team. Null uses the organization default. */
|
|
7558
|
+
phone_sla_policy_id?: string | null;
|
|
7435
7559
|
/** @description Seconds between automatic assignments to the same agent under the least-busy strategy: 0 turns pacing off, otherwise 15 to 3600. */
|
|
7436
7560
|
auto_assign_interval_seconds?: number;
|
|
7437
7561
|
};
|
|
@@ -7539,6 +7663,11 @@ export interface components {
|
|
|
7539
7663
|
};
|
|
7540
7664
|
/** @description Extra instructions for the AI agent, scoped to this call only. Appended to the agent instructions in a clearly-scoped block — they complement, never replace, the agent prompt. */
|
|
7541
7665
|
extraInstructions?: string;
|
|
7666
|
+
/**
|
|
7667
|
+
* Format: uuid
|
|
7668
|
+
* @description Open the call as a sub-session of this session. The call session then shows under it in the inbox and carries it as the parent in Call Finished workflows. The session must belong to the same organization; otherwise the request fails with `parent_session_not_found`.
|
|
7669
|
+
*/
|
|
7670
|
+
parentSessionId?: string;
|
|
7542
7671
|
};
|
|
7543
7672
|
RedactMessageDto: {
|
|
7544
7673
|
/** @description The message UUID to be redacted */
|
|
@@ -9373,7 +9502,7 @@ export interface components {
|
|
|
9373
9502
|
recording_enabled?: boolean;
|
|
9374
9503
|
};
|
|
9375
9504
|
SetPhoneAgentCallerNumberInput: {
|
|
9376
|
-
/** @description A phone number verified
|
|
9505
|
+
/** @description A phone number verified in your workspace (E.164), or null to clear the caller ID. Clears the agent’s pool selection and keeps its assigned SIP trunk. */
|
|
9377
9506
|
caller_number: string | null;
|
|
9378
9507
|
};
|
|
9379
9508
|
WriteSecretInputDto: {
|
|
@@ -9434,6 +9563,8 @@ export interface components {
|
|
|
9434
9563
|
telephony_queue_wait_seconds?: number;
|
|
9435
9564
|
/** @enum {string} */
|
|
9436
9565
|
telephony_distribution?: "fewest_answered_today" | "longest_available";
|
|
9566
|
+
/** @description SLA policy whose phone answer-time target grades calls waiting in this team. Null uses the organization default. */
|
|
9567
|
+
phone_sla_policy_id?: string | null;
|
|
9437
9568
|
/** @description Seconds between automatic assignments to the same agent under the least-busy strategy: 0 turns pacing off, otherwise 15 to 3600. */
|
|
9438
9569
|
auto_assign_interval_seconds?: number;
|
|
9439
9570
|
};
|
|
@@ -9777,6 +9908,18 @@ export interface components {
|
|
|
9777
9908
|
created_by_name: string | null;
|
|
9778
9909
|
created_by_email: string | null;
|
|
9779
9910
|
};
|
|
9911
|
+
MergeSessionsResult: {
|
|
9912
|
+
/** Format: uuid */
|
|
9913
|
+
mergeId: string;
|
|
9914
|
+
/** Format: uuid */
|
|
9915
|
+
primarySessionId: string;
|
|
9916
|
+
sources: {
|
|
9917
|
+
id: string;
|
|
9918
|
+
ticket_number: number;
|
|
9919
|
+
/** @enum {string} */
|
|
9920
|
+
main_status: "closed_resolved" | "closed_unresolved" | "open";
|
|
9921
|
+
}[];
|
|
9922
|
+
};
|
|
9780
9923
|
ChatAttachmentDto: {
|
|
9781
9924
|
id: string;
|
|
9782
9925
|
name: string;
|
|
@@ -10493,18 +10636,6 @@ export interface components {
|
|
|
10493
10636
|
phone_call_id?: string | null;
|
|
10494
10637
|
phone_call?: components["schemas"]["PhoneCallDto"] | null;
|
|
10495
10638
|
};
|
|
10496
|
-
MergeSessionsResult: {
|
|
10497
|
-
/** Format: uuid */
|
|
10498
|
-
mergeId: string;
|
|
10499
|
-
/** Format: uuid */
|
|
10500
|
-
primarySessionId: string;
|
|
10501
|
-
sources: {
|
|
10502
|
-
id: string;
|
|
10503
|
-
ticket_number: number;
|
|
10504
|
-
/** @enum {string} */
|
|
10505
|
-
main_status: "closed_resolved" | "closed_unresolved" | "open";
|
|
10506
|
-
}[];
|
|
10507
|
-
};
|
|
10508
10639
|
SalesforceAiReplyTemplateDto: {
|
|
10509
10640
|
/** Format: uuid */
|
|
10510
10641
|
id: string;
|
|
@@ -11093,6 +11224,7 @@ export interface components {
|
|
|
11093
11224
|
telephony_queue_wait_seconds: number;
|
|
11094
11225
|
/** @enum {string} */
|
|
11095
11226
|
telephony_distribution: "fewest_answered_today" | "longest_available";
|
|
11227
|
+
phone_sla_policy_id: string | null;
|
|
11096
11228
|
auto_assign_interval_seconds: number;
|
|
11097
11229
|
zendesk_group_id: string | null;
|
|
11098
11230
|
zendesk_group_channels: components["schemas"]["SessionChannel"][] | null;
|
|
@@ -11746,6 +11878,18 @@ export interface components {
|
|
|
11746
11878
|
session_id: string | null;
|
|
11747
11879
|
session_ticket_number: number | null;
|
|
11748
11880
|
reason?: string;
|
|
11881
|
+
/** @description Progress within a phone step using a number pool. Absent for other steps; state remains the compatible overall step status. */
|
|
11882
|
+
number_pool?: {
|
|
11883
|
+
/** @enum {string} */
|
|
11884
|
+
status: "calling" | "retry_scheduled" | "answered" | "exhausted" | "paused" | "stopped";
|
|
11885
|
+
/** @description Number of call attempts started for this step. */
|
|
11886
|
+
attempts: number;
|
|
11887
|
+
max_attempts: number;
|
|
11888
|
+
/** @description Caller number selected for the latest pool attempt. While waiting to retry, this remains the previous attempt’s number until the next attempt starts. */
|
|
11889
|
+
caller_number?: string;
|
|
11890
|
+
/** @description Earliest time the next attempt can start; null when no retry is scheduled. */
|
|
11891
|
+
next_retry_at: string | null;
|
|
11892
|
+
};
|
|
11749
11893
|
};
|
|
11750
11894
|
render: {
|
|
11751
11895
|
/** @constant */
|
|
@@ -11862,6 +12006,18 @@ export interface components {
|
|
|
11862
12006
|
session_id: string | null;
|
|
11863
12007
|
session_ticket_number: number | null;
|
|
11864
12008
|
reason?: string;
|
|
12009
|
+
/** @description Progress within a phone step using a number pool. Absent for other steps; state remains the compatible overall step status. */
|
|
12010
|
+
number_pool?: {
|
|
12011
|
+
/** @enum {string} */
|
|
12012
|
+
status: "calling" | "retry_scheduled" | "answered" | "exhausted" | "paused" | "stopped";
|
|
12013
|
+
/** @description Number of call attempts started for this step. */
|
|
12014
|
+
attempts: number;
|
|
12015
|
+
max_attempts: number;
|
|
12016
|
+
/** @description Caller number selected for the latest pool attempt. While waiting to retry, this remains the previous attempt’s number until the next attempt starts. */
|
|
12017
|
+
caller_number?: string;
|
|
12018
|
+
/** @description Earliest time the next attempt can start; null when no retry is scheduled. */
|
|
12019
|
+
next_retry_at: string | null;
|
|
12020
|
+
};
|
|
11865
12021
|
}[];
|
|
11866
12022
|
personalized_steps: number;
|
|
11867
12023
|
/** Format: date-time */
|
|
@@ -11914,6 +12070,18 @@ export interface components {
|
|
|
11914
12070
|
session_id: string | null;
|
|
11915
12071
|
session_ticket_number: number | null;
|
|
11916
12072
|
reason?: string;
|
|
12073
|
+
/** @description Progress within a phone step using a number pool. Absent for other steps; state remains the compatible overall step status. */
|
|
12074
|
+
number_pool?: {
|
|
12075
|
+
/** @enum {string} */
|
|
12076
|
+
status: "calling" | "retry_scheduled" | "answered" | "exhausted" | "paused" | "stopped";
|
|
12077
|
+
/** @description Number of call attempts started for this step. */
|
|
12078
|
+
attempts: number;
|
|
12079
|
+
max_attempts: number;
|
|
12080
|
+
/** @description Caller number selected for the latest pool attempt. While waiting to retry, this remains the previous attempt’s number until the next attempt starts. */
|
|
12081
|
+
caller_number?: string;
|
|
12082
|
+
/** @description Earliest time the next attempt can start; null when no retry is scheduled. */
|
|
12083
|
+
next_retry_at: string | null;
|
|
12084
|
+
};
|
|
11917
12085
|
}[];
|
|
11918
12086
|
personalized_steps: number;
|
|
11919
12087
|
/** Format: date-time */
|
|
@@ -12714,11 +12882,24 @@ export interface components {
|
|
|
12714
12882
|
*/
|
|
12715
12883
|
agent_id: string;
|
|
12716
12884
|
name: string | null;
|
|
12885
|
+
/** @description The calling pool configured on this agent, including its sequence retry policy. */
|
|
12886
|
+
number_pool?: {
|
|
12887
|
+
/**
|
|
12888
|
+
* Format: uuid
|
|
12889
|
+
* @description The number pool this agent uses for outbound calls. Must belong to the same workspace.
|
|
12890
|
+
*/
|
|
12891
|
+
pool_id: string;
|
|
12892
|
+
/** @description Maximum calls per sequence phone step, each using a different available number. Defaults to 3. Calls stop sooner if no unused numbers remain in the pool. */
|
|
12893
|
+
max_attempts?: number;
|
|
12894
|
+
/** @description Minutes after an unsuccessful call finishes before the next attempt. Defaults to 2 and respects the sequence calling window. */
|
|
12895
|
+
retry_delay_minutes?: number;
|
|
12896
|
+
name: string;
|
|
12897
|
+
} | null;
|
|
12717
12898
|
/** @description The caller ID people see, when the agent presents one. */
|
|
12718
12899
|
caller_number: string | null;
|
|
12719
12900
|
eligible: boolean;
|
|
12720
12901
|
/** @enum {string} */
|
|
12721
|
-
ineligible_reason?: "not_livekit" | "foreign_trunk" | "no_caller_number" | "no_hosted_trunk";
|
|
12902
|
+
ineligible_reason?: "not_livekit" | "foreign_trunk" | "no_caller_number" | "no_hosted_trunk" | "number_pool_unavailable";
|
|
12722
12903
|
first_message: string | null;
|
|
12723
12904
|
persona: string[];
|
|
12724
12905
|
}[];
|
|
@@ -15863,6 +16044,74 @@ export interface components {
|
|
|
15863
16044
|
}[];
|
|
15864
16045
|
next: string | null;
|
|
15865
16046
|
};
|
|
16047
|
+
NumberPoolCallMetricsResponse: {
|
|
16048
|
+
/** @constant */
|
|
16049
|
+
scope: "sequence_number_pool_calls";
|
|
16050
|
+
start_date: string;
|
|
16051
|
+
end_date: string;
|
|
16052
|
+
/**
|
|
16053
|
+
* @description Group by recorded pool caller number, UTC day, or 1-based attempt position within a sequence step.
|
|
16054
|
+
* @default caller_number
|
|
16055
|
+
* @enum {string}
|
|
16056
|
+
*/
|
|
16057
|
+
group_by: "caller_number" | "day" | "attempt";
|
|
16058
|
+
totals: {
|
|
16059
|
+
/** @description Distinct persisted call attempts; retries count separately. */
|
|
16060
|
+
attempts: number;
|
|
16061
|
+
/** @description Distinct contacts linked to owned call sessions; never sum this across groups. */
|
|
16062
|
+
unique_contacts: number;
|
|
16063
|
+
/** @description Attempts settled as human answered by the sequence. */
|
|
16064
|
+
answered: number;
|
|
16065
|
+
voicemail: number;
|
|
16066
|
+
no_answer: number;
|
|
16067
|
+
/** @description Busy or declined attempts, matching the sequence outcome. */
|
|
16068
|
+
busy: number;
|
|
16069
|
+
/** @description Attempts settled as failed, including canceled or missed attempts. */
|
|
16070
|
+
failed: number;
|
|
16071
|
+
/** @description Unsettled attempts still initiating, ringing or in progress. */
|
|
16072
|
+
pending: number;
|
|
16073
|
+
/** @description Terminal attempts without a recognized pool outcome yet. */
|
|
16074
|
+
unknown: number;
|
|
16075
|
+
/** @description Human-answered attempts / all attempts × 100; null when no attempts. */
|
|
16076
|
+
answer_rate: number | null;
|
|
16077
|
+
/** @description Sum of answered_at to ended_at for ended connected calls, including voicemail. */
|
|
16078
|
+
connected_seconds: number;
|
|
16079
|
+
/** @description Average over ended calls with valid answer/end timestamps; null when none. */
|
|
16080
|
+
average_connected_seconds: number | null;
|
|
16081
|
+
/** @description Average over calls with a recorded ring duration; null when none. */
|
|
16082
|
+
average_ring_seconds: number | null;
|
|
16083
|
+
};
|
|
16084
|
+
rows: {
|
|
16085
|
+
/** @description Distinct persisted call attempts; retries count separately. */
|
|
16086
|
+
attempts: number;
|
|
16087
|
+
/** @description Distinct contacts linked to owned call sessions; never sum this across groups. */
|
|
16088
|
+
unique_contacts: number;
|
|
16089
|
+
/** @description Attempts settled as human answered by the sequence. */
|
|
16090
|
+
answered: number;
|
|
16091
|
+
voicemail: number;
|
|
16092
|
+
no_answer: number;
|
|
16093
|
+
/** @description Busy or declined attempts, matching the sequence outcome. */
|
|
16094
|
+
busy: number;
|
|
16095
|
+
/** @description Attempts settled as failed, including canceled or missed attempts. */
|
|
16096
|
+
failed: number;
|
|
16097
|
+
/** @description Unsettled attempts still initiating, ringing or in progress. */
|
|
16098
|
+
pending: number;
|
|
16099
|
+
/** @description Terminal attempts without a recognized pool outcome yet. */
|
|
16100
|
+
unknown: number;
|
|
16101
|
+
/** @description Human-answered attempts / all attempts × 100; null when no attempts. */
|
|
16102
|
+
answer_rate: number | null;
|
|
16103
|
+
/** @description Sum of answered_at to ended_at for ended connected calls, including voicemail. */
|
|
16104
|
+
connected_seconds: number;
|
|
16105
|
+
/** @description Average over ended calls with valid answer/end timestamps; null when none. */
|
|
16106
|
+
average_connected_seconds: number | null;
|
|
16107
|
+
/** @description Average over calls with a recorded ring duration; null when none. */
|
|
16108
|
+
average_ring_seconds: number | null;
|
|
16109
|
+
/** @description Caller number, UTC date, or attempt position. Null means caller ID was not recorded. */
|
|
16110
|
+
key: string | null;
|
|
16111
|
+
}[];
|
|
16112
|
+
/** @description At most 500 groups are returned. Totals cover the full filtered window; narrow filters if true. */
|
|
16113
|
+
truncated: boolean;
|
|
16114
|
+
};
|
|
15866
16115
|
DiscoverCampaignPeopleResponseDto: {
|
|
15867
16116
|
insights: {
|
|
15868
16117
|
insight_id: string;
|
|
@@ -16186,6 +16435,86 @@ export interface components {
|
|
|
16186
16435
|
message: string;
|
|
16187
16436
|
error?: string;
|
|
16188
16437
|
};
|
|
16438
|
+
PhoneAnswerOverviewResponseDto: {
|
|
16439
|
+
/** @description Times a caller waited for an agent (finished waits only). */
|
|
16440
|
+
waits: number;
|
|
16441
|
+
answered: number;
|
|
16442
|
+
caller_hung_up: number;
|
|
16443
|
+
timed_out: number;
|
|
16444
|
+
no_agents: number;
|
|
16445
|
+
voicemail: number;
|
|
16446
|
+
/** @description Waits ended by a call failure on our side. Never graded, not an abandon. */
|
|
16447
|
+
failed: number;
|
|
16448
|
+
/** @description Answered within the target. */
|
|
16449
|
+
met: number;
|
|
16450
|
+
missed: number;
|
|
16451
|
+
/** @description Left out of the SLA: short abandons, and unanswered waits under answered_only. */
|
|
16452
|
+
excluded: number;
|
|
16453
|
+
/** @description Waits not graded: no phone answer-time policy applied, or the call failed. */
|
|
16454
|
+
ungraded: number;
|
|
16455
|
+
/** @description met / (met + missed), 0–1. */
|
|
16456
|
+
compliance_rate: number;
|
|
16457
|
+
/** @description caller_hung_up / waits, 0–1. */
|
|
16458
|
+
abandon_rate: number;
|
|
16459
|
+
/** @description Average wait of answered callers. */
|
|
16460
|
+
avg_answer_seconds: number | null;
|
|
16461
|
+
answer_seconds_p50: number | null;
|
|
16462
|
+
answer_seconds_p90: number | null;
|
|
16463
|
+
answer_seconds_p95: number | null;
|
|
16464
|
+
/** @description The answer-time goal (%) when every graded wait in range used the same policy. */
|
|
16465
|
+
target_percent: number | null;
|
|
16466
|
+
};
|
|
16467
|
+
PhoneAnswerBreakdownResponseDto: {
|
|
16468
|
+
/** @description Times a caller waited for an agent (finished waits only). */
|
|
16469
|
+
waits: number;
|
|
16470
|
+
answered: number;
|
|
16471
|
+
caller_hung_up: number;
|
|
16472
|
+
timed_out: number;
|
|
16473
|
+
no_agents: number;
|
|
16474
|
+
voicemail: number;
|
|
16475
|
+
/** @description Waits ended by a call failure on our side. Never graded, not an abandon. */
|
|
16476
|
+
failed: number;
|
|
16477
|
+
/** @description Answered within the target. */
|
|
16478
|
+
met: number;
|
|
16479
|
+
missed: number;
|
|
16480
|
+
/** @description Left out of the SLA: short abandons, and unanswered waits under answered_only. */
|
|
16481
|
+
excluded: number;
|
|
16482
|
+
/** @description Waits not graded: no phone answer-time policy applied, or the call failed. */
|
|
16483
|
+
ungraded: number;
|
|
16484
|
+
/** @description met / (met + missed), 0–1. */
|
|
16485
|
+
compliance_rate: number;
|
|
16486
|
+
/** @description caller_hung_up / waits, 0–1. */
|
|
16487
|
+
abandon_rate: number;
|
|
16488
|
+
/** @description Average wait of answered callers. */
|
|
16489
|
+
avg_answer_seconds: number | null;
|
|
16490
|
+
answer_seconds_p50: number | null;
|
|
16491
|
+
answer_seconds_p90: number | null;
|
|
16492
|
+
answer_seconds_p95: number | null;
|
|
16493
|
+
grouping: {
|
|
16494
|
+
/** @enum {string} */
|
|
16495
|
+
type: "team" | "policy" | "day" | "hour";
|
|
16496
|
+
id: string | number | null;
|
|
16497
|
+
name: string;
|
|
16498
|
+
};
|
|
16499
|
+
}[];
|
|
16500
|
+
PhoneAnswerAgentsResponseDto: {
|
|
16501
|
+
user_id: number;
|
|
16502
|
+
name: string;
|
|
16503
|
+
/** @description Rings this agent received. */
|
|
16504
|
+
offered: number;
|
|
16505
|
+
answered: number;
|
|
16506
|
+
declined: number;
|
|
16507
|
+
/** @description Rings that ran out on this agent. */
|
|
16508
|
+
missed: number;
|
|
16509
|
+
/** @description Rings ended by someone else answering or the caller leaving. */
|
|
16510
|
+
canceled: number;
|
|
16511
|
+
/** @description answered / (answered + declined + missed), 0–1. */
|
|
16512
|
+
answer_rate: number;
|
|
16513
|
+
/** @description From this agent’s ring to their accept. */
|
|
16514
|
+
avg_seconds_to_answer: number | null;
|
|
16515
|
+
/** @description Answers given within the target, timed from this agent’s own ring. */
|
|
16516
|
+
answered_within_target: number;
|
|
16517
|
+
}[];
|
|
16189
16518
|
RunReportQueryResponseDto: {
|
|
16190
16519
|
rows: {
|
|
16191
16520
|
[key: string]: unknown;
|
|
@@ -24974,6 +25303,46 @@ export interface operations {
|
|
|
24974
25303
|
};
|
|
24975
25304
|
};
|
|
24976
25305
|
};
|
|
25306
|
+
getSequenceNumberPoolCallMetrics: {
|
|
25307
|
+
parameters: {
|
|
25308
|
+
query: {
|
|
25309
|
+
/** @description Inclusive call start time, with timezone. */
|
|
25310
|
+
start_date: string;
|
|
25311
|
+
/** @description Exclusive call start time, with timezone. Maximum window: 31 days. */
|
|
25312
|
+
end_date: string;
|
|
25313
|
+
/** @description Group by recorded pool caller number, UTC day, or 1-based attempt position within a sequence step. */
|
|
25314
|
+
group_by?: "caller_number" | "day" | "attempt";
|
|
25315
|
+
/** @description Pool used at call time, including a pool that has since been deleted. */
|
|
25316
|
+
pool_id?: string;
|
|
25317
|
+
sequence_id?: string;
|
|
25318
|
+
agent_id?: string;
|
|
25319
|
+
};
|
|
25320
|
+
header?: never;
|
|
25321
|
+
path?: never;
|
|
25322
|
+
cookie?: never;
|
|
25323
|
+
};
|
|
25324
|
+
requestBody?: never;
|
|
25325
|
+
responses: {
|
|
25326
|
+
/** @description Default Response */
|
|
25327
|
+
200: {
|
|
25328
|
+
headers: {
|
|
25329
|
+
[name: string]: unknown;
|
|
25330
|
+
};
|
|
25331
|
+
content: {
|
|
25332
|
+
"application/json": components["schemas"]["NumberPoolCallMetricsResponse"];
|
|
25333
|
+
};
|
|
25334
|
+
};
|
|
25335
|
+
/** @description Internal Server Error */
|
|
25336
|
+
500: {
|
|
25337
|
+
headers: {
|
|
25338
|
+
[name: string]: unknown;
|
|
25339
|
+
};
|
|
25340
|
+
content: {
|
|
25341
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
25342
|
+
};
|
|
25343
|
+
};
|
|
25344
|
+
};
|
|
25345
|
+
};
|
|
24977
25346
|
getSequenceStats: {
|
|
24978
25347
|
parameters: {
|
|
24979
25348
|
query?: never;
|
|
@@ -30138,6 +30507,122 @@ export interface operations {
|
|
|
30138
30507
|
};
|
|
30139
30508
|
};
|
|
30140
30509
|
};
|
|
30510
|
+
getPhoneAnswerAnalyticsOverview: {
|
|
30511
|
+
parameters: {
|
|
30512
|
+
query: {
|
|
30513
|
+
/** @description Start of the range, on when callers started waiting. */
|
|
30514
|
+
from: unknown;
|
|
30515
|
+
/** @description End of the range, on when callers started waiting. */
|
|
30516
|
+
to: unknown;
|
|
30517
|
+
/** @description IANA timezone for day and hour buckets. */
|
|
30518
|
+
timezone?: string;
|
|
30519
|
+
team_id?: string;
|
|
30520
|
+
policy_id?: string;
|
|
30521
|
+
};
|
|
30522
|
+
header?: never;
|
|
30523
|
+
path?: never;
|
|
30524
|
+
cookie?: never;
|
|
30525
|
+
};
|
|
30526
|
+
requestBody?: never;
|
|
30527
|
+
responses: {
|
|
30528
|
+
/** @description Default Response */
|
|
30529
|
+
200: {
|
|
30530
|
+
headers: {
|
|
30531
|
+
[name: string]: unknown;
|
|
30532
|
+
};
|
|
30533
|
+
content: {
|
|
30534
|
+
"application/json": components["schemas"]["PhoneAnswerOverviewResponseDto"];
|
|
30535
|
+
};
|
|
30536
|
+
};
|
|
30537
|
+
/** @description Internal Server Error */
|
|
30538
|
+
500: {
|
|
30539
|
+
headers: {
|
|
30540
|
+
[name: string]: unknown;
|
|
30541
|
+
};
|
|
30542
|
+
content: {
|
|
30543
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
30544
|
+
};
|
|
30545
|
+
};
|
|
30546
|
+
};
|
|
30547
|
+
};
|
|
30548
|
+
getPhoneAnswerAnalyticsBreakdown: {
|
|
30549
|
+
parameters: {
|
|
30550
|
+
query: {
|
|
30551
|
+
/** @description Start of the range, on when callers started waiting. */
|
|
30552
|
+
from: unknown;
|
|
30553
|
+
/** @description End of the range, on when callers started waiting. */
|
|
30554
|
+
to: unknown;
|
|
30555
|
+
/** @description IANA timezone for day and hour buckets. */
|
|
30556
|
+
timezone?: string;
|
|
30557
|
+
team_id?: string;
|
|
30558
|
+
policy_id?: string;
|
|
30559
|
+
/** @description day = calendar day, hour = hour of day (0–23) across the whole range, both in `timezone`. */
|
|
30560
|
+
group_by: "team" | "policy" | "day" | "hour";
|
|
30561
|
+
};
|
|
30562
|
+
header?: never;
|
|
30563
|
+
path?: never;
|
|
30564
|
+
cookie?: never;
|
|
30565
|
+
};
|
|
30566
|
+
requestBody?: never;
|
|
30567
|
+
responses: {
|
|
30568
|
+
/** @description Default Response */
|
|
30569
|
+
200: {
|
|
30570
|
+
headers: {
|
|
30571
|
+
[name: string]: unknown;
|
|
30572
|
+
};
|
|
30573
|
+
content: {
|
|
30574
|
+
"application/json": components["schemas"]["PhoneAnswerBreakdownResponseDto"];
|
|
30575
|
+
};
|
|
30576
|
+
};
|
|
30577
|
+
/** @description Internal Server Error */
|
|
30578
|
+
500: {
|
|
30579
|
+
headers: {
|
|
30580
|
+
[name: string]: unknown;
|
|
30581
|
+
};
|
|
30582
|
+
content: {
|
|
30583
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
30584
|
+
};
|
|
30585
|
+
};
|
|
30586
|
+
};
|
|
30587
|
+
};
|
|
30588
|
+
getPhoneAnswerAnalyticsAgents: {
|
|
30589
|
+
parameters: {
|
|
30590
|
+
query: {
|
|
30591
|
+
/** @description Start of the range, on when callers started waiting. */
|
|
30592
|
+
from: unknown;
|
|
30593
|
+
/** @description End of the range, on when callers started waiting. */
|
|
30594
|
+
to: unknown;
|
|
30595
|
+
/** @description IANA timezone for day and hour buckets. */
|
|
30596
|
+
timezone?: string;
|
|
30597
|
+
team_id?: string;
|
|
30598
|
+
policy_id?: string;
|
|
30599
|
+
};
|
|
30600
|
+
header?: never;
|
|
30601
|
+
path?: never;
|
|
30602
|
+
cookie?: never;
|
|
30603
|
+
};
|
|
30604
|
+
requestBody?: never;
|
|
30605
|
+
responses: {
|
|
30606
|
+
/** @description Default Response */
|
|
30607
|
+
200: {
|
|
30608
|
+
headers: {
|
|
30609
|
+
[name: string]: unknown;
|
|
30610
|
+
};
|
|
30611
|
+
content: {
|
|
30612
|
+
"application/json": components["schemas"]["PhoneAnswerAgentsResponseDto"];
|
|
30613
|
+
};
|
|
30614
|
+
};
|
|
30615
|
+
/** @description Internal Server Error */
|
|
30616
|
+
500: {
|
|
30617
|
+
headers: {
|
|
30618
|
+
[name: string]: unknown;
|
|
30619
|
+
};
|
|
30620
|
+
content: {
|
|
30621
|
+
"application/json": components["schemas"]["ErrorDto"];
|
|
30622
|
+
};
|
|
30623
|
+
};
|
|
30624
|
+
};
|
|
30625
|
+
};
|
|
30141
30626
|
runReportQuery: {
|
|
30142
30627
|
parameters: {
|
|
30143
30628
|
query?: never;
|