帮助中心首页
开发者文档
企业信息对接

客服消息转发

1、消息相关描述

这几类消息都是以会话消息为基准,其他消息通过会话cid来关联.消息的发送的顺序一般是,先是用户消息,然后聊天消息,再是会话消息(会话结束才发),最后是评价消息.用户信息有修改消息会重复发一次.消息每次批量发50条,如果无数据则按照时间1秒发一次.

2、会话消息

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-sdk3-微博,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 XP2=Windows 73=Windows 84=Windows Vista5=Windows 其他,6=Linux7=macOS8=Android9=iOS11=Windows 200012=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、聊天消息

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、评价信息

4.1接口要求

Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址

4.2测试调用地址

4.3入参

聊天消息Json格式如下表所示:

属性必选名称数据类型说明
companyIdM公司Id适用一个公司多个超管帐号或者多个分公司需要分别统计的情况
cidM会话IdString
staffIdO客服IdString
sourceM用户来源String0=PC,1微信,2=APP,4=微博,5=融云
adminNameM评价对象String可能是客服或者机器人
isRobotM是否机器人Boolean
remarkO备注String
tagO评价标签String
scoreM评分int
visitorIdM访客IdString
datetimeM时间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、用户信息

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、转接等系统信息

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、通话记录

7.1接口要求

Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。

7.2 测试调用地址

7.3 入参

用户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

 


7.4 入参举例

入参示例如下所示:

{

    "type": "calllog",

    "content": [

        {

            "companyId": "5cc2c708202d4defaf72d4bcac362a55",

            "staffEmail": "23234554@qq.com",

            "staffName": "测试",

            "customerPhoneNo": "13545777846",

"direction": 1,

            "startTime": 1497519517482,

 "endTime":1497519531942,

            "recordURL": "https://XXXXXX"

        }

    ]

}


7.5 出参

成功返回空字符串,报错返回错误信息.


8、客户信息

8.1 接口要求

Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。

8.2 测试调用地址
8.3 入参

用户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

 


8.4 入参举例

入参示例如下所示:

{

    "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"

 }

]

        }

    ]

}


8.5 出参

成功返回空字符串,报错返回错误信息.


9、工单信息

9.1 接口要求

Post方法,接收智齿科技发送过来的Json格式消息,在客户的服务器上部署.例如https://xxxxxxx.xxxxxx.com/sobot/message,建议所有的消息使用同一个地址。

9.2 测试调用地址


9.3 入参

用户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

 


9.4 入参举例

入参示例如下所示:

{

    "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"

                         }

                     ]

        }

    ]

}


9.5 出参

成功返回空字符串,报错返回错误信息.

10、接口定义

数据具体是用post方法在body中发送出去,注意收到数据后先做缓存,另外一个线程(或者进程)来负责入库,否则会影响发送数据的速度.

11、转发策略

http 设置10秒超时,每次转发10条消息,如果到1秒也会转发一次,没消息不转发.如果转发失败,重试一次,重试失败则丢掉.如果发现丢消息严重的情况联系技术把某段时间的消息重发.

12、存储设计注意事项

注意每个消息说明时都有一个主键,主要用来判重,因为有重试机制,消息可能会被发多次,设计表示注意设置unique index(或者类似的判断唯一标准)