@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/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 for your organization (E.164), or null to detach the caller id */
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;