@epilot/sdk 2.20.83 → 2.20.85
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/integration-toolkit.json +69 -2
- package/definitions/phone-integration-runtime.json +1 -1
- package/definitions/phone-integration.json +1485 -341
- 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 +76 -7
- package/dist/apis/integration-toolkit.d.cts +2 -2
- package/dist/apis/integration-toolkit.d.ts +2 -2
- package/dist/apis/integration-toolkit.js +71 -2
- 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.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-HFBZFYTU.js → chunk-7T4BNWMN.js} +3 -6
- package/dist/chunk-E6N33SVB.js +14 -0
- package/dist/chunk-U4AOZZGW.cjs +14 -0
- package/dist/{chunk-KGIFSOWS.cjs → chunk-ZSZ4IWLQ.cjs} +3 -6
- 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/integration-toolkit-DER5W7ID.cjs +7 -0
- package/dist/integration-toolkit-EMCDJARR.js +7 -0
- package/dist/{integration-toolkit.d-BGF0LVB7.d.cts → integration-toolkit.d-BJgyGgcU.d.cts} +45 -2
- package/dist/{integration-toolkit.d-BGF0LVB7.d.ts → integration-toolkit.d-BJgyGgcU.d.ts} +45 -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/docs/integration-toolkit.md +54 -8
- package/docs/phone-integration.md +772 -0
- package/package.json +1 -1
- package/dist/chunk-NHA2IXWN.cjs +0 -14
- package/dist/chunk-QFTXKO2I.js +0 -14
- package/dist/erp-integration-735KQ73W.js +0 -5295
- package/dist/erp-integration-PAVHSUDM.cjs +0 -7
- package/dist/erp-integration-SBQJ6HEG.js +0 -7
- package/dist/erp-integration-W7FZDJOB.cjs +0 -5295
- package/dist/erp-integration-runtime-JGVGQ22V.js +0 -13
- package/dist/erp-integration-runtime-OZ4YSTQX.cjs +0 -13
- package/dist/integration-toolkit-3XNG4PL5.cjs +0 -7
- package/dist/integration-toolkit-VLTS5HKV.js +0 -7
- 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/docs/erp-integration.md +0 -6011
|
@@ -32,6 +32,13 @@ const { data } = await phoneIntegrationClient.batchSearchCustomers(...)
|
|
|
32
32
|
- [`listPhoneAgents`](#listphoneagents)
|
|
33
33
|
- [`assignPhoneAgent`](#assignphoneagent)
|
|
34
34
|
- [`removePhoneAgent`](#removephoneagent)
|
|
35
|
+
- [`getLiveSnapshot`](#getlivesnapshot)
|
|
36
|
+
- [`listLiveAgents`](#listliveagents)
|
|
37
|
+
- [`setAgentRouting`](#setagentrouting)
|
|
38
|
+
- [`previewAgentRouting`](#previewagentrouting)
|
|
39
|
+
- [`listQueues`](#listqueues)
|
|
40
|
+
- [`getQueue`](#getqueue)
|
|
41
|
+
- [`getCallReport`](#getcallreport)
|
|
35
42
|
|
|
36
43
|
**operator**
|
|
37
44
|
- [`listProviderSetups`](#listprovidersetups)
|
|
@@ -49,6 +56,27 @@ const { data } = await phoneIntegrationClient.batchSearchCustomers(...)
|
|
|
49
56
|
- [`CustomerSearchResult`](#customersearchresult)
|
|
50
57
|
- [`CustomerIdentifier`](#customeridentifier)
|
|
51
58
|
- [`CustomerSummary`](#customersummary)
|
|
59
|
+
- [`AgentState`](#agentstate)
|
|
60
|
+
- [`AgentPresence`](#agentpresence)
|
|
61
|
+
- [`Skill`](#skill)
|
|
62
|
+
- [`QueueRef`](#queueref)
|
|
63
|
+
- [`PersonRef`](#personref)
|
|
64
|
+
- [`EligibilityPath`](#eligibilitypath)
|
|
65
|
+
- [`AgentQueueEligibility`](#agentqueueeligibility)
|
|
66
|
+
- [`LiveAgent`](#liveagent)
|
|
67
|
+
- [`LiveAgentCounters`](#liveagentcounters)
|
|
68
|
+
- [`QueueHealth`](#queuehealth)
|
|
69
|
+
- [`QueueLive`](#queuelive)
|
|
70
|
+
- [`LiveSnapshot`](#livesnapshot)
|
|
71
|
+
- [`QueueRoutingStep`](#queueroutingstep)
|
|
72
|
+
- [`QueueOverview`](#queueoverview)
|
|
73
|
+
- [`EligibleAgent`](#eligibleagent)
|
|
74
|
+
- [`WaitingCall`](#waitingcall)
|
|
75
|
+
- [`QueueDetail`](#queuedetail)
|
|
76
|
+
- [`AgentRoutingRequest`](#agentroutingrequest)
|
|
77
|
+
- [`AgentRouting`](#agentrouting)
|
|
78
|
+
- [`AgentRoutingPreview`](#agentroutingpreview)
|
|
79
|
+
- [`CallReport`](#callreport)
|
|
52
80
|
- [`ErrorResponse`](#errorresponse)
|
|
53
81
|
|
|
54
82
|
### `batchSearchCustomers`
|
|
@@ -209,6 +237,386 @@ const { data } = await client.removePhoneAgent({
|
|
|
209
237
|
|
|
210
238
|
---
|
|
211
239
|
|
|
240
|
+
### `getLiveSnapshot`
|
|
241
|
+
|
|
242
|
+
One snapshot of the organization's live phone state for the control center's Overview: agent
|
|
243
|
+
presence counters and per-queue health (waiting calls, longest wait, eligible vs available
|
|
244
|
+
agents). Read fr
|
|
245
|
+
|
|
246
|
+
`GET /v1/manager/live`
|
|
247
|
+
|
|
248
|
+
```ts
|
|
249
|
+
const { data } = await client.getLiveSnapshot()
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
<details>
|
|
253
|
+
<summary>Response</summary>
|
|
254
|
+
|
|
255
|
+
```json
|
|
256
|
+
{
|
|
257
|
+
"captured_at": "1970-01-01T00:00:00.000Z",
|
|
258
|
+
"agents": {
|
|
259
|
+
"total": 0,
|
|
260
|
+
"online": 0,
|
|
261
|
+
"available": 0,
|
|
262
|
+
"on_call": 0,
|
|
263
|
+
"wrap_up": 0,
|
|
264
|
+
"offline": 0
|
|
265
|
+
},
|
|
266
|
+
"queues": [
|
|
267
|
+
{
|
|
268
|
+
"id": "string",
|
|
269
|
+
"name": "string",
|
|
270
|
+
"waiting": 0,
|
|
271
|
+
"longest_wait_seconds": 0,
|
|
272
|
+
"eligible": 0,
|
|
273
|
+
"available": 0,
|
|
274
|
+
"health": "healthy"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"calls_waiting": 0,
|
|
278
|
+
"longest_wait_seconds": 0
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
</details>
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
### `listLiveAgents`
|
|
287
|
+
|
|
288
|
+
The organization's phone agents with their live phone status, their skills (as the phone system
|
|
289
|
+
holds them) and the queues they can take calls from. Agents that are epilot phone agents carry
|
|
290
|
+
the epilo
|
|
291
|
+
|
|
292
|
+
`GET /v1/manager/agents/live`
|
|
293
|
+
|
|
294
|
+
```ts
|
|
295
|
+
const { data } = await client.listLiveAgents()
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
<details>
|
|
299
|
+
<summary>Response</summary>
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"captured_at": "1970-01-01T00:00:00.000Z",
|
|
304
|
+
"results": [
|
|
305
|
+
{
|
|
306
|
+
"provider_agent_id": "string",
|
|
307
|
+
"user_id": "string",
|
|
308
|
+
"name": "string",
|
|
309
|
+
"email": "string",
|
|
310
|
+
"enabled": true,
|
|
311
|
+
"state": "available",
|
|
312
|
+
"presence": {
|
|
313
|
+
"name": "string",
|
|
314
|
+
"label": "string",
|
|
315
|
+
"available": true
|
|
316
|
+
},
|
|
317
|
+
"display_status": "string",
|
|
318
|
+
"skills": ["string"],
|
|
319
|
+
"queues": [
|
|
320
|
+
{
|
|
321
|
+
"id": "string",
|
|
322
|
+
"name": "string",
|
|
323
|
+
"via": ["skill"],
|
|
324
|
+
"skills": ["string"],
|
|
325
|
+
"locked": true
|
|
326
|
+
}
|
|
327
|
+
],
|
|
328
|
+
"current_call": {
|
|
329
|
+
"started_at": "1970-01-01T00:00:00.000Z",
|
|
330
|
+
"queue_name": "string"
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
]
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
</details>
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### `setAgentRouting`
|
|
342
|
+
|
|
343
|
+
Sets an agent's skills and direct queue membership (full sets, not deltas), in this order:
|
|
344
|
+
1. Skills: the agent's skills in the phone system are replaced by `skills`, so the phone system
|
|
345
|
+
routes on
|
|
346
|
+
|
|
347
|
+
`PUT /v1/manager/agents/{provider_agent_id}/routing`
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
const { data } = await client.setAgentRouting(
|
|
351
|
+
{
|
|
352
|
+
provider_agent_id: 'example',
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
skills: ['string'],
|
|
356
|
+
queue_ids: ['string']
|
|
357
|
+
},
|
|
358
|
+
)
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
<details>
|
|
362
|
+
<summary>Response</summary>
|
|
363
|
+
|
|
364
|
+
```json
|
|
365
|
+
{
|
|
366
|
+
"provider_agent_id": "string",
|
|
367
|
+
"skills": ["string"],
|
|
368
|
+
"queues": [
|
|
369
|
+
{
|
|
370
|
+
"id": "string",
|
|
371
|
+
"name": "string",
|
|
372
|
+
"via": ["skill"],
|
|
373
|
+
"skills": ["string"],
|
|
374
|
+
"locked": true
|
|
375
|
+
}
|
|
376
|
+
]
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
</details>
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
### `previewAgentRouting`
|
|
385
|
+
|
|
386
|
+
The routing impact of `setAgentRouting` with the same body, without changing anything: the
|
|
387
|
+
queues the agent can take calls from now (as the phone system routes today) and after the
|
|
388
|
+
change, what is add
|
|
389
|
+
|
|
390
|
+
`POST /v1/manager/agents/{provider_agent_id}/routing:preview`
|
|
391
|
+
|
|
392
|
+
```ts
|
|
393
|
+
const { data } = await client.previewAgentRouting(
|
|
394
|
+
{
|
|
395
|
+
provider_agent_id: 'example',
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
skills: ['string'],
|
|
399
|
+
queue_ids: ['string']
|
|
400
|
+
},
|
|
401
|
+
)
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
<details>
|
|
405
|
+
<summary>Response</summary>
|
|
406
|
+
|
|
407
|
+
```json
|
|
408
|
+
{
|
|
409
|
+
"provider_agent_id": "string",
|
|
410
|
+
"before": [
|
|
411
|
+
{
|
|
412
|
+
"id": "string",
|
|
413
|
+
"name": "string"
|
|
414
|
+
}
|
|
415
|
+
],
|
|
416
|
+
"after": [
|
|
417
|
+
{
|
|
418
|
+
"id": "string",
|
|
419
|
+
"name": "string"
|
|
420
|
+
}
|
|
421
|
+
],
|
|
422
|
+
"added": [
|
|
423
|
+
{
|
|
424
|
+
"id": "string",
|
|
425
|
+
"name": "string"
|
|
426
|
+
}
|
|
427
|
+
],
|
|
428
|
+
"removed": [
|
|
429
|
+
{
|
|
430
|
+
"id": "string",
|
|
431
|
+
"name": "string"
|
|
432
|
+
}
|
|
433
|
+
],
|
|
434
|
+
"coverage_lost": [
|
|
435
|
+
{
|
|
436
|
+
"id": "string",
|
|
437
|
+
"name": "string"
|
|
438
|
+
}
|
|
439
|
+
],
|
|
440
|
+
"locked": [
|
|
441
|
+
{
|
|
442
|
+
"id": "string",
|
|
443
|
+
"name": "string"
|
|
444
|
+
}
|
|
445
|
+
]
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
</details>
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
### `listQueues`
|
|
454
|
+
|
|
455
|
+
The organization's queues with live demand (waiting calls, longest wait), staffing (eligible
|
|
456
|
+
vs available agents), derived health and who can take their calls: the routing steps in the
|
|
457
|
+
order the phone
|
|
458
|
+
|
|
459
|
+
`GET /v1/manager/queues`
|
|
460
|
+
|
|
461
|
+
```ts
|
|
462
|
+
const { data } = await client.listQueues()
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
<details>
|
|
466
|
+
<summary>Response</summary>
|
|
467
|
+
|
|
468
|
+
```json
|
|
469
|
+
{
|
|
470
|
+
"captured_at": "1970-01-01T00:00:00.000Z",
|
|
471
|
+
"results": [
|
|
472
|
+
{
|
|
473
|
+
"id": "string",
|
|
474
|
+
"name": "string",
|
|
475
|
+
"waiting": 0,
|
|
476
|
+
"longest_wait_seconds": 0,
|
|
477
|
+
"eligible": 0,
|
|
478
|
+
"available": 0,
|
|
479
|
+
"health": "healthy",
|
|
480
|
+
"numbers": ["string"],
|
|
481
|
+
"routing": [
|
|
482
|
+
{
|
|
483
|
+
"id": "string",
|
|
484
|
+
"order": 0,
|
|
485
|
+
"label": "string",
|
|
486
|
+
"enabled": true,
|
|
487
|
+
"skills": ["string"],
|
|
488
|
+
"people": [
|
|
489
|
+
{
|
|
490
|
+
"provider_agent_id": "string",
|
|
491
|
+
"user_id": "string",
|
|
492
|
+
"name": "string"
|
|
493
|
+
}
|
|
494
|
+
],
|
|
495
|
+
"managed_by_epilot": true
|
|
496
|
+
}
|
|
497
|
+
]
|
|
498
|
+
}
|
|
499
|
+
]
|
|
500
|
+
}
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
</details>
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
### `getQueue`
|
|
508
|
+
|
|
509
|
+
One queue for the control center's queue drawer: the overview fields plus the agents currently
|
|
510
|
+
eligible for it (with live status and how they are eligible) and the calls waiting in it.
|
|
511
|
+
Requires `phone
|
|
512
|
+
|
|
513
|
+
`GET /v1/manager/queues/{queue_id}`
|
|
514
|
+
|
|
515
|
+
```ts
|
|
516
|
+
const { data } = await client.getQueue({
|
|
517
|
+
queue_id: 'example',
|
|
518
|
+
})
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
<details>
|
|
522
|
+
<summary>Response</summary>
|
|
523
|
+
|
|
524
|
+
```json
|
|
525
|
+
{
|
|
526
|
+
"id": "string",
|
|
527
|
+
"name": "string",
|
|
528
|
+
"waiting": 0,
|
|
529
|
+
"longest_wait_seconds": 0,
|
|
530
|
+
"eligible": 0,
|
|
531
|
+
"available": 0,
|
|
532
|
+
"health": "healthy",
|
|
533
|
+
"numbers": ["string"],
|
|
534
|
+
"routing": [
|
|
535
|
+
{
|
|
536
|
+
"id": "string",
|
|
537
|
+
"order": 0,
|
|
538
|
+
"label": "string",
|
|
539
|
+
"enabled": true,
|
|
540
|
+
"skills": ["string"],
|
|
541
|
+
"people": [
|
|
542
|
+
{
|
|
543
|
+
"provider_agent_id": "string",
|
|
544
|
+
"user_id": "string",
|
|
545
|
+
"name": "string"
|
|
546
|
+
}
|
|
547
|
+
],
|
|
548
|
+
"managed_by_epilot": true
|
|
549
|
+
}
|
|
550
|
+
],
|
|
551
|
+
"captured_at": "1970-01-01T00:00:00.000Z",
|
|
552
|
+
"eligible_agents": [
|
|
553
|
+
{
|
|
554
|
+
"provider_agent_id": "string",
|
|
555
|
+
"user_id": "string",
|
|
556
|
+
"name": "string",
|
|
557
|
+
"email": "string",
|
|
558
|
+
"state": "available",
|
|
559
|
+
"presence": {
|
|
560
|
+
"name": "string",
|
|
561
|
+
"label": "string",
|
|
562
|
+
"available": true
|
|
563
|
+
},
|
|
564
|
+
"via": ["skill"],
|
|
565
|
+
"skills": ["string"]
|
|
566
|
+
}
|
|
567
|
+
],
|
|
568
|
+
"waiting_calls": [
|
|
569
|
+
{
|
|
570
|
+
"id": "string",
|
|
571
|
+
"from_masked": "string",
|
|
572
|
+
"waited_seconds": 0,
|
|
573
|
+
"state": "string"
|
|
574
|
+
}
|
|
575
|
+
]
|
|
576
|
+
}
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
</details>
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
### `getCallReport`
|
|
584
|
+
|
|
585
|
+
Inbound call outcomes for a period, from the provider's call reporting: how many inbound calls
|
|
586
|
+
there were, how many an agent handled (bridged) and how many ended without an agent (abandoned
|
|
587
|
+
or failed)
|
|
588
|
+
|
|
589
|
+
`GET /v1/manager/reporting/calls`
|
|
590
|
+
|
|
591
|
+
```ts
|
|
592
|
+
const { data } = await client.getCallReport({
|
|
593
|
+
from: 'example',
|
|
594
|
+
to: 'example',
|
|
595
|
+
})
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
<details>
|
|
599
|
+
<summary>Response</summary>
|
|
600
|
+
|
|
601
|
+
```json
|
|
602
|
+
{
|
|
603
|
+
"from": "1970-01-01T00:00:00.000Z",
|
|
604
|
+
"to": "1970-01-01T00:00:00.000Z",
|
|
605
|
+
"inbound_total": 0,
|
|
606
|
+
"handled_by_agent": 0,
|
|
607
|
+
"abandoned_or_failed": 0,
|
|
608
|
+
"previous_period": {
|
|
609
|
+
"from": "1970-01-01T00:00:00.000Z",
|
|
610
|
+
"to": "1970-01-01T00:00:00.000Z",
|
|
611
|
+
"inbound_total": 0
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
</details>
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
212
620
|
### `listProviderSetups`
|
|
213
621
|
|
|
214
622
|
Every organization that has a telephony provider tenant, for the admin portal's overview: the
|
|
@@ -493,6 +901,370 @@ type CustomerSummary = {
|
|
|
493
901
|
}
|
|
494
902
|
```
|
|
495
903
|
|
|
904
|
+
### `AgentState`
|
|
905
|
+
|
|
906
|
+
The agent's live line state as the provider reports it, plus `offline` for an agent whose
|
|
907
|
+
presence is not available (not signed in or on a busy presence) and `unknown` when the
|
|
908
|
+
provider gives no state. `in_call` covers ringing-to-bridged; `wrap_up` is the post-call time.
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
```ts
|
|
912
|
+
type AgentState = "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
### `AgentPresence`
|
|
916
|
+
|
|
917
|
+
The provider presence the agent has selected (e.g. Available, Break, Meeting)
|
|
918
|
+
|
|
919
|
+
```ts
|
|
920
|
+
type AgentPresence = {
|
|
921
|
+
name: string
|
|
922
|
+
label: string
|
|
923
|
+
available: boolean
|
|
924
|
+
}
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
### `Skill`
|
|
928
|
+
|
|
929
|
+
A skill as the phone system holds it (Babelforce: an agent tag). epilot's convention for skills is
|
|
930
|
+
`<skill category>:`<label>`` (e.g. `language:german`), which the control center shows as
|
|
931
|
+
"Category · Label"; a skill without a colon has no category.
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
```ts
|
|
935
|
+
type Skill = string
|
|
936
|
+
```
|
|
937
|
+
|
|
938
|
+
### `QueueRef`
|
|
939
|
+
|
|
940
|
+
```ts
|
|
941
|
+
type QueueRef = {
|
|
942
|
+
id: string
|
|
943
|
+
name: string
|
|
944
|
+
}
|
|
945
|
+
```
|
|
946
|
+
|
|
947
|
+
### `PersonRef`
|
|
948
|
+
|
|
949
|
+
An agent as a routing step names them
|
|
950
|
+
|
|
951
|
+
```ts
|
|
952
|
+
type PersonRef = {
|
|
953
|
+
provider_agent_id: string
|
|
954
|
+
user_id?: string
|
|
955
|
+
name: string
|
|
956
|
+
}
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
### `EligibilityPath`
|
|
960
|
+
|
|
961
|
+
How an agent can take a queue's calls:
|
|
962
|
+
- `skill`: the queue routes to people with a skill the agent has (changes with the agent's skills);
|
|
963
|
+
- `direct`: the agent is in the queue's epilot-managed step (added from the control center);
|
|
964
|
+
- `routing`: the phone system's own routing names the agent (a team
|
|
965
|
+
|
|
966
|
+
```ts
|
|
967
|
+
type EligibilityPath = "skill" | "direct" | "routing"
|
|
968
|
+
```
|
|
969
|
+
|
|
970
|
+
### `AgentQueueEligibility`
|
|
971
|
+
|
|
972
|
+
A queue an agent can take calls from, and why
|
|
973
|
+
|
|
974
|
+
```ts
|
|
975
|
+
type AgentQueueEligibility = {
|
|
976
|
+
id: string
|
|
977
|
+
name: string
|
|
978
|
+
via: "skill" | "direct" | "routing"[]
|
|
979
|
+
skills: string[]
|
|
980
|
+
locked: boolean
|
|
981
|
+
}
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
### `LiveAgent`
|
|
985
|
+
|
|
986
|
+
```ts
|
|
987
|
+
type LiveAgent = {
|
|
988
|
+
provider_agent_id: string
|
|
989
|
+
user_id?: string
|
|
990
|
+
name: string
|
|
991
|
+
email?: string
|
|
992
|
+
enabled: boolean
|
|
993
|
+
state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"
|
|
994
|
+
presence?: {
|
|
995
|
+
name: string
|
|
996
|
+
label: string
|
|
997
|
+
available: boolean
|
|
998
|
+
}
|
|
999
|
+
display_status?: string
|
|
1000
|
+
skills: string[]
|
|
1001
|
+
queues: Array<{
|
|
1002
|
+
id: string
|
|
1003
|
+
name: string
|
|
1004
|
+
via: "skill" | "direct" | "routing"[]
|
|
1005
|
+
skills: string[]
|
|
1006
|
+
locked: boolean
|
|
1007
|
+
}>
|
|
1008
|
+
current_call?: {
|
|
1009
|
+
started_at: string // date-time
|
|
1010
|
+
queue_name?: string
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
### `LiveAgentCounters`
|
|
1016
|
+
|
|
1017
|
+
Presence counters over the organization's agents
|
|
1018
|
+
|
|
1019
|
+
```ts
|
|
1020
|
+
type LiveAgentCounters = {
|
|
1021
|
+
total: number
|
|
1022
|
+
online: number
|
|
1023
|
+
available: number
|
|
1024
|
+
on_call: number
|
|
1025
|
+
wrap_up: number
|
|
1026
|
+
offline: number
|
|
1027
|
+
}
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
### `QueueHealth`
|
|
1031
|
+
|
|
1032
|
+
`at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one
|
|
1033
|
+
eligible agent is available. `quiet`: nothing waiting and nobody available.
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
```ts
|
|
1037
|
+
type QueueHealth = "healthy" | "at_risk" | "quiet"
|
|
1038
|
+
```
|
|
1039
|
+
|
|
1040
|
+
### `QueueLive`
|
|
1041
|
+
|
|
1042
|
+
Live demand and staffing of one queue
|
|
1043
|
+
|
|
1044
|
+
```ts
|
|
1045
|
+
type QueueLive = {
|
|
1046
|
+
id: string
|
|
1047
|
+
name: string
|
|
1048
|
+
waiting: number
|
|
1049
|
+
longest_wait_seconds?: number
|
|
1050
|
+
eligible: number
|
|
1051
|
+
available: number
|
|
1052
|
+
health: "healthy" | "at_risk" | "quiet"
|
|
1053
|
+
}
|
|
1054
|
+
```
|
|
1055
|
+
|
|
1056
|
+
### `LiveSnapshot`
|
|
1057
|
+
|
|
1058
|
+
```ts
|
|
1059
|
+
type LiveSnapshot = {
|
|
1060
|
+
captured_at: string // date-time
|
|
1061
|
+
agents: {
|
|
1062
|
+
total: number
|
|
1063
|
+
online: number
|
|
1064
|
+
available: number
|
|
1065
|
+
on_call: number
|
|
1066
|
+
wrap_up: number
|
|
1067
|
+
offline: number
|
|
1068
|
+
}
|
|
1069
|
+
queues: Array<{
|
|
1070
|
+
id: string
|
|
1071
|
+
name: string
|
|
1072
|
+
waiting: number
|
|
1073
|
+
longest_wait_seconds?: number
|
|
1074
|
+
eligible: number
|
|
1075
|
+
available: number
|
|
1076
|
+
health: "healthy" | "at_risk" | "quiet"
|
|
1077
|
+
}>
|
|
1078
|
+
calls_waiting: number
|
|
1079
|
+
longest_wait_seconds?: number
|
|
1080
|
+
}
|
|
1081
|
+
```
|
|
1082
|
+
|
|
1083
|
+
### `QueueRoutingStep`
|
|
1084
|
+
|
|
1085
|
+
One step of who can take a queue's calls, in the order the phone system tries them. A step
|
|
1086
|
+
offers calls to the people it names and to everyone with any of its skills. Teams set up in the
|
|
1087
|
+
phone system appear as the people they contain. The epilot-managed step holds the people added
|
|
1088
|
+
from the control c
|
|
1089
|
+
|
|
1090
|
+
```ts
|
|
1091
|
+
type QueueRoutingStep = {
|
|
1092
|
+
id: string
|
|
1093
|
+
order: number
|
|
1094
|
+
label: string
|
|
1095
|
+
enabled: boolean
|
|
1096
|
+
skills: string[]
|
|
1097
|
+
people: Array<{
|
|
1098
|
+
provider_agent_id: string
|
|
1099
|
+
user_id?: string
|
|
1100
|
+
name: string
|
|
1101
|
+
}>
|
|
1102
|
+
managed_by_epilot: boolean
|
|
1103
|
+
}
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
### `QueueOverview`
|
|
1107
|
+
|
|
1108
|
+
```ts
|
|
1109
|
+
type QueueOverview = {
|
|
1110
|
+
id: string
|
|
1111
|
+
name: string
|
|
1112
|
+
waiting: number
|
|
1113
|
+
longest_wait_seconds?: number
|
|
1114
|
+
eligible: number
|
|
1115
|
+
available: number
|
|
1116
|
+
health: "healthy" | "at_risk" | "quiet"
|
|
1117
|
+
numbers?: string[]
|
|
1118
|
+
routing: Array<{
|
|
1119
|
+
id: string
|
|
1120
|
+
order: number
|
|
1121
|
+
label: string
|
|
1122
|
+
enabled: boolean
|
|
1123
|
+
skills: string[]
|
|
1124
|
+
people: Array<{
|
|
1125
|
+
provider_agent_id: { ... }
|
|
1126
|
+
user_id?: { ... }
|
|
1127
|
+
name: { ... }
|
|
1128
|
+
}>
|
|
1129
|
+
managed_by_epilot: boolean
|
|
1130
|
+
}>
|
|
1131
|
+
}
|
|
1132
|
+
```
|
|
1133
|
+
|
|
1134
|
+
### `EligibleAgent`
|
|
1135
|
+
|
|
1136
|
+
An agent who can take the queue's calls, with live status
|
|
1137
|
+
|
|
1138
|
+
```ts
|
|
1139
|
+
type EligibleAgent = {
|
|
1140
|
+
provider_agent_id: string
|
|
1141
|
+
user_id?: string
|
|
1142
|
+
name: string
|
|
1143
|
+
email?: string
|
|
1144
|
+
state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"
|
|
1145
|
+
presence?: {
|
|
1146
|
+
name: string
|
|
1147
|
+
label: string
|
|
1148
|
+
available: boolean
|
|
1149
|
+
}
|
|
1150
|
+
via: "skill" | "direct" | "routing"[]
|
|
1151
|
+
skills: string[]
|
|
1152
|
+
}
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
### `WaitingCall`
|
|
1156
|
+
|
|
1157
|
+
```ts
|
|
1158
|
+
type WaitingCall = {
|
|
1159
|
+
id: string
|
|
1160
|
+
from_masked?: string
|
|
1161
|
+
waited_seconds: number
|
|
1162
|
+
state: string
|
|
1163
|
+
}
|
|
1164
|
+
```
|
|
1165
|
+
|
|
1166
|
+
### `QueueDetail`
|
|
1167
|
+
|
|
1168
|
+
```ts
|
|
1169
|
+
type QueueDetail = {
|
|
1170
|
+
captured_at: string // date-time
|
|
1171
|
+
eligible_agents: Array<{
|
|
1172
|
+
provider_agent_id: string
|
|
1173
|
+
user_id?: string
|
|
1174
|
+
name: string
|
|
1175
|
+
email?: string
|
|
1176
|
+
state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"
|
|
1177
|
+
presence?: {
|
|
1178
|
+
name: { ... }
|
|
1179
|
+
label: { ... }
|
|
1180
|
+
available: { ... }
|
|
1181
|
+
}
|
|
1182
|
+
via: "skill" | "direct" | "routing"[]
|
|
1183
|
+
skills: string[]
|
|
1184
|
+
}>
|
|
1185
|
+
waiting_calls: Array<{
|
|
1186
|
+
id: string
|
|
1187
|
+
from_masked?: string
|
|
1188
|
+
waited_seconds: number
|
|
1189
|
+
state: string
|
|
1190
|
+
}>
|
|
1191
|
+
}
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
### `AgentRoutingRequest`
|
|
1195
|
+
|
|
1196
|
+
```ts
|
|
1197
|
+
type AgentRoutingRequest = {
|
|
1198
|
+
skills: string[]
|
|
1199
|
+
queue_ids: string[]
|
|
1200
|
+
}
|
|
1201
|
+
```
|
|
1202
|
+
|
|
1203
|
+
### `AgentRouting`
|
|
1204
|
+
|
|
1205
|
+
```ts
|
|
1206
|
+
type AgentRouting = {
|
|
1207
|
+
provider_agent_id: string
|
|
1208
|
+
skills: string[]
|
|
1209
|
+
queues: Array<{
|
|
1210
|
+
id: string
|
|
1211
|
+
name: string
|
|
1212
|
+
via: "skill" | "direct" | "routing"[]
|
|
1213
|
+
skills: string[]
|
|
1214
|
+
locked: boolean
|
|
1215
|
+
}>
|
|
1216
|
+
}
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
### `AgentRoutingPreview`
|
|
1220
|
+
|
|
1221
|
+
```ts
|
|
1222
|
+
type AgentRoutingPreview = {
|
|
1223
|
+
provider_agent_id: string
|
|
1224
|
+
before: Array<{
|
|
1225
|
+
id: string
|
|
1226
|
+
name: string
|
|
1227
|
+
}>
|
|
1228
|
+
after: Array<{
|
|
1229
|
+
id: string
|
|
1230
|
+
name: string
|
|
1231
|
+
}>
|
|
1232
|
+
added: Array<{
|
|
1233
|
+
id: string
|
|
1234
|
+
name: string
|
|
1235
|
+
}>
|
|
1236
|
+
removed: Array<{
|
|
1237
|
+
id: string
|
|
1238
|
+
name: string
|
|
1239
|
+
}>
|
|
1240
|
+
coverage_lost: Array<{
|
|
1241
|
+
id: string
|
|
1242
|
+
name: string
|
|
1243
|
+
}>
|
|
1244
|
+
locked: Array<{
|
|
1245
|
+
id: string
|
|
1246
|
+
name: string
|
|
1247
|
+
}>
|
|
1248
|
+
}
|
|
1249
|
+
```
|
|
1250
|
+
|
|
1251
|
+
### `CallReport`
|
|
1252
|
+
|
|
1253
|
+
```ts
|
|
1254
|
+
type CallReport = {
|
|
1255
|
+
from: string // date-time
|
|
1256
|
+
to: string // date-time
|
|
1257
|
+
inbound_total: number
|
|
1258
|
+
handled_by_agent: number
|
|
1259
|
+
abandoned_or_failed: number
|
|
1260
|
+
previous_period: {
|
|
1261
|
+
from: string // date-time
|
|
1262
|
+
to: string // date-time
|
|
1263
|
+
inbound_total: number
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
```
|
|
1267
|
+
|
|
496
1268
|
### `ErrorResponse`
|
|
497
1269
|
|
|
498
1270
|
```ts
|