自定义事件推送
环信客服云在使用过程中会生成会话、访客、客服相关的事件,如会话创建、接起、转接、结束,添加/删除访客标签,访客信息变更,新建/修改/删除坐席,坐席状态变更等。
可以通过自定义事件推送功能,将需要的事件以回调方式自动推送到您的服务器(如CRM系统),用于数据存储,或基于这些事件做进一步处理。
自定义事件推送为标准版增值服务,旗舰版基础功能。如需开通,请提供租户ID并联系环信商务经理。
应用场景
会话、访客、客服相关的这些事件可用于多种应用场景,举例如下:
- 获取“会话结束”事件,并通过“会话标签”筛选出需要额外关注的会话,为其创建工单,进一步跟进。参考:工单系统对接。
- 获取“新建坐席”、“删除坐席”、“坐席信息变更”事件,并将坐席信息同步至员工管理系统,保证数据一致性。
- 获取“会话创建”、“会话接起”、“待接入会话结束”等事件,并通过事件的时间戳,计算客户的排队时长。
业务流程
CRM系统对接后的业务流程示例:
- 访客发起会话咨询,客服使用客服云(CEC)接待访客。
- 会话结束后,CEC服务器生成事件,并将事件推送给中继服务器。
- 中继服务器提取事件(如会话结束事件),并根据事件内容,向CRM系统创建销售线索等。
设置方法
推送自定义事件至第三方服务器:
- 开通“自定义事件推送”功能。
- 进入“设置 > 自定义事件推送”页面,点击“创建事件推送”。
- 填写自定义事件名称、接收事件的服务器地址,勾选需要推送的事件,并保存。
自定义事件
当前支持以下事件的推送:
会话结束
事件名称:ServiceSessionClosedEvent
触发条件:坐席/管理员手动结束会话、会话超时自动结束
消息内容示例:
{
"eventId": "ca81ade0-6dc5-11e6-9c13-dfa1eed70626", //事件ID
"timestamp": 1472460726612, //时间戳
"event": "ServiceSessionClosedEvent", //事件类型
"payload": {
"serviceSession": {
"id": "4fe1b496-90ac-4412-8f40-0f6a13cbfc4b", //会话ID
"state": "Terminal", //会话状态
"origin_type": "webim", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"timestamp": {
"create": 1472139263000, //会话创建时间
"start": 1472139269000, //会话接起时间
"stop": 1472460695000 //会话结束时间
},
"channel": { //关联
"id": 3104, //关联ID
"name": "快速创建的关联", //关联名称
"type": "easemob" //关联类型,easemob代表环信IM
},
"visitor": {
"id": "a6527ed1-e3f4-4537-aeef-ae35199e3765", //系统内部访客ID
"name": "webim-visitor-RY7KQK99XVGXBE3JKCHM", //访客ID,显示在资料的ID字段
"channel_user": { //访客所属关联信息
"app_name": "sandbox",
"channel_type": "easemob",
"im_id": "webim-visitor-RY7KQK99XVGXBE3JKCHM", //环信IM的环信ID
"org_name": "sipsoft"
}
},
"agent": {
"id": "b58b99c1-cd3b-44d9-9821-20fb6a0f2f49", //坐席ID
"name": "Admin", //坐席昵称
"type": "Agent" //坐席类型,机器人、普通坐席或管理员
},
"agent_queue": {
"id": 2112, //技能组ID
"name": "集体组" //技能组名称
},
"summary_category": [ //会话标签,数组,包含所有的标签ID
{
"id": 23976,
"name": "测试4-4"
}
],
"comment": "", //会话备注
"enquiry":{
"score":3, //满意度评分
"comment":"" //满意度评价详情
}
}
}
}
新消息
事件名称:ServiceSessionMessageEvent
触发条件:会话中出现新消息,包括访客消息、坐席消息、系统消息、命令消息
文本消息内容示例:
{
"eventId": "3a7e82a0-aa60-11e5-8544-5111ba4b872e", //事件ID
"timestamp": 1450976598050, //时间戳
"event": "ServiceSessionMessageEvent", //事件名称
"payload": {
"message": {
"id": "dad14e23-4566-4ca6-b10e-fceeb59c42c2", //消息ID
"service_session_id": "4e27dd5e-683d-4664-a0db-bb8457ec7101", //对应的会话ID
"from": {
"id": "27f74a74-5139-4f8c-b65f-15129e7808a8", //发送方ID(可以是坐席或者访客)
"name": "Admin", //发送方昵称
"type": "Agent" //发送方类型,坐席、访客等
},
"origin_type": "app", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"channel": {
"id": 21, //关联ID
"type": "easemob" //关联类型
},
"body": {
"type": "txt", //消息类型:文本消息
"msg": "asdf" //消息内容
}
}
}
}
图片消息内容示例:
{
"eventId": "bc4a6120-aa68-11e5-b3c3-dd9f501463d3", //事件ID
"timestamp": 1450980251761, //时间戳
"event": "ServiceSessionMessageEvent", //事件名称
"payload": {
"message": {
"id": "dc5004d7-39ce-4a03-bca0-af2c16b269d6", //消息ID
"service_session_id": "4e27dd5e-683d-4664-a0db-bb8457ec7101", //对应的会话ID
"from": {
"id": "2cb00d04-60f3-48a4-93b8-caf15b22a262", //发送方ID
"name": "fa38294841604ac89ba2815689f8f636", //发送方昵称
"type": "Visitor" //发送方类型,坐席、访客等
},
"origin_type": "app", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"channel": {
"id": 21, //关联ID
"name": "yaaa", //关联名称
"type": "easemob" //关联类型
},
"body": {
"type": "img", //消息类型:图片
"url": "/v1/Tenant/5631/MediaFiles/df56bebd-433c-4b0e-aab9-1684fb75999f", //图片下载地址
"secret": "u9X0eqpoEeW-Hw1NajGLHchLw_cjQA0WifvU7Lid7UsaLafh", //文件上传成功后返回的secret
"filename": "image.jpg", //文件名
"size": { //图片尺寸
"width": 2448, //图片宽度
"height": 3264 //图片高度
}
}
}
}
}
创建坐席
事件名称:AgentUserCreationEvent
触发条件:管理员在“管理员模式 > 成员管理 > 客服”页面创建坐席
消息内容示例:
{
"eventId": "cfb76910-a9fa-11e5-844c-37fa6bbad3ec", //事件ID
"timestamp": 1450933062687, //时间戳
"event": "AgentUserCreationEvent", //事件名称
"payload": {
"agent": {
"id": "614f3fb7-d757-4894-ba17-90a7c1488a59", //坐席ID
"username":"a@qq.com", //坐席登录邮箱地址
"nickname":"agent1", //坐席昵称
"name":"aaaa", //坐席真实姓名
"roles":["admin","agent"], //坐席角色,值为["agent"](普通坐席)、["admin","agent"](管理员)
"business_id":"11111", //坐席工号
"phone":"13311111111", //坐席电话号码
"created_at":1436805675000, //坐席创建时间
"updated_at":1436805675000 //坐席信息更新时间,因是创建事件,和创建时间一致
}
}
}
坐席状态变更
客服和管理员的登录状态分为五种:空闲(online)、忙碌(busy)、离开(leave)、隐身(hidden)、离线(offline),并且,客服和管理员可以切换自己的空闲/忙碌/离开/隐身状态。关于登录状态的描述,见在线状态。
事件名称:AgentUserStateChangedEvent
触发条件:坐席/管理员修改自己的在线状态
消息内容示例:
{
"eventId": "45114db0-d639-11e5-91c0-a11acb243a77", //事件ID
"timestamp": 1455797716755, //时间戳
"event": "AgentUserStateChangedEvent", //事件名称
"payload": {
"agent": {
"id": "28d0a4aa-bf19-4724-ab9d-3b74afed34a8", //坐席ID
"nickname": "Admin", //坐席昵称
"username": "licx@easemob.com" //坐席登录邮箱地址
},
"status": "Online", //变更后的在线状态
"stateChangeTime": 1455797716491 //坐席状态变更时间
}
}
坐席登出
事件名称:AgentUserLogoutEvent
触发条件:坐席/管理员点击“退出”按钮,退出登录
消息内容示例:
{
"eventId": "a9928560-d639-11e5-8447-854851e278ee", //事件ID
"timestamp": 1455797885117, //时间戳
"event": "AgentUserLogoutEvent", //事件名称
"payload": {
"agent": {
"id": "28d0a4aa-bf19-4724-ab9d-3b74afed34a8", //坐席ID
"nickname": "Admin", //坐席昵称
"username": "licx@easemob.com" //坐席登录邮箱地址
},
"logoutTime": 1455797885109 //坐席登出时间
}
}
删除坐席
事件名称:AgentUserDeletedEvent
触发条件:管理员在“管理员模式 > 成员管理 > 客服”页面删除坐席
消息内容示例:
{
"eventId": "07ffc670-ce74-11e6-a4aa-e9370bc22534", //事件ID
"timestamp": 1483090934322, //时间戳
"event": "AgentUserDeletedEvent", //事件名称
"payload": {
"agent": {
"id": "4b4f0f36-8286-4ccd-8e99-50b33cfdf958", //坐席ID
"username": "713test10@qq.com", //坐席登录邮箱地址
"nickname": "10", //坐席昵称
"name": "", //坐席真实姓名
"roles": [ //坐席角色,值为["agent"](普通坐席)、["agent","admin"](管理员)
"agent"
],
"phone": "", //坐席电话号码
"created_at": 1483090749000, //坐席创建时间
"updated_at": 1483090749000 //坐席信息更新时间
}
}
}
添加访客标签
事件名称:VisitorTagAddedEvent
触发条件:会话进行中、结束后,坐席/管理员为访客添加访客标签
消息内容示例:
{
"eventId": "9f727ee0-07b7-11e7-b77f-3b3c6fac2bb4", //事件ID
"timestamp": 1489387089477, //时间戳
"event": "VisitorTagAddedEvent", //事件名称
"payload": {
"visitorUserTag": {
"visitorUserId": "2ad4af98-903a-4050-9cea-2d5807c85002", //访客ID
"userTagId": 5596, //访客标签ID
"tag": {
"tagName": "普通客户", //访客标签名称
"created_at": 1436805675000 //访客标签创建时间
}
}
}
}
删除访客标签
事件名称:VisitorTagRemovedEvent
触发条件:会话进行中、结束后,坐席/管理员删除访客标签
消息内容示例:
{
"eventId": "a7364210-07b7-11e7-9a61-dbd5753351ee", //事件ID
"timestamp": 1489387102520, //时间戳
"event": "VisitorTagRemovedEvent", //事件名称
"payload": {
"visitorUserTag": {
"visitorUserId": "2ad4af98-903a-4050-9cea-2d5807c85002", //访客ID
"userTagId": 5596, //访客标签ID
"tag": {
"tagName": "普通客户", //访客标签名称
"created_at": 1436805675000 //访客标签创建时间
}
}
}
}
访客信息变更
事件名称:VisitorUserChangeEvent
触发条件:会话进行中、结束后,坐席/管理员修改“资料”页签的访客信息
消息内容示例:
{
"eventId": "b9c1e0b0-07b7-11e7-8ab4-53b659cd1343", //事件ID
"timestamp": 1489387133611, //时间戳
"event": "VisitorUserChangeEvent", //事件名称
"payload": {
"visitor": {
"id": "2ad4af98-903a-4050-9cea-2d5807c85002", //系统内部访客ID
"username": "webim-visitor-EM3GEFC7TBQVRXYM6GGC", //访客ID
"nickname": "Leoli", //访客昵称
"name": "Leoli", //访客真实姓名
"roles": [ //访客身份
"visitor"
],
"gendar": 0, //访客性别,0=未知,1=男,2=女
"created_at": 1488884778000, //访客创建时间
"updated_at": 1489387133493 //访客信息更新时间
}
}
}
坐席信息变更
事件名称:AgentUserChangeEvent
触发条件:坐席/管理员修改个人信息,管理员修改其他坐席的信息
消息内容示例:
{
"eventId": "d0a31dd0-07b7-11e7-b1a7-eb03c0f01476", //事件ID
"timestamp": 1489387172031, //时间戳
"event": "AgentUserChangeEvent", //事件名称
"payload": {
"agent": { //变更后的坐席信息
"id": "eb524dc0-be91-47ac-b6e6-10d013d7d72b", //坐席ID
"username": "713test4@qq.com", //坐席登录邮箱地址
"nickname": "Leoli", //坐席昵称
"name": "leoli", //坐席真实姓名
"roles": [ //坐席角色,值为["agent"](普通坐席)、["agent","admin"](管理员)
"admin",
"agent"
],
"phone": "18612389889", //坐席电话号码
"business_id": "1001", //坐席工号
"created_at": 1453900968000, //坐席创建时间
"updated_at": 1489128601000 //坐席信息更新时间
},
"old_agent": { //变更前的坐席信息
"id": "eb524dc0-be91-47ac-b6e6-10d013d7d72b", //坐席ID
"username": "713test4@qq.com", //坐席登录邮箱地址
"nickname": "Leoli", //坐席昵称
"name": "", //坐席真实姓名
"roles": [ //坐席角色,值为["agent"](普通坐席)、["agent","admin"](管理员)
"admin",
"agent"
],
"phone": "", //坐席电话号码
"created_at": 1453900968000, //坐席创建时间
"updated_at": 1489128601000 //坐席信息更新时间
}
}
}
会话创建
事件名称:ServiceSessionCreatedEvent
触发条件:会话创建。呼入:访客发送第一条消息;呼出:客服点击“回呼”按钮
消息内容示例:
{
"eventId": "07da4280-6c74-11e7-ba25-29a88e1d64f3", //事件ID
"timestamp": 1500463126206, //时间戳
"event": "ServiceSessionCreatedEvent", //事件名称
"payload": {
"serviceSession": {
"id": "d93d1e6c-7bce-4f2e-97e7-40d3c0427d95", //会话ID
"state": "Wait", //会话状态
"origin_type": "webim", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"from_agent_callback": false, //是否为坐席回呼
"timestamp": {
"create": 1500463126000 //会话创建时间
},
"visitor": {
"id": "e3243090-848a-44fb-babd-f0c3a561d31f",//系统内部访客ID
"name": "webim-visitor-8WCFW7M7YEGEF2EJCYCP" //访客ID
},
"channel": {
"id": 10625, //关联ID
"type": "easemob" //关联类型
},
"agent_queue": {
"id": 35018 //技能组ID
}
}
}
}
会话接起
事件名称:ServiceSessionOpenedEvent
触发条件:会话由机器人接起、会话由客服接起(包括会话转接技能组后,技能组内的客服接起会话;不包括会话直接转接客服后,由客服接起会话的情况)
消息内容示例:
{
"eventId": "381b7860-6c74-11e7-805a-c112ad1e2ce6", //事件ID
"timestamp": 1500463207157, //时间戳
"event": "ServiceSessionOpenedEvent", //事件名称
"payload": {
"serviceSession": {
"id": "d93d1e6c-7bce-4f2e-97e7-40d3c0427d95", //会话ID
"state": "Processing", //会话状态
"origin_type": "webim", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"timestamp": {
"create": 1500463126000, //会话创建时间
"start": 1500463207000 //会话接起时间
},
"visitor": {
"id": "e3243090-848a-44fb-babd-f0c3a561d31f",//系统内部访客ID
"name": "webim-visitor-8WCFW7M7YEGEF2EJCYCP" //访客ID
},
"channel": {
"id": 10625, //关联ID
"type": "easemob" //关联类型
},
"agent_queue": {
"id": 6767 //技能组ID
}
}
}
}
会话转接
事件名称:ServiceSessionTransferedEvent
触发条件:机器人转人工(机器人将会话转接技能组)、客服/管理员将进行中会话转接其他客服、客服/管理员将进行中会话转接技能组,不包括管理员将待接入或历史会话转接客服或技能组
消息内容示例:
{
"eventId": "c3bad5c0-a1ba-11e7-a05d-4db7a46cd15c", //事件ID
"timestamp": 1506320917962, //时间戳
"event": "ServiceSessionTransferedEvent", //事件名称
"payload": {
"serviceSession": {
"id": "562785f2-aed6-4420-bac5-fb1d2bd82f0e", //会话ID
"state": "Wait", //会话状态
"origin_type": "webim", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"transfered_to_agent_queue": true, //会话是否转接技能组
"transfered_from": {
"from_agent_user_id": "946f116d-2e09-410c-9015-4b480edc9939", //转接方坐席ID
"from_agent_user_nice_name": "Admin", //坐席昵称
"from_agent_user_type": "Agent" //坐席类型
},
"transfered_to": { //被转接到的坐席或技能组信息
"to_queue_id": 39005 //接受方,技能组ID;或,坐席ID和昵称
},
"timestamp": {
"create": 1506320908000, //会话创建时间
"start": 1506320910000 //会话接起时间
},
"visitor": {
"id": "678c9d67-f2f1-498f-a458-6f3fbf223a64", //系统内部访客ID
"name": "webim-visitor-RXFC9WR4KRG8FMK98PCY" //访客ID
},
"channel": {
"id": 10625, //关联ID
"type": "easemob" //关联类型
},
"agent_queue": {
"id": 39005 //会话所属技能组ID
}
}
}
}
待接入会话结束
事件名称:ServiceSessionAbortedEvent
触发条件:待接入会话超时自动结束、管理员手动关闭待接入会话
消息内容示例:
{
"eventId": "4642aae0-a1bb-11e7-bc37-fbf67fe4d942", //事件ID
"timestamp": 1506321136945, //时间戳
"event": "ServiceSessionAbortedEvent", //事件名称
"payload": {
"serviceSession": {
"id": "562785f2-aed6-4420-bac5-fb1d2bd82f0e", //会话ID
"state": "Abort", //会话状态
"origin_type": "webim", //渠道类型,值为app(App渠道)、webim(网页)、weixin(微信)、weibo(微博)、phone(呼叫中心)、rest(rest API渠道)
"abort_actor": { //会话结束方信息
"user_id": "946f116d-2e09-410c-9015-4b480edc9939", //坐席ID
"user_name": "260553619@qq.com", //坐席登录邮箱地址
"nice_name": "Admin" //坐席昵称
},
"timestamp": {
"create": 1506320908000, //会话创建时间
"start": 1506321136000, //会话接起时间
"stop": 1506321136000 //会话结束时间
},
"channel": {
"id": 10625, //关联ID
"type": "easemob" //关联类型
},
"visitor": {
"id": "678c9d67-f2f1-498f-a458-6f3fbf223a64", //系统内部访客ID
"name": "webim-visitor-RXFC9WR4KRG8FMK98PCY" //访客ID
},
"agent_queue": {
"id": 39005 //会话所属技能组ID
}
}
}
}
视频结束
事件名称:RtcMediaClosedEvent
触发条件:坐席结束视频通话
消息内容示例:
{
"eventId": "96791f40-8234-11e7-8522-47871522633a",
"timestamp": 1502854804131,
"event": "RtcMediaClosedEvent",
"payload": {
"mediaEntity": { //视频结束事件的详细信息
"session_id": "60e9b15b-8221-4249-ac87-8b53d00cfb43", //视频通话的会话ID
"agent_id": "955eee17-4835-4e23-8b19-7e292d12f0e2", //视频通话中的客服ID
"visitor":{
"id":"dfe7a557-aa77-443c-b2ec-7a8f93f90f22", //视频通话中的访客ID
"nickname":"webim-visitor-YEPWGBB4TCEYVGCPCJMP", //视频通话中的访客昵称
},
"url":{
"agent":"https://kefu-media-files.oss-cn-beijing.aliyuncs.com/MS_X133600273164668928C2632M2__CH_VIDEO_1_C2632__VIDEO.webm?Expires=9223372036854775&OSSAccessKeyId=LTAI3pBwoxnmCWUw&Signature=VtkixMtyf9S4jPhLeCvyheEhc4k%3D",
//视频通话中客服端的录像文件
"visitor":"https://kefu-media-files.oss-cn-beijing.aliyuncs.com/MS_X133600273164668928C2632M4__CH_VIDEO_3_C2632__VIDEO.webm?Expires=9223372036854775&OSSAccessKeyId=LTAI3pBwoxnmCWUw&Signature=gFfY11vIakftWpOmm8TdlYzkuAg%3D",
//视频通话中访客端的录像文件
},
"create_at": 1502854803252 //视频结束事件的发送时间
}
}
}
满意度评价邀请
事件名称:ServiceSessionEnquiryInviteEvent
触发条件:客服端发送满意度评价邀请。
消息内容示例:
{
"eventId": "aa652780-c43b-11e7-91bc-21dd9f56e616",
"timestamp": 1535988791731,
"event": "ServiceSessionEnquiryInviteEvent",
"payload": {
"enquiryInvite": {
"actor": { // 发起满意度评价邀请的操作人
"id": "6384ec4b-96ed-4f88-92a9-6f085201e30a", // 坐席ID
"type": "Agent" // 坐席类型
},
"invite_at": 1535988791731, // 满意度评价邀请的发送时间
"serviceSession": {
"id": "95cb44bb-a00b-46bb-9392-8c46f2087aa1" // 会话ID
},
"visitor": {
"id": "4d12f5b5-e4b6-48d2-a99d-d1f5a8b7a0ac", // 访客ID
"nickname": "webim-visitor-T4QF9QM96G77KQ4Y837Q"// 访客昵称
},
"agent": {
"id": "6384ec4b-96ed-4f88-92a9-6f085201e30a", // 坐席ID
"nickname": "agentUserNickName", // 坐席昵称
"type": "Agent" // 坐席类型
},
"inviteId": 61626663, // 满意度评价邀请ID
"enquiryShareEnable": false // “满意度评分共享给会话中的所有客服”开关状态,true: 打开;false:关闭
}
}
}
访客完成满意度评价
事件名称:ServiceSessionEnquiryEvent
触发条件:访客完成对会话的满意度评价
消息内容示例:
{
"eventId": "aa652780-c43b-11e7-91bc-21dd9f56e616",
"timestamp": 1510114620029,
"event": "ServiceSessionEnquiryEvent",
"payload": {
"enquiry": { //满意度评价详情
"score": "3", //评分详情
"comment": "评价详情", //评价详情
"tags": [
"评价标签1",
"评价标签2"
], //评价标签,其设置在"满意度评价邀请设置->评分选项设置"中实现
"create_at": 1510114619000, //访客评价的时间
"serviceSession": { //会话简介
"id": "3b6f76e7-747f-46d9-9cf0-a989f4ee8914", //会话ID
"state": "Processing" //会话状态,大致会有“Processiong”和“Terminal”两种状态
},
"visitor": { //访客简介
"id": "4d12f5b5-e4b6-48d2-a99d-d1f5a8b7a0ac", //访客ID
"nickname": "webim-visitor-T4QF9QM96G77KQ4Y837Q" //访客昵称
},
"agent": { //客服简介
"id": "6384ec4b-96ed-4f88-92a9-6f085201e30a", //客服ID
"nickname": "1011", //客服昵称
"type": "Agent" //客服类型,一般分为"Agent"和“Robot”两种
}
}
}
}