坐席管理

坐席的数据结构用类 JSON 形式可表示为:

  1. {
  2. name: "1001", // 坐席名称,应用服务指定,应用内唯一
  3. num: "1001", // 坐席工号,用于播报工号
  4. state: "away/drinking", // 坐席状态
  5. skills: [ // 坐席所拥有的技能,和技能分数
  6. {name: "投诉", score: 80, enabled: true},
  7. {name: "联想笔记本", score: 90, enabled: true}
  8. ],
  9. extension: "fj2m90cuildf" // 坐席的分机
  10. }

登录

不可重复登录

URL

  1. 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。

返回参数

暂无说明

登录示例

请求:

  1. POST {BASE_URL}/callcenter/agent HTTP/1.1
  2. Content-Type: application/json
  3. Accept-Type: application/json
  4. {
  5. "name": "1004",
  6. "num": "1002",
  7. "state": "away/drinking",
  8. "skills": [
  9. {"name": "投诉", "score": 80, "enabled": true},
  10. {"name": "建议", "score": 90, "enabled": true}
  11. ],
  12. "extension": "40288aca587659820158765c305f0000"
  13. }

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }

注销

URL

  1. DELETE {BASE_URL}/callcenter/agent/{agent_name}

请求参数

参数 有效值范围 必填 默认值 说明
force true false false 强行注销

force

如果坐席的分机处于呼叫中,平台禁止注销。 此时,如果设置该参数为 true ,平台会断开坐席分机和平台之间的呼叫,然后注销坐席。

返回参数

暂无说明

注销示例

请求:

  1. DELETE {BASE_URL}/callcenter/agent/1004?force=true HTTP/1.1

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }

报到

如果壹耘平台长时间收不到坐席的报到,就认为该坐席离线(offine)。

URL

  1. GET {BASE_URL}/callcenter/agent/{agent_name}/keepalive

请求参数

报到示例

请求:

  1. GET {BASE_URL}/callcenter/agent/1001/keepalive HTTP/1.1

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }

获取坐席信息

URL

  1. GET {BASE_URL}/callcenter/agent[/{agent_name}]

URL 不包含 {agent_name} 参数,则获取坐席列表,否则获取具体的某个坐席的信息。

请求参数

参数 有效值范围 必填 默认值 说明
pageNo 数字 1 当获取多个座席时有效,第几页
pageSize 小于2000 20 当获取多个座席时有效,每一页的记录数

返回参数

坐席或者坐席列表

暂无说明

获取座席信息示例

请求单个:

  1. GET {BASE_URL}/callcenter/agent/1001 HTTP/1.1

响应单个:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": {
  8. "name": "1001",
  9. "num": "1002",
  10. "state": null,
  11. "extension": null,
  12. "skills": [
  13. {"name": "投诉","score": 80, "enabled": true},
  14. {"name": "建议","score": 90,"enabled": true}
  15. ]
  16. }
  17. }

请求多个:

  1. GET {BASE_URL}/callcenter/agent?pageNo=1&pageSize=10 HTTP/1.1

响应多个:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": {
  8. "pageSize": 10, //每一页的记录数
  9. "startIndex": 1, //从第几条开始
  10. "totalCount": 3, //总记录数
  11. "totalPageCount": 1, //总页数
  12. "currentPageNo": 1, //当前页数
  13. "result": [
  14. {
  15. "name": "1003",
  16. "num": "1002",
  17. "state": null,
  18. "extension": null,
  19. "skills": [
  20. {"name": "投诉","score": 80,"enabled": true},
  21. {"name": "建议", "score": 90,"enabled": true}
  22. ]
  23. },
  24. {
  25. "name": "1002",
  26. "num": "1002",
  27. "state": null,
  28. "extension": null,
  29. "skills": [
  30. {"name": "投诉","score": 80,"enabled": true},
  31. {"name": "建议","score": 90,"enabled": true}
  32. ]
  33. },
  34. {
  35. "name": "1001",
  36. "num": "1002",
  37. "state": null,
  38. "extension": null,
  39. "skills": [
  40. {"name": "投诉","score": 80,"enabled": true},
  41. {"name": "建议","score": 90,"enabled": true}
  42. ]
  43. }
  44. ]
  45. }
  46. }

设置分机

URL

  1. POST {BASE_URL}/callcenter/agent/{agent_name}/extension

请求参数

参数 有效值范围 必填 说明
id 分机ID 分配给座席的分机的ID
  • 坐席必须要一个分机才能正常使用话务功能。

返回参数

暂无说明

设置分机示例

请求:

  1. POST {BASE_URL}/callcenter/agent/1001/extension HTTP/1.1
  2. Content-Type: application/json
  3. Accept-Type: application/json
  4. {
  5. "id":"40288aca586222110158622286590000"
  6. }

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }

状态设置

URL

  1. POST {BASE_URL}/callcenter/agent/{agent_name}/state

请求参数

参数 有效值范围 必填 说明
state 状态值字符串 新的状态

用字符串表述坐席状态。

坐席状态包括基本状态和扩展状态,用类目录格式的字符串表示:

  1. <基本状态>[/扩展状态]

如:

  1. away/shitting
  2. talking/complaint
  3. busy/维修单录入

基本状态是固定的,它包括:

名称 可扩展 说明
online 在线:已经登录,但是没有设置进一步的状态
idle 空闲
fetching 平台正在呼叫该坐席的分机
talking 服务中(分机通话中)
busy 忙碌
away 离开

busyaway可扩展,扩展部分是满足POSIX文件路径规范的符串,不超过256长度。

  • 坐席的状态变为 talking/*, fetching/* 时无法通过API修改。
  • 通过状态修改API只能将坐席状态修改为 busy/*, away/* 或者 idle
  • 坐席登录后,默认的初始状态是online,一旦其状态由online变为其它非离线状态,就不能再变成online
  • 只有处于idle状态的坐席才会被平台分配到排队任务。

坐席状态

返回参数

暂无说明

状态设置示例

请求:

  1. POST {BASE_URL}/callcenter/agent/1001/state HTTP/1.1
  2. Content-Type: application/json
  3. Accept-Type: application/json
  4. {
  5. "state":"busy/打印文件"
  6. }

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }

技能设置

URL

  1. POST {BASE_URL}/callcenter/agent/{agent_name}/skills

请求参数

参数 有效值范围 必填 说明
opts 技能操作列表 技能操作列表

opts 参数

技能操作列表用于表示如何修改坐席的技能,该列表的元素是 opts 技能操作对象,该对象的属性定义是:

属性名 数据类型 必填 说明
opt Integer 操作类型,1表示新增或者修改,2表示删除,0表示删除所有。
name String 要操作的技能。当 opt==1opt==2 时有效。
score Number 坐席技能分。仅在 opt==1 时有效;如果坐席已经拥有该技能,不填表示不修改,否则分数为0。
enabled Boolean 坐席是否启用技能。仅在 opt==1 时有效;如果坐席已经拥有该技能,不填表示不修改,否则 enabled==false

壹耘平台按照顺序执行 skillopts 中定义的操作 eg: “投诉”技能分数调整为95,然后删除“洗衣机”技能,请求内容为

  1. {
  2. opts:[
  3. {opt: 1, name: "投诉", score: 95, enabled: true},
  4. {opt: 2, name: "洗衣机"},
  5. ]
  6. }

eg: 删除所有技能,请求内容为

  1. {
  2. opts:[
  3. {opt: 0}
  4. ]
  5. }

eg: 禁用“投诉”技能,请求内容为

  1. {
  2. opts:[
  3. {opt: 1, name: "投诉", enabled: false}
  4. ]
  5. }

eg: 清空所有技能,然后新建“投诉”技能,分数为60,请求内容为

  1. {
  2. opts:[
  3. {opt: 0},
  4. {opt: 1, name: "投诉", score: 60, enabled: true}
  5. ]
  6. }

返回参数

暂无说明

技能设置示例

请求:

  1. POST {BASE_URL}/callcenter/agent/1001/skills HTTP/1.1
  2. Content-Type: application/json
  3. Accept-Type: application/json
  4. {
  5. opts:[
  6. {"opt": 2, "name": "手机"},
  7. {"opt": 1, "name": "投诉","score":50, "enabled": true}
  8. ]
  9. }

响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. Content-Length: xxx
  4. {
  5. "code": "000000",
  6. "msg": "请求成功",
  7. "data": null
  8. }