这几类消息都是以会话消息为基准,其他消息通过会话cid来关联.消息的发送的顺序一般是,先是用户消息,然后聊天消息,再是会话消息(会话结束才发),最后是评价消息.用户信息有修改消息会重复发一次.消息每次批量发50条,如果无数据则按照时间1秒发一次.
2.1接口要求
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
2.2测试调用地址
无
2.3入参
会话的Json格式如下表所示:
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
|
cid |
M |
会话id |
String |
|
source |
M |
用户来源 |
Int |
0-pc,1-微信,2-sdk,3-微博,4-移动网站,9-企业微信,10-微信小程序 |
startTime |
O |
开始时间 |
String |
|
endTime |
M |
结束时间 |
String |
|
conversationDuration |
M |
会话时间 |
String |
单位秒 |
staffEmail |
O |
客服Email |
String |
|
staffName |
O |
客服姓名 |
String |
" |
chatWithRobotMsgCount |
M |
咨询机器人消息数 |
Int |
|
robotReplyMsgCount |
M |
机器人回复数 |
Int |
|
chatWithStaffMsgCount |
M |
咨询人工消息数 |
Int |
|
staffReplyMsgCount |
M |
人工回复数 |
Int |
|
is2Human |
M |
是否转人工 |
Boolean |
|
is2HumanSucc |
M |
转人工是否成功 |
Boolean |
|
queueTime |
M |
排队时间 |
Int |
|
ip |
O |
IP |
String |
|
area |
O |
区域 |
String |
|
os |
O |
操作系统 |
String |
1=Windows
XP,2=Windows 7,3=Windows 8,4=Windows Vista,5=Windows 其他,6=Linux,7=macOS,8=Android,9=iOS,11=Windows 2000,12=Windows 10 ,其他=其他 |
visitorId |
M |
用户Id |
String |
|
sessionQueueState |
M |
排队状态 |
Int |
1, 未排队接通2, 排队接通3, 排队离开 |
lastGroupId |
O |
最后接待客服组Id |
String |
|
lastGroupNam |
O |
最后接待客服组名称 |
String |
唯一主键:cid,各个表之间使用cid来关联,表示是同一个会话
2.4入参举例
入参示例如下所示:
{
"type": "conversation",
"content": [
{
"companyId": "5cc2c708202d4defaf72d4bcac362a55",
"cid": "86937e82ae244ad59aeefe41af731079",
"source": 2,
"startTime": 1468826506677,
"EndTime": 1468827002400,
"conversationDuration": 495723,
"staffEmail": "",
"staffName": "robot",
"chatWithRobotMsgCount": 1,
"robotReplyMsgCount": 1,
"chatWithStaffMsgCount": 0,
"staffReplyMsgCount": 0,
"is2Human": 1,
"is2HumanSucc": 1,
"queueTime": -1,
"ip": "60.18.150.38",
"area": "辽宁",
"os": "8",
"visitorId": "837213545777846"
}
]
}
2.5出参
成功返回空字符串,报错返回错误信息.
3.1接口要求
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
3.2测试调用地址
无
3.3 入参
聊天消息Json格式如下表所示
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
|
cid |
M |
会话Id |
String |
|
time |
M |
时间 |
String |
|
senderName |
M |
发送人 |
String |
|
receiverName |
M |
接收人 |
String |
|
msg |
M |
消息 |
String |
唯一主键:cid+ time+ senderName机器人和人工可分别评价
3.4入参举例
入参示例如下所示:
{
"type": "msg",
"content": \[
{
"companyId": "5cc2c708202d4defaf72d4bcac362a55",
"cid": "44c603626e2e4c82a5a49619a8aaa397",
"time": "2016-07-18 15:30:16",
"senderName": "冯建武",
"receiverName": null,
"msg": "到还款日,延期3天怎么算"
}
\]
}
3.5出参
成功返回空字符串,报错返回错误信息.
4.1接口要求
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
4.2测试调用地址
无
4.3入参
聊天消息Json格式如下表所示:
属性 | 必选 | 名称 | 数据类型 | 说明 | |
---|---|---|---|---|---|
companyId | M | 公司Id | 适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 | ||
cid | M | 会话Id | String | ||
staffId | O | 客服Id | String | ||
source | M | 用户来源 | String | 0=PC,1微信,2=APP,4=微博,5=融云 | |
adminName | M | 评价对象 | String | 可能是客服或者机器人 | |
isRobot | M | 是否机器人 | Boolean | ||
remark | O | 备注 | String | ||
tag | O | 评价标签 | String | ||
score | M | 评分 | int | ||
visitorId | M | 访客Id | String | ||
datetime | M | 时间 | Long | ||
唯一主键:cid+ isRobot机器人和人工可分别评价
4.4入参举例
入参示例如下所示:
{
"type": "evaluation",
"content": \[
{
"companyId": "5cc2c708202d4defaf72d4bcac362a55",
"staffId": "9517",
"source": 0,
"adminName": null,
"isRobot": true,
"remark": "审核没通过",
"tag": "答非所问,问题不能回答",
"score": 0,
"visitorId": "97b31cba87e04dcdafe0ebb60248ecf4",
"datetime": 1468340203266,
"cid": "9ae05bc279544b68895cd86b12e418e0"
}
\]
}
4.5出参
成功返回空字符串,报错返回错误信息.
5.1接口要求
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
5.2测试调用地址
无
5.3入参
用户Json格式如下表所示:
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
|
userId |
M |
用户Id |
String |
|
cid |
M |
会话Id |
String |
|
telphone |
O |
电话 |
String |
|
email |
O |
email |
String |
|
qq |
O |
qq |
String |
|
partnerId |
O |
在本公司系统中该用户的id |
String |
|
userName |
M |
姓名 |
String |
|
params |
O |
动态参数josn格式, |
String |
对接时传过来的 |
remark |
O |
备注 |
String |
唯一主键:userId
5.4入参举例
入参示例如下所示:
{
"type": "user",
"content": [
{
"companyId": "5cc2c708202d4defaf72d4bcac362a55",
"userId": "837213545777846",
"cid": "86937e82ae244ad59aeefe41af731079",
"telphone": "13545777846",
"email": "506003007@qq.com",
"qq": "",
"partnerId": "13545777846",
"userName": "孙盼",
"remark": "",
"params": {
"a": "动态参数"
}
}
]
}
5.5出参
成功返回空字符串,报错返回错误信息.
6.1接口要求
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
6.2测试调用地址
无
6.3测试调用地址
无
6.4入参
与机器人建立会话 type=4 sender是用户
{"cid":"75029a0997cd412bbe403e727c961f69","companyId":"7ce3cd52355e4f359cf44017b051d1e8","sender":"f731fa6f1ca8a8d8a09ff90bffb56321","senderName":"北京用户","ts":"2017-05-27 00:01:50","type":4}
开始转人工 type=6 sender是用户
{"cid":"d09cbb9dfc0c4d059757b226d6aef801","companyId":"045769553fb744c6a8cb57bb676b3261","sender":"4193c96879c442898bf1ff4010c90cbe","senderName":"北京用户","ts":"2017-05-27 01:28:53","type":6}
转人工排队开始 type=7 sender是用户
{"cid":"6757a500c82e4c5c874ec9242c07322a","companyId":"e42bd9b6fc23472b93f44a5c5fa720ff","sender":"e42bd9b6fc23472b93f44a5c5fa720ff13835700152","senderName":"北京用户","ts":"2017-05-27 08:06:18","type":7}
客服主动邀请客服(不管客服是否是忙碌状态)type=21 sender是客服
{"cid":"19c417aabe4c44b6b1a49868b664bcf8","companyId":"b96b3e57c0814d9d987bd21efc7c5934","senderEmail":"309867471@qq.com","receiver":"6cdd081e5c95d38d4b9870b9e2e79c9b","receiverName":"北京用户","sender":"dbbf139219204b14bfe5d47ceafbd980","senderName":"丹丹","ts":"2017-05-27 09:03:13","type":21}
与人工建立会话 type=8 sender是用户,receiver是客服
{"cid":"252025b1fdbc4f629023378be497883f","companyId":"7923","receiverEmail":"xieyusong@bianfeng.com","receiver":"9518","receiverName":"客服2","sender":"5b93f5a0a6f04b0dbd219e3228ab2a65","senderName":"北京用户","ts":"2017-03-28 00:41:05","type":8}
客服sender把userId转接客服receiver type=9 (不管客服是否是忙碌状态,都是成功的)
{"cid":"77a49f6f90334b1abb2158b76c1b7b13","companyId":"a3820569819f44649d4e6367a21d2f19","receiver":"662a20a1a57d4db79b70d7721c00d9b3","receiverName":"必要客服6042","receiverEmail":"432432@qq.com","sender":"6ac0a00ddb794b5f8e69e6a38b95be58","senderEmail":"534577@qq.com","senderName":"6104","ts":"2017-03-28 00:00:23","userId":"a3820569819f44649d4e6367a21d2f193059308","userName":"北京用户","type":9}
6.5入参举例
入参示例如下所示:
{
"type": "systemMsg",
"content": \[
{
"cid": "75029a0997cd412bbe403e727c961f69",
"companyId": "7ce3cd52355e4f359cf44017b051d1e8",
"sender": "f731fa6f1ca8a8d8a09ff90bffb56321",
"senderName": "北京用户",
"ts": "2017-05-27 00:01:50",
"type": 4
},
{
"cid": "d09cbb9dfc0c4d059757b226d6aef801",
"companyId": "045769553fb744c6a8cb57bb676b3261",
"sender": "4193c96879c442898bf1ff4010c90cbe",
"senderName": "北京用户",
"ts": "2017-05-27 01:28:53",
"type": 6
},
{
"cid": "6757a500c82e4c5c874ec9242c07322a",
"companyId": "e42bd9b6fc23472b93f44a5c5fa720ff",
"sender": "e42bd9b6fc23472b93f44a5c5fa720ff13835700152",
"senderName": "北京用户",
"ts": "2017-05-27 08:06:18",
"type": 7
},
{
"cid": "19c417aabe4c44b6b1a49868b664bcf8",
"companyId": "b96b3e57c0814d9d987bd21efc7c5934",
"senderEmail": "309867471@qq.com",
"receiver": "6cdd081e5c95d38d4b9870b9e2e79c9b",
"receiverName": "北京用户",
"sender": "dbbf139219204b14bfe5d47ceafbd980",
"senderName": "丹丹",
"ts": "2017-05-27 09:03:13",
"type": 21
},
{
"cid": "252025b1fdbc4f629023378be497883f",
"companyId": "7923",
"receiverEmail": "xieyusong@bianfeng.com",
"receiver": "9518",
"receiverName": "客服2",
"sender": "5b93f5a0a6f04b0dbd219e3228ab2a65",
"senderName": "北京用户",
"ts": "2017-03-28 00:41:05",
"type": 8
},
{
"cid": "77a49f6f90334b1abb2158b76c1b7b13",
"companyId": "a3820569819f44649d4e6367a21d2f19",
"receiver": "662a20a1a57d4db79b70d7721c00d9b3",
"receiverName": "必要客服6042",
"receiverEmail": "432432@qq.com",
"sender": "6ac0a00ddb794b5f8e69e6a38b95be58",
"senderEmail": "534577@qq.com",
"senderName": "6104",
"ts": "2017-03-28 00:00:23",
"userId": "a3820569819f44649d4e6367a21d2f193059308",
"userName": "北京用户",
"type": 9
}
\]
}
7.2 测试调用地址
无
用户Json格式如下表所示:
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
String |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
staffEmail |
M |
客服Email |
String |
|
staffName |
O |
客服姓名 |
String |
|
customerPhoneNo |
M |
客户手机号 |
String |
|
customerName |
O |
客户姓名 |
String |
|
direction |
M |
呼叫类型 |
Integer |
呼入1,呼出0 |
startTime |
M |
通话开始时间 |
Long |
|
endTime |
M |
通话结束时间 |
Long |
|
callWay |
M |
外呼方式 |
Integer |
1网页电话,2sip话机,3手机 |
caller |
M |
主叫号码 |
String |
|
callee |
M |
被叫号码 |
String |
|
recordURL |
M |
通话记录录音地址 |
String |
|
入参示例如下所示:
{
"type": "calllog",
"content": [
{
"companyId":
"5cc2c708202d4defaf72d4bcac362a55",
"staffEmail": "23234554@qq.com",
"staffName": "测试",
"customerPhoneNo":
"13545777846",
"direction": 1,
"startTime": 1497519517482,
"endTime":1497519531942,
"recordURL":
"https://XXXXXX"
}
]
}
成功返回空字符串,报错返回错误信息.
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
用户Json格式如下表所示:
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
String |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
userId |
M |
客户id |
String |
|
img |
M |
客户头像 |
String |
|
nick |
M |
客户昵称 |
String |
|
source |
M |
客户来源 |
Integer |
0 桌面网站 1微信 2 APP 3微博 4移动网站 5融云 6 呼叫中心 7 工单中心 8 客户中心 |
enterpriseName |
O |
企业名称 |
String |
|
tel |
O |
电话 |
String |
|
email |
O |
邮箱 |
String |
|
uname |
O |
用户真实姓名 |
String |
|
qq |
O |
qq |
String |
|
remark |
O |
备注 |
String |
|
proviceName |
O |
省名称 |
String |
|
cityName |
O |
市名称 |
String |
|
areaName |
O |
县/区名称 |
String |
|
visitorIds |
O |
访客id |
String |
多个以逗号分隔 |
serviceNo |
O |
客服工号 |
String |
|
resultList |
O |
自定义字段集合 |
List |
|
唯一主键:userId
resultList集合
属性 |
必选 |
名称 |
数据类型 |
说明 |
fieldId |
M |
字段Id |
String |
|
fieldType |
M |
字段类型 |
Integer |
1单行文本 2多行文本 3日期 4时间 5数值 6下拉列表 7复选框 8 单选框 |
title |
M |
字段名称 |
String |
|
value |
M |
字段的值 |
String |
fieldType的值为6,7,8时,这个字段的值对应的是下拉、复选、单选的value值 |
text |
M |
文本值 |
String |
fieldType的值为6,7,8时,这个字段的值对应的是下拉、复选、单选的文本值 |
fieldVariable |
O |
字段属性名 |
String |
|
入参示例如下所示:
{
"type": "user",
"content": [
{
"companyId":
"5cc2c708202d4defaf72d4bcac362a55",
"userId":
"837213545777846",
"img": "https://XXXX",
"nick": "小明",
"source": 1,
"enterpriseName": "公司",
"tel": "13545777846",
"email": "45522332@qq.com",
"uname":
"XXX",
"qq": "XXX",
"remark": "XXX",
"proviceName":
"北京市",
"cityName":
"北京市",
"areaName": "海淀区",
"visitorIds":
"XX",
"serviceNo":
"XX",
"resultList": [
{
"fieldId": "1",
"fieldType": 1,
"text": "",
"title": "微信",
"value":
"21332112",
"fieldVariable":"weixin"
},
{
"fieldId": "4",
"fieldType": 6,
"text": "下拉一",
"title": "下拉列表",
"value":
"500862697708553",
"fieldVariable":"customField1"
}
]
}
]
}
成功返回空字符串,报错返回错误信息.
Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。
用户Json格式如下表所示:
属性 |
必选 |
名称 |
数据类型 |
说明 |
companyId |
M |
公司Id |
String |
适用一个公司多个超管帐号或者多个分公司需要分别统计的情况 |
ticketId |
M |
工单id |
String |
|
ticketCode |
M |
工单编号 |
String |
|
ticketTitle |
M |
工单标题 |
String |
|
ticketContent |
M |
问题描述 |
String |
|
ticketTypeName |
M |
工单分类名称 |
String |
多级分类之间用/分隔 |
ticketStatus |
M |
工单状态 |
Integer |
0未受理,1受理中,2等待回复,3已解决,99已关闭,98已删除 |
ticketLevel |
M |
工单级别 |
Integer |
0低,1中,2高,3紧急 |
ticketFrom |
M |
工单来源 |
Integer |
0工单中心,1 PC普通用户留言提交,2 H5普通用户留言提交,3普通用户微信提交,4普通用户APP提交,5普通用户微博提交,6 在线工作台-PC客服提交,7客户中心,8呼叫中心 9 在线工作台-微信客服提交 10 在线工作台-H5客服提交
11 在线工作台-App客服提交 |
fileStr |
O |
附件路径 |
String |
|
dealGroupId |
O |
受理客服组id |
String |
|
dealGroupName |
O |
受理客服组名称 |
String |
|
dealUserId |
O |
受理客服id |
String |
|
dealUserName |
O |
受理客服名称 |
String |
|
copyUser |
O |
抄送客服id |
String |
|
hopeAcceptTime |
O |
SLA规定的首次解决时间 |
String |
具体的时间点,例如2017-11-01 12:35:30 |
hopeCompleteTime |
O |
SLA规定的首次解决时间 |
String |
具体的时间点,例如2017-11-01 12:35:30 |
customerId |
O |
关联客户id |
String |
|
recordId |
O |
记录id |
String |
工单来源是呼叫中心这个是呼叫记录id,来源是在线工作台-PC客服提交这个是会话记录id |
resultList |
O |
工单自定义字段集合 |
List |
|
唯一主键:ticketId
resultList集合
属性 |
必选 |
名称 |
数据类型 |
说明 |
fieldId |
M |
字段Id |
String |
|
fieldType |
M |
字段类型 |
Integer |
1单行文本 2多行文本 3日期 4时间 5数值 6下拉列表 7复选框 8 单选框 |
title |
M |
字段名称 |
String |
|
value |
M |
字段的值 |
String |
fieldType的值为6,7,8时,这个字段的值对应的是下拉、复选、单选的value值 |
text |
M |
文本值 |
String |
fieldType的值为6,7,8时,这个字段的值对应的是下拉、复选、单选的文本值 |
fieldVariable |
O |
字段属性名 |
String |
|
入参示例如下所示:
{
"type": "ticket",
"content": [
{
"companyId":
"5cc2c708202d4defaf72d4bcac362a55",
"ticketId": "837213545777846",
"ticketCode": "1564334545",
"ticketTitle": "XXX",
"ticketContent": "XXX",
"ticketTypeName": "咨询",
"ticketStatus": 0,
"ticketLevel":0,
"ticketFrom":0,
"fileStr":
"XXX",
"dealGroupId":
"XXX",
"dealGroupName": "XXX",
"dealUserId":
"XXX",
"dealUserName": "XXX",
"copyUser":
"XX",
"hopeAcceptTime":
"2017-10-28 13:01:30",
"hopeCompleteTime":
"2017-10-28 15:01:30",
"customerId":
"XX",
"recordId": "XX",
"resultList": [
{
"fieldId": "1",
"fieldType": 1,
"text": "",
"title": "微信",
"value":
"21332112",
"fieldVariable":"customField1"
},
{
"fieldId":
"4",
"fieldType":
6,
"text":
"下拉一",
"title": "下拉列表",
"value":
"500862697708553",
"fieldVariable":"customField2"
}
]
}
]
}
成功返回空字符串,报错返回错误信息.
数据具体是用post方法在body中发送出去,注意收到数据后先做缓存,另外一个线程(或者进程)来负责入库,否则会影响发送数据的速度.
http 设置10秒超时,每次转发10条消息,如果到1秒也会转发一次,没消息不转发.如果转发失败,重试一次,重试失败则丢掉.如果发现丢消息严重的情况联系技术把某段时间的消息重发.
注意每个消息说明时都有一个主键,主要用来判重,因为有重试机制,消息可能会被发多次,设计表示注意设置unique index(或者类似的判断唯一标准)