坐席管理
坐席的数据结构用类 JSON 形式可表示为:
{name: "1001", // 坐席名称,应用服务指定,应用内唯一num: "1001", // 坐席工号,用于播报工号state: "away/drinking", // 坐席状态skills: [ // 坐席所拥有的技能,和技能分数{name: "投诉", score: 80, enabled: true},{name: "联想笔记本", score: 90, enabled: true}],extension: "fj2m90cuildf" // 坐席的分机}
登录
不可重复登录
URL
POST {BASE_URL}/callcenter/agent
请求参数
| 参数 | 有效值范围 | 必填 | 说明 |
|---|---|---|---|
name |
字符/数字字符串 | √ | 该坐席的唯一标识,应用内必须唯一 |
num |
数字字符串 | 该坐席的工号,如果不填,就无法播报工号 | |
state |
状态字符串 | 登录后的初始状态 | |
skills |
技能数组 | 登录后的初始技能 | |
extension |
绑定分机的ID | √ | 登录后初始绑定分机 |
name参数: 一个应用中的坐席name,坐席名称必须在应用内唯一,不得超过32字符长度,只能由基本字母、数字、下划线构成num参数: 报工号时使用。state参数: 详见 状态设置 一节。skills参数:
| 属性名 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
name |
String |
√ | 技能名称 |
score |
int |
技能分数 | |
enabled |
Boolean |
是否启用技能 |
extension参数: 分机的ID。
返回参数
暂无说明
登录示例
请求:
POST {BASE_URL}/callcenter/agent HTTP/1.1Content-Type: application/jsonAccept-Type: application/json{"name": "1004","num": "1002","state": "away/drinking","skills": [{"name": "投诉", "score": 80, "enabled": true},{"name": "建议", "score": 90, "enabled": true}],"extension": "40288aca587659820158765c305f0000"}
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
注销
URL
DELETE {BASE_URL}/callcenter/agent/{agent_name}
请求参数
| 参数 | 有效值范围 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
force |
true false |
false |
强行注销 |
force
如果坐席的分机处于呼叫中,平台禁止注销。
此时,如果设置该参数为 true ,平台会断开坐席分机和平台之间的呼叫,然后注销坐席。
返回参数
暂无说明
注销示例
请求:
DELETE {BASE_URL}/callcenter/agent/1004?force=true HTTP/1.1
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
报到
如果壹耘平台长时间收不到坐席的报到,就认为该坐席离线(offine)。
URL
GET {BASE_URL}/callcenter/agent/{agent_name}/keepalive
请求参数
无
报到示例
请求:
GET {BASE_URL}/callcenter/agent/1001/keepalive HTTP/1.1
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
获取坐席信息
URL
GET {BASE_URL}/callcenter/agent[/{agent_name}]
URL 不包含 {agent_name} 参数,则获取坐席列表,否则获取具体的某个坐席的信息。
请求参数
| 参数 | 有效值范围 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
pageNo |
数字 | 否 | 1 | 当获取多个座席时有效,第几页 |
pageSize |
小于2000 | 否 | 20 | 当获取多个座席时有效,每一页的记录数 |
返回参数
坐席或者坐席列表
暂无说明
获取座席信息示例
请求单个:
GET {BASE_URL}/callcenter/agent/1001 HTTP/1.1
响应单个:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": {"name": "1001","num": "1002","state": null,"extension": null,"skills": [{"name": "投诉","score": 80, "enabled": true},{"name": "建议","score": 90,"enabled": true}]}}
请求多个:
GET {BASE_URL}/callcenter/agent?pageNo=1&pageSize=10 HTTP/1.1
响应多个:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": {"pageSize": 10, //每一页的记录数"startIndex": 1, //从第几条开始"totalCount": 3, //总记录数"totalPageCount": 1, //总页数"currentPageNo": 1, //当前页数"result": [{"name": "1003","num": "1002","state": null,"extension": null,"skills": [{"name": "投诉","score": 80,"enabled": true},{"name": "建议", "score": 90,"enabled": true}]},{"name": "1002","num": "1002","state": null,"extension": null,"skills": [{"name": "投诉","score": 80,"enabled": true},{"name": "建议","score": 90,"enabled": true}]},{"name": "1001","num": "1002","state": null,"extension": null,"skills": [{"name": "投诉","score": 80,"enabled": true},{"name": "建议","score": 90,"enabled": true}]}]}}
设置分机
URL
POST {BASE_URL}/callcenter/agent/{agent_name}/extension
请求参数
| 参数 | 有效值范围 | 必填 | 说明 |
|---|---|---|---|
id |
分机ID | √ | 分配给座席的分机的ID |
- 坐席必须要一个分机才能正常使用话务功能。
返回参数
暂无说明
设置分机示例
请求:
POST {BASE_URL}/callcenter/agent/1001/extension HTTP/1.1Content-Type: application/jsonAccept-Type: application/json{"id":"40288aca586222110158622286590000"}
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
状态设置
URL
POST {BASE_URL}/callcenter/agent/{agent_name}/state
请求参数
| 参数 | 有效值范围 | 必填 | 说明 |
|---|---|---|---|
state |
状态值字符串 | √ | 新的状态 |
用字符串表述坐席状态。
坐席状态包括基本状态和扩展状态,用类目录格式的字符串表示:
<基本状态>[/扩展状态]
如:
away/shittingtalking/complaintbusy/维修单录入
基本状态是固定的,它包括:
| 名称 | 可扩展 | 说明 |
|---|---|---|
| online | 在线:已经登录,但是没有设置进一步的状态 | |
| idle | 空闲 | |
| fetching | √ | 平台正在呼叫该坐席的分机 |
| talking | √ | 服务中(分机通话中) |
| busy | √ | 忙碌 |
| away | √ | 离开 |
busy和away可扩展,扩展部分是满足POSIX文件路径规范的符串,不超过256长度。
- 坐席的状态变为
talking/*,fetching/*时无法通过API修改。 - 通过状态修改API只能将坐席状态修改为
busy/*,away/*或者idle。 - 坐席登录后,默认的初始状态是
online,一旦其状态由online变为其它非离线状态,就不能再变成online。 - 只有处于
idle状态的坐席才会被平台分配到排队任务。
返回参数
暂无说明
状态设置示例
请求:
POST {BASE_URL}/callcenter/agent/1001/state HTTP/1.1Content-Type: application/jsonAccept-Type: application/json{"state":"busy/打印文件"}
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
技能设置
URL
POST {BASE_URL}/callcenter/agent/{agent_name}/skills
请求参数
| 参数 | 有效值范围 | 必填 | 说明 |
|---|---|---|---|
opts |
技能操作列表 | √ | 技能操作列表 |
opts 参数
技能操作列表用于表示如何修改坐席的技能,该列表的元素是 opts 技能操作对象,该对象的属性定义是:
| 属性名 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
opt |
Integer |
√ | 操作类型,1表示新增或者修改,2表示删除,0表示删除所有。 |
name |
String |
√ | 要操作的技能。当 opt==1或opt==2 时有效。 |
score |
Number |
坐席技能分。仅在 opt==1 时有效;如果坐席已经拥有该技能,不填表示不修改,否则分数为0。 |
|
enabled |
Boolean |
坐席是否启用技能。仅在 opt==1 时有效;如果坐席已经拥有该技能,不填表示不修改,否则 enabled==false。 |
壹耘平台按照顺序执行 skillopts 中定义的操作
eg:
“投诉”技能分数调整为95,然后删除“洗衣机”技能,请求内容为
{opts:[{opt: 1, name: "投诉", score: 95, enabled: true},{opt: 2, name: "洗衣机"},]}
eg: 删除所有技能,请求内容为
{opts:[{opt: 0}]}
eg: 禁用“投诉”技能,请求内容为
{opts:[{opt: 1, name: "投诉", enabled: false}]}
eg: 清空所有技能,然后新建“投诉”技能,分数为60,请求内容为
{opts:[{opt: 0},{opt: 1, name: "投诉", score: 60, enabled: true}]}
返回参数
暂无说明
技能设置示例
请求:
POST {BASE_URL}/callcenter/agent/1001/skills HTTP/1.1Content-Type: application/jsonAccept-Type: application/json{opts:[{"opt": 2, "name": "手机"},{"opt": 1, "name": "投诉","score":50, "enabled": true}]}
响应:
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: xxx{"code": "000000","msg": "请求成功","data": null}
