API开放平台

概述

环信客服云API开放平台以REST API的方式向第三方系统提供服务端调用的接口,用于业务系统对接和流程自动化等场景。目前,我们提供了坐席管理和历史会话相关的API,后续会根据客户需求逐步提供更丰富的接口,方便您的使用。

API开放平台为旗舰版功能。

获取clientID和secretID

开通了API开放平台的每个租户,环信会提供用于认证的clientID和secretID。在调用平台的接口前,需要根据clientID和secretID生成accessToken,并将accessToken放在调用接口的请求头中使用。

注:请联系环信获取租户对应的clientID和secretID。

获取accessToken

根据clientID和secretID生成accessToken。获取到accessToken后,即可以正常调用平台接口。

重要提醒:获取的accessToken在2小时之内有效,由于网络延迟等原因,系统不保证accessToken在此值表示的有效期内绝对有效,如果发现accessToken使用异常请重新获取新的accessToken。

Request body:

{
    "tenantId":"租户ID",
    "clientId":"8340a6d8-211f-4b81-9202-63ce46f27c02",
    "secretId":"ca906984-80f1-41b0-a272-6000df3f76c4"
}

Curl示例:

curl -X POST \
  http://kefu.easemob.com/api/tenant/1/accessToken \
  -H 'Content-Type: application/json' \
  -d '{
	"clientId":"8340a6d8-211f-4b81-9202-63ce46f27c02",
	"secretId":"ca906984-80f1-41b0-a272-6000df3f76c4"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
clientId String Y租户的唯一标识码,联系环信获取
secretId String Y租户的授权码,联系环信获取

Response示例:

{
    "status": "OK",
    "entity": {
        "accessToken": "4313913457bfd684eccbbb7405ba074f",
        "expireTime": 7200
    }
}

参数说明:

名称类型说明
status String 接口响应状态
accessToken String token
expireTimeinteger过期时间(单位:秒)

创建关联

可调用接口创建关联,关联即im消息通道。

Curl示例:

curl --location --request POST 'localhost:8016/api/platform/tenants/20016/autoCreateImAssociation' \
--header 'Content-Type: application/json' \
--data-raw '{
     "associationName":"6666"

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
associationNameStringN关联名称

Response示例:

{
    "status": "OK",
    "entity": {
        "id": 23597,
        "tenantId": 29748,
        "name": "6666",
        "description": null,
        "orgName": "1428201012025562",
        "appName": "kefuchannelapp29748",
        "clientId": "YXA6W8LnQAxXEeuh8wWPzpsadg",
        "clientSecret": "YXA6wc3HKZZvXVlSl2M5arIpqLqqV_A",
        "serviceEaseMobIMNumber": "kefuchannelimid_600643",
        "serviceEaseMobIMPassword": null,
        "createDateTime": 1607959692553,
        "ispass": true,
        "isrun": true,
        "dutyType": "None",
        "agentQueueId": null,
        "secondQueueId": null,
        "robotId": null,
        "secondRobotId": null,
        "timeScheduleId": 0,
        "usermail": "d938ebd9-86cb-4b89-8c12-54121b491c36@easemob.com",
        "password": null,
        "token": null,
        "techChannelInfo": null,
        "experience": false,
        "appKey": "1428201012025562#kefuchannelapp29748"
    }
}

参数说明:

名称类型说明
status String 接口响应状态
id int 关联ID
tenantId int 租户ID
name String 关联名称
description String 描述
orgName String
appName String 应用名称
clientId String
clientSecret String 秘钥
serviceEaseMobIMNumber String 环信IM账号
ServiceEaseMobIMpassword String 环信IM密码
createDateTime Data 创建时间
ispass boolean
isrun boolean
dutyType DutyType 绑定是全天还是分上下班(枚举:Allday(全天)、Onoff(上班时段和下班时段)、None(空)、NonWorkHours(下班时间)、WorkHours(上班时间))
agentQueueId long 上班时间或全天绑定的技能组id
secondQueueId long 下班时间绑定的技能组id
robotId long 上班时间或全天绑定的机器人id
secondRobotId long 下班时间绑定的机器人id
timeScheduleId int 时间计划
usermail String 邮箱(随机生成)
password String 密码(随机生成)
token String
techChannelInfo String
experience
appKey

管理坐席

查询坐席信息

可根据坐席的邮箱、真实姓名、手机号码、工号,对坐席进行模糊查询。

Curl示例:

curl -X GET \
  'http://kefu.easemob.com/api/tenants/1/agents?&agentType=Message' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
pageintY第几页,从0开始
sizeintY每页显示的数据
keyValueStringY模糊查询,username(邮箱),trueName(真实姓名),agentType(坐席类型,默认全部),mobilePhone(手机号码),agentNumber(工号)

Response示例:

{
    "status": "OK",
    "entities": [
        {
            "tenantId": 1,
            "userId": "43efaf15-ef51-4a3c-a961-560ca59b7c29",
            "userType": "Agent",
            "userScope": "Tenant",
            "password": "",
            "username": "32273591@qq.com",
            "roles": "admin,agent",
            "createDateTime": "2018-06-10 14:19:41",
            "lastUpdateDateTime": "2018-06-10 16:44:47",
            "status": "Enable",
            "state": "Offline",
            "maxServiceSessionCount": 10,
            "trueName": "",
            "mobilePhone": "",
            "agentType": "Message",
            "roleList": [
                {
                    "role_id": 1,
                    "role_name": "admin"
                }
            ],
            "avatar": "//sandbox.kefu.easemob.com/v1/tenants/28811/mediafiles/25763dd6-3b84-43ac-9471-869ec33bc91e5aS05YOPLnBuZw==/cutout?arg=0_0_1024_1024_300_300 

\t",
            "scope": "Tenant",
            "bizId": "1",
            "onLineState": "Offline",
            "currentOnLineState": "Offline"
        }
    ],
    "first": true,
    "last": false,
    "size": 10,
    "number": 0,
    "numberOfElements": 1,
    "totalPages": 11,
    "totalElements": 1
}

参数说明:

名称类型说明
status String 接口响应状态
tenantId int 租户ID
userId String 坐席ID
userType String 坐席类型
userScope String 所属范围
password String 密码
username String 账号(邮箱)
roles String 角色
createDateTime String 创建时间
lastUpdateDateTime String 更新时间
status String 启用状态
state String 在线状态
maxServiceSessionCount int 接待人数
trueName String 真实姓名
mobilePhone String 电话号码
agentType String 坐席类型
(roleList) role_id int 角色ID
(roleList) role_name String 角色名称
avatar String 头像
scope String 所属范围
bizId String 所属业务ID
onLineState String 在线状态
currentOnLineState String 在线状态
first Boolean 是否为第一页 是:true 否:false
last Boolean 是否为最后一页 是:true 否:false
size int 每页显示的数据
number int 第几页,从0开始
numberOfElements int 当前页面有多少条记录
totalPages int 一共有多少页
totalElements int 一共有多少条记录

添加坐席

添加坐席,并设置坐席的昵称、登录邮箱、密码、真实姓名等信息。

Request body:

{
    "nicename":"123",
    "username":"32273591@qq.com",
    "password":"qwe12345",
    "trueName":"321",
    "agentType":"All",
    "mobilePhone":"",
    "agentNumber":"",
    "roleId":1,
    "maxServiceSessionCount":"10"
}

Curl示例:

curl -X POST \
  http://kefu.easemob.com/api/tenants/1/agent \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
	"nicename":"123",
	"username":"32273591@qq.com",
	"password":"qwe12345",
	"trueName":"321",
    "agentType":"All",
	"mobilePhone":"",
	"agentNumber":"",
	"roleId":1,
	"maxServiceSessionCount":"10"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
nicename String Y坐席的昵称
username String Y账号(邮箱)
password String Y密码
trueName String Y真实姓名
agentType String N坐席类型:All 全渠道座席,Message 在线座席,Ticket 工单座席,CallCenter 呼叫中心座席,默认为在线坐席
mobilePhoneintY电话号码
agentNumberintY工号
maxServiceSessionCountintY接待人数
roleIdintY角色ID

Response示例:

{
    "status": "OK",
    "entity": {
        "tenantId": 1,
        "userId": "f2e2a537-ea64-4d0b-8ce3-42e1b1a382be",
        "userType": "Agent",
        "userScope": "Tenant",
        "nicename": "123",
        "password": "",
        "username": "32273591@qq.com",
        "roles": "admin,agent",
        "createDateTime": "2018-06-13 16:42:56",
        "lastUpdateDateTime": "2018-06-13 16:42:56",
        "status": "Enable",
        "state": "Offline",
        "maxServiceSessionCount": 10,
        "trueName": "321",
        "mobilePhone": "",
        "agentType": "Message",
        "language": "zh_CN",
        "timeZone": "UTC+8",
        "scope": "Tenant",
        "bizId": "1",
        "currentOnLineState": "Offline",
        "onLineState": "Offline"
    }
}

参数说明:

名称类型说明
status String 接口响应状态
tenantId int 租户ID
userId String 坐席ID
userType String 坐席类型:坐席/管理员
userScope String 所属范围
nicename String 坐席的昵称
password String 密码
username String 账号(邮箱)
roles String 角色
createDateTime String 创建时间
lastUpdateDateTime String 更新时间
status String 启用状态
state String 在线状态
maxServiceSessionCount int 接待人数
trueName String 真实姓名
mobilePhone String 电话号码
agentType String 坐席类型
language String 语言
timeZone String 时区
scope String 所属范围
bizId String 所属业务ID
currentOnLineState String 在线状态
onLineState String 在线状态

修改坐席

修改坐席的基本信息,包括坐席的昵称、密码、真实姓名等。

注:需正确填写坐席的登录邮箱地址(username字段)。

Request body:

{
    "nicename":"环环",
    "username":"32273591@qq.com",
    "trueName":"小环",
    "agentType":"All",
    "mobilePhone":"",
    "agentNumber":"",
    "roleId":1,
    "maxServiceSessionCount":null
}

Curl示例:

curl -X PUT \
  http://kefu.easemob.com/api/tenants/1/agent \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
	"nicename":"环环",
	"username":"32273591@qq.com",
	"trueName":"小环",
    "agentType":"All",
	"mobilePhone":"",
	"agentNumber":"",
	"roleId":1,
	"maxServiceSessionCount":null
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
nicename String N昵称
username String Y账号(邮箱)
trueName String N真实姓名
agentType String N坐席类型:All 全渠道座席,Message 在线座席,Ticket 工单座席,CallCenter 呼叫中心座席,默认为在线坐席
mobilePhoneintN电话号码
agentNumberintN工号
maxServiceSessionCountintN接待人数
roleIdintN角色Id

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

获取角色

获取租户的所有角色,包括管理员、坐席、自定义角色。

Curl示例:

curl --request GET \
  --url http://kefu.easemob.com/api/tenants/1/roles \
  --header 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID

Response示例:

{
    "status": "OK",
    "entities": [
        {
            "role_id": 1,
            "role_name": "admin",
            "role_description": "管理员",
            "role_type": "SYSTEM",
            "created_at": null,
            "updated_at": null,
            "status": "ENABLE"
        },
        {
            "role_id": 2,
            "role_name": "agent",
            "role_description": "坐席",
            "role_type": "SYSTEM",
            "created_at": null,
            "updated_at": null,
            "status": "ENABLE"
        },
        {
            "role_id": 3,
            "role_name": "123",
            "role_description": null,
            "role_type": "CUSTOMIZED",
            "created_at": "2018-03-23T16:02:02.000+0800",
            "updated_at": "2018-03-23T16:02:02.000+0800",
            "status": "ENABLE"
        },
        {
            "role_id": 4,
            "role_name": "asd",
            "role_description": null,
            "role_type": "CUSTOMIZED",
            "created_at": "2018-06-10T18:32:37.000+0800",
            "updated_at": "2018-06-10T18:32:37.000+0800",
            "status": "ENABLE"
        }
    ]
}

参数说明:

名称类型说明
status String 接口响应状态
role_id int 角色ID
role_name String 角色名称
role_description String 角色描述
role_type String 角色类型
created_at String 创建时间
updated_at String 更新时间
status String 启用状态

修改密码

修改坐席的登录密码。

Request body:

{
    "username":"32273591@qq.com",
    "password":"qwe123456"
}

Curl示例:

curl -X PUT \
  http://kefu.easemob.com/api/tenants/1/agent/password \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
  "username":"32273591@qq.com",
  "password":"qwe123456"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
username String Y账号(邮箱)
password String Y新密码

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

删除坐席

删除指定的坐席。

Request body:

{
  "username":"32273591@qq.com"
}

Curl示例:

curl -X DELETE \
  http://kefu.easemob.com/api/tenants/1/agent \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
  "username":"32273591@qq.com"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
username String Y账号(邮箱)

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

禁用坐席

禁用指定的坐席。处于禁用状态的坐席无法登录环信客服云。

Request body:

{
    "username":"32273591@qq.com"
}

Curl示例:

curl -X PUT \
  http://kefu.easemob.com/api/tenants/1/agent/disable \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
  "username":"32273591@qq.com"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
username String Y账号(邮箱)

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

启用坐席

启用指定的坐席。处于启用状态的坐席可以登录环信客服云。

Request body:

{
    "username":"32273591@qq.com"
}

Curl示例:

curl -X PUT \
  http://kefu.easemob.com/api/tenants/1/agent/enable \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
	"username":"32273591@qq.com"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
username String Y账号(邮箱)

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

修改坐席在线状态

可修改坐席在线状态,状态列表:空闲、忙碌、离开、隐身、离线。

Request body:

{
    "username":"32273591@qq.com",
    "state":"Busy"
}

Curl示例:

curl -X PUT \
  http://kefu.easemob.com/api/tenants/1/agent/state \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
	"username":"32273591@qq.com",
    "state":"Busy"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
username String Y账号(邮箱)
state String Y在线状态:空闲(Online),忙碌(Busy),离开(Leave),隐身(Hidden),离线(Offline)

Response示例:

{
    "status": "OK"
}

参数说明:

名称类型说明
status String 接口响应状态

查询历史会话

获取历史会话列表

根据渠道、客户昵称、技能组、坐席、会话接起时间、会话结束时间等条件查询历史会话列表。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/1/serviceSessionHistorys?stopDateFrom=2021-05-10T00%3A00%3A00.000Z&stopDateTo=2021-05-20T23%3A59%3A00.000Z' \
  --header 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
pageintN查询页码索引,默认为1
per_pageintN每页显示的数据容量,默认为10,最大为50
originType String N渠道 不写为查询全部 要查询的话值为 网页:webim,APP:app,微信渠道weixin,微博为weibo,呼叫中心:phone
customerName String N客户昵称
transferedbooleanN是否转接 是:true 不是:false
fromAgentCallbackbooleanN会话类型 回呼:true 呼入:false
enquirySummaryintN评价 值为:0,1,2,3,4,5不填默认查询全部评价
enquiryDegreeintN“3 (一般)” 满意度评价(用于数字评价)
resolutionScoreintN “1” 解决率评价分数 1 已解决 2 未解决(用于数字评价)
resolutionScore2intN “1” 解决率评价分数 1 已解决 2 未解决(用于数字评价)
consultResultintN “1” 咨询结果: 有效会话 - 1 ; 无效会话 = 0
queueIdsintN多个技能组ID数组
beginDate String N会话接起时间(开始范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
endDate String N会话接起时间(结束范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
stopDateFrom String N会话结束时间(开始范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
stopDateTo String N会话结束时间(结束范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
createDateFrom String N会话创建时间(开始范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
createDateTo String N会话创建时间(结束范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
agentIdslistN多个坐席的ID数组
serviceSessionIdStringN某个会话id,可用于查看某通会话信息,此参数与其他参数不可一同请求
sortField String N排序字段 stopDateTime startDateTime createDatetime
sortOrder String N升降序asc desc

Response示例:

{
    "status": "OK",
    "entity": {
        "total_entries": 3,
        "items": [
            {
                "serviceSessionId": "45bd1110-69a3-49d0-b9e2-55e9399e3633",
                "tenantId": 29676,
                "techChannelId": 1434,
                "queueId": 161557,
                "state": "Terminal",
                "chatGroupId": 4611895,
                "messageSeqId": 4,
                "agentUserId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                "agentUserNiceName": "Admin昵称1",
                "agentUserType": 1,
                "createDatetime": "2021-05-10 18:46:44",
                "startDateTime": "2021-05-10 18:46:48",
                "stopDateTime": "2021-05-10 18:56:59",
                "techChannelType": "wechat",
                "enquirySummary": "4",
                "enquiryDegree": "4 (满意)",
                "resolutionScore": "0",
                "resolutionScore2": "0",
                "consultResult": "0",
                "evaluateWay": "agent",
                "invited": true,
                "techChannelName": "环信本地测试",
                "originType": [
                    "weixin"
                ],
                "comment": "不活跃会话超时结束备注",
                "visitorUser": {
                    "userId": "479032e4-1d94-4f65-a59b-43515b67d7dc",
                    "nicename": "环信本地测试:o6B_c4p_OKwcGLWqoFCXcXqKExS4",
                    "username": "o6B_c4p_OKwcGLWqoFCXcXqKExS4"
                },
                "customer": {
                    "customerId": "c7e44d7d-8378-44b3-8b30-d4b46d97b62d",
                    "customerNiceName": "环信本地测试:o6B_c4p_OKwcGLWqoFCXcXqKExS4",
                    "customerTrueName": null
                },
                "fromAgentCallback": false,
                "transfered": false,
                "agentUserSet": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentUserList": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentQueueSet": [
                    {
                        "queueId": "161557",
                        "queueName": "未分组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "agentQueueList": [
                    {
                        "queueId": "161557",
                        "queueName": "未分组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "serviceSessionAttribute": {}
            },
            {
                "serviceSessionId": "e4bd2cb2-d95d-4db6-85c7-5bf83b559d58",
                "tenantId": 29676,
                "techChannelId": 1434,
                "queueId": 161557,
                "state": "Terminal",
                "chatGroupId": 4611895,
                "messageSeqId": 5,
                "agentUserId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                "agentUserNiceName": "Admin昵称1",
                "agentUserType": 1,
                "createDatetime": "2021-05-10 18:19:53",
                "startDateTime": "2021-05-10 18:20:08",
                "agentLastMessageDate": "2021-05-10 18:20:12",
                "stopDateTime": "2021-05-10 18:24:29",
                "techChannelType": "wechat",
                "enquirySummary": "5",
                "enquiryDegree": "5 (非常满意,好)",
                "resolutionScore": "0",
                "resolutionScore2": "0",
                "consultResult": "1",
                "evaluateWay": "agent",
                "invited": true,
                "techChannelName": "环信本地测试",
                "originType": [
                    "weixin"
                ],
                "visitorUser": {
                    "userId": "479032e4-1d94-4f65-a59b-43515b67d7dc",
                    "nicename": "环信本地测试:o6B_c4p_OKwcGLWqoFCXcXqKExS4",
                    "username": "o6B_c4p_OKwcGLWqoFCXcXqKExS4"
                },
                "customer": {
                    "customerId": "c7e44d7d-8378-44b3-8b30-d4b46d97b62d",
                    "customerNiceName": "环信本地测试:o6B_c4p_OKwcGLWqoFCXcXqKExS4",
                    "customerTrueName": null
                },
                "fromAgentCallback": false,
                "transfered": false,
                "enquiryTags": [
                    {
                        "appraiseTagId": 4784,
                        "name": "未解决"
                    }
                ],
                "agentUserSet": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentUserList": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentQueueSet": [
                    {
                        "queueId": "161557",
                        "queueName": "未分组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "agentQueueList": [
                    {
                        "queueId": "161557",
                        "queueName": "未分组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "serviceSessionEventHistoryList": [
                    {
                        "eventId": "82c0ab6d-0291-4376-b838-c7cb177c8e1f",
                        "serviceSessionId": "e4bd2cb2-d95d-4db6-85c7-5bf83b559d58",
                        "tenantId": 29676,
                        "actorId": null,
                        "actorName": null,
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": null,
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Created",
                        "serviceSessionExt": "{\"fromAgentCallback\":false,\"sessionCreateType\":\"fromRoutingPolicy\",\"routingToRobot\":false,\"queueName\":\"未分组\"}",
                        "createDateTime": "2021-05-10 18:19:53",
                        "timeStamp": null
                    },
                    {
                        "eventId": "0e2dedcb-8f2b-400e-b1f2-8f489f041bdb",
                        "serviceSessionId": "e4bd2cb2-d95d-4db6-85c7-5bf83b559d58",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Opened",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 18:20:08",
                        "timeStamp": null
                    },
                    {
                        "eventId": "e6e3c589-d6b4-498a-9dd0-caf5104fc47a",
                        "serviceSessionId": "e4bd2cb2-d95d-4db6-85c7-5bf83b559d58",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "FirstReplyTime",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 18:20:11",
                        "timeStamp": null
                    },
                    {
                        "eventId": "836e7ff4-921f-4a79-b494-d5ffeeeb869e",
                        "serviceSessionId": "e4bd2cb2-d95d-4db6-85c7-5bf83b559d58",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Closed",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 18:24:29",
                        "timeStamp": null
                    }
                ],
                "enquiryTagNames": "未解决",
                "serviceSessionAttribute": {}
            },
            {
                "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                "tenantId": 29676,
                "techChannelId": 23293,
                "queueId": 161557,
                "state": "Terminal",
                "chatGroupId": 4611717,
                "messageSeqId": 15,
                "agentUserId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                "agentUserNiceName": "Admin昵称1",
                "agentUserType": 1,
                "createDatetime": "2021-05-10 11:17:16",
                "startDateTime": "2021-05-10 11:17:26",
                "agentLastMessageDate": "2021-05-10 11:20:03",
                "stopDateTime": "2021-05-10 11:20:09",
                "techChannelType": "easemob",
                "enquirySummary": "0",
                "enquiryDegree": "0",
                "resolutionScore": "0",
                "resolutionScore2": "0",
                "consultResult": "1",
                "invited": false,
                "visitorLeaveTime": "2021-05-10 11:20:18",
                "techChannelName": "体验关联",
                "originType": [
                    "webim"
                ],
                "visitorUser": {
                    "userId": "49440425-ac26-45df-9bf1-11bf39ca74af",
                    "nicename": "webim-visitor-CKFR3YEGFB2Q672V8W4P",
                    "username": "webim-visitor-CKFR3YEGFB2Q672V8W4P"
                },
                "customer": {
                    "customerId": "5d513e47-0628-4c25-85f3-76627b26ceea",
                    "customerNiceName": "webim-visitor-CKFR3YEGFB2Q672V8W4P",
                    "customerTrueName": null
                },
                "fromAgentCallback": false,
                "transfered": true,
                "agentUserSet": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    },
                    {
                        "userId": "18c8af0f-5891-4a36-ad49-90fb612d3b8b",
                        "username": "qu1@1.com",
                        "nicename": "qu1@1.com昵称",
                        "trueName": "qu1@1.com姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentUserList": [
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    },
                    {
                        "userId": "18c8af0f-5891-4a36-ad49-90fb612d3b8b",
                        "username": "qu1@1.com",
                        "nicename": "qu1@1.com昵称",
                        "trueName": "qu1@1.com姓名",
                        "tenantId": "29676"
                    },
                    {
                        "userId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "username": "15010965776@163.com",
                        "nicename": "Admin昵称1",
                        "trueName": "Admin姓名",
                        "tenantId": "29676"
                    }
                ],
                "agentQueueSet": [
                    {
                        "queueId": "164924",
                        "queueName": "第一技能组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "agentQueueList": [
                    {
                        "queueId": "164924",
                        "queueName": "第一技能组",
                        "queueType": "QueueNormal",
                        "tenantId": 29676
                    }
                ],
                "serviceSessionEventHistoryList": [
                    {
                        "eventId": "06fed1c4-fbe2-4ac8-87d6-2d07c340db13",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": null,
                        "actorName": null,
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": null,
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Created",
                        "serviceSessionExt": "{\"fromAgentCallback\":false,\"routingPolicyType\":\"Channel\",\"sessionCreateType\":\"fromRoutingPolicy\",\"routingToRobot\":false,\"queueName\":\"第一技能组\"}",
                        "createDateTime": "2021-05-10 11:17:16",
                        "timeStamp": null
                    },
                    {
                        "eventId": "d34d7ddf-b1e9-4630-a9bb-5b34eae38e17",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Opened",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 11:17:26",
                        "timeStamp": null
                    },
                    {
                        "eventId": "55c7cabe-9ef9-4572-923f-69c48788866f",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "FirstReplyTime",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 11:17:27",
                        "timeStamp": null
                    },
                    {
                        "eventId": "eb7ab5ba-64a9-4aad-a516-16e2d6acbfa1",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "fromName": "Admin姓名",
                        "actorTrueName": "Admin姓名",
                        "fromState": "Processing",
                        "toId": "18c8af0f-5891-4a36-ad49-90fb612d3b8b",
                        "toName": "qu1@1.com姓名",
                        "toState": "Processing",
                        "type": "TransferAA",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 11:17:45",
                        "timeStamp": null
                    },
                    {
                        "eventId": "fb8478a5-2506-4759-b70b-2cfd2fe4a105",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": "18c8af0f-5891-4a36-ad49-90fb612d3b8b",
                        "actorName": "qu1@1.com昵称",
                        "fromId": "18c8af0f-5891-4a36-ad49-90fb612d3b8b",
                        "fromName": "qu1@1.com姓名",
                        "actorTrueName": "qu1@1.com姓名",
                        "fromState": "Processing",
                        "toId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "toName": "Admin姓名",
                        "toState": "Processing",
                        "type": "TransferAA",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 11:19:29",
                        "timeStamp": null
                    },
                    {
                        "eventId": "6d1f1823-ca5d-48bc-8c04-42abd02fa0ea",
                        "serviceSessionId": "55e34279-8a1c-4863-aa66-896fdd80b2ee",
                        "tenantId": 29676,
                        "actorId": "5dade28d-77e8-43a4-84e8-1eefa0c63748",
                        "actorName": "Admin昵称1",
                        "fromId": null,
                        "fromName": null,
                        "actorTrueName": "Admin姓名",
                        "fromState": null,
                        "toId": null,
                        "toName": null,
                        "toState": null,
                        "type": "Closed",
                        "serviceSessionExt": null,
                        "createDateTime": "2021-05-10 11:20:09",
                        "timeStamp": null
                    }
                ],
                "serviceSessionAttribute": {
                    "referer": "https://029676.sandbox.kefu.easemob.com/mo/admin/webapp/channels/web",
                    "searchType": "直接访问",
                    "ip": "211.157.146.18",
                    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36",
                    "region": "中国,北京,北京"
                }
            }
        ]
    }
}

参数说明:

名称类型说明
status String 接口响应状态
total_entries int 查询到的历史会话条数
serviceSessionId String 会话ID
tenantId int 租户ID
techChannelId int 关联ID
queueId int 技能组ID
state String 会话状态
chatGroupId int 访客的群组ID
messageSeqId int 最大消息序列自增标记
agentUserId String 坐席ID
agentUserNiceName String 坐席昵称
agentUserTrueName String 真实姓名
agentUserType String 坐席类型
createDatetime String 会话创建时间
startDateTime String 会话接起时间
agentLastMessageDate String 坐席最后一条消息的时间
stopDateTime String 会话结束时间
techChannelType String 关联类型
(summarys) id int 会话标签ID
(summarys) name String 会话标签名称
(summarys) color int 会话标签颜色
(summarys) parentId int 会话标签的父节点ID
enquirySummary String 客户满意度评价
enquiryDetail String 客户满意度评价详情
techChannelName String 关联名称
originType String 渠道类型 网页:webim,APP:app,微信渠道weixin,微博为weibo,呼叫中心:phone
comment String 会话备注
(visitorUser) userId String 访客ID
(visitorUser) nicename String 访客昵称
(visitorUser) username String 访客的用户名
(customer) customerId String 客户ID
(customer) customerNiceName String 客户昵称
(customer) customerTrueName String 客户的真实姓名
messageDetail String 消息详情
recordFileUrl String 话单录音文件名
fromAgentCallback boolean 会话类型 回呼:true 呼入:false
transfered boolean 是否转接 是:true 不是:false
visitorUserTags String 访客标签
enquiryTags String 满意度评价标签
chatMessages String 聊天消息
lastChatMessage String 最后一条消息
(agentUserSet) userId String 坐席ID
(agentUserSet) username String 坐席账号(邮箱)
(agentUserSet) nicename String 坐席昵称
(agentUserSet) trueName String 坐席的真实姓名
(agentUserSet) tenantId String 坐席的租户ID
agentQueueSet String 会话归属的技能组
enquiryTagNames String 满意度评价标签的名字
summarysDetail String 会话小结文本内容
serviceSessionEventHistoryList会话流转事件
eventId String 事件Id
serviceSessionId String 会话Id
tenantId String 租户Id
actorId String 操作人Id
actorName String 操作人昵称
fromId String 转接自(操作人Id)
fromName String 转接自(操作人昵称)
actorTrueName String 操作人姓名
fromState String 操作前状态
toId String 转接用户Id
toName String 转接用户姓名
toState String 操作后状态
type String 事件类型:Created-创建,Opened-接起,FirstReplyTime-首次响应,Transfer转接(AA-坐席转坐席,AQ-坐席转技能组,QA-技能组转坐席,QQ-技能组转技能组,RA-机器人转坐席,RQ-机器人转技能组),Closed-关闭,Aborted-待接入会话关闭
serviceSessionExt 会话相关事件的详细信息
fromAgentCallback boolean 用于记录会话创建事件,会话是否是回呼
assignedAgent String 用于记录会话创建事件,记录会话是否指定坐席(指定:坐席的username, 未指定:null)
routingPolicyType String 用于记录会话创建事件,会话路由信息(UserSpecifiedChannel:入口指定,ChannelData:关联指定,Channel:渠道指定, OfficialAccount:服务号指定,SpecialIdentity:特殊身份指定,Default:默认指定)
sessionCreateType String 会话创建的方式( “fromAgentCallback”, “fromAassignedAgent”, “fromRoutingPolicy”)
routingToRobot boolean 是否路由到机器人
queueName String 路由到技能组的名称
createDateTime String 事件时间
timeStamp String 可忽略
(serviceSessionAttribute) carrierOperator String 运营商
(serviceSessionAttribute)referer String 来源信息
(serviceSessionAttribute)system String 操作系统
(serviceSessionAttribute)userAgent String 软件环境
(serviceSessionAttribute)version String 系统版本
(serviceSessionAttribute)searchType String 推广来源
(serviceSessionAttribute)accessUrl String 着陆页
(serviceSessionAttribute)ip String IP
(serviceSessionAttribute)equipment String 设备
(serviceSessionAttribute)region String 地区
(serviceSessionAttribute)equipment keyword 搜索词

获取历史会话详情

根据会话ID查询历史会话详情。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/8019/servicesessions/05303239-dd9e-4afe-bf69-92469da17612/messages?page=0&size=10&_=1561514960554' \
  --header 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
sessionServiceIdStringY会话ID
pageintN查询页码索引,默认为0
sizeintN每页显示的数据容量,默认为10,最大为50

Response示例:

{
  "status": "OK",
  "entities": [
    {
      "msgId": "332d6236-df15-46e9-b4e8-7b797351264b",
      "tenantId": 55899,
      "chatGroupId": 118488700,
      "sessionServiceId": "f109dbe1-bf97-4562-9627-8acb30957181",
      "messageType": "ChatMessage",
      "fromUser": {
        "tenantId": 0,
        "userId": "_2",
        "userType": "Scheduler",
        "userScope": "Tenant",
        "nicename": "调度员",
        "scope": "Tenant",
        "bizId": "0",
        "status": "Disable",
        "roles": ""
      },
      "contentType": "application/easemob-msg",
      "body": {
        "bodies": [
          {
            "action": "ServiceSessionClosedEvent",
            "type": "cmd"
          }
        ],
        "ext": {
          "weichat": {
            "msgId": "332d6236-df15-46e9-b4e8-7b797351264b",
            "originType": "webim",
            "agent": {},
            "queueId": 95953,
            "queueName": "售前",
            "event": {
              "eventName": "ServiceSessionClosedEvent"
            },
            "service_session": {
              "serviceSessionId": "f109dbe1-bf97-4562-9627-8acb30957181",
              "robotId": 0,
              "state": "Terminal",
              "messageSeqId": 4,
              "agentUserId": "56a353b5-453b-4ecb-a3c3-4bf0f00e24b9",
              "agentUserType": 1,
              "expire": false
            },
            "official_account": {
              "official_account_id": "da4f72df-e405-486d-b153-cf7b203b6769",
              "name": "个人-7",
              "type": "SYSTEM",
              "img": "//kefu.easemob.com/v1/tenants/55899/mediafiles/c08adf10-b217-4b81-95ca-1f8345e4d6186ZSu55uYLmpwZw==/cutout?arg=699_291_1865_1865_300_300",
              "schedule_info": {}
            }
          }
        },
        "from": "调度员",
        "to": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "channelType": "easemob",
        "timestamp": 1556174648179,
        "tenantId": 55899,
        "visitorUserId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "originType": "webim",
        "channel_id": 81029
      },
      "chatGroupSeqId": 55,
      "sessionServiceSeqId": 0,
      "createDateTime": 1556174648179,
      "timestamp": 1559133258854,
      "createMicroTimestamp": 1556174648179000
    },
    {
      "msgId": "9b9bcb78-e257-46bd-bddc-df271af229db",
      "tenantId": 55899,
      "chatGroupId": 118488700,
      "sessionServiceId": "f109dbe1-bf97-4562-9627-8acb30957181",
      "messageType": "ChatMessage",
      "fromUser": {
        "tenantId": 0,
        "userId": "_2",
        "userType": "Scheduler",
        "userScope": "Tenant",
        "nicename": "调度员",
        "scope": "Tenant",
        "bizId": "0",
        "status": "Disable",
        "roles": ""
      },
      "contentType": "application/easemob-msg",
      "body": {
        "bodies": [
          {
            "action": "ServiceSessionOpenedEvent",
            "type": "cmd"
          }
        ],
        "ext": {
          "weichat": {
            "msgId": "9b9bcb78-e257-46bd-bddc-df271af229db",
            "originType": "webim",
            "agent": {},
            "queueId": 95953,
            "queueName": "售前",
            "event": {
              "eventName": "ServiceSessionOpenedEvent",
              "eventObj": {
                "userId": "56a353b5-453b-4ecb-a3c3-4bf0f00e24b9",
                "agentUserNiceName": "xu8",
                "agentType": 1,
                "sessionId": "f109dbe1-bf97-4562-9627-8acb30957181"
              }
            },
            "service_session": {
              "serviceSessionId": "f109dbe1-bf97-4562-9627-8acb30957181",
              "robotId": 0,
              "state": "Processing",
              "messageSeqId": 3,
              "agentUserId": "56a353b5-453b-4ecb-a3c3-4bf0f00e24b9",
              "agentUserType": 1,
              "expire": false
            },
            "official_account": {
              "official_account_id": "da4f72df-e405-486d-b153-cf7b203b6769",
              "name": "个人-7",
              "type": "SYSTEM",
              "img": "//kefu.easemob.com/v1/tenants/55899/mediafiles/c08adf10-b217-4b81-95ca-1f8345e4d6186ZSu55uYLmpwZw==/cutout?arg=699_291_1865_1865_300_300",
              "schedule_info": {}
            }
          }
        },
        "from": "调度员",
        "to": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "channelType": "easemob",
        "timestamp": 1556174639110,
        "tenantId": 55899,
        "visitorUserId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "originType": "webim",
        "channel_id": 81029
      },
      "chatGroupSeqId": 54,
      "sessionServiceSeqId": 0,
      "createDateTime": 1556174639110,
      "timestamp": 1559133258854,
      "createMicroTimestamp": 1556174639110000
    },
    {
      "msgId": "aa4ab60b-5534-4327-bc58-8b8064b925cb",
      "tenantId": 55899,
      "chatGroupId": 118488700,
      "sessionServiceId": "f109dbe1-bf97-4562-9627-8acb30957181",
      "messageType": "ChatMessage",
      "fromUser": {
        "tenantId": 0,
        "userId": "_2",
        "userType": "Scheduler",
        "userScope": "Tenant",
        "nicename": "调度员",
        "scope": "Tenant",
        "bizId": "0",
        "status": "Disable",
        "roles": ""
      },
      "contentType": "application/easemob-msg",
      "body": {
        "bodies": [
          {
            "action": "ServiceSessionCreatedEvent",
            "type": "cmd"
          }
        ],
        "ext": {
          "weichat": {
            "msgId": "aa4ab60b-5534-4327-bc58-8b8064b925cb",
            "originType": "webim",
            "agent": {},
            "queueId": 95953,
            "queueName": "售前",
            "event": {
              "eventName": "ServiceSessionCreatedEvent",
              "eventObj": {
                "sessionId": "f109dbe1-bf97-4562-9627-8acb30957181"
              }
            },
            "service_session": {
              "serviceSessionId": "f109dbe1-bf97-4562-9627-8acb30957181",
              "robotId": 0,
              "state": "Processing",
              "messageSeqId": 2,
              "agentUserId": "56a353b5-453b-4ecb-a3c3-4bf0f00e24b9",
              "agentUserType": 1,
              "expire": false
            },
            "official_account": {
              "official_account_id": "da4f72df-e405-486d-b153-cf7b203b6769",
              "name": "个人-7",
              "type": "SYSTEM",
              "img": "//kefu.easemob.com/v1/tenants/55899/mediafiles/c08adf10-b217-4b81-95ca-1f8345e4d6186ZSu55uYLmpwZw==/cutout?arg=699_291_1865_1865_300_300",
              "schedule_info": {}
            }
          }
        },
        "from": "调度员",
        "to": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "channelType": "easemob",
        "timestamp": 1556174638984,
        "tenantId": 55899,
        "visitorUserId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "originType": "webim",
        "channel_id": 81029
      },
      "chatGroupSeqId": 53,
      "sessionServiceSeqId": 0,
      "createDateTime": 1556174638984,
      "timestamp": 1559133258854,
      "createMicroTimestamp": 1556174638984000
    },
    {
      "msgId": "44b5e9fe-40eb-42ed-b93b-6545404ddb74",
      "tenantId": 55899,
      "chatGroupId": 118488700,
      "sessionServiceId": "f109dbe1-bf97-4562-9627-8acb30957181",
      "messageType": "ChatMessage",
      "fromUser": {
        "tenantId": 0,
        "userId": "_2",
        "userType": "Scheduler",
        "userScope": "Tenant",
        "nicename": "调度员",
        "scope": "Tenant",
        "bizId": "0",
        "status": "Disable",
        "roles": ""
      },
      "contentType": "application/easemob-msg",
      "body": {
        "bodies": [
          {
            "msg": "您好,有什么可以帮助您的吗?",
            "type": "txt"
          }
        ],
        "ext": {
          "weichat": {
            "msgId": "44b5e9fe-40eb-42ed-b93b-6545404ddb74",
            "originType": "webim",
            "visitor": null,
            "agent": {
              "avatar": null,
              "userNickname": null
            },
            "queueId": 95953,
            "queueName": "售前",
            "agentUsername": null,
            "ctrlType": null,
            "ctrlArgs": null,
            "event": null,
            "metadata": null,
            "callcenter": null,
            "language": "zh-CN",
            "marketing": null,
            "service_session": {
              "serviceSessionId": "f109dbe1-bf97-4562-9627-8acb30957181",
              "robotId": 0,
              "state": "Processing",
              "messageSeqId": 1,
              "agentUserId": "56a353b5-453b-4ecb-a3c3-4bf0f00e24b9",
              "agentUserType": 1,
              "expire": false
            },
            "html_safe_body": {
              "type": "txt",
              "msg": "您好,有什么可以帮助您的吗?"
            },
            "msg_id_for_ack": "94086d60-e8dc-45db-94ae-f96087bb1f1d",
            "ack_for_msg_id": null,
            "recall_flag": null,
            "recall_msg_id": null,
            "official_account": {
              "official_account_id": "da4f72df-e405-486d-b153-cf7b203b6769",
              "name": "个人-7",
              "type": "SYSTEM",
              "img": "//kefu.easemob.com/v1/tenants/55899/mediafiles/c08adf10-b217-4b81-95ca-1f8345e4d6186ZSu55uYLmpwZw==/cutout?arg=699_291_1865_1865_300_300",
              "schedule_info": {}
            },
            "reserve_queue": null,
            "match_flag": null
          }
        },
        "from": "调度员",
        "to": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "channelType": "easemob",
        "timestamp": 1556174638854,
        "tenantId": 55899,
        "visitorUserId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "originType": "webim",
        "channel_id": 81029
      },
      "chatGroupSeqId": 52,
      "sessionServiceSeqId": 0,
      "createDateTime": 1556174638854,
      "timestamp": 1559133258854,
      "createMicroTimestamp": 1556174638854000
    },
    {
      "msgId": "45159d25-68ce-4b91-84f1-8e9fb918d0fb",
      "tenantId": 55899,
      "chatGroupId": 118488700,
      "sessionServiceId": "f109dbe1-bf97-4562-9627-8acb30957181",
      "messageType": "ChatMessage",
      "fromUser": {
        "tenantId": 0,
        "userId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "userType": "Visitor",
        "userScope": "Tenant",
        "nicename": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "scope": "Tenant",
        "bizId": "0",
        "status": "Disable",
        "roles": ""
      },
      "contentType": "application/easemob-msg",
      "body": {
        "bodies": [
          {
            "msg": "cdasc",
            "type": "txt"
          }
        ],
        "ext": {
          "weichat": {
            "msgId": "45159d25-68ce-4b91-84f1-8e9fb918d0fb",
            "originType": "webim",
            "visitor": null,
            "agent": null,
            "queueId": null,
            "queueName": null,
            "agentUsername": null,
            "ctrlType": null,
            "ctrlArgs": null,
            "event": null,
            "metadata": null,
            "callcenter": null,
            "language": "zh-CN",
            "marketing": null,
            "service_session": null,
            "html_safe_body": {
              "type": "txt",
              "msg": "cdasc"
            },
            "msg_id_for_ack": "94086d60-e8dc-45db-94ae-f96087bb1f1d",
            "ack_for_msg_id": null,
            "recall_flag": null,
            "recall_msg_id": null,
            "official_account": {
              "official_account_id": "da4f72df-e405-486d-b153-cf7b203b6769",
              "name": "个人-7",
              "type": "SYSTEM",
              "img": "//kefu.easemob.com/v1/tenants/55899/mediafiles/c08adf10-b217-4b81-95ca-1f8345e4d6186ZSu55uYLmpwZw==/cutout?arg=699_291_1865_1865_300_300",
              "schedule_info": {}
            },
            "reserve_queue": null,
            "match_flag": null
          }
        },
        "from": "webim-visitor-KTTG7XMBG9P482C93HCP",
        "to": "169704",
        "channelType": "easemob",
        "timestamp": 1556174638385,
        "tenantId": 55899,
        "serviceSessionId": "f109dbe1-bf97-4562-9627-8acb30957181",
        "visitorUserId": "94a6efed-38d1-45cd-a784-41e94df55186",
        "originType": "webim",
        "to_jid": "experience-kefu#sandbox_169704@easemob.com",
        "msg_id": "595324722682528396",
        "channel_id": 81029,
        "channel_name": "体验关联"
      },
      "chatGroupSeqId": 51,
      "sessionServiceSeqId": 0,
      "createDateTime": 1556174638745,
      "timestamp": 1559133258854,
      "createMicroTimestamp": 1556174638745000
    }
  ],
  "first": true,
  "last": true,
  "size": 10,
  "number": 0,
  "numberOfElements": 5,
  "totalPages": 1,
  "totalElements": 5
}

参数说明:

名称类型说明
statusString接口响应状态
msgIdString消息Id
tenantIdInteger租户Id
sessionServiceIdString会话Id
messageTypeString消息类型
(fromUser)tenantIdInteger租户Id
(fromUser)userIdStringId
(fromUser)userTypeString类型
(fromUser)userScopeString用户层级
(fromUser)nicenameString昵称
(fromUser)scopeString用户层级
(fromUser)bizIdString租户Id
(fromUser)statusString用户状态
contentTypeString消息内容类型
(bodies)String事件名称
(bodies)String消息类型
(ext.weichat)msgIdString消息Id
(ext.weichat)originTypeString渠道类型
(ext.weichat)queueIdLong技能组Id
(ext.weichat)queueNameString技能组名称
(ext.weichat.event.eventName)String事件名
(ext.weichat.service_session)serviceSessionIdString会话Id
(ext.weichat.service_session)robotIdInteger机器人Id
(ext.weichat.service_session)stateString会话状态
(ext.weichat.service_session)messageSeqIdLong最大消息序列自增标记
(ext.weichat.service_session)agentUserIdString坐席Id
(ext.weichat.service_session)agentUserTypeInteger坐席类型
(ext.weichat.service_session)expireBoolean会话是否过期
(ext.weichat.service_session)categoryIdInteger标识该会话是否只有无效的访客消息
(ext.weichat.hide_flag)Boolean消息是否上屏
(body)fromString发送者昵称
(body)toString接受者昵称
(body)channelTypeString关联类型
(body)timestampDate时间戳
(body)tenantId Integer租户Id
(body)visitorUserIdString访客Id
(body)originTypeString渠道类型
(body)channel_idInteger关联Id
firstBoolean是否为第一页
lastBoolean是否为最后一页
sizeInteger页大小
numberInteger页码
numberOfElementsInteger当前页element数量
totalPagesInteger总页数
totalElementsInteger总个数

呼叫中心

获取历史通话列表

根据呼叫类型、通话时间、技能组、坐席、挂断原因、满意度评价等条件查询历史通话列表。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/28994/calldetails?page=0&size=14&startTime=2019-11-10%2023:00:00&stopTime=2019-11-16%2023:00:00&contactType=Inbound&orderType=DESC&order=&contactDisposition=ALL&phoneNumber=&useStop=false&satisfaction='  \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
pageintN查询页码索引,默认为0,0代表查询第一页数据
sizeintN每页显示的数据容量,默认为10,最大为50
startTime String N通话时间(开始范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
stopTime String N通话时间(结束范围条件),时间格式 2018-06-16T23%3A59%3A59.000Z
contactType String N通话类型,取值:Inbound(呼入),Outbound(呼出),Back2Back(双呼),Internal(内部通话),多个条件以英文逗号隔开
orderType String N排序方式,取值:ASC/DESC,默认DESC
contactDisposition String N挂断原因,取值:ALL(全部),Success(正常),NoAnswer(未接通),AbandonedInContactFlow(IVR中放弃),AbandonedInQueue(排队放弃),AbandonedRing(振铃放弃),QueueOverflow(排队超时),OneStepTransfer(转外线)
phoneNumber String N手机号码,同时检索主叫和被叫号码
satisfaction String N满意度评价,取值:0(未发送),998(未评价),满意,一般,不满意

Response示例:

{
    "status": "OK",
    "entities": [
        {
            "id": "10301193-7c1a-4b9a-9285-164040c189b8",
            "ccId": "d00842df-e406-4f32-9929-80b02f26e07c",
            "contactId": "2561536188",
            "staffId": "83162635-be49-486e-9334-d358276feda0",
            "groupId": "e155be22-05ca-4535-89aa-ad3c8d358d45",
            "labelId": null,
            "visitorId": "fd07207a-d2d5-4dab-8637-800a27c526f9",
            "contactType": "Inbound",
            "contactDisposition": "Success",
            "callingNumber": "18612390240",
            "calledNumber": "02160556504",
            "recordFileName": "157372327914600080309018.wav",
            "province": "北京",
            "city": "北京",
            "duration": 22,
            "validDuration":14,
            "satisfaction": 0,
            "satisfactionDesc": "未发送",
            "startTime": 1573723266000,
            "stopTime": 1573723288000,
            "syncStartTime": 1573723266000,
            "syncStopTime": 1573723288000,
            "syncFlag": true,
            "recordSyncFlag": 1,
            "agentNames": "aliyun_cc_02",
            "skillGroupNames": "沙箱技能组",
            "visitor": {
                "tenantId": 28994,
                "userId": "fd07207a-d2d5-4dab-8637-800a27c526f9",
                "createDateTime": 1543994461000,
                "lastUpdateDateTime": 1563959840000,
                "nickname": "18612390240",
                "trueName": "大帅哥",
                "sex": 0,
                "qq": "260553619",
                "weixin": "嘻嘻,喜闻乐见",
                "email": "leoli@easemob.com",
                "phone": "18612390240",
                "companyName": "环信",
                "description": "环信环信环信环信环信环信"
            },
            "evaluateContent": null,
            "recordingDataList": [
                {
                    "fileName": "157372327914600080309018.wav",
                    "startTime": 1573723279000
                }
            ]
        }
    ],
    "first": true,
    "last": true,
    "number": 0,
    "numberOfElements": 4,
    "totalPages": 1,
    "totalElements": 4
}

参数说明:

名称类型说明
status String 接口响应状态
id String 通话记录ID
ccid String 呼叫中心实例ID
contactId String 通话ID
staffId String 客服ID
groupId int 技能组ID
labelId int 通话标签ID
visitorId String 访客环信ID
contactType String 通话类型
contactDisposition String 挂断原因
callingNumber String 主叫号码
calledNumber String 被叫号码
recordFileName String 通话录音文件名称
province String 访客号码归属地-省
city String 访客号码归属地-市
duration Int 总通话时长
validDuration Int 有效通话时长
satisfaction String 满意度值
satisfactionDesc String 满意度评价信息
startTime String 通话开始时间
stopTime String 通话结束时间
syncFlag Boolean 通话详单生成标识,true为已生成
recordSyncFlag Integer 录音生成标识,1为已生成,8为无录音
agentNames String 客服昵称,若存在转接,则为多个
skillGroupNames String 技能组名称
tenantId int 租户ID
visitor访客信息
userId String 访客ID
createDateTime String 创建时间
lastUpdateDateTime String 更新时间
nickname String 昵称
trueName String 姓名
sex String 性别
qq String QQ
weixin String 微信
email String 邮箱
phone String 电话
companyName String 公司名称
description String 备注
evaluateContent String 服务小结
fileName String 录音文件名
startTime String 录音开始时间
first boolean 是否是第一页
last boolean 是否是最后一页
number int 当前页码
numberOfElements int 当前页数据量
totalPages int 总页数
totalElements int 总数据量

获取通话录音

根据通话id查询通话录音。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/20080/recording/3059753965'  \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
contactIdintY通话id

Response示例:

{
    "entity": [
        {
            "tenantId": 20080,
            "ccId": "d00842df-e406-4f32-9929-80b02f26e07c",
            "staffUsername": "gcy@easemob.com",
            "staffNickname": "gcy@easemob.com",
            "staffTruename": "gcy",
            "fileName": "161519050124500080550386.wav",
            "fileUrl": "http%3A%2F%2Fcloudcallcenter-online.oss-cn-shanghai.aliyuncs.com%2Frecord%2Ff626832e-3da0-4c99-b534-ed3a2116b626%2F161519050124500080550386.wav%3FExpires%3D1615285356%26OSSAccessKeyId%3DLTAIvKWEr4DoFSqz%26Signature%3D7%252BTZaLQAng6iisw4R1LFVIUj1Gg%253D",
            "startTime": 1615190501000,
            "contactType": "Inbound",
            "callingNumber": "18829209656",
            "calledNumber": "02160556504",
            "contactId": "3059753965",
            "duration": 21
        },
        {
            "tenantId": 20080,
            "ccId": "d00842df-e406-4f32-9929-80b02f26e07c",
            "staffUsername": "gcy_test@qq.com",
            "staffNickname": "gcy_test",
            "staffTruename": "gcy_test",
            "fileName": "161519051281300080580663.wav",
            "fileUrl": "http%3A%2F%2Fcloudcallcenter-online.oss-cn-shanghai.aliyuncs.com%2Frecord%2Ff626832e-3da0-4c99-b534-ed3a2116b626%2F161519051281300080580663.wav%3FExpires%3D1615285356%26OSSAccessKeyId%3DLTAIvKWEr4DoFSqz%26Signature%3DX%252FhBkDVR3HCIMSvHTkUcfA%252BFFcQ%253D",
            "startTime": 1615190512000,
            "contactType": "Inbound",
            "callingNumber": "18829209656",
            "calledNumber": "02160556504",
            "contactId": "3059753965",
            "duration": 30
        }
    ]
}      

参数说明:

名称类型说明
status String 接口响应状态
tenantId String 租户ID
ccid String 呼叫中心实例ID
contactId String 通话ID
contactType String 通话类型:呼入/呼出/双呼等
callingNumber String 主叫号码
calledNumber String 被叫号码
staffUsername String 客服账号
staffNickname String 客服昵称
staffTruename String 客服姓名
fileName String 录音文件名
fileUrl String 录音文件路径
startTime String 开始时间
duration String 录音时长

新建联系计划

新建联系计划接口,可满足客户预约服务的场景。比如:您提供心理咨询服务,有自己的app,用户可在app里预约服务,那用户预约服务时,可调用此接口新建联系计划。 一张预约服务单在环信客服云上就体现为一条联系计划。

Curl示例:

curl --request GET \
  -url 'http://kefu.easemob.com/api/platform/tenants/20080/contactPlain/items'  \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{  
  "staffId": "92b54cc0-e16d-4985-8ed7-88dbda52cb41",
  "createdPlainStaffId": "92b54cc0-e16d-4985-8ed7",
  "customerPhone": "18829209656",
  "customerName": "上岛咖啡",
  "plainTime": "2021-07-06 00:00:00",
  "plainDesc": "测试api开放",
  "reminderDuration": 300  
  }'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
staffIdStringY计划客服id
createdPlainStaffIdStringY创建人ID
customerPhoneintY客户号码
customerNameStringY客户姓名
plainTimeStringY计划联系时间
plainDescStringY描述
reminderDurationintY提醒时间

Response示例:

{  "entity": {
        "tenantId": 28994,
        "id": 200,
        "createTime": "2021-07-05 16:44:47",
        "updateTime": "2021-07-05 16:44:47",
        "contactId": null,
        "staffId": "92b54cc0-e16d-4985-8ed7-88dbda52cb41",
        "createdPlainStaffId": "92b54cc0-e16d-4985-8ed7-88dbda52cb41",
        "customerPhone": "18829209656",
        "customerName": "上岛咖啡",
        "agentUserTrueName": null,
        "plainTime": "2021-07-06 00:00:00",
        "contactTime": null,
        "reminderDuration": 300,
        "plainDesc": "测试api开放",
        "contactResult": null,
        "status": 0      //联系计划状态 0:未执行,1:已执行,2:已过期
}
}

参数说明:

名称类型说明
tenantIdint租户ID
idint联系计划ID
createTimeString创建时间
updateTimeString更新时间
contactIdString通话id
staffIdString计划客服id
createdPlainStaffIdString创建人ID
customerPhoneint客户号码
customerNameString客户姓名
agentUserTrueNameString客服姓名
plainTimeString计划联系时间
contactTimeString实际联系时间
reminderDurationint提醒时间
plainDescString描述
contactResultString联系结果
statusint0/1/2,0:未执行,1:已执行,2:已过期

双呼

双呼模式,主叫并不直接呼叫对方,而是通过一个背靠背代理(Back to Back Agent), 背靠背代理首先呼叫主叫方,接通后,再呼叫被叫方,然后把二者拉进一个会场。在这种方式下,由于每个呼叫的所有消息流经背靠背代理,因此服务提供商可以据此提供增值服务,比如计时、录音、隐藏真实号码等等。 应用场景:

  1. 移动端呼出:坐席呼叫访客/司机与乘客沟通/商家与顾客沟通等,可以直接调用此接口。
  2. CRM/其他业务系统中呼出:给访客拨打电话的场景,可直接调用此接口。

Curl示例:

curl --request GET \
  -url 'http://kefu.easemob.com/api/platform/tenants/20080/backcall'  \
  -H 'Content-Type: application/json' \
  -H 'Kefu-Token: a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{  
        "callee":"18392868937",
	    "caller":"18829209656"
  }'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantId int Y租户ID
caller String Y主叫号码
callee String Y被叫号码

Response示例:

{
    "entity": {
        "requestId": "1212D85E-3CD7-4182-A245-80DB50F1122A",
        "success": true,
        "code": "OK",
        "message": null,
        "httpStatusCode": 200,
        "statusCode": "200",
        "statusDesc": null,
        "taskId": "161484304484139079",
        "timeStamp": "1614843044870"
    }
}

参数说明:

名称类型说明
status String 接口响应状态
requestId String 请求ID
success String 是否成功
code String 状态
message String
httpStatusCode String http状态码
statusCode String 状态码
statusDesc String 状态描述
taskId String 本次外呼产生的contactId(即:通话详单中的通话ID),后续可以据此参数查询话务状态。
timeStamp String 时间

工单

查询自定义表单

可查询在环信客服云后台设置的自定义表单列表。

应用场景:

 您自己的业务系统/APP里提交工单,您自己开发提交工单的页面,调用环信工单接口,工单数据提交至环信客服云。您自己开发提交工单的页面时,需要指定用户填写的工单字段,这一步调用此接口完成。获取自定义表单后,您可在页面上直接指定用户填写哪一个表单的字段,也可让用户自行选择表单(让用户选择业务分类)。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/20016/integration-ticket/forms'  \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantId int Y租户ID
page int N页码,默认为0
size int N每页的数据量,默认为10

Response示例:

{
"status": "OK",
"entities": [
{
"id": "7f0f0af4-71bd-4c04-b049-c98802cb793b",
"tenant_id": 200161,
"created": "2019-11-28T03:11:18Z",
"updated": "2019-11-28T03:11:18Z",
"name": "自定义表单111",
"description": "测试自定义表单功能",
"status": "enabled",
"fields": [
{
"id": "6cf63d66-5f0a-4a53-acb4-e46998227342",
"tenant_id": 200161,
"created": "2019-11-28T03:14:49Z",
"updated": "2019-11-28T03:14:49Z",
"name": "自定义表单222",
"description": "测试自定义表单2222",
"status": "enabled",
"fields": [
{
"id": "e7d32c88-22e0-4ffd-95df-741e628ada8e",
"tenant_id": 200161,
"created": "2019-11-28T03:24:25Z",
"updated": "2019-11-28T03:24:25Z",
"form_id": "6cf63d66-5f0a-4a53-acb4-e46998227342",
"name": "男,女",
"label": "性别",
"type": "TEXT_STRING",
"visible": true,
"required": "ON",
"sort": 1,
"hint": "填写性别",
"dictionary_items": [],
"cascade_items": []
},
{
"id": "2c17ad7b-c808-4850-94e7-d39ecf743d7e",
"tenant_id": 200161,
"created": "2019-11-28T03:24:53Z",
"updated": "2019-11-28T03:24:53Z",
"form_id": "6cf63d66-5f0a-4a53-acb4-e46998227342",
"name": "填写爱好",
"label": "爱好",
"type": "SELECT_STRING",
"dictionary_id": "eb9fb55e-3978-40ac-bc79-8623af7bc11b",
"visible": true,
"required": "ON",
"sort": 2,
"dictionary_items": [],
"cascade_items": []
},
{
"id": "ceb2ca78-6118-42de-9e21-23baf366dba1",
"tenant_id": 200161,
"created": "2019-11-28T03:25:26Z",
"updated": "2019-11-28T03:25:26Z",
"form_id": "6cf63d66-5f0a-4a53-acb4-e46998227342",
"name": "填写出生日期",
"label": "出生日期",
"type": "NUMBER",
"visible": true,
"required": "ON",
"sort": 3,
"hint": "填写出生日期",
"dictionary_items": [],
"cascade_items": []
}
],
"topics": [
{
"id": "351d899f-c83c-476c-8f71-bc1918eb4ba0",
"tenant_id": 200161,
"created": "2019-11-27T10:31:05Z",
"updated": "2019-11-27T10:31:05Z",
"parent_id": "eb72bc55-cbd6-454b-be81-1ad1b8df4940",
"name": "第二级别主题",
"is_active": 1,
"is_public": 1,
"full_name": "/hegj帮助主题1/第二级别主题",
"children": [
{
"id": "2e272127-84d2-49a2-964e-e507d4a374f3",
"tenant_id": 200161,
"created": "2019-11-27T10:31:17Z",
"updated": "2019-11-27T10:31:17Z",
"parent_id": "351d899f-c83c-476c-8f71-bc1918eb4ba0",
"name": "第三级别主题1",
"is_active": 1,
"is_public": 1,
"children": [
{
"id": "1ba44df9-ee60-4b8a-83ce-ff007a46bc38",
"tenant_id": 200161,
"created": "2019-11-27T10:31:30Z",
"updated": "2019-11-27T10:31:30Z",
"parent_id": "2e272127-84d2-49a2-964e-e507d4a374f3",
"name": "第四级主题1",
"is_active": 1,
"is_public": 1,
"full_name": "/hegj帮助主题1/第二级别主题/第三级别主题1/第四级主题1",
"children": [
{
"id": "aca22ed9-f392-4620-8676-2d44da4a3891",
"tenant_id": 200161,
"created": "2019-11-27T10:31:40Z",
"updated": "2019-11-27T10:31:40Z",
"parent_id": "1ba44df9-ee60-4b8a-83ce-ff007a46bc38",
"name": "第五级主题1",
"is_active": 1,
"is_public": 1,
"children": [
{
"id": "1bb2a127-9179-4d4f-9352-20c341180c85",
"tenant_id": 200161,
"created": "2019-11-27T10:31:49Z",
"updated": "2019-11-27T10:31:49Z",
"parent_id": "aca22ed9-f392-4620-8676-2d44da4a3891",
"name": "第六级主题1",
"is_active": 1,
"is_public": 1
}
]
}
]
}
]
}
]
},
{
"id": "1bb2a127-9179-4d4f-9352-20c341180c85",
"tenant_id": 200161,
"created": "2019-11-27T10:31:49Z",
"updated": "2019-11-27T10:31:49Z",
"parent_id": "aca22ed9-f392-4620-8676-2d44da4a3891",
"name": "第六级主题1",
"is_active": 1,
"is_public": 1,
"full_name": "/hegj帮助主题1/第二级别主题/第三级别主题1/第四级主题1/第五级主题1/第六级主题1"
},
{
"id": "1ba44df9-ee60-4b8a-83ce-ff007a46bc38",
"tenant_id": 200161,
"created": "2019-11-27T10:31:30Z",
"updated": "2019-11-27T10:31:30Z",
"parent_id": "2e272127-84d2-49a2-964e-e507d4a374f3",
"name": "第四级主题1",
"is_active": 1,
"is_public": 1,
"full_name": "/hegj帮助主题1/第二级别主题/第三级别主题1/第四级主题1",
"children": [
{
"id": "aca22ed9-f392-4620-8676-2d44da4a3891",
"tenant_id": 200161,
"created": "2019-11-27T10:31:40Z",
"updated": "2019-11-27T10:31:40Z",
"parent_id": "1ba44df9-ee60-4b8a-83ce-ff007a46bc38",
"name": "第五级主题1",
"is_active": 1,
"is_public": 1,
"children": [
{
"id": "1bb2a127-9179-4d4f-9352-20c341180c85",
"tenant_id": 200161,
"created": "2019-11-27T10:31:49Z",
"updated": "2019-11-27T10:31:49Z",
"parent_id": "aca22ed9-f392-4620-8676-2d44da4a3891",
"name": "第六级主题1",
"is_active": 1,
"is_public": 1
}
]
}
]
}
],
"topic_ids": [
"1ba44df9-ee60-4b8a-83ce-ff007a46bc38",
"351d899f-c83c-476c-8f71-bc1918eb4ba0",
"1bb2a127-9179-4d4f-9352-20c341180c85"
]
},
{
"id": "kefu_27886",
"tenant_id": 200161,
"created": "2019-11-27T07:22:35Z",
"updated": "2019-11-27T07:22:35Z",
"name": "默认表单",
"description": "租户默认的自定义表单",
"status": "enabled",
"fields": [],
"topics": [],
"topic_ids": []
}
],
"first": true,
"last": true,
"size": 10,
"number": 0,
"numberOfElements": 3,
"totalPages": 1,
"totalElements": 3
}

参数说明:

名称类型说明
httpStatusCode String http状态码
status String 接口响应状态
entities 表单列表
first Boolean 是否是第一页
last Boolean 是否是最后一页
size int 每页的数据量
number String 第几页
numberOfElements int 该页的数据量
totalPages int 总页数
totalElements int总数据量
表单数据
id String 表单ID,自定义表单的唯一标识
tenant_id String 租户ID
created int 表单创建时间
updated String 表单修改时间
name String 表单名称
description String 描述
status String状态,enabled
fields List<FormField>,自定义字段信息
topics List<HelpTopic>,表单关联的帮助主题
topic_ids String 表单关联的帮助主题Id列表
表单字段数据
id String 字段ID,字段的唯一标识
tenant_id String 租户ID
created int 字段创建时间
updated String 字段修改时间
form_id String 表单ID
name String 字段标识
label String 字段名称
type String字段格式:TEXT_STRING 单行文本,DATE 日期,NUMBER 数字类型,URL URL,SELECT_STRING 下拉选项,TEXTAREA_STRING 多行文本,CASCADE_SELECT_STRING 级联选择
dictionary_id String 关联下拉选项
visible Boolean 访客是否可见
required Boolean 是否必填
sort String 排序字段
hint String 文本框提示语
dictionary_items List<DictionaryItem>,下拉选项
cascade_items List<CascadeItem>,级联选项
选项数据
id String 每个选项的ID
tenant_id String 租户ID
created int 选项创建时间
updated String 选项修改时间
dictionary_Id String 关联字段ID
item_value String 选项名称
sort String 排序字段
status String 可忽略
级联选项
id String 每个级联的ID
tenant_id String 租户ID
created int 选项创建时间
updated String 选项修改时间
field_id String 字段ID
form_id String 表单ID
name String 级联选项名称
parent_id String 父节点ID
children List<CascadeItem>,子节点

工单附件上传

提交工单/回复工单时,若需要上传附件,则需要先调用此接口上传附件,再调用访客提交工单接口提交工单。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/20016/integration-ticket/mediaFiles' \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \
  --form 'file=@/Users/heguojiao/Downloads/第024期-lcn.pptx'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
fileform-dataY附件信息

Response示例:

{
"status": "OK",
"entity": {
"uuid": "010b99ec-ba54-4062-b6cf-a20737ae782e56ysMDI05pyfLWxjbi5wcHR4",
"contentType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"contentLength": 1385894,
"url": "/v2/tenants/20016/integration/ticket-server/visitors/mediaFiles/010b99ec-ba54-4062-b6cf-a20737ae782e56ysMDI05pyfLWxjbi5wcHR4",
"fileName": "第024期-lcn.pptx"
}
}

参数说明:

名称类型说明
status String 接口响应状态
entity 附件信息
附件信息
uuid String 附件ID
contentType String 附件类型
contentLength String 附件大小
url String 附件地址
fileName String 附件名称

访客提交工单

访客提交工单接口。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/20016/integration-ticket/visitors/ticket' \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \
  --header 'Content-Type: application/json' \
  --data-raw '{
"title": "标题222334",
"content": "描述222334",
"visitor_phone": "13662124786",
"visitor_email": "8122334@qq.com",
"visitor_nickname": "称呼222334",
"attachments": [
{
"name": "message-center-server服务未升级组件.png",
"file_type": "image/png",
"size": 970870,
"url": "http://sandbox.kefu.easemob.com//v2/tenants/27886/integration/ticket-server/visitors/mediaFiles/c5154e5e-09c4-476c-a2f6-f6a1ca42eaa1bWVzc2FnZS1jZW50ZXItc2VydmVy5pyN5Yqh5pyq5Y2H57qn57uE5Lu2LnBuZw==",
"uuid": "c5154e5e-09c4-476c-a2f6-f6a1ca42eaa1bWVzc2FnZS1jZW50ZXItc2VydmVy5pyN5Yqh5pyq5Y2H57qn57uE5Lu2LnBuZw=="
}
],
"form_values": [
{
"field_id": "2c17ad7b-c808-4850-94e7-d39ecf743d7e",
"field_value": "篮球"
},
{
"field_id": "e7d32c88-22e0-4ffd-95df-741e628ada8e",
"field_value": "女"
},
{
"field_id": "ceb2ca78-6118-42de-9e21-23baf366dba1",
"field_value": "22"
},
{
"field_id": "030eb800-00f4-4ff0-96b1-01edb15d0016",
"field_value": "级联选项1/级联选项1-1",
"item_ids": "6b550cfd-74b6-405c-aadf-c82989f4b52e_09d44dab-196a-4529-9c8b-1c92f7152037"
}
],
"form_id": "6cf63d66-5f0a-4a53-acb4-e46998227342"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
titleStringY标题
contentStringY内容
visitor_phoneStringY访客手机号
visitor_emailStringY访客邮箱
visitor_nicknameStringY访客昵称
attachmentsStringN附件信息
form_idStringN表单ID
form_valuesStringN表单自定义字段信息
附件信息
nameString附件名,对应上传附件接口里的fileName字段
file_typeString对应上传附件接口里的contentType字段
sizeString对应上传附件接口里的contentLength字段
urlString对应上传附件接口里的url字段
uuidString对应上传附件接口里的uuid字段
自定义表单字段
field_idString字段ID
file_typeString填写内容
item_idsString对于级联字段设置的层级id

Response示例:

{
"status": "OK",
"entity": {
"id": "75eb5d2e-3235-431d-b716-5b634736cf5b",
"tenant_id": 200161,
"created": "2020-09-16T07:42:46Z",
"updated": "2020-09-16T07:42:46Z",
"title": "标题222334",
"code": "A0000004",
"visitor_user_id": "64022b77-166d-4a68-bc37-fdb146a07dfa",
"status_id": "ff22d6d8-3da5-4ec2-8920-aa645b332c5a",
"source": "API",
"creator_id": "64022b77-166d-4a68-bc37-fdb146a07dfa",
"creator_type": "C",
"content": "描述222334",
"form_id": "6cf63d66-5f0a-4a53-acb4-e46998227342",
"satisfaction_score": 0,
"quality_score": 0,
"operator_id": "64022b77-166d-4a68-bc37-fdb146a07dfa",
"operator_type": "C",
"form_values": [
{
"id": "196fc01c-650d-4b3d-9755-e2221541155e",
"tenant_id": 200161,
"created": "2020-09-16T07:42:46Z",
"updated": "2020-09-16T07:42:46Z",
"field_id": "2c17ad7b-c808-4850-94e7-d39ecf743d7e",
"field_value": "篮球"
},
{
"id": "d774aed5-6dc8-469d-ba30-287ebe99faaa",
"tenant_id": 200161,
"created": "2020-09-16T07:42:46Z",
"updated": "2020-09-16T07:42:46Z",
"field_id": "030eb800-00f4-4ff0-96b1-01edb15d0016",
"field_value": "级联选项1/级联选项1-1",
"item_ids": "6b550cfd-74b6-405c-aadf-c82989f4b52e_09d44dab-196a-4529-9c8b-1c92f7152037"
},
{
"id": "611bfc78-b3a0-468a-80c7-89cf4c6b8d41",
"tenant_id": 200161,
"created": "2020-09-16T07:42:46Z",
"updated": "2020-09-16T07:42:46Z",
"field_id": "ceb2ca78-6118-42de-9e21-23baf366dba1",
"field_value": "22"
},
{
"id": "6c51017a-de6e-426b-a4b8-038befc6a936",
"tenant_id": 200161,
"created": "2020-09-16T07:42:46Z",
"updated": "2020-09-16T07:42:46Z",
"field_id": "e7d32c88-22e0-4ffd-95df-741e628ada8e",
"field_value": "女"
}
],
"is_read": 0
}
}

参数说明:

名称类型说明
status String 接口响应状态
entity 工单信息
工单信息
id String 工单id
tenant_id String 租户id
created String 创建时间
updated String 修改时间
title String 工单标题
code String 工单编号
visitor_user_id String 访客ID
status_id String 工单状态ID
source String 固定传值“API”
creator_id String 创建者ID
creator_type String 创建者类型(S、C)STAFF(“S”), CUSTOMER(“C”)
content String 工单内容
form_id String 表单ID
satisfaction_score String 满意度评分
quality_score String 质检评分
operator_id String 质检员ID
operator_type String 质检员类型
form_values String List<FormValue>,表单自定义字段内容
is_read String 工单已读未读功能
FormValue
id String 工单和字段关联ID
tenant_id String 租户id
created String 创建时间
updated String 修改时间
field_id String 字段ID
field_value String 字段对应的填写的内容

访客回复工单

访客回复工单接口。

Curl示例:

curl --request GET \
  --url 'http://kefu.easemob.com/api/platform/tenants/20016/integration-ticket/visitors/{ticketId}/comments' \
  --header 'Kefu-Token:a7f3d2bcb62721a3c67b8f567acfd553' \
  -d '{
  "body": "<p>aaaappppiiii</p>",
  "format": "html",
  "attachments": [
    {
      "contentType": "image/png",
      "contentLength": 239008,
      "url": "https://sandbox.kefu.easemob.com/v2/tenants/29676/integration/ticket-server/visitors/mediaFiles/afec47f4-659d-4dd9-9406-1e07bc7ca9415raI5oGvLnBuZw==",
      "name": "消息.png"
    }
  ],
  "visitor_email": "qu@api.com"
}'

参数说明:

名称类型是否非空(Y:是;N:否)说明
Kefu-Token String Y调用接口的accessToken
tenantIdintY租户ID
ticketIdStringY工单ID
bodyStringY回复内容
formatStringY文本格式
visitor_emailStringY访客邮箱
attachmentsN附件
附件信息
contentTypeString类型
contentLengthString附件大小
urlString附件地址
nameString附件名称

Response示例:

{
    "status": "OK",
    "entity": {
        "id": "01237efe-6d43-4092-afb3-49efbf22b9ef",
        "tenant_id": 601,
        "created": "2021-01-11T14:49:28Z",
        "updated": "2021-01-11T14:49:28Z",
        "ticket_id": "e863ba5e-6e54-429c-9674-7e5a43cf495c",
        "visitor_user_id": "8fdfca59-9e4b-466c-84a7-06f3cd0ce942",
        "body": "<p>aaaappppiiii</p>",
        "format": "html",
        "is_public": true,
        "attachments": [
            {
                "id": "c54109e1-98fe-4f62-a00f-8e4394f9b669",
                "tenant_id": 601,
                "url": "https://sandbox.kefu.easemob.com/v2/tenants/29676/integration/ticket-server/visitors/mediaFiles/afec47f4-659d-4dd9-9406-1e07bc7ca9415raI5oGvLnBuZw==",
                "right_attachment": false
            }
        ],
        "public_response_type": "EMAIL"
    }
}

参数说明:

名称类型说明
status String 接口响应状态
entity 回复信息
idString评论ID
tenantIdString租户ID
createdString评论添加时间
updatedString评论修改事件
ticket_idString工单id
visitor_user_idString访客ID
bodyString回复内容
formatString文本格式
is_publicString是否公开回复
attachments附件
附件信息
idString类型
tenant_idString附件大小
urlString附件地址
right_attachmentString
public_response_typeString回复渠道

错误码说明

错误码错误信息注释
API_001param is invalid,please check your param is correct!参数传递错误
API_002token is invalidtoken不正确
API_003tenantId is incorrect,please confirm that the tenant ID belongs to you租户ID错误
API_004clientId or secretId is incorrectclientId或者secretId不正确
API_020Request body contains more than 10 visitor usernames.请求访客绑定关系的数量不能多于10个
API_101create agent user is failed创建坐席失败
API_102agent nicename must not empty!坐席昵称不能为空
API_103agent user already exist坐席已经存在
API_104agent user not exist,please check username is correct坐席不存在
API_105agent user not belong your tenant,please check username and tenantId is correct坐席和租户不匹配
API_106roleId must not empty角色ID不能为空
API_107api add role is failed,please check roleId is valid添加角色失败
API_108password must be not empty and length greater 7.密码不能为空且大于7位
API_109Can not remove only amdin不能删除唯一的管理员
API_110Can not remove agent,The agent has processing servicesession.由于该坐席有会话未关闭,该坐席不能删除
API_111page index must be more than 0.分页索引必须大于0
API_112page size must be less than 50.分页每页的容量不能大于50
API_113state must be Online or Busy or Leave or Other or Offline or Hidden or Logout.请求状态不正确
API_400api request failed服务间调用请求错误
API_117tenant without ticket function租户没有开通工单功能
API_118tenant without yuncentercall function租户没有开通云呼功能

不同格式消息结构

新消息对应的报文格式

1.文本:txt 报文:

{

"eventId": "91a007c0-1215-11ec-90a5-a10326678cd1",
"timestamp": 1631264438855,
"event": "ServiceSessionMessageEvent",
"payload": {
  "message": {
    "id": "a06529e8-4b31-4042-a738-af2d1296b6cb",
    "service_session_id": "54eeacc4-6946-4b80-bd8e-f0a4426211f8",
    "msg_id_for_ack": "997f6f43-e11f-4898-a21f-4f643a6dfb18",
    "create_at": 1631264438793,
    "from": {
      "id": "2735acf5-a003-42f9-8ada-fdcc6581ee09",
      "name": "webim-visitor-8MQTGP9E4VEEGHEWBFXQ",
      "type": "Visitor"
    },
    "to": {
      "id": "f6a9ae57-6bd8-4ba5-9478-10027d6143a2",
      "name": "宋晓伟",
      "type": "Agent"
    },
    "origin_type": "webim",
    "channel": {
      "id": 23457,
      "name": "关联2",
      "type": "easemob"
    },
    "body": {
      "msg": "会尽快",
      "type": "txt"
    },
    "ext": {
      
    }
  }
}

}

2.cmd

{

"eventId": "51dfa130-121b-11ec-8511-fb6f37820f89",
"timestamp": 1631266908881,
"event": "ServiceSessionMessageEvent",
"payload": {
  "message": {
    "id": "f7bc1803-1d3c-4346-b46d-a6a1f58e39af",
    "service_session_id": "6baa6363-6770-4110-b319-4a2a6b14e02e",
    "msg_id_for_ack": NULL,
    "create_at": 1631266908814"from": {
      "id": "_2",
      "name": "关联设置调度员",
      "type": "Scheduler"
    },
    "to": {
      "id": "2735acf5-a003-42f9-8ada-fdcc6581ee09",
      "name": "webim-visitor-8MQTGP9E4VEEGHEWBFXQ",
      "type": "Visitor"
    },
    "origin_type": "webim",
    "channel": {
      "id": 23457,
      "type": "easemob"
    },
    "body": {
      "action": "ServiceSessionOpenedEvent",
      "type": "cmd"
    },
    "ext": {
      
    }
  }
}

}

3.图片:img {

"eventId": "73c94200-1217-11ec-90ce-e186d8435957",
"timestamp": 1631265247817,
"event": "ServiceSessionMessageEvent",
"payload": {
	"message": {
		"id": "aff765d2-f7b5-443a-939c-718446cf70a2",
		"service_session_id": "3dea8e64-1f94-4ecd-aaab-daae8161b4a5",
		"msg_id_for_ack": "fbc6ded2-62ba-4731-8d0b-65f8d3b074b0",
		"create_at": 1631265247718,
		"from": {
			"id": "2735acf5-a003-42f9-8ada-fdcc6581ee09",
			"name": "webim-visitor-8MQTGP9E4VEEGHEWBFXQ",
			"type": "Visitor"
		},
		"to": {
			"id": "",
			"name": "",
			"type": "Agent"
		},
		"origin_type": "webim",
		"channel": {
			"id": 23457,
			"name": "关联2",
			"type": "easemob"
		},
		"body": {
			"url": "/v1/Tenant/29676/MediaFiles/bf086bfe-2bb0-4b28-874e-dab6d09753c55YiG5biD5byP6ZSB6Zeu6aKYLnBuZw==",
			"filename": "分布式锁问题.png",
			"type": "img"
		},
		"ext": {}
	}
}

} 4.文件 file {

"eventId": "15980750-1219-11ec-abcd-4112b9a39f21",
"timestamp": 1631265948754,
"event": "ServiceSessionMessageEvent",
"payload": {
	"message": {
		"id": "c710292d-87c0-4d1a-ab11-4eb0af7c62f3",
		"service_session_id": "7f76bdbd-cc65-4e04-a8b8-14c8b7139525",
		"msg_id_for_ack": "",
		"create_at": 1631265948677,
		"from": {
			"id": "c6e5df54-ce63-4c8c-8a1d-c1fac4feecc3",
			"name": "webim-visitor-9BM6XB77QTE2R7Y7R6VH",
			"type": "Visitor"
		},
		"to": {
			"id": "8215d830-d998-4f54-9d66-eefabcaa36da",
			"name": "客服机器人-小鹤",
			"type": "Robot"
		},
		"origin_type": "webim",
		"channel": {
			"id": 23700,
			"name": "快速创建的关联",
			"type": "easemob"
		},
		"body": {
			"url": "/v1/Tenant/29762/MediaFiles/dd9372b3-958f-4295-9d90-b78bd6e25d6256uW5bGP6KeG6aKRLm1wNA==",
			"secret": "FUNXqhIZEeyHRyM6cNo2pkf8p1g18YHIIVtPfkHst5LV8hUv",
			"filename": "竖屏视频.mp4",
			"type": "file",
			"file_length": 0
		},
		"ext": {}
	}
}

}

5.视频 video {

"eventId": "05f38310-1219-11ec-9d15-f9ee668587e3",
"timestamp": 1631265922519,
"event": "ServiceSessionMessageEvent",
"payload": {
	"message": {
		"id": "11050e01-0ff9-4953-a3c6-3d513ad1bda7",
		"service_session_id": "7f76bdbd-cc65-4e04-a8b8-14c8b7139525",
		"msg_id_for_ack": "",
		"create_at": 1631265922427,
		"from": {
			"id": "c6e5df54-ce63-4c8c-8a1d-c1fac4feecc3",
			"name": "webim-visitor-9BM6XB77QTE2R7Y7R6VH",
			"type": "Visitor"
		},
		"to": {
			"id": "8215d830-d998-4f54-9d66-eefabcaa36da",
			"name": "客服机器人-小鹤",
			"type": "Robot"
		},
		"origin_type": "webim",
		"channel": {
			"id": 23700,
			"name": "快速创建的关联",
			"type": "easemob"
		},
		"body": {
			"url": "/v1/Tenant/29762/MediaFiles/d97c5f88-8ac3-49d0-91ad-49cd7a66801daGFzYXNkLm1wNA==",
			"secret": "BZt4ChIZEeyaUT88YVfVmi4oeK9hT0_UXefA6R87K8NgHxDG",
			"filename": "hasasd.mp4",
			"size": {
				"width": 0,
				"height": 0
			},
			"length": 0,
			"type": "video",
			"file_length": 0
		},
		"ext": {}
	}
}

位置:loc {

"eventId": "80bb8fd0-121d-11ec-87e8-d927c5568258",
"timestamp": 1631267846567,
"event ": "ServiceSessionMessageEvent ",
"payload": {
	"message": {
		"id": "42e2e99c-ab2d-430e-b91a-db5607328ed3",
		"service_session_id": "776d6be3-cf1a-47d3-aad9-79f5d3288107",
		"msg_id_for_ack": "a739f0f352c046748826f16c12ef20af",
		"create_at": 1631267846444,
		"from": {
			"id": "f604a463-e27b-43d1-9273-16927ea1987d",
			"name": "3bfbbc20cae9432c9753fc36a96b937334792",
			"type": "Visitor"
		},
		"to": {
			"id": "43d92e7f-f6a0-420e-8868-693ccc8afa6d",
			"name": "fs",
			"type": "Robot"
		},
		"origin_type": "app",
		"channel": {
			"id": 97244,
			"name": "快速创建的关联111",
			"type": "easemob"
		},
		"body": {
			"addr": "IDP教育(海淀分公司)",
			"lat": "39.96616243929114",
			"lng": "116.32302823756933",
			"type": "loc"
		},
		"ext": {}
	}
}

}

语音:audio {

"eventId": "78448230-121d-11ec-969a-83b2be719b1c",
"timestamp": 1631267832367,
"event": "ServiceSessionMessageEvent",
"payload": {
	"message": {
		"id": "b7a3ce9f-0672-4b84-948a-5224504e3e0c",
		"service_session_id": "776d6be3-cf1a-47d3-aad9-79f5d3288107",
		"msg_id_for_ack": "e0da0acff549417cb5b6d3e9801e577f",
		"create_at": 1631267832242,
		"from": {
			"id": "f604a463-e27b-43d1-9273-16927ea1987d",
			"name": "3bfbbc20cae9432c9753fc36a96b937334792",
			"type": "Visitor"
		},
		"to": {
			"id": "43d92e7f-f6a0-420e-8868-693ccc8afa6d",
			"name": "fs",
			"type": "Robot"
		},
		"origin_type": "app",
		"channel": {
			"id": 97244,
			"name": "快速创建的关联111",
			"type": "easemob"
		},
		"body": {
			"url": "/v1/Tenant/2112/MediaFiles/eb3c9468-e3b5-4421-b1de-39aa493f9104YXVkaW8=",
			"secret": "eAMMahIdEeyeb8sE833GrNu3csSD9_RsgID97l0uvwrCCQtd",
			"filename": "audio",
			"length": 1,
			"type": "audio"
		},
		"ext": {}
	}
}

}