@epilot/sdk 2.20.82 → 2.20.84
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/definitions/phone-integration-runtime.json +1 -1
- package/definitions/phone-integration.json +1485 -341
- package/definitions/targeting.json +77 -3
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/chat.cjs +6 -6
- package/dist/apis/chat.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/external-values.cjs +6 -6
- package/dist/apis/external-values.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/identity.cjs +6 -6
- package/dist/apis/identity.js +1 -1
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/phone-integration.cjs +8 -8
- package/dist/apis/phone-integration.d.cts +2 -2
- package/dist/apis/phone-integration.d.ts +2 -2
- package/dist/apis/phone-integration.js +2 -2
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.d.cts +2 -2
- package/dist/apis/targeting.d.ts +2 -2
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/chunk-E6N33SVB.js +14 -0
- package/dist/{chunk-HGXYSRIN.cjs → chunk-T4WYY7OU.cjs} +3 -3
- package/dist/chunk-U4AOZZGW.cjs +14 -0
- package/dist/{chunk-JCXLBOC3.js → chunk-ZPG2RR4J.js} +3 -3
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/phone-integration-6GDKV5EH.js +7 -0
- package/dist/phone-integration-UENU7EVN.cjs +7 -0
- package/dist/{phone-integration-runtime-7PWKKUBM.cjs → phone-integration-runtime-4SDHGFMR.cjs} +2 -2
- package/dist/{phone-integration-runtime-5VAA6Q4L.js → phone-integration-runtime-PWUZOJVD.js} +1 -1
- package/dist/phone-integration.d-Cx4ZOtzD.d.cts +1429 -0
- package/dist/phone-integration.d-Cx4ZOtzD.d.ts +1429 -0
- package/dist/targeting-C4H6GCPJ.cjs +7 -0
- package/dist/targeting-PPD4TUSO.js +7 -0
- package/dist/{targeting.d-BYVSahmV.d.cts → targeting.d-ZvHqD3kC.d.cts} +85 -2
- package/dist/{targeting.d-BYVSahmV.d.ts → targeting.d-ZvHqD3kC.d.ts} +85 -2
- package/docs/phone-integration.md +772 -0
- package/docs/targeting.md +94 -3
- package/package.json +1 -1
- package/dist/chunk-NHA2IXWN.cjs +0 -14
- package/dist/chunk-QFTXKO2I.js +0 -14
- package/dist/phone-integration-ARSGAHNJ.cjs +0 -7
- package/dist/phone-integration-MGH7LYID.js +0 -7
- package/dist/phone-integration.d-BNqwHuQ6.d.cts +0 -623
- package/dist/phone-integration.d-BNqwHuQ6.d.ts +0 -623
- package/dist/targeting-2JCGF4IR.cjs +0 -7
- package/dist/targeting-2NHAG7B5.js +0 -7
|
@@ -0,0 +1,1429 @@
|
|
|
1
|
+
import { OpenAPIClient, Parameters, AxiosRequestConfig, OperationResponse, UnknownParamsObject } from 'openapi-client-axios';
|
|
2
|
+
|
|
3
|
+
/* Auto-copied from phone-integration-client */
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
declare namespace Components {
|
|
7
|
+
namespace Responses {
|
|
8
|
+
export type BadGateway = Schemas.ErrorResponse;
|
|
9
|
+
export type BadRequest = Schemas.ErrorResponse;
|
|
10
|
+
export type Forbidden = Schemas.ErrorResponse;
|
|
11
|
+
export type ServiceUnavailable = Schemas.ErrorResponse;
|
|
12
|
+
export type Unauthorized = Schemas.ErrorResponse;
|
|
13
|
+
}
|
|
14
|
+
namespace Schemas {
|
|
15
|
+
/**
|
|
16
|
+
* The provider presence the agent has selected (e.g. Available, Break, Meeting)
|
|
17
|
+
*/
|
|
18
|
+
export interface AgentPresence {
|
|
19
|
+
name: string;
|
|
20
|
+
label: string;
|
|
21
|
+
/**
|
|
22
|
+
* Whether this presence lets the agent take calls
|
|
23
|
+
*/
|
|
24
|
+
available: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A queue an agent can take calls from, and why
|
|
28
|
+
*/
|
|
29
|
+
export interface AgentQueueEligibility {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
via: [
|
|
33
|
+
/**
|
|
34
|
+
* How an agent can take a queue's calls:
|
|
35
|
+
* - `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
36
|
+
* - `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
37
|
+
* - `routing`: the phone system's own routing names the agent (a team or a person set up there);
|
|
38
|
+
* epilot does not change it.
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
EligibilityPath,
|
|
42
|
+
.../**
|
|
43
|
+
* How an agent can take a queue's calls:
|
|
44
|
+
* - `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
45
|
+
* - `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
46
|
+
* - `routing`: the phone system's own routing names the agent (a team or a person set up there);
|
|
47
|
+
* epilot does not change it.
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
EligibilityPath[]
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* The agent's skills that make the queue route to them (empty unless `via` has `skill`)
|
|
54
|
+
*/
|
|
55
|
+
skills: string[];
|
|
56
|
+
/**
|
|
57
|
+
* The phone system's own routing names the agent (`via` has `routing`), so changing skills or
|
|
58
|
+
* direct membership cannot remove the queue; the control center shows it checked and disabled.
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
locked: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface AgentRouting {
|
|
64
|
+
provider_agent_id: string;
|
|
65
|
+
skills: /**
|
|
66
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
67
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
68
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
Skill /* ^\S(.*\S)?$ */[];
|
|
72
|
+
queues: /* A queue an agent can take calls from, and why */ AgentQueueEligibility[];
|
|
73
|
+
}
|
|
74
|
+
export interface AgentRoutingPreview {
|
|
75
|
+
provider_agent_id: string;
|
|
76
|
+
/**
|
|
77
|
+
* Queues the agent can take calls from now, as the phone system routes today
|
|
78
|
+
*/
|
|
79
|
+
before: QueueRef[];
|
|
80
|
+
after: QueueRef[];
|
|
81
|
+
added: QueueRef[];
|
|
82
|
+
removed: QueueRef[];
|
|
83
|
+
/**
|
|
84
|
+
* Removed queues where this agent is currently the only available eligible agent
|
|
85
|
+
*/
|
|
86
|
+
coverage_lost: QueueRef[];
|
|
87
|
+
/**
|
|
88
|
+
* Queues the agent stays in through the phone system's own routing, which this call cannot remove
|
|
89
|
+
*/
|
|
90
|
+
locked: QueueRef[];
|
|
91
|
+
}
|
|
92
|
+
export interface AgentRoutingRequest {
|
|
93
|
+
/**
|
|
94
|
+
* The agent's skills in the phone system (full set, not a delta); at most 200
|
|
95
|
+
*/
|
|
96
|
+
skills: /**
|
|
97
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
98
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
99
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
100
|
+
*
|
|
101
|
+
*/
|
|
102
|
+
Skill /* ^\S(.*\S)?$ */[];
|
|
103
|
+
/**
|
|
104
|
+
* The queues the agent is directly in, through the epilot-managed step (full set); at most 200
|
|
105
|
+
*/
|
|
106
|
+
queue_ids: string /* ^[A-Za-z0-9_-]+$ */[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The agent's live line state as the provider reports it, plus `offline` for an agent whose
|
|
110
|
+
* presence is not available (not signed in or on a busy presence) and `unknown` when the
|
|
111
|
+
* provider gives no state. `in_call` covers ringing-to-bridged; `wrap_up` is the post-call time.
|
|
112
|
+
*
|
|
113
|
+
*/
|
|
114
|
+
export type AgentState = "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown";
|
|
115
|
+
export interface AssignPhoneAgentRequest {
|
|
116
|
+
/**
|
|
117
|
+
* epilot user id of an active member of the caller's organization
|
|
118
|
+
*/
|
|
119
|
+
user_id: string; // ^[A-Za-z0-9_-]+$
|
|
120
|
+
}
|
|
121
|
+
export interface CallReport {
|
|
122
|
+
from: string; // date-time
|
|
123
|
+
to: string; // date-time
|
|
124
|
+
inbound_total: number;
|
|
125
|
+
/**
|
|
126
|
+
* Inbound calls bridged to an agent
|
|
127
|
+
*/
|
|
128
|
+
handled_by_agent: number;
|
|
129
|
+
/**
|
|
130
|
+
* Inbound calls that ended without reaching an agent
|
|
131
|
+
*/
|
|
132
|
+
abandoned_or_failed: number;
|
|
133
|
+
/**
|
|
134
|
+
* The same window shifted back by whole days (its length rounded up to days), for the trend: a
|
|
135
|
+
* running "today" compares with yesterday up to the same time, "last 7 days" with the 7 days before
|
|
136
|
+
*
|
|
137
|
+
*/
|
|
138
|
+
previous_period: {
|
|
139
|
+
from: string; // date-time
|
|
140
|
+
to: string; // date-time
|
|
141
|
+
inbound_total: number;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export interface CustomerBatchSearchResult {
|
|
145
|
+
/**
|
|
146
|
+
* One result per distinct identifier
|
|
147
|
+
*/
|
|
148
|
+
results: CustomerSearchResult[];
|
|
149
|
+
}
|
|
150
|
+
export interface CustomerIdentifier {
|
|
151
|
+
type: "id" | "customer_number" | "external_id" | "phone_number" | "email";
|
|
152
|
+
/**
|
|
153
|
+
* The identifier as sent
|
|
154
|
+
* example:
|
|
155
|
+
* +4917012345678
|
|
156
|
+
*/
|
|
157
|
+
value: string;
|
|
158
|
+
}
|
|
159
|
+
export interface CustomerSearchResult {
|
|
160
|
+
identifier: CustomerIdentifier;
|
|
161
|
+
/**
|
|
162
|
+
* - `found` — exactly one contact has the identifier; see `customer`
|
|
163
|
+
* - `not_found` — no contact the caller may see has it
|
|
164
|
+
* - `ambiguous` — several contacts share it; none is chosen
|
|
165
|
+
* - `invalid` — not a usable identifier (a phone number that does
|
|
166
|
+
* not parse), so nothing was searched
|
|
167
|
+
* - `error` — the search for this identifier failed; try again
|
|
168
|
+
*
|
|
169
|
+
*/
|
|
170
|
+
status: "found" | "not_found" | "ambiguous" | "invalid" | "error";
|
|
171
|
+
customer?: /* Present when `status` is `found` */ CustomerSummary;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Present when `status` is `found`
|
|
175
|
+
*/
|
|
176
|
+
export interface CustomerSummary {
|
|
177
|
+
/**
|
|
178
|
+
* epilot entity id of the customer (Contact)
|
|
179
|
+
* example:
|
|
180
|
+
* dba8e5f9-8b3f-4608-b887-cd0798fce624
|
|
181
|
+
*/
|
|
182
|
+
id: string;
|
|
183
|
+
/**
|
|
184
|
+
* The contact's title, else its first and last name; null when it has neither
|
|
185
|
+
* example:
|
|
186
|
+
* Max Mustermann
|
|
187
|
+
*/
|
|
188
|
+
name: string | null;
|
|
189
|
+
/**
|
|
190
|
+
* Omitted when the contact has none
|
|
191
|
+
* example:
|
|
192
|
+
* 4711
|
|
193
|
+
*/
|
|
194
|
+
customer_number?: string;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* How an agent can take a queue's calls:
|
|
198
|
+
* - `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
199
|
+
* - `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
200
|
+
* - `routing`: the phone system's own routing names the agent (a team or a person set up there);
|
|
201
|
+
* epilot does not change it.
|
|
202
|
+
*
|
|
203
|
+
*/
|
|
204
|
+
export type EligibilityPath = "skill" | "direct" | "routing";
|
|
205
|
+
/**
|
|
206
|
+
* An agent who can take the queue's calls, with live status
|
|
207
|
+
*/
|
|
208
|
+
export interface EligibleAgent {
|
|
209
|
+
provider_agent_id: string;
|
|
210
|
+
user_id?: string;
|
|
211
|
+
name: string;
|
|
212
|
+
email?: string;
|
|
213
|
+
state: /**
|
|
214
|
+
* The agent's live line state as the provider reports it, plus `offline` for an agent whose
|
|
215
|
+
* presence is not available (not signed in or on a busy presence) and `unknown` when the
|
|
216
|
+
* provider gives no state. `in_call` covers ringing-to-bridged; `wrap_up` is the post-call time.
|
|
217
|
+
*
|
|
218
|
+
*/
|
|
219
|
+
AgentState;
|
|
220
|
+
presence?: /* The provider presence the agent has selected (e.g. Available, Break, Meeting) */ AgentPresence;
|
|
221
|
+
via: [
|
|
222
|
+
/**
|
|
223
|
+
* How an agent can take a queue's calls:
|
|
224
|
+
* - `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
225
|
+
* - `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
226
|
+
* - `routing`: the phone system's own routing names the agent (a team or a person set up there);
|
|
227
|
+
* epilot does not change it.
|
|
228
|
+
*
|
|
229
|
+
*/
|
|
230
|
+
EligibilityPath,
|
|
231
|
+
.../**
|
|
232
|
+
* How an agent can take a queue's calls:
|
|
233
|
+
* - `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
234
|
+
* - `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
235
|
+
* - `routing`: the phone system's own routing names the agent (a team or a person set up there);
|
|
236
|
+
* epilot does not change it.
|
|
237
|
+
*
|
|
238
|
+
*/
|
|
239
|
+
EligibilityPath[]
|
|
240
|
+
];
|
|
241
|
+
/**
|
|
242
|
+
* The agent's skills that make the queue route to them (empty unless `via` has `skill`)
|
|
243
|
+
*/
|
|
244
|
+
skills: /**
|
|
245
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
246
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
247
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
248
|
+
*
|
|
249
|
+
*/
|
|
250
|
+
Skill /* ^\S(.*\S)?$ */[];
|
|
251
|
+
}
|
|
252
|
+
export interface ErrorResponse {
|
|
253
|
+
/**
|
|
254
|
+
* HTTP status code.
|
|
255
|
+
*/
|
|
256
|
+
status: number;
|
|
257
|
+
/**
|
|
258
|
+
* Human-readable error message.
|
|
259
|
+
*/
|
|
260
|
+
error: string;
|
|
261
|
+
/**
|
|
262
|
+
* Stable machine-readable error code, when the operation defines one.
|
|
263
|
+
*/
|
|
264
|
+
code?: string;
|
|
265
|
+
}
|
|
266
|
+
export interface LiveAgent {
|
|
267
|
+
/**
|
|
268
|
+
* The phone system's agent id
|
|
269
|
+
*/
|
|
270
|
+
provider_agent_id: string;
|
|
271
|
+
/**
|
|
272
|
+
* The epilot user id, when the agent is an epilot phone agent (matched by email)
|
|
273
|
+
*/
|
|
274
|
+
user_id?: string;
|
|
275
|
+
name: string;
|
|
276
|
+
email?: string;
|
|
277
|
+
/**
|
|
278
|
+
* Whether the phone system routes queue calls to this agent at all
|
|
279
|
+
*/
|
|
280
|
+
enabled: boolean;
|
|
281
|
+
state: /**
|
|
282
|
+
* The agent's live line state as the provider reports it, plus `offline` for an agent whose
|
|
283
|
+
* presence is not available (not signed in or on a busy presence) and `unknown` when the
|
|
284
|
+
* provider gives no state. `in_call` covers ringing-to-bridged; `wrap_up` is the post-call time.
|
|
285
|
+
*
|
|
286
|
+
*/
|
|
287
|
+
AgentState;
|
|
288
|
+
presence?: /* The provider presence the agent has selected (e.g. Available, Break, Meeting) */ AgentPresence;
|
|
289
|
+
/**
|
|
290
|
+
* The phone system's human-readable status label
|
|
291
|
+
*/
|
|
292
|
+
display_status?: string;
|
|
293
|
+
/**
|
|
294
|
+
* The agent's skills as the phone system holds them (the source of truth for phone routing)
|
|
295
|
+
*/
|
|
296
|
+
skills: /**
|
|
297
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
298
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
299
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
300
|
+
*
|
|
301
|
+
*/
|
|
302
|
+
Skill /* ^\S(.*\S)?$ */[];
|
|
303
|
+
/**
|
|
304
|
+
* Queues the agent can take calls from, derived from every queue's routing steps
|
|
305
|
+
*/
|
|
306
|
+
queues: /* A queue an agent can take calls from, and why */ AgentQueueEligibility[];
|
|
307
|
+
/**
|
|
308
|
+
* The call the agent is on, when the phone system reports one
|
|
309
|
+
*/
|
|
310
|
+
current_call?: {
|
|
311
|
+
started_at: string; // date-time
|
|
312
|
+
queue_name?: string;
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Presence counters over the organization's agents
|
|
317
|
+
*/
|
|
318
|
+
export interface LiveAgentCounters {
|
|
319
|
+
total: number;
|
|
320
|
+
/**
|
|
321
|
+
* Agents on an available presence, i.e. everyone not offline (available + on call + wrap-up + other busy line states)
|
|
322
|
+
*/
|
|
323
|
+
online: number;
|
|
324
|
+
available: number;
|
|
325
|
+
/**
|
|
326
|
+
* Ringing or bridged
|
|
327
|
+
*/
|
|
328
|
+
on_call: number;
|
|
329
|
+
wrap_up: number;
|
|
330
|
+
offline: number;
|
|
331
|
+
}
|
|
332
|
+
export interface LiveSnapshot {
|
|
333
|
+
captured_at: string; // date-time
|
|
334
|
+
agents: /* Presence counters over the organization's agents */ LiveAgentCounters;
|
|
335
|
+
queues: /* Live demand and staffing of one queue */ QueueLive[];
|
|
336
|
+
/**
|
|
337
|
+
* Waiting calls across all queues
|
|
338
|
+
*/
|
|
339
|
+
calls_waiting: number;
|
|
340
|
+
/**
|
|
341
|
+
* The longest wait across all queues; absent when nothing waits
|
|
342
|
+
*/
|
|
343
|
+
longest_wait_seconds?: number;
|
|
344
|
+
}
|
|
345
|
+
export interface ManagerStatus {
|
|
346
|
+
/**
|
|
347
|
+
* Telephony provider behind this organization
|
|
348
|
+
*/
|
|
349
|
+
provider: "babelforce";
|
|
350
|
+
/**
|
|
351
|
+
* Agents can be assigned
|
|
352
|
+
*/
|
|
353
|
+
ready: boolean;
|
|
354
|
+
/**
|
|
355
|
+
* Why the organization is not ready (empty when ready)
|
|
356
|
+
*/
|
|
357
|
+
reasons: ("provider_tenant_missing" | "sso_not_configured" | "scim_not_configured" | "identity_enablement_missing")[];
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* An agent as a routing step names them
|
|
361
|
+
*/
|
|
362
|
+
export interface PersonRef {
|
|
363
|
+
provider_agent_id: string;
|
|
364
|
+
/**
|
|
365
|
+
* The epilot user id, when the agent is an epilot phone agent
|
|
366
|
+
*/
|
|
367
|
+
user_id?: string;
|
|
368
|
+
name: string;
|
|
369
|
+
}
|
|
370
|
+
export interface PhoneAgent {
|
|
371
|
+
/**
|
|
372
|
+
* epilot user id
|
|
373
|
+
*/
|
|
374
|
+
user_id: string;
|
|
375
|
+
email: string;
|
|
376
|
+
display_name?: string;
|
|
377
|
+
/**
|
|
378
|
+
* `active`: holds the phone and has an enabled provider user. `pending`: assigned in epilot but
|
|
379
|
+
* the provider user is not activated yet. `disabled`: provider user disabled. `missing_provider`:
|
|
380
|
+
* holds `phone:use` but no provider user is bound (assign again to repair). `missing_role`:
|
|
381
|
+
* assigned here, but the `phone_agent` role (`phone:use`) was removed elsewhere, e.g. in the
|
|
382
|
+
* users and permissions settings (assign again to restore it, or remove to deactivate the
|
|
383
|
+
* provider user).
|
|
384
|
+
*
|
|
385
|
+
*/
|
|
386
|
+
status: "active" | "pending" | "disabled" | "missing_provider" | "missing_role";
|
|
387
|
+
/**
|
|
388
|
+
* The provider's id of the bound user
|
|
389
|
+
*/
|
|
390
|
+
provider_user_id?: string;
|
|
391
|
+
provider_roles?: string[];
|
|
392
|
+
assigned_at?: string; // date-time
|
|
393
|
+
/**
|
|
394
|
+
* epilot user id of the manager who assigned the phone
|
|
395
|
+
*/
|
|
396
|
+
assigned_by?: string;
|
|
397
|
+
}
|
|
398
|
+
export interface ProviderSetup {
|
|
399
|
+
provider: "babelforce";
|
|
400
|
+
org_id: string;
|
|
401
|
+
/**
|
|
402
|
+
* Everything below is in place
|
|
403
|
+
*/
|
|
404
|
+
ready: boolean;
|
|
405
|
+
/**
|
|
406
|
+
* The provider tenant for this organization (null until created)
|
|
407
|
+
*/
|
|
408
|
+
tenant: {
|
|
409
|
+
id: string;
|
|
410
|
+
name: string;
|
|
411
|
+
org_key: string;
|
|
412
|
+
created_at?: string; // date-time
|
|
413
|
+
} | null;
|
|
414
|
+
scim: {
|
|
415
|
+
configured: boolean;
|
|
416
|
+
roles_enabled: boolean;
|
|
417
|
+
};
|
|
418
|
+
sso: {
|
|
419
|
+
configured: boolean;
|
|
420
|
+
/**
|
|
421
|
+
* The identity-api client the tenant's SSO configuration points at
|
|
422
|
+
*/
|
|
423
|
+
identity_client_id?: string;
|
|
424
|
+
configured_at?: string; // date-time
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* Admin-portal operator (email) who last ran the setup
|
|
428
|
+
*/
|
|
429
|
+
last_setup_by?: string;
|
|
430
|
+
}
|
|
431
|
+
export interface ProviderSetupRequest {
|
|
432
|
+
/**
|
|
433
|
+
* Provider tenant name, unique across the provider (3 to 100 characters). Required the first
|
|
434
|
+
* time (`400` with code `account_name_required` without it); ignored once the tenant exists.
|
|
435
|
+
*
|
|
436
|
+
*/
|
|
437
|
+
account_name?: string;
|
|
438
|
+
/**
|
|
439
|
+
* identity-api client registered for the provider (its partner application for this stage)
|
|
440
|
+
*/
|
|
441
|
+
identity_client_id: string; // ^[A-Za-z0-9._~-]+$
|
|
442
|
+
/**
|
|
443
|
+
* The client's current secret, forwarded to the provider's SSO configuration and never stored
|
|
444
|
+
*/
|
|
445
|
+
identity_client_secret: string;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* One organization's provider setup, as listed in the overview (no live SCIM or SSO reads).
|
|
449
|
+
*/
|
|
450
|
+
export interface ProviderSetupSummary {
|
|
451
|
+
/**
|
|
452
|
+
* epilot organization id (the provider tenant's org key)
|
|
453
|
+
*/
|
|
454
|
+
org_id: string;
|
|
455
|
+
provider: "babelforce";
|
|
456
|
+
/**
|
|
457
|
+
* Phone agents can be assigned (same rule as getManagerStatus)
|
|
458
|
+
*/
|
|
459
|
+
ready: boolean;
|
|
460
|
+
/**
|
|
461
|
+
* `setupProvider` has run for this organization at least once. `false` for a tenant created by
|
|
462
|
+
* hand at the provider: run the setup once to record it.
|
|
463
|
+
*
|
|
464
|
+
*/
|
|
465
|
+
setup_recorded: boolean;
|
|
466
|
+
tenant: {
|
|
467
|
+
/**
|
|
468
|
+
* The provider's tenant id (Babelforce sub-account id)
|
|
469
|
+
*/
|
|
470
|
+
id: string;
|
|
471
|
+
name: string;
|
|
472
|
+
org_key: string;
|
|
473
|
+
};
|
|
474
|
+
/**
|
|
475
|
+
* The identity-api client the recorded SSO configuration points at
|
|
476
|
+
*/
|
|
477
|
+
sso_identity_client_id?: string;
|
|
478
|
+
/**
|
|
479
|
+
* The operator who last ran the setup (email)
|
|
480
|
+
*/
|
|
481
|
+
last_setup_by?: string;
|
|
482
|
+
/**
|
|
483
|
+
* When the setup record last changed
|
|
484
|
+
*/
|
|
485
|
+
updated_at?: string; // date-time
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Live demand and staffing of one queue
|
|
489
|
+
*/
|
|
490
|
+
export interface QueueDetail {
|
|
491
|
+
id: string;
|
|
492
|
+
name: string;
|
|
493
|
+
/**
|
|
494
|
+
* Calls waiting in the queue right now
|
|
495
|
+
*/
|
|
496
|
+
waiting: number;
|
|
497
|
+
/**
|
|
498
|
+
* How long the longest-waiting call has waited; absent when nothing waits
|
|
499
|
+
*/
|
|
500
|
+
longest_wait_seconds?: number;
|
|
501
|
+
/**
|
|
502
|
+
* Agents the queue's routing steps resolve to
|
|
503
|
+
*/
|
|
504
|
+
eligible: number;
|
|
505
|
+
/**
|
|
506
|
+
* Eligible agents whose state is `available` right now
|
|
507
|
+
*/
|
|
508
|
+
available: number;
|
|
509
|
+
health: /**
|
|
510
|
+
* `at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one
|
|
511
|
+
* eligible agent is available. `quiet`: nothing waiting and nobody available.
|
|
512
|
+
*
|
|
513
|
+
*/
|
|
514
|
+
QueueHealth;
|
|
515
|
+
/**
|
|
516
|
+
* Service numbers routed into this queue, when the phone system makes that derivable
|
|
517
|
+
*/
|
|
518
|
+
numbers?: string[];
|
|
519
|
+
/**
|
|
520
|
+
* Who can take the queue's calls, in the order the phone system tries them
|
|
521
|
+
*/
|
|
522
|
+
routing: /**
|
|
523
|
+
* One step of who can take a queue's calls, in the order the phone system tries them. A step
|
|
524
|
+
* offers calls to the people it names and to everyone with any of its skills. Teams set up in the
|
|
525
|
+
* phone system appear as the people they contain. The epilot-managed step holds the people added
|
|
526
|
+
* from the control center; every other step is the organization's own routing, read-only here.
|
|
527
|
+
*
|
|
528
|
+
*/
|
|
529
|
+
QueueRoutingStep[];
|
|
530
|
+
captured_at: string; // date-time
|
|
531
|
+
eligible_agents: /* An agent who can take the queue's calls, with live status */ EligibleAgent[];
|
|
532
|
+
waiting_calls: WaitingCall[];
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* `at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one
|
|
536
|
+
* eligible agent is available. `quiet`: nothing waiting and nobody available.
|
|
537
|
+
*
|
|
538
|
+
*/
|
|
539
|
+
export type QueueHealth = "healthy" | "at_risk" | "quiet";
|
|
540
|
+
/**
|
|
541
|
+
* Live demand and staffing of one queue
|
|
542
|
+
*/
|
|
543
|
+
export interface QueueLive {
|
|
544
|
+
id: string;
|
|
545
|
+
name: string;
|
|
546
|
+
/**
|
|
547
|
+
* Calls waiting in the queue right now
|
|
548
|
+
*/
|
|
549
|
+
waiting: number;
|
|
550
|
+
/**
|
|
551
|
+
* How long the longest-waiting call has waited; absent when nothing waits
|
|
552
|
+
*/
|
|
553
|
+
longest_wait_seconds?: number;
|
|
554
|
+
/**
|
|
555
|
+
* Agents the queue's routing steps resolve to
|
|
556
|
+
*/
|
|
557
|
+
eligible: number;
|
|
558
|
+
/**
|
|
559
|
+
* Eligible agents whose state is `available` right now
|
|
560
|
+
*/
|
|
561
|
+
available: number;
|
|
562
|
+
health: /**
|
|
563
|
+
* `at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one
|
|
564
|
+
* eligible agent is available. `quiet`: nothing waiting and nobody available.
|
|
565
|
+
*
|
|
566
|
+
*/
|
|
567
|
+
QueueHealth;
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Live demand and staffing of one queue
|
|
571
|
+
*/
|
|
572
|
+
export interface QueueOverview {
|
|
573
|
+
id: string;
|
|
574
|
+
name: string;
|
|
575
|
+
/**
|
|
576
|
+
* Calls waiting in the queue right now
|
|
577
|
+
*/
|
|
578
|
+
waiting: number;
|
|
579
|
+
/**
|
|
580
|
+
* How long the longest-waiting call has waited; absent when nothing waits
|
|
581
|
+
*/
|
|
582
|
+
longest_wait_seconds?: number;
|
|
583
|
+
/**
|
|
584
|
+
* Agents the queue's routing steps resolve to
|
|
585
|
+
*/
|
|
586
|
+
eligible: number;
|
|
587
|
+
/**
|
|
588
|
+
* Eligible agents whose state is `available` right now
|
|
589
|
+
*/
|
|
590
|
+
available: number;
|
|
591
|
+
health: /**
|
|
592
|
+
* `at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one
|
|
593
|
+
* eligible agent is available. `quiet`: nothing waiting and nobody available.
|
|
594
|
+
*
|
|
595
|
+
*/
|
|
596
|
+
QueueHealth;
|
|
597
|
+
/**
|
|
598
|
+
* Service numbers routed into this queue, when the phone system makes that derivable
|
|
599
|
+
*/
|
|
600
|
+
numbers?: string[];
|
|
601
|
+
/**
|
|
602
|
+
* Who can take the queue's calls, in the order the phone system tries them
|
|
603
|
+
*/
|
|
604
|
+
routing: /**
|
|
605
|
+
* One step of who can take a queue's calls, in the order the phone system tries them. A step
|
|
606
|
+
* offers calls to the people it names and to everyone with any of its skills. Teams set up in the
|
|
607
|
+
* phone system appear as the people they contain. The epilot-managed step holds the people added
|
|
608
|
+
* from the control center; every other step is the organization's own routing, read-only here.
|
|
609
|
+
*
|
|
610
|
+
*/
|
|
611
|
+
QueueRoutingStep[];
|
|
612
|
+
}
|
|
613
|
+
export interface QueueRef {
|
|
614
|
+
id: string;
|
|
615
|
+
name: string;
|
|
616
|
+
}
|
|
617
|
+
/**
|
|
618
|
+
* One step of who can take a queue's calls, in the order the phone system tries them. A step
|
|
619
|
+
* offers calls to the people it names and to everyone with any of its skills. Teams set up in the
|
|
620
|
+
* phone system appear as the people they contain. The epilot-managed step holds the people added
|
|
621
|
+
* from the control center; every other step is the organization's own routing, read-only here.
|
|
622
|
+
*
|
|
623
|
+
*/
|
|
624
|
+
export interface QueueRoutingStep {
|
|
625
|
+
id: string;
|
|
626
|
+
/**
|
|
627
|
+
* Lower is tried first
|
|
628
|
+
*/
|
|
629
|
+
order: number;
|
|
630
|
+
label: string;
|
|
631
|
+
enabled: boolean;
|
|
632
|
+
/**
|
|
633
|
+
* Skills the step routes on (anyone with any of them)
|
|
634
|
+
*/
|
|
635
|
+
skills: /**
|
|
636
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
637
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
638
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
639
|
+
*
|
|
640
|
+
*/
|
|
641
|
+
Skill /* ^\S(.*\S)?$ */[];
|
|
642
|
+
/**
|
|
643
|
+
* People the step names, directly or through a team set up in the phone system
|
|
644
|
+
*/
|
|
645
|
+
people: /* An agent as a routing step names them */ PersonRef[];
|
|
646
|
+
/**
|
|
647
|
+
* The step `setAgentRouting` maintains; the only one the control center writes
|
|
648
|
+
*/
|
|
649
|
+
managed_by_epilot: boolean;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
653
|
+
* `<skill category>:<label>` (e.g. `language:german`), which the control center shows as
|
|
654
|
+
* "Category · Label"; a skill without a colon has no category.
|
|
655
|
+
*
|
|
656
|
+
*/
|
|
657
|
+
export type Skill = string; // ^\S(.*\S)?$
|
|
658
|
+
export interface WaitingCall {
|
|
659
|
+
id: string;
|
|
660
|
+
/**
|
|
661
|
+
* The caller's number with all but the last four digits hidden
|
|
662
|
+
*/
|
|
663
|
+
from_masked?: string;
|
|
664
|
+
waited_seconds: number;
|
|
665
|
+
/**
|
|
666
|
+
* The provider's call state (e.g. `queued`, `ringing`)
|
|
667
|
+
*/
|
|
668
|
+
state: string;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
declare namespace Paths {
|
|
673
|
+
namespace AssignPhoneAgent {
|
|
674
|
+
export type RequestBody = Components.Schemas.AssignPhoneAgentRequest;
|
|
675
|
+
namespace Responses {
|
|
676
|
+
export type $200 = Components.Schemas.PhoneAgent;
|
|
677
|
+
export type $201 = Components.Schemas.PhoneAgent;
|
|
678
|
+
export type $400 = Components.Responses.BadRequest;
|
|
679
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
680
|
+
export type $403 = Components.Responses.Forbidden;
|
|
681
|
+
export type $404 = Components.Schemas.ErrorResponse;
|
|
682
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
683
|
+
export type $502 = Components.Responses.BadGateway;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
namespace BatchSearchCustomers {
|
|
687
|
+
export interface HeaderParameters {
|
|
688
|
+
"x-trace-id"?: Parameters.XTraceId;
|
|
689
|
+
}
|
|
690
|
+
namespace Parameters {
|
|
691
|
+
export type CustomerNumber = string[];
|
|
692
|
+
export type Email = string[];
|
|
693
|
+
export type ExternalId = string[];
|
|
694
|
+
export type Id = string[];
|
|
695
|
+
export type PhoneNumber = string[];
|
|
696
|
+
export type XTraceId = string;
|
|
697
|
+
}
|
|
698
|
+
export interface QueryParameters {
|
|
699
|
+
id?: Parameters.Id;
|
|
700
|
+
customer_number?: Parameters.CustomerNumber;
|
|
701
|
+
external_id?: Parameters.ExternalId;
|
|
702
|
+
phone_number?: Parameters.PhoneNumber;
|
|
703
|
+
email?: Parameters.Email;
|
|
704
|
+
}
|
|
705
|
+
namespace Responses {
|
|
706
|
+
export type $200 = Components.Schemas.CustomerBatchSearchResult;
|
|
707
|
+
export type $400 = Components.Schemas.ErrorResponse;
|
|
708
|
+
export type $401 = Components.Schemas.ErrorResponse;
|
|
709
|
+
export type $403 = Components.Schemas.ErrorResponse;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
namespace GetCallReport {
|
|
713
|
+
namespace Parameters {
|
|
714
|
+
export type From = string;
|
|
715
|
+
export type To = string;
|
|
716
|
+
}
|
|
717
|
+
export interface QueryParameters {
|
|
718
|
+
from: Parameters.From;
|
|
719
|
+
to: Parameters.To;
|
|
720
|
+
}
|
|
721
|
+
namespace Responses {
|
|
722
|
+
export type $200 = Components.Schemas.CallReport;
|
|
723
|
+
export type $400 = Components.Responses.BadRequest;
|
|
724
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
725
|
+
export type $403 = Components.Responses.Forbidden;
|
|
726
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
727
|
+
export type $502 = Components.Responses.BadGateway;
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
namespace GetLiveSnapshot {
|
|
731
|
+
namespace Responses {
|
|
732
|
+
export type $200 = Components.Schemas.LiveSnapshot;
|
|
733
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
734
|
+
export type $403 = Components.Responses.Forbidden;
|
|
735
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
736
|
+
export type $502 = Components.Responses.BadGateway;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
namespace GetManagerStatus {
|
|
740
|
+
namespace Responses {
|
|
741
|
+
export type $200 = Components.Schemas.ManagerStatus;
|
|
742
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
743
|
+
export type $403 = Components.Responses.Forbidden;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
namespace GetProviderSetup {
|
|
747
|
+
namespace Responses {
|
|
748
|
+
export type $200 = Components.Schemas.ProviderSetup;
|
|
749
|
+
export type $400 = Components.Responses.BadRequest;
|
|
750
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
751
|
+
export type $403 = Components.Responses.Forbidden;
|
|
752
|
+
export type $502 = Components.Responses.BadGateway;
|
|
753
|
+
export type $503 = Components.Responses.ServiceUnavailable;
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
namespace GetQueue {
|
|
757
|
+
namespace Responses {
|
|
758
|
+
export type $200 = /* Live demand and staffing of one queue */ Components.Schemas.QueueDetail;
|
|
759
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
760
|
+
export type $403 = Components.Responses.Forbidden;
|
|
761
|
+
export type $404 = Components.Schemas.ErrorResponse;
|
|
762
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
763
|
+
export type $502 = Components.Responses.BadGateway;
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
namespace ListLiveAgents {
|
|
767
|
+
namespace Responses {
|
|
768
|
+
export interface $200 {
|
|
769
|
+
captured_at: string; // date-time
|
|
770
|
+
results: Components.Schemas.LiveAgent[];
|
|
771
|
+
}
|
|
772
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
773
|
+
export type $403 = Components.Responses.Forbidden;
|
|
774
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
775
|
+
export type $502 = Components.Responses.BadGateway;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
namespace ListPhoneAgents {
|
|
779
|
+
namespace Responses {
|
|
780
|
+
export interface $200 {
|
|
781
|
+
results: Components.Schemas.PhoneAgent[];
|
|
782
|
+
}
|
|
783
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
784
|
+
export type $403 = Components.Responses.Forbidden;
|
|
785
|
+
export type $502 = Components.Responses.BadGateway;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
namespace ListProviderSetups {
|
|
789
|
+
namespace Responses {
|
|
790
|
+
export interface $200 {
|
|
791
|
+
results: /* One organization's provider setup, as listed in the overview (no live SCIM or SSO reads). */ Components.Schemas.ProviderSetupSummary[];
|
|
792
|
+
}
|
|
793
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
794
|
+
export type $403 = Components.Responses.Forbidden;
|
|
795
|
+
export type $502 = Components.Responses.BadGateway;
|
|
796
|
+
export type $503 = Components.Responses.ServiceUnavailable;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
namespace ListQueues {
|
|
800
|
+
namespace Responses {
|
|
801
|
+
export interface $200 {
|
|
802
|
+
captured_at: string; // date-time
|
|
803
|
+
results: /* Live demand and staffing of one queue */ Components.Schemas.QueueOverview[];
|
|
804
|
+
}
|
|
805
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
806
|
+
export type $403 = Components.Responses.Forbidden;
|
|
807
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
808
|
+
export type $502 = Components.Responses.BadGateway;
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
namespace PreviewAgentRouting {
|
|
812
|
+
export type RequestBody = Components.Schemas.AgentRoutingRequest;
|
|
813
|
+
namespace Responses {
|
|
814
|
+
export type $200 = Components.Schemas.AgentRoutingPreview;
|
|
815
|
+
export type $400 = Components.Responses.BadRequest;
|
|
816
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
817
|
+
export type $403 = Components.Responses.Forbidden;
|
|
818
|
+
export type $404 = Components.Schemas.ErrorResponse;
|
|
819
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
820
|
+
export type $502 = Components.Responses.BadGateway;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
namespace RemovePhoneAgent {
|
|
824
|
+
namespace Responses {
|
|
825
|
+
export interface $204 {
|
|
826
|
+
}
|
|
827
|
+
export type $400 = Components.Responses.BadRequest;
|
|
828
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
829
|
+
export type $403 = Components.Responses.Forbidden;
|
|
830
|
+
export type $404 = Components.Schemas.ErrorResponse;
|
|
831
|
+
export type $502 = Components.Schemas.ErrorResponse;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
namespace SetAgentRouting {
|
|
835
|
+
export type RequestBody = Components.Schemas.AgentRoutingRequest;
|
|
836
|
+
namespace Responses {
|
|
837
|
+
export type $200 = Components.Schemas.AgentRouting;
|
|
838
|
+
export type $400 = Components.Responses.BadRequest;
|
|
839
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
840
|
+
export type $403 = Components.Responses.Forbidden;
|
|
841
|
+
export type $404 = Components.Schemas.ErrorResponse;
|
|
842
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
843
|
+
export type $502 = Components.Responses.BadGateway;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
namespace SetupProvider {
|
|
847
|
+
export type RequestBody = Components.Schemas.ProviderSetupRequest;
|
|
848
|
+
namespace Responses {
|
|
849
|
+
export type $200 = Components.Schemas.ProviderSetup;
|
|
850
|
+
export type $400 = Components.Responses.BadRequest;
|
|
851
|
+
export type $401 = Components.Responses.Unauthorized;
|
|
852
|
+
export type $403 = Components.Responses.Forbidden;
|
|
853
|
+
export type $409 = Components.Schemas.ErrorResponse;
|
|
854
|
+
export type $502 = Components.Responses.BadGateway;
|
|
855
|
+
export type $503 = Components.Responses.ServiceUnavailable;
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
namespace V1ManagerAgents$ProviderAgentIdRouting {
|
|
859
|
+
namespace Parameters {
|
|
860
|
+
export type ProviderAgentId = string; // ^[A-Za-z0-9_-]+$
|
|
861
|
+
}
|
|
862
|
+
export interface PathParameters {
|
|
863
|
+
provider_agent_id: Parameters.ProviderAgentId /* ^[A-Za-z0-9_-]+$ */;
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
namespace V1ManagerAgents$ProviderAgentIdRoutingPreview {
|
|
867
|
+
namespace Parameters {
|
|
868
|
+
export type ProviderAgentId = string; // ^[A-Za-z0-9_-]+$
|
|
869
|
+
}
|
|
870
|
+
export interface PathParameters {
|
|
871
|
+
provider_agent_id: Parameters.ProviderAgentId /* ^[A-Za-z0-9_-]+$ */;
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
namespace V1ManagerAgents$UserId {
|
|
875
|
+
namespace Parameters {
|
|
876
|
+
export type UserId = string; // ^[A-Za-z0-9_-]+$
|
|
877
|
+
}
|
|
878
|
+
export interface PathParameters {
|
|
879
|
+
user_id: Parameters.UserId /* ^[A-Za-z0-9_-]+$ */;
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
namespace V1ManagerQueues$QueueId {
|
|
883
|
+
namespace Parameters {
|
|
884
|
+
export type QueueId = string; // ^[A-Za-z0-9_-]+$
|
|
885
|
+
}
|
|
886
|
+
export interface PathParameters {
|
|
887
|
+
queue_id: Parameters.QueueId /* ^[A-Za-z0-9_-]+$ */;
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
namespace V1OperatorOrganizations$OrgIdProvider {
|
|
891
|
+
namespace Parameters {
|
|
892
|
+
export type OrgId = string; // ^[A-Za-z0-9_-]+$
|
|
893
|
+
}
|
|
894
|
+
export interface PathParameters {
|
|
895
|
+
org_id: Parameters.OrgId /* ^[A-Za-z0-9_-]+$ */;
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
namespace V1OperatorOrganizations$OrgIdProviderSetup {
|
|
899
|
+
namespace Parameters {
|
|
900
|
+
export type OrgId = string; // ^[A-Za-z0-9_-]+$
|
|
901
|
+
}
|
|
902
|
+
export interface PathParameters {
|
|
903
|
+
org_id: Parameters.OrgId /* ^[A-Za-z0-9_-]+$ */;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
interface OperationMethods {
|
|
910
|
+
/**
|
|
911
|
+
* batchSearchCustomers - batchSearchCustomers
|
|
912
|
+
*
|
|
913
|
+
* Resolves up to 50 identifiers to epilot customers (Contacts) in one
|
|
914
|
+
* request — for example every number in an agent's call history.
|
|
915
|
+
*
|
|
916
|
+
* Each identifier is an exact key of a Contact: its entity `id`, its
|
|
917
|
+
* `customer_number`, its `external_id`, one of its `email` addresses or
|
|
918
|
+
* one of its `phone` numbers. Repeat a parameter to pass several values,
|
|
919
|
+
* and combine parameters freely. Phone numbers are normalized on the
|
|
920
|
+
* server, so E.164, national and formatted forms of one number match the
|
|
921
|
+
* same contact; the other identifiers match exactly, ignoring case and
|
|
922
|
+
* surrounding whitespace.
|
|
923
|
+
*
|
|
924
|
+
* Every distinct identifier gets its own result, so one unknown or
|
|
925
|
+
* ambiguous identifier never fails the others. Results are ordered by
|
|
926
|
+
* parameter (`id`, `customer_number`, `external_id`, `phone_number`,
|
|
927
|
+
* `email`), then as sent; match them by `identifier`.
|
|
928
|
+
*
|
|
929
|
+
* The search runs with the caller's token: the organization and the
|
|
930
|
+
* permissions applied are the caller's own, as for entity search.
|
|
931
|
+
*
|
|
932
|
+
*/
|
|
933
|
+
'batchSearchCustomers'(
|
|
934
|
+
parameters?: Parameters<Paths.BatchSearchCustomers.QueryParameters & Paths.BatchSearchCustomers.HeaderParameters> | null,
|
|
935
|
+
data?: any,
|
|
936
|
+
config?: AxiosRequestConfig
|
|
937
|
+
): OperationResponse<Paths.BatchSearchCustomers.Responses.$200>
|
|
938
|
+
/**
|
|
939
|
+
* getManagerStatus - getManagerStatus
|
|
940
|
+
*
|
|
941
|
+
* Whether the caller's organization is ready for phone agents: the telephony provider tenant
|
|
942
|
+
* exists and is configured. The control center shows a "not set up" state when `ready` is false.
|
|
943
|
+
* Requires `phone:manage`.
|
|
944
|
+
*
|
|
945
|
+
*/
|
|
946
|
+
'getManagerStatus'(
|
|
947
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
948
|
+
data?: any,
|
|
949
|
+
config?: AxiosRequestConfig
|
|
950
|
+
): OperationResponse<Paths.GetManagerStatus.Responses.$200>
|
|
951
|
+
/**
|
|
952
|
+
* listPhoneAgents - listPhoneAgents
|
|
953
|
+
*
|
|
954
|
+
* Organization members who hold the phone (`phone:use`), each joined with the provider user behind
|
|
955
|
+
* them. Requires `phone:manage`.
|
|
956
|
+
*
|
|
957
|
+
*/
|
|
958
|
+
'listPhoneAgents'(
|
|
959
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
960
|
+
data?: any,
|
|
961
|
+
config?: AxiosRequestConfig
|
|
962
|
+
): OperationResponse<Paths.ListPhoneAgents.Responses.$200>
|
|
963
|
+
/**
|
|
964
|
+
* assignPhoneAgent - assignPhoneAgent
|
|
965
|
+
*
|
|
966
|
+
* Gives an organization member the phone. In order: the member is verified with user-api, their
|
|
967
|
+
* pairwise subject for the provider is read from identity-api, the provider user is created (or
|
|
968
|
+
* found) bound to that subject with the `agent` role, and only then the `phone_agent` role
|
|
969
|
+
* (`phone:use`) is assigned in epilot. Idempotent: an already assigned member answers `200`.
|
|
970
|
+
* Requires `phone:manage`.
|
|
971
|
+
*
|
|
972
|
+
*/
|
|
973
|
+
'assignPhoneAgent'(
|
|
974
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
975
|
+
data?: Paths.AssignPhoneAgent.RequestBody,
|
|
976
|
+
config?: AxiosRequestConfig
|
|
977
|
+
): OperationResponse<Paths.AssignPhoneAgent.Responses.$200 | Paths.AssignPhoneAgent.Responses.$201>
|
|
978
|
+
/**
|
|
979
|
+
* removePhoneAgent - removePhoneAgent
|
|
980
|
+
*
|
|
981
|
+
* Takes the phone away from a member: the `phone_agent` role is removed first, then the provider
|
|
982
|
+
* user is deactivated (never deleted: call history keeps referring to it). Requires `phone:manage`.
|
|
983
|
+
*
|
|
984
|
+
*/
|
|
985
|
+
'removePhoneAgent'(
|
|
986
|
+
parameters?: Parameters<Paths.V1ManagerAgents$UserId.PathParameters> | null,
|
|
987
|
+
data?: any,
|
|
988
|
+
config?: AxiosRequestConfig
|
|
989
|
+
): OperationResponse<Paths.RemovePhoneAgent.Responses.$204>
|
|
990
|
+
/**
|
|
991
|
+
* getLiveSnapshot - getLiveSnapshot
|
|
992
|
+
*
|
|
993
|
+
* One snapshot of the organization's live phone state for the control center's Overview: agent
|
|
994
|
+
* presence counters and per-queue health (waiting calls, longest wait, eligible vs available
|
|
995
|
+
* agents). Read from the provider on every call (no caching); the control center polls it about
|
|
996
|
+
* every 20 seconds. Requires `phone:manage`.
|
|
997
|
+
*
|
|
998
|
+
*/
|
|
999
|
+
'getLiveSnapshot'(
|
|
1000
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1001
|
+
data?: any,
|
|
1002
|
+
config?: AxiosRequestConfig
|
|
1003
|
+
): OperationResponse<Paths.GetLiveSnapshot.Responses.$200>
|
|
1004
|
+
/**
|
|
1005
|
+
* listLiveAgents - listLiveAgents
|
|
1006
|
+
*
|
|
1007
|
+
* The organization's phone agents with their live phone status, their skills (as the phone system
|
|
1008
|
+
* holds them) and the queues they can take calls from. Agents that are epilot phone agents carry
|
|
1009
|
+
* the epilot `user_id`. Queue eligibility is derived from every queue's routing steps (skills and
|
|
1010
|
+
* people). The control center filters and searches this list client-side and polls it about every
|
|
1011
|
+
* 20 seconds. Requires `phone:manage`.
|
|
1012
|
+
*
|
|
1013
|
+
*/
|
|
1014
|
+
'listLiveAgents'(
|
|
1015
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1016
|
+
data?: any,
|
|
1017
|
+
config?: AxiosRequestConfig
|
|
1018
|
+
): OperationResponse<Paths.ListLiveAgents.Responses.$200>
|
|
1019
|
+
/**
|
|
1020
|
+
* setAgentRouting - setAgentRouting
|
|
1021
|
+
*
|
|
1022
|
+
* Sets an agent's skills and direct queue membership (full sets, not deltas), in this order:
|
|
1023
|
+
* 1. Skills: the agent's skills in the phone system are replaced by `skills`, so the phone system
|
|
1024
|
+
* routes on them right away. The phone system is the source of truth for phone skills; they are
|
|
1025
|
+
* independent of the skills in epilot's Access Management.
|
|
1026
|
+
* 2. Direct queue membership: each listed queue gets the agent in its epilot-managed routing step
|
|
1027
|
+
* (created on first use, lowest precedence, never touching the organization's own routing in
|
|
1028
|
+
* the phone system); every other queue's epilot-managed step drops the agent. Eligibility
|
|
1029
|
+
* through the phone system's own routing is not changed (`locked`).
|
|
1030
|
+
* Idempotent; a failure part-way answers `502` and repeating the call completes it. Requires
|
|
1031
|
+
* `phone:manage`.
|
|
1032
|
+
*
|
|
1033
|
+
*/
|
|
1034
|
+
'setAgentRouting'(
|
|
1035
|
+
parameters?: Parameters<Paths.V1ManagerAgents$ProviderAgentIdRouting.PathParameters> | null,
|
|
1036
|
+
data?: Paths.SetAgentRouting.RequestBody,
|
|
1037
|
+
config?: AxiosRequestConfig
|
|
1038
|
+
): OperationResponse<Paths.SetAgentRouting.Responses.$200>
|
|
1039
|
+
/**
|
|
1040
|
+
* previewAgentRouting - previewAgentRouting
|
|
1041
|
+
*
|
|
1042
|
+
* The routing impact of `setAgentRouting` with the same body, without changing anything: the
|
|
1043
|
+
* queues the agent can take calls from now (as the phone system routes today) and after the
|
|
1044
|
+
* change, what is added and removed, the queues that would lose their last available agent, and
|
|
1045
|
+
* the queues the agent stays in through the phone system's own routing. Requires `phone:manage`.
|
|
1046
|
+
*
|
|
1047
|
+
*/
|
|
1048
|
+
'previewAgentRouting'(
|
|
1049
|
+
parameters?: Parameters<Paths.V1ManagerAgents$ProviderAgentIdRoutingPreview.PathParameters> | null,
|
|
1050
|
+
data?: Paths.PreviewAgentRouting.RequestBody,
|
|
1051
|
+
config?: AxiosRequestConfig
|
|
1052
|
+
): OperationResponse<Paths.PreviewAgentRouting.Responses.$200>
|
|
1053
|
+
/**
|
|
1054
|
+
* listQueues - listQueues
|
|
1055
|
+
*
|
|
1056
|
+
* The organization's queues with live demand (waiting calls, longest wait), staffing (eligible
|
|
1057
|
+
* vs available agents), derived health and who can take their calls: the routing steps in the
|
|
1058
|
+
* order the phone system tries them, each naming skills and people. Routing is read-only in the
|
|
1059
|
+
* control center except the epilot-managed step that `setAgentRouting` maintains. Polled about
|
|
1060
|
+
* every 20 seconds. Requires `phone:manage`.
|
|
1061
|
+
*
|
|
1062
|
+
*/
|
|
1063
|
+
'listQueues'(
|
|
1064
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1065
|
+
data?: any,
|
|
1066
|
+
config?: AxiosRequestConfig
|
|
1067
|
+
): OperationResponse<Paths.ListQueues.Responses.$200>
|
|
1068
|
+
/**
|
|
1069
|
+
* getQueue - getQueue
|
|
1070
|
+
*
|
|
1071
|
+
* One queue for the control center's queue drawer: the overview fields plus the agents currently
|
|
1072
|
+
* eligible for it (with live status and how they are eligible) and the calls waiting in it.
|
|
1073
|
+
* Requires `phone:manage`.
|
|
1074
|
+
*
|
|
1075
|
+
*/
|
|
1076
|
+
'getQueue'(
|
|
1077
|
+
parameters?: Parameters<Paths.V1ManagerQueues$QueueId.PathParameters> | null,
|
|
1078
|
+
data?: any,
|
|
1079
|
+
config?: AxiosRequestConfig
|
|
1080
|
+
): OperationResponse<Paths.GetQueue.Responses.$200>
|
|
1081
|
+
/**
|
|
1082
|
+
* getCallReport - getCallReport
|
|
1083
|
+
*
|
|
1084
|
+
* Inbound call outcomes for a period, from the provider's call reporting: how many inbound calls
|
|
1085
|
+
* there were, how many an agent handled (bridged) and how many ended without an agent (abandoned
|
|
1086
|
+
* or failed), plus the inbound total of the period of the same length just before, for the
|
|
1087
|
+
* trend. The window is at most 31 days. Requires `phone:manage`.
|
|
1088
|
+
*
|
|
1089
|
+
*/
|
|
1090
|
+
'getCallReport'(
|
|
1091
|
+
parameters?: Parameters<Paths.GetCallReport.QueryParameters> | null,
|
|
1092
|
+
data?: any,
|
|
1093
|
+
config?: AxiosRequestConfig
|
|
1094
|
+
): OperationResponse<Paths.GetCallReport.Responses.$200>
|
|
1095
|
+
/**
|
|
1096
|
+
* listProviderSetups - listProviderSetups
|
|
1097
|
+
*
|
|
1098
|
+
* Every organization that has a telephony provider tenant, for the admin portal's overview: the
|
|
1099
|
+
* provider's sub-accounts (one per organization, keyed by the organization id) joined with this
|
|
1100
|
+
* service's setup record. `ready` follows getManagerStatus: an organization whose tenant was created
|
|
1101
|
+
* by hand, outside `setupProvider`, has no record and is not ready until the setup runs once.
|
|
1102
|
+
* Sorted by organization id; not paged (one tenant per organization, a few hundred at most).
|
|
1103
|
+
*
|
|
1104
|
+
*/
|
|
1105
|
+
'listProviderSetups'(
|
|
1106
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1107
|
+
data?: any,
|
|
1108
|
+
config?: AxiosRequestConfig
|
|
1109
|
+
): OperationResponse<Paths.ListProviderSetups.Responses.$200>
|
|
1110
|
+
/**
|
|
1111
|
+
* getProviderSetup - getProviderSetup
|
|
1112
|
+
*
|
|
1113
|
+
* What has been set up at the telephony provider for this organization.
|
|
1114
|
+
*/
|
|
1115
|
+
'getProviderSetup'(
|
|
1116
|
+
parameters?: Parameters<Paths.V1OperatorOrganizations$OrgIdProvider.PathParameters> | null,
|
|
1117
|
+
data?: any,
|
|
1118
|
+
config?: AxiosRequestConfig
|
|
1119
|
+
): OperationResponse<Paths.GetProviderSetup.Responses.$200>
|
|
1120
|
+
/**
|
|
1121
|
+
* setupProvider - setupProvider
|
|
1122
|
+
*
|
|
1123
|
+
* Prepares the telephony provider for an organization, idempotently and in order: the provider
|
|
1124
|
+
* tenant (Babelforce sub-account keyed by the organization id), its SCIM configuration with role
|
|
1125
|
+
* management on, and its SSO configuration pointing at the identity-api client given here. The
|
|
1126
|
+
* client secret is forwarded to the provider and never stored by this service. Re-running updates
|
|
1127
|
+
* the SSO configuration (new client or rotated secret) and leaves the rest untouched.
|
|
1128
|
+
*
|
|
1129
|
+
*/
|
|
1130
|
+
'setupProvider'(
|
|
1131
|
+
parameters?: Parameters<Paths.V1OperatorOrganizations$OrgIdProviderSetup.PathParameters> | null,
|
|
1132
|
+
data?: Paths.SetupProvider.RequestBody,
|
|
1133
|
+
config?: AxiosRequestConfig
|
|
1134
|
+
): OperationResponse<Paths.SetupProvider.Responses.$200>
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
interface PathsDictionary {
|
|
1138
|
+
['/v1/customer:batchSearch']: {
|
|
1139
|
+
/**
|
|
1140
|
+
* batchSearchCustomers - batchSearchCustomers
|
|
1141
|
+
*
|
|
1142
|
+
* Resolves up to 50 identifiers to epilot customers (Contacts) in one
|
|
1143
|
+
* request — for example every number in an agent's call history.
|
|
1144
|
+
*
|
|
1145
|
+
* Each identifier is an exact key of a Contact: its entity `id`, its
|
|
1146
|
+
* `customer_number`, its `external_id`, one of its `email` addresses or
|
|
1147
|
+
* one of its `phone` numbers. Repeat a parameter to pass several values,
|
|
1148
|
+
* and combine parameters freely. Phone numbers are normalized on the
|
|
1149
|
+
* server, so E.164, national and formatted forms of one number match the
|
|
1150
|
+
* same contact; the other identifiers match exactly, ignoring case and
|
|
1151
|
+
* surrounding whitespace.
|
|
1152
|
+
*
|
|
1153
|
+
* Every distinct identifier gets its own result, so one unknown or
|
|
1154
|
+
* ambiguous identifier never fails the others. Results are ordered by
|
|
1155
|
+
* parameter (`id`, `customer_number`, `external_id`, `phone_number`,
|
|
1156
|
+
* `email`), then as sent; match them by `identifier`.
|
|
1157
|
+
*
|
|
1158
|
+
* The search runs with the caller's token: the organization and the
|
|
1159
|
+
* permissions applied are the caller's own, as for entity search.
|
|
1160
|
+
*
|
|
1161
|
+
*/
|
|
1162
|
+
'get'(
|
|
1163
|
+
parameters?: Parameters<Paths.BatchSearchCustomers.QueryParameters & Paths.BatchSearchCustomers.HeaderParameters> | null,
|
|
1164
|
+
data?: any,
|
|
1165
|
+
config?: AxiosRequestConfig
|
|
1166
|
+
): OperationResponse<Paths.BatchSearchCustomers.Responses.$200>
|
|
1167
|
+
}
|
|
1168
|
+
['/v1/manager/status']: {
|
|
1169
|
+
/**
|
|
1170
|
+
* getManagerStatus - getManagerStatus
|
|
1171
|
+
*
|
|
1172
|
+
* Whether the caller's organization is ready for phone agents: the telephony provider tenant
|
|
1173
|
+
* exists and is configured. The control center shows a "not set up" state when `ready` is false.
|
|
1174
|
+
* Requires `phone:manage`.
|
|
1175
|
+
*
|
|
1176
|
+
*/
|
|
1177
|
+
'get'(
|
|
1178
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1179
|
+
data?: any,
|
|
1180
|
+
config?: AxiosRequestConfig
|
|
1181
|
+
): OperationResponse<Paths.GetManagerStatus.Responses.$200>
|
|
1182
|
+
}
|
|
1183
|
+
['/v1/manager/agents']: {
|
|
1184
|
+
/**
|
|
1185
|
+
* listPhoneAgents - listPhoneAgents
|
|
1186
|
+
*
|
|
1187
|
+
* Organization members who hold the phone (`phone:use`), each joined with the provider user behind
|
|
1188
|
+
* them. Requires `phone:manage`.
|
|
1189
|
+
*
|
|
1190
|
+
*/
|
|
1191
|
+
'get'(
|
|
1192
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1193
|
+
data?: any,
|
|
1194
|
+
config?: AxiosRequestConfig
|
|
1195
|
+
): OperationResponse<Paths.ListPhoneAgents.Responses.$200>
|
|
1196
|
+
/**
|
|
1197
|
+
* assignPhoneAgent - assignPhoneAgent
|
|
1198
|
+
*
|
|
1199
|
+
* Gives an organization member the phone. In order: the member is verified with user-api, their
|
|
1200
|
+
* pairwise subject for the provider is read from identity-api, the provider user is created (or
|
|
1201
|
+
* found) bound to that subject with the `agent` role, and only then the `phone_agent` role
|
|
1202
|
+
* (`phone:use`) is assigned in epilot. Idempotent: an already assigned member answers `200`.
|
|
1203
|
+
* Requires `phone:manage`.
|
|
1204
|
+
*
|
|
1205
|
+
*/
|
|
1206
|
+
'post'(
|
|
1207
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1208
|
+
data?: Paths.AssignPhoneAgent.RequestBody,
|
|
1209
|
+
config?: AxiosRequestConfig
|
|
1210
|
+
): OperationResponse<Paths.AssignPhoneAgent.Responses.$200 | Paths.AssignPhoneAgent.Responses.$201>
|
|
1211
|
+
}
|
|
1212
|
+
['/v1/manager/agents/{user_id}']: {
|
|
1213
|
+
/**
|
|
1214
|
+
* removePhoneAgent - removePhoneAgent
|
|
1215
|
+
*
|
|
1216
|
+
* Takes the phone away from a member: the `phone_agent` role is removed first, then the provider
|
|
1217
|
+
* user is deactivated (never deleted: call history keeps referring to it). Requires `phone:manage`.
|
|
1218
|
+
*
|
|
1219
|
+
*/
|
|
1220
|
+
'delete'(
|
|
1221
|
+
parameters?: Parameters<Paths.V1ManagerAgents$UserId.PathParameters> | null,
|
|
1222
|
+
data?: any,
|
|
1223
|
+
config?: AxiosRequestConfig
|
|
1224
|
+
): OperationResponse<Paths.RemovePhoneAgent.Responses.$204>
|
|
1225
|
+
}
|
|
1226
|
+
['/v1/manager/live']: {
|
|
1227
|
+
/**
|
|
1228
|
+
* getLiveSnapshot - getLiveSnapshot
|
|
1229
|
+
*
|
|
1230
|
+
* One snapshot of the organization's live phone state for the control center's Overview: agent
|
|
1231
|
+
* presence counters and per-queue health (waiting calls, longest wait, eligible vs available
|
|
1232
|
+
* agents). Read from the provider on every call (no caching); the control center polls it about
|
|
1233
|
+
* every 20 seconds. Requires `phone:manage`.
|
|
1234
|
+
*
|
|
1235
|
+
*/
|
|
1236
|
+
'get'(
|
|
1237
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1238
|
+
data?: any,
|
|
1239
|
+
config?: AxiosRequestConfig
|
|
1240
|
+
): OperationResponse<Paths.GetLiveSnapshot.Responses.$200>
|
|
1241
|
+
}
|
|
1242
|
+
['/v1/manager/agents/live']: {
|
|
1243
|
+
/**
|
|
1244
|
+
* listLiveAgents - listLiveAgents
|
|
1245
|
+
*
|
|
1246
|
+
* The organization's phone agents with their live phone status, their skills (as the phone system
|
|
1247
|
+
* holds them) and the queues they can take calls from. Agents that are epilot phone agents carry
|
|
1248
|
+
* the epilot `user_id`. Queue eligibility is derived from every queue's routing steps (skills and
|
|
1249
|
+
* people). The control center filters and searches this list client-side and polls it about every
|
|
1250
|
+
* 20 seconds. Requires `phone:manage`.
|
|
1251
|
+
*
|
|
1252
|
+
*/
|
|
1253
|
+
'get'(
|
|
1254
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1255
|
+
data?: any,
|
|
1256
|
+
config?: AxiosRequestConfig
|
|
1257
|
+
): OperationResponse<Paths.ListLiveAgents.Responses.$200>
|
|
1258
|
+
}
|
|
1259
|
+
['/v1/manager/agents/{provider_agent_id}/routing']: {
|
|
1260
|
+
/**
|
|
1261
|
+
* setAgentRouting - setAgentRouting
|
|
1262
|
+
*
|
|
1263
|
+
* Sets an agent's skills and direct queue membership (full sets, not deltas), in this order:
|
|
1264
|
+
* 1. Skills: the agent's skills in the phone system are replaced by `skills`, so the phone system
|
|
1265
|
+
* routes on them right away. The phone system is the source of truth for phone skills; they are
|
|
1266
|
+
* independent of the skills in epilot's Access Management.
|
|
1267
|
+
* 2. Direct queue membership: each listed queue gets the agent in its epilot-managed routing step
|
|
1268
|
+
* (created on first use, lowest precedence, never touching the organization's own routing in
|
|
1269
|
+
* the phone system); every other queue's epilot-managed step drops the agent. Eligibility
|
|
1270
|
+
* through the phone system's own routing is not changed (`locked`).
|
|
1271
|
+
* Idempotent; a failure part-way answers `502` and repeating the call completes it. Requires
|
|
1272
|
+
* `phone:manage`.
|
|
1273
|
+
*
|
|
1274
|
+
*/
|
|
1275
|
+
'put'(
|
|
1276
|
+
parameters?: Parameters<Paths.V1ManagerAgents$ProviderAgentIdRouting.PathParameters> | null,
|
|
1277
|
+
data?: Paths.SetAgentRouting.RequestBody,
|
|
1278
|
+
config?: AxiosRequestConfig
|
|
1279
|
+
): OperationResponse<Paths.SetAgentRouting.Responses.$200>
|
|
1280
|
+
}
|
|
1281
|
+
['/v1/manager/agents/{provider_agent_id}/routing:preview']: {
|
|
1282
|
+
/**
|
|
1283
|
+
* previewAgentRouting - previewAgentRouting
|
|
1284
|
+
*
|
|
1285
|
+
* The routing impact of `setAgentRouting` with the same body, without changing anything: the
|
|
1286
|
+
* queues the agent can take calls from now (as the phone system routes today) and after the
|
|
1287
|
+
* change, what is added and removed, the queues that would lose their last available agent, and
|
|
1288
|
+
* the queues the agent stays in through the phone system's own routing. Requires `phone:manage`.
|
|
1289
|
+
*
|
|
1290
|
+
*/
|
|
1291
|
+
'post'(
|
|
1292
|
+
parameters?: Parameters<Paths.V1ManagerAgents$ProviderAgentIdRoutingPreview.PathParameters> | null,
|
|
1293
|
+
data?: Paths.PreviewAgentRouting.RequestBody,
|
|
1294
|
+
config?: AxiosRequestConfig
|
|
1295
|
+
): OperationResponse<Paths.PreviewAgentRouting.Responses.$200>
|
|
1296
|
+
}
|
|
1297
|
+
['/v1/manager/queues']: {
|
|
1298
|
+
/**
|
|
1299
|
+
* listQueues - listQueues
|
|
1300
|
+
*
|
|
1301
|
+
* The organization's queues with live demand (waiting calls, longest wait), staffing (eligible
|
|
1302
|
+
* vs available agents), derived health and who can take their calls: the routing steps in the
|
|
1303
|
+
* order the phone system tries them, each naming skills and people. Routing is read-only in the
|
|
1304
|
+
* control center except the epilot-managed step that `setAgentRouting` maintains. Polled about
|
|
1305
|
+
* every 20 seconds. Requires `phone:manage`.
|
|
1306
|
+
*
|
|
1307
|
+
*/
|
|
1308
|
+
'get'(
|
|
1309
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1310
|
+
data?: any,
|
|
1311
|
+
config?: AxiosRequestConfig
|
|
1312
|
+
): OperationResponse<Paths.ListQueues.Responses.$200>
|
|
1313
|
+
}
|
|
1314
|
+
['/v1/manager/queues/{queue_id}']: {
|
|
1315
|
+
/**
|
|
1316
|
+
* getQueue - getQueue
|
|
1317
|
+
*
|
|
1318
|
+
* One queue for the control center's queue drawer: the overview fields plus the agents currently
|
|
1319
|
+
* eligible for it (with live status and how they are eligible) and the calls waiting in it.
|
|
1320
|
+
* Requires `phone:manage`.
|
|
1321
|
+
*
|
|
1322
|
+
*/
|
|
1323
|
+
'get'(
|
|
1324
|
+
parameters?: Parameters<Paths.V1ManagerQueues$QueueId.PathParameters> | null,
|
|
1325
|
+
data?: any,
|
|
1326
|
+
config?: AxiosRequestConfig
|
|
1327
|
+
): OperationResponse<Paths.GetQueue.Responses.$200>
|
|
1328
|
+
}
|
|
1329
|
+
['/v1/manager/reporting/calls']: {
|
|
1330
|
+
/**
|
|
1331
|
+
* getCallReport - getCallReport
|
|
1332
|
+
*
|
|
1333
|
+
* Inbound call outcomes for a period, from the provider's call reporting: how many inbound calls
|
|
1334
|
+
* there were, how many an agent handled (bridged) and how many ended without an agent (abandoned
|
|
1335
|
+
* or failed), plus the inbound total of the period of the same length just before, for the
|
|
1336
|
+
* trend. The window is at most 31 days. Requires `phone:manage`.
|
|
1337
|
+
*
|
|
1338
|
+
*/
|
|
1339
|
+
'get'(
|
|
1340
|
+
parameters?: Parameters<Paths.GetCallReport.QueryParameters> | null,
|
|
1341
|
+
data?: any,
|
|
1342
|
+
config?: AxiosRequestConfig
|
|
1343
|
+
): OperationResponse<Paths.GetCallReport.Responses.$200>
|
|
1344
|
+
}
|
|
1345
|
+
['/v1/operator/provider-setups']: {
|
|
1346
|
+
/**
|
|
1347
|
+
* listProviderSetups - listProviderSetups
|
|
1348
|
+
*
|
|
1349
|
+
* Every organization that has a telephony provider tenant, for the admin portal's overview: the
|
|
1350
|
+
* provider's sub-accounts (one per organization, keyed by the organization id) joined with this
|
|
1351
|
+
* service's setup record. `ready` follows getManagerStatus: an organization whose tenant was created
|
|
1352
|
+
* by hand, outside `setupProvider`, has no record and is not ready until the setup runs once.
|
|
1353
|
+
* Sorted by organization id; not paged (one tenant per organization, a few hundred at most).
|
|
1354
|
+
*
|
|
1355
|
+
*/
|
|
1356
|
+
'get'(
|
|
1357
|
+
parameters?: Parameters<UnknownParamsObject> | null,
|
|
1358
|
+
data?: any,
|
|
1359
|
+
config?: AxiosRequestConfig
|
|
1360
|
+
): OperationResponse<Paths.ListProviderSetups.Responses.$200>
|
|
1361
|
+
}
|
|
1362
|
+
['/v1/operator/organizations/{org_id}/provider']: {
|
|
1363
|
+
/**
|
|
1364
|
+
* getProviderSetup - getProviderSetup
|
|
1365
|
+
*
|
|
1366
|
+
* What has been set up at the telephony provider for this organization.
|
|
1367
|
+
*/
|
|
1368
|
+
'get'(
|
|
1369
|
+
parameters?: Parameters<Paths.V1OperatorOrganizations$OrgIdProvider.PathParameters> | null,
|
|
1370
|
+
data?: any,
|
|
1371
|
+
config?: AxiosRequestConfig
|
|
1372
|
+
): OperationResponse<Paths.GetProviderSetup.Responses.$200>
|
|
1373
|
+
}
|
|
1374
|
+
['/v1/operator/organizations/{org_id}/provider:setup']: {
|
|
1375
|
+
/**
|
|
1376
|
+
* setupProvider - setupProvider
|
|
1377
|
+
*
|
|
1378
|
+
* Prepares the telephony provider for an organization, idempotently and in order: the provider
|
|
1379
|
+
* tenant (Babelforce sub-account keyed by the organization id), its SCIM configuration with role
|
|
1380
|
+
* management on, and its SSO configuration pointing at the identity-api client given here. The
|
|
1381
|
+
* client secret is forwarded to the provider and never stored by this service. Re-running updates
|
|
1382
|
+
* the SSO configuration (new client or rotated secret) and leaves the rest untouched.
|
|
1383
|
+
*
|
|
1384
|
+
*/
|
|
1385
|
+
'post'(
|
|
1386
|
+
parameters?: Parameters<Paths.V1OperatorOrganizations$OrgIdProviderSetup.PathParameters> | null,
|
|
1387
|
+
data?: Paths.SetupProvider.RequestBody,
|
|
1388
|
+
config?: AxiosRequestConfig
|
|
1389
|
+
): OperationResponse<Paths.SetupProvider.Responses.$200>
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
type Client = OpenAPIClient<OperationMethods, PathsDictionary>
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
type AgentPresence = Components.Schemas.AgentPresence;
|
|
1397
|
+
type AgentQueueEligibility = Components.Schemas.AgentQueueEligibility;
|
|
1398
|
+
type AgentRouting = Components.Schemas.AgentRouting;
|
|
1399
|
+
type AgentRoutingPreview = Components.Schemas.AgentRoutingPreview;
|
|
1400
|
+
type AgentRoutingRequest = Components.Schemas.AgentRoutingRequest;
|
|
1401
|
+
type AgentState = Components.Schemas.AgentState;
|
|
1402
|
+
type AssignPhoneAgentRequest = Components.Schemas.AssignPhoneAgentRequest;
|
|
1403
|
+
type CallReport = Components.Schemas.CallReport;
|
|
1404
|
+
type CustomerBatchSearchResult = Components.Schemas.CustomerBatchSearchResult;
|
|
1405
|
+
type CustomerIdentifier = Components.Schemas.CustomerIdentifier;
|
|
1406
|
+
type CustomerSearchResult = Components.Schemas.CustomerSearchResult;
|
|
1407
|
+
type CustomerSummary = Components.Schemas.CustomerSummary;
|
|
1408
|
+
type EligibilityPath = Components.Schemas.EligibilityPath;
|
|
1409
|
+
type EligibleAgent = Components.Schemas.EligibleAgent;
|
|
1410
|
+
type ErrorResponse = Components.Schemas.ErrorResponse;
|
|
1411
|
+
type LiveAgent = Components.Schemas.LiveAgent;
|
|
1412
|
+
type LiveAgentCounters = Components.Schemas.LiveAgentCounters;
|
|
1413
|
+
type LiveSnapshot = Components.Schemas.LiveSnapshot;
|
|
1414
|
+
type ManagerStatus = Components.Schemas.ManagerStatus;
|
|
1415
|
+
type PersonRef = Components.Schemas.PersonRef;
|
|
1416
|
+
type PhoneAgent = Components.Schemas.PhoneAgent;
|
|
1417
|
+
type ProviderSetup = Components.Schemas.ProviderSetup;
|
|
1418
|
+
type ProviderSetupRequest = Components.Schemas.ProviderSetupRequest;
|
|
1419
|
+
type ProviderSetupSummary = Components.Schemas.ProviderSetupSummary;
|
|
1420
|
+
type QueueDetail = Components.Schemas.QueueDetail;
|
|
1421
|
+
type QueueHealth = Components.Schemas.QueueHealth;
|
|
1422
|
+
type QueueLive = Components.Schemas.QueueLive;
|
|
1423
|
+
type QueueOverview = Components.Schemas.QueueOverview;
|
|
1424
|
+
type QueueRef = Components.Schemas.QueueRef;
|
|
1425
|
+
type QueueRoutingStep = Components.Schemas.QueueRoutingStep;
|
|
1426
|
+
type Skill = Components.Schemas.Skill;
|
|
1427
|
+
type WaitingCall = Components.Schemas.WaitingCall;
|
|
1428
|
+
|
|
1429
|
+
export { type AgentPresence as A, type QueueRoutingStep as B, type Client as C, type EligibilityPath as E, type LiveAgent as L, type ManagerStatus as M, type OperationMethods as O, Paths as P, type QueueDetail as Q, type Skill as S, type WaitingCall as W, Components as a, type PathsDictionary as b, type AgentQueueEligibility as c, type AgentRouting as d, type AgentRoutingPreview as e, type AgentRoutingRequest as f, type AgentState as g, type AssignPhoneAgentRequest as h, type CallReport as i, type CustomerBatchSearchResult as j, type CustomerIdentifier as k, type CustomerSearchResult as l, type CustomerSummary as m, type EligibleAgent as n, type ErrorResponse as o, type LiveAgentCounters as p, type LiveSnapshot as q, type PersonRef as r, type PhoneAgent as s, type ProviderSetup as t, type ProviderSetupRequest as u, type ProviderSetupSummary as v, type QueueHealth as w, type QueueLive as x, type QueueOverview as y, type QueueRef as z };
|