代理状态 API 端点提供对代理状态对象的访问权限。系统会为在 Contact Center AI 平台 (CCAI Platform) 中配置的每个用户创建一个代理对象,该用户具有包含代理权限的角色。
以下是代理状态 API 端点:
借助代理状态端点,您可以修改代理的状态。 它们支持将状态从可用 更改为任何自定义状态。如果状态转换到系统定义的状态(例如通话中 )或从系统定义的状态转换,则会触发错误。 此外,这些端点还支持批量更新,同时允许修改整个团队或所选代理群组的状态。
更新代理状态
借助此端点,您可以更新代理的状态。下表显示了 JSON 正文中的属性:
| 属性 | 必需 | 数据类型 | 定义 |
|---|---|---|---|
| 状态 | TRUE | 字符串 | 要为代理设置的状态,例如“可用”。 |
| agent_ids | TRUE | 数组整数 | 代理 ID 数组。 |
| team_ids | TRUE | 数组整数 | 团队 ID 数组。 |
端点:
Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/agent_statuses
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
{
"status": "Available",
"agent_ids": [
11,
12
],
"team_ids": []
}
请求和响应示例
以下部分提供了针对该端点的请求示例。
成功更改代理状态
以下示例展示了更改某些代理状态的请求和关联响应,其中操作已成功。
请求
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
{
"status": "Available",
"agent_ids": [
11,
12
],
"team_ids": [
1
]
}
回答:
[
{
"agent_id": 11,
"name": "Darth Vader",
"email": "notanakinskywalker@empire.com",
"agent_number": "Agent No.111",
"previous_status": "lunch",
"current_status": "Available"
},
{
"agent_id": 12,
"name": "Craig T",
"email": "craigT@nelson.com",
"agent_number": "Agent No.112",
"previous_status": "In-call",
"current_status": "In-call",
"message": "Agent can't be changed from system status 'In-call'"
},
{
"agent_id": 13,
"name": "Raymond D",
"email": "rayd@nelson.com",
"agent_number": "Agent No.113",
"previous_status": "Offline",
"current_status": "Offline",
"message": "Agent's status can't be changed if they are offline or logged out"
}
]
状态代码: 200
状态不存在
此示例展示了请求和关联响应,其中提供的状态不存在,因此被视为无效。
请求
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
Body
{
"status": "Napping",
"agent_ids": [
11,
12
],
"team_ids": []
}
回答:错误:状态“Napping”不存在
{
"message": "status 'Napping' does not exist"
}
状态代码: 400
状态设置为系统状态
此示例展示了请求和响应,其中状态设置为系统状态,在本例中为“通话中”。无法将代理的状态设置为由系统管理的状态。
请求
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
Body
{
"status": "In-call",
"agent_ids": [
11,
12
]
}
回答:错误:无法将代理更改为系统状态“通话中”
{
"message": "Agent can't be changed to system status 'In-call'"
}
状态代码: 400
获取代理状态
借助此端点,您可以检索代理的状态。下表显示了 JSON 正文中的属性:
| 属性 | 必需 | 数据类型 | 定义 |
|---|---|---|---|
| 状态 | TRUE | 字符串 | 要为代理设置的状态,例如“可用”。 |
| agent_ids | FALSE | 数组整数 | 代理 ID 数组。 |
| team_ids | FALSE | 数组整数 | 团队 ID 数组。 |
端点:
Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/agent_statuses
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
{
"agent_ids": [
11,
12
],
"team_ids": [
1
]
}
请求和响应示例
以下部分提供了针对该端点的请求示例。
获取特定代理和团队的状态
此示例展示了如何获取 ID 为 11 和 12 的代理的状态,以及 ID 为 1 的团队中任何代理的状态。
请求
标头:
| 键 | 值 | 说明 |
|---|---|---|
| Content-Type | application/json |
正文:
{
"agent_ids": [
11,
12
],
"team_ids": [
1
]
}
回答:所请求代理的状态
[
{
"agent_id": 11,
"name": "Darth Vader",
"email": "notanakinskywalker@empire.com",
"agent_number": "Agent No.111",
"status": "lunch",
"ip_addrs": [
"34.211.11.101"
]
},
{
"agent_id": 12,
"name": "Craig T",
"email": "craigT@nelson.com",
"agent_number": "Agent No.112",
"status": "In-call",
"ip_addrs": [
"34.211.11.102"
]
},
{
"agent_id": 13,
"name": "Raymond D",
"email": "rayd@nelson.com",
"agent_number": "Agent No.113",
"status": "Offline",
"ip_addrs": [
"34.211.11.103"
]
}
]
状态代码: 200