在线客服统计V6 API
# 在线客服统计V6 API
# 接口声明
在调用接口时必须在 https 请求的 header 中携带 "token" 参数。
Token 是智齿客服接口开放平台全局唯一的接口调用凭据。 开发者在调用各业务接口时都需使用 Token,开发者需要进行妥善保存。 Token 的存储至少要保留 32 个字符空间。Token 的有效期目前为 24 个小时,需定时刷新,或根据接口返回的 Token 失效提示,进行重新获取。请求 Token 接口,无论 Token 是否存在,都会返回新的 Token,并重置 Token 的过期时间(目前 24 小时)。
Token 使用方式说明:
1、开发者需要统一获取和管理 Token,在调用智齿客服各个业务开放接口时都应该使用同一个的 Token,不应该每个业务都刷新获取新的
Token,否则容易导致 Token 失效,影响接口的正常调用;
2、目前 Token 的有效期通过返回的 expire_in 来传达,目前是 86,400 秒之内的值。开发者需要根据这个有效时间提前去刷新新
Token。
3、开发者需要根据接口返回的 Token 失效提示,进行重新获取 Token。
# 接口调用
# ● 获取访问 Token 编码
接口说明:
获取 API 开放接口 Token,此 Token 仅适用于智齿开放平台 5.0 版本全部 API 接口 。API 接口中的参数 appid 、 app_key 请联系智齿售后人员获取。
请求方式:
GET
请求地址:
https://www.sobot.com/api/get_token
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | String | 是 | 接口凭证 Id |
create_time | String | 是 | 时间戳 |
sign | String | 是 | 签名 |
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
item | Object | 否 | 返回对象 |
item 对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
token | String | 是 | token 编码 |
expires_in | String | 是 | 凭证有效时间 |
时间戳转换参考工具:
http://tool.chinaz.com/Tools/unixtime.aspx
sign 签名生成示例:
例如:appid = "1"; create_time="1569397773"; app_key="2"
sign = Md5("115693977732") 为 258eec3118705112b2c53dc8043d4d34。
请求示例:
curl https://www.sobot.com/api/get_token?appid=1&create_time=1569397773&sign=258eec3118705112b2c53dc8043d4d34
返回示例:
{
"item": {
"token": "4ac37cb2e9c740dba4b75a34d5358802",
"expires_in": "86400"
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
# 参数和状态码说明
# 参数
请求头参数说明:
参数 | 类型 | 必填 | 描述 | 备注 |
---|---|---|---|---|
token | String | 是 | token | |
timezoneid | String | 否 | 时区 | 标准的时区ID,不传或非法默认为"Asia/Shanghai" |
language | String | 否 | 语言标识 | en:英文,zh:中文,不传或非法默认为"zh" |
其他参数说明:
关于入参时间说明,通常常规接口如无特殊备注,传入的时间大于当前时间为了确保入参的合法性我们则会根据接口指定的pattern,重置入参时间为当前时间, 例如今天是2023-09-11日,那么传入的时间假设是2023-09-12日则会重置时间为2023-09-11日.
如果传入的时间为起始时间和结束时间通常接口无特殊说明,结束时间也不能大于起始时间.
时间格式说明:
pattern | Date |
---|---|
yyyy-MM-dd | 2023-09-01 |
yyyy-MM-dd HH:mm | 2023-09-01 00:00 |
yyyy-MM-dd HH:mm:ss | 2023-09-01 00:00:00 |
# 统一状态码描述
返回参数:
错误码 | 描述 |
---|---|
000000 | 成功 |
900001 | token为空 |
900002 | token认证失败 |
229000 | 调用接口过于频繁 |
222000 | 接口入参错误 |
999999 | 系统内部错误 |
返回示例:
{
"ret_code": "000000",
"ret_msg": "成功",
"item": {}
}
2
3
4
5
{
"ret_code": "900001",
"ret_msg": "token为空!"
}
2
3
4
{
"ret_code": "900002",
"ret_msg": "token已失效或不存在,请重新获取!"
}
2
3
4
{
"ret_code": "229000",
"ret_msg": "接口调用过于频繁,请[60]秒以后重试,目前允许[60]秒调用接口[20]次,超过次数将被限制!"
}
2
3
4
{
"ret_code": "222000",
"ret_msg": "[start_date]参数格式错误,正确的格式是[yyyy-MM-dd],当前入参是[2023-07-24 1]"
}
2
3
4
{
"ret_code": "999999",
"ret_msg": "系统未知异常"
}
2
3
4
5
# 接口域名地址说明
# 阿里云域名地址
https://api-c.sobot.com/text
# 腾讯云域名地址
https://api-c.soboten.com/text
# 完整地址示例
1、用户请求阿里云环境全路径地址
https://api-c.sobot.com/text/chat-static-api/api/customerService/staffWorkStatis
2、用户请求腾讯云环境全路径地址
https://api-c.soboten.com/text/chat-static-api/api/customerService/staffWorkStatis
# 客服统计API
# ● 查询客服工作量统计(分页)
请求方式:
POST
请求地址:
/chat-static-api/api/customerService/staffWorkStatis
请求参数:
参数 | 类型 | 必填 | 描述 | 备注 |
---|---|---|---|---|
search_way | Integer | 是 | 1-部门 2-技能组 | 为空search_way=2 |
start_date | String | 是 | 会话开始时间 | pattern:yyyy-MM-dd |
end_date | String | 是 | 会话结束时间 | pattern:yyyy-MM-dd |
staff_id_list | Array | 否 | 客服id | ["staffId1","staffId2"] |
group_id_list | Array | 否 | 技能组id | ["groupId1","groupId2"] |
page_no | String | 否 | 页码 | 默认1 |
page_size | String | 否 | 每页数量 | 默认15,最大允许为100,如果超过100则重置为100 |
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
page_no | String | 是 | 当前页 |
page_count | String | 是 | 总页数 |
page_size | String | 是 | 页面条数 |
total_count | String | 是 | 数据总条数 |
items | Array | 否 | 返回对象 |
items 对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
service_nick | String | 否 | 客服昵称 |
service_email | String | 否 | 客服邮箱 |
group_name | String | 否 | 客服技能组 |
human_consult | Integer | 否 | 总会话数 |
human_self | Integer | 否 | 独立接待会话数 |
human_valid | Integer | 否 | 有效会话数 |
human_invalid | Integer | 否 | 无效会话数 |
human_invalid_recep | Integer | 否 | 无效接待会话数 |
first_response_time_set | Integer | 否 | 首次接待首响会话数 |
transfer_first_res_duration | Long | 否 | 转接后首响会话数 |
valid_recep_rate_str | String | 否 | 有效接待会话率 |
not_recep_rate_str | String | 否 | 未接待会话率 |
max_conv_num | String | 否 | 最大同时接待会话数 |
human_consult_duration_str | String | 否 | 人工咨询时长 |
valid_information | Integer | 否 | 有效留资会话数 |
human_valid_recep | Integer | 否 | 有效接待会话数 |
valid_response_counts | Long | 否 | 有效交互会话数 |
avg_human_confirm_duration_transfer_str | String | 否 | 转接时长 |
total_human_message | Integer | 否 | 总会话消息数 |
msg_staff | Integer | 否 | 客服消息数 |
msg_visitor_tostaff | Integer | 否 | 客户消息数 |
answer_than_str | String | 否 | 问答比 |
msg_staff_wordcount | Integer | 否 | 客服字数 |
human_visitor_consult | Long | 否 | 有效咨询会话数 |
roll_in | Integer | 否 | 转入会话数 |
roll_out | Integer | 否 | 转出会话数 |
human_not_recep | Integer | 否 | 未接待会话数 |
last_staff_consult | Long | 否 | 最后接待数 |
quiet_after_session_count | Long | 否 | 24小时首解数 |
quiet_after_session_rate_str | String | 否 | 24小时首解率 |
human_initiative | Integer | 否 | 客服主动发起会话数 |
avg_session_duration_str | String | 否 | 平均人工接待时长 |
avg_total_session_duration_str | String | 否 | 平均总会话时长 |
avg_first_response_time_str | String | 否 | 平均首次响应时长 |
transfer_first_response_rate_str | String | 否 | 转接后首次响应率 |
response_time_avg_str | String | 否 | 平均响应时长 |
response_duration_max_str | String | 否 | 最大响应时长 |
first_response_rate_str | String | 否 | 首次响应率 |
first_response_in30s_rate_str | String | 否 | 30s应答率 |
first_response_in60s_rate_str | String | 否 | 60s应答率 |
solve_not_mark | Integer | 否 | 未标注是否解决会话 |
snatch_out | Integer | 否 | 被抢接会话数 |
response_counts | Integer | 否 | 人工会话轮次 |
summary_solved | Integer | 否 | 已解决会话数 |
summary_not_solved | Integer | 否 | 未解决会话数 |
snatch_in | Integer | 否 | 抢接会话数 |
response_rate_str | String | 否 | 客服最后回复率 |
staff_connect_rate_str | String | 否 | 客服接通率 |
human_res_warn_count | Integer | 否 | 人工会话响应报警轮次 |
human_res_warn_rate_str | String | 否 | 人工会话响应报警率 |
total_times | Integer | 否 | 参评数 |
comment_rate_str | String | 否 | 参评率 |
initiative | Integer | 否 | 客户主动参评数 |
customer_initiative_rate_str | String | 否 | 客户主动参评率 |
invite_counts | Integer | 否 | 邀请数 |
invite_counts_rate_str | String | 否 | 邀请率 |
invites | Integer | 否 | 客服邀请参评数 |
staff_invite_rate_str | String | 否 | 客服邀请参评率 |
level2_score5_rate_str | String | 否 | 满意率 (2 级评价) |
level2_score1_rate_str | String | 否 | 不满意率 (2 级评价) |
avg_comment_score | Double | 否 | 平均分 (5 星) |
good_rate_str | String | 否 | 好评率 (5 星) |
middle_rate_str | String | 否 | 中评率 (5 星) |
bad_rate_str | String | 否 | 差评率 (5 星) |
score5_rate_str | String | 否 | 5 星占比 |
score4_rate_str | String | 否 | 4 星占比 |
score3_rate_str | String | 否 | 3 星占比 |
score2_rate_str | String | 否 | 2 星占比 |
score1_rate_str | String | 否 | 1 星占比 |
avg_nps_score | Double | 否 | 平均分 (10 分) |
good_nps_rate_str | String | 否 | 好评率 (10 分) |
middle_nps_rate_str | String | 否 | 中评率 (10 分) |
bad_nps_rate_str | String | 否 | 差评率 (10 分) |
nps_score10_rate_str | String | 否 | 10 分占比 |
nps_score9_rate_str | String | 否 | 9 分占比 |
nps_score8_rate_str | String | 否 | 8 分占比 |
nps_score7_rate_str | String | 否 | 7 分占比 |
nps_score6_rate_str | String | 否 | 6 分占比 |
nps_score5_rate_str | String | 否 | 5 分占比 |
nps_score4_rate_str | String | 否 | 4 分占比 |
nps_score3_rate_str | String | 否 | 3 分占比 |
nps_score2_rate_str | String | 否 | 2 分占比 |
nps_score1_rate_str | String | 否 | 1 分占比 |
level2_score5 | Integer | 否 | 满意会话数 (2 级评价) |
level2_score1 | Integer | 否 | 不满意会话数 (2 级评价) |
good | Integer | 否 | 好评会话数 (5 星) |
middle | Integer | 否 | 中评会话数 (5 星) |
bad | Integer | 否 | 差评会话数 (5 星) |
score5 | Integer | 否 | 5 星会话数 |
score4 | Integer | 否 | 4 星会话数 |
score3 | Integer | 否 | 3 星会话数 |
score2 | Integer | 否 | 2 星会话数 |
score1 | Integer | 否 | 1 星会话数 |
nps_good | Integer | 否 | 好评会话数 (10 分) |
nps_middle | Integer | 否 | 中评会话数 (10 分) |
nps_bad | Integer | 否 | 差评会话数 (10 分) |
nps_score10 | Integer | 否 | 10 分会话数 |
nps_score9 | Integer | 否 | 9 分会话数 |
nps_score8 | Integer | 否 | 8 分会话数 |
nps_score7 | Integer | 否 | 7 分会话数 |
nps_score6 | Integer | 否 | 6 分会话数 |
nps_score5 | Integer | 否 | 5 分会话数 |
nps_score4 | Integer | 否 | 4 分会话数 |
nps_score3 | Integer | 否 | 3 分会话数 |
nps_score2 | Integer | 否 | 2 分会话数 |
nps_score1 | Integer | 否 | 1 分会话数 |
remark | Integer | 否 | 备注数 |
请求示例:
curl --location '/chat-static-api/api/customerService/staffWorkStatis' \
--header 'token: c84f8b6f5885434da40d8449eb15c7f1' \
--header 'language: zh' \
--header 'timezoneid: Asia/Shanghai' \
--header 'Content-Type: application/json' \
--data '{
"search_way":"1",
"start_date": "2023-04-01",
"end_date": "2023-06-30",
"staff_id_list": ["staff_id1","staff_id2"],
"group_id_list": ["group_id1","group_id2"],
"page_no": "1",
"page_size": "15"
}'
2
3
4
5
6
7
8
9
10
11
12
13
14
返回示例:
{
"ret_code": "000000",
"ret_msg": "操作成功",
"page_no": 1,
"page_count": 1,
"total_count": 5,
"page_size": 15,
"items": [
{
"start_date": "2025-03-19",
"end_date": "2025-04-17",
"group_id": "5a06cfe6bdac42419c56ec7e15dd64e9",
"group_name": "测试1",
"staff_id": "0a8c83731fd04728ac2ed13e9ef180dc",
"service_email": "staff1@zhichi.com",
"service_nick": "客服1",
"human_consult": 7,
"human_self": 0,
"human_valid": 4,
"valid_information": 0,
"human_invalid": 3,
"human_valid_recep": 0,
"human_invalid_recep": 0,
"first_response_time_set": 0,
"transfer_first_res_duration": 0,
"human_visitor_consult": 4,
"valid_recep_rate_str": "0.00%",
"roll_in": 1,
"roll_out": 1,
"human_not_recep": 4,
"not_recep_rate_str": "100.00%",
"last_staff_consult": 6,
"quiet_after_session_count": 2,
"quiet_after_session_rate_str": "33.33%",
"human_initiative": 0,
"human_consult_duration": 2099106,
"human_consult_duration_str": "00:34:59",
"avg_session_duration": 301885.75,
"avg_session_duration_str": "00:05:01",
"avg_total_session_duration": 299872.2857,
"avg_total_session_duration_str": "00:04:59",
"summary_solved": 0,
"summary_not_solved": 0,
"solve_not_mark": 7,
"lastmsg_staff": 0,
"snatch_in": 0,
"snatch_out": 0,
"staff_connect_rate_str": "0.00%",
"avg_human_confirm_duration_transfer": 9073,
"avg_human_confirm_duration_transfer_str": "00:00:09",
"total_human_message": 9,
"msg_staff": 0,
"msg_visitor_tostaff": 9,
"answer_than_str": "0.00%",
"msg_staff_wordcount": 0,
"avg_first_response_time": 353669.5,
"avg_first_response_time_str": "00:05:53",
"first_response_rate_str": "0.00%",
"transfer_first_response_rate_str": "0.00%",
"response_time_avg": 353669.5,
"response_time_avg_str": "00:05:53",
"response_duration_max": 818770,
"response_duration_max_str": "00:13:38",
"first_response_in30s_rate_str": "0.00%",
"first_response_in60s_rate_str": "0.00%",
"total_times": 1,
"comment_rate_str": "25.00%",
"initiative": 0,
"customer_initiative_rate_str": "0.00%",
"invite_counts": 0,
"invite_counts_rate_str": "0.00%",
"invites": 1,
"staff_invite_rate_str": "100.00%",
"avg_comment_score": 0,
"good_rate_str": "0.00%",
"middle_rate_str": "0.00%",
"bad_rate_str": "0.00%",
"score5_rate_str": "0.00%",
"score4_rate_str": "0.00%",
"score3_rate_str": "0.00%",
"score2_rate_str": "0.00%",
"score1_rate_str": "0.00%",
"avg_nps_score": 10,
"good_nps_rate_str": "100.00%",
"middle_nps_rate_str": "0.00%",
"bad_nps_rate_str": "0.00%",
"nps_score10_rate_str": "100.00%",
"nps_score9_rate_str": "0.00%",
"nps_score8_rate_str": "0.00%",
"nps_score7_rate_str": "0.00%",
"nps_score6_rate_str": "0.00%",
"nps_score5_rate_str": "0.00%",
"nps_score4_rate_str": "0.00%",
"nps_score3_rate_str": "0.00%",
"nps_score2_rate_str": "0.00%",
"nps_score1_rate_str": "0.00%",
"nps_score0_rate_str": "0.00%",
"good": 0,
"middle": 0,
"bad": 0,
"score5": 0,
"score4": 0,
"score3": 0,
"score2": 0,
"score1": 0,
"nps_good": 1,
"nps_middle": 0,
"nps_bad": 0,
"nps_score10": 1,
"nps_score9": 0,
"nps_score8": 0,
"nps_score7": 0,
"nps_score6": 0,
"nps_score5": 0,
"nps_score4": 0,
"nps_score3": 0,
"nps_score2": 0,
"nps_score1": 0,
"nps_score0": 0,
"level2_score1": 0,
"level2_score5": 0,
"level2_score1_rate_str": "0.00%",
"level2_score5_rate_str": "0.00%",
"remark": 0,
"valid_response_counts": 0,
"response_rate_str": "0.00%",
"max_conv_num": "1",
"human_res_warn_count": 3,
"response_counts": 4,
"human_res_warn_rate_str": "75.00%"
},
{
"start_date": "2025-03-19",
"end_date": "2025-04-17",
"group_id": "5a06cfe6bdac42419c56ec7e15dd64e9",
"group_name": "测试1",
"staff_id": "903965b75366482dbc95a4322538e2c8",
"service_email": "staff2@zhichi.com",
"service_nick": "测试2",
"human_consult": 9,
"human_self": 1,
"human_valid": 6,
"valid_information": 0,
"human_invalid": 3,
"human_valid_recep": 1,
"human_invalid_recep": 0,
"first_response_time_set": 0,
"transfer_first_res_duration": 0,
"human_visitor_consult": 6,
"valid_recep_rate_str": "16.67%",
"roll_in": 0,
"roll_out": 0,
"human_not_recep": 5,
"not_recep_rate_str": "83.33%",
"last_staff_consult": 9,
"quiet_after_session_count": 2,
"quiet_after_session_rate_str": "22.22%",
"human_initiative": 0,
"human_consult_duration": 4363974,
"human_consult_duration_str": "01:12:43",
"avg_session_duration": 228155.6667,
"avg_session_duration_str": "00:03:48",
"avg_total_session_duration": 484886,
"avg_total_session_duration_str": "00:08:04",
"summary_solved": 0,
"summary_not_solved": 0,
"solve_not_mark": 9,
"lastmsg_staff": 1,
"snatch_in": 0,
"snatch_out": 0,
"staff_connect_rate_str": "16.67%",
"avg_human_confirm_duration_transfer": 0,
"avg_human_confirm_duration_transfer_str": "00:00:00",
"total_human_message": 14,
"msg_staff": 7,
"msg_visitor_tostaff": 7,
"answer_than_str": "100.00%",
"msg_staff_wordcount": 50,
"avg_first_response_time": 392346,
"avg_first_response_time_str": "00:06:32",
"first_response_rate_str": "0.00%",
"transfer_first_response_rate_str": "0.00%",
"response_time_avg": 392346,
"response_time_avg_str": "00:06:32",
"response_duration_max": 572595,
"response_duration_max_str": "00:09:32",
"first_response_in30s_rate_str": "0.00%",
"first_response_in60s_rate_str": "0.00%",
"total_times": 0,
"comment_rate_str": "0.00%",
"initiative": 0,
"customer_initiative_rate_str": "0.00%",
"invite_counts": 0,
"invite_counts_rate_str": "0.00%",
"invites": 0,
"staff_invite_rate_str": "0.00%",
"avg_comment_score": 0,
"good_rate_str": "0.00%",
"middle_rate_str": "0.00%",
"bad_rate_str": "0.00%",
"score5_rate_str": "0.00%",
"score4_rate_str": "0.00%",
"score3_rate_str": "0.00%",
"score2_rate_str": "0.00%",
"score1_rate_str": "0.00%",
"avg_nps_score": 0,
"good_nps_rate_str": "0.00%",
"middle_nps_rate_str": "0.00%",
"bad_nps_rate_str": "0.00%",
"nps_score10_rate_str": "0.00%",
"nps_score9_rate_str": "0.00%",
"nps_score8_rate_str": "0.00%",
"nps_score7_rate_str": "0.00%",
"nps_score6_rate_str": "0.00%",
"nps_score5_rate_str": "0.00%",
"nps_score4_rate_str": "0.00%",
"nps_score3_rate_str": "0.00%",
"nps_score2_rate_str": "0.00%",
"nps_score1_rate_str": "0.00%",
"nps_score0_rate_str": "0.00%",
"good": 0,
"middle": 0,
"bad": 0,
"score5": 0,
"score4": 0,
"score3": 0,
"score2": 0,
"score1": 0,
"nps_good": 0,
"nps_middle": 0,
"nps_bad": 0,
"nps_score10": 0,
"nps_score9": 0,
"nps_score8": 0,
"nps_score7": 0,
"nps_score6": 0,
"nps_score5": 0,
"nps_score4": 0,
"nps_score3": 0,
"nps_score2": 0,
"nps_score1": 0,
"nps_score0": 0,
"level2_score1": 0,
"level2_score5": 0,
"level2_score1_rate_str": "0.00%",
"level2_score5_rate_str": "0.00%",
"remark": 0,
"valid_response_counts": 0,
"response_rate_str": "16.67%",
"max_conv_num": "1",
"human_res_warn_count": 2,
"response_counts": 6,
"human_res_warn_rate_str": "33.33%"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
说明:
- 目前针对接口有限流控制,当ret_code=229000,表示接口被限流,当前每分钟最多允许调用20次。