自定义事件推送

环信客户互动云在使用过程中会生成会话、访客、客服相关的事件,如会话创建、接起、转接、结束,添加/删除访客标签,访客信息变更,新建/修改/删除坐席,坐席状态变更等。

可以通过自定义事件推送功能,将需要的事件以回调方式自动推送到您的服务器(如CRM系统),用于数据存储,或基于这些事件做进一步处理。

自定义事件推送为标准版/旗舰版增值服务。如需开通,请提供租户ID并联系环信商务经理。

应用场景

会话、访客、客服相关的这些事件可用于多种应用场景,举例如下:

  • 获取“会话结束”事件,并通过“会话标签”筛选出需要额外关注的会话,为其创建工单,进一步跟进。参考:工单系统对接
  • 获取“新建坐席”、“删除坐席”、“坐席信息变更”事件,并将坐席信息同步至员工管理系统,保证数据一致性。
  • 获取“会话创建”、“会话接起”、“待接入会话结束”等事件,并通过事件的时间戳,计算客户的排队时长。

业务流程

CRM系统对接后的业务流程示例:

  1. 访客发起会话咨询,客服使用客户互动云(CEC)接待访客。
  2. 会话结束后,CEC服务器生成事件,并将事件推送给中继服务器。
  3. 中继服务器提取事件(如会话结束事件),并根据事件内容,向CRM系统创建销售线索等。

CRM系统对接

设置方法

推送自定义事件至第三方服务器:

  1. 开通“自定义事件推送”功能。
  2. 进入“设置 > 自定义事件推送”页面,点击“创建事件推送”。
  3. 填写自定义事件名称、接收事件的服务器地址,勾选需要推送的事件,并保存。

设置自定义事件推送

自定义事件

会话结束

事件名称: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",                       //渠道类型,webim为网页渠道
            "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", //访客昵称
                "channel_user": {                             //访客所属关联信息
                    "app_name": "sandbox", 
                    "channel_type": "easemob", 
                    "im_id": "webim-visitor-RY7KQK99XVGXBE3JKCHM", //访客的环信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": "",                                   //会话备注
            "enquriy":{                               
                "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",                              //渠道类型
            "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",                              //渠道类型
            "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",                          //渠道类型
            "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",                         //渠道类型
            "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",                                          //渠道类型
      "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
      },
      "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",                               //渠道类型
      "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                                 //视频结束事件的发送时间
        }
    }
}