七鱼开发文档中心
总览服务端 APIWebiOSAndroid鸿蒙Uniapp微信小程序插件三方接入
客户管理CRM 对接

轻量 CRM 对接

Web、iOS、Android SDK 提交用户资料的方式。

轻量CRM对接

轻量 CRM 对接是指通过 Web / iOS / Android SDK 发起会话时,可以将访客的信息作为参数传递给网易七鱼系统。

Web SDK 调用

调用ysf('config')时,将包含用户信息的 JSON 传递给网易七鱼系统。

ysf('config', {
    "uid":"zhangsan",
    "data":JSON.stringify([
        {"key":"real_name", "value":"土豪"},
        {"key":"mobile_phone", "hidden":true, "value":"13800000000"},
        {"key":"email", "value":"13800000000@163.com"},
        {"index":0, "key":"account", "label":"账号", "value":"zhangsan" , "href":"http://example.domain/user/zhangsan"},
        {"index":1, "key":"sex", "label":"性别", "value":"先生"},
        {"index":5, "key":"reg_date", "label":"注册日期", "value":"2015-11-16"},
        {"index":6, "key":"last_login", "label":"上次登录时间", "value":"2015-12-22 15:38:54"},
        {"index":7, "key": "tags", "label": "标签", "value": "企业,vip" },
        {"index":8, "key": "leaderId", "value": "1001"}
    ])
});

**注意:**data字段的内容需使用JSON.stringify()进行序列化。为保持良好的兼容性,若要支持较低版本的浏览器(如IE8及更低版本)则需引入第三方JSON库,如 JSON3 (opens new window)。

iOS SDK 调用

创建一个QYUserInfo实例,将包含用户信息的 JSON 字符串填充到QYUserInfo.data。调用setUserInfo时将此QYUserInfo实例作为参数传递给网易七鱼 SDK。

QYUserInfo *userInfo = [[QYUserInfo alloc] init];
userInfo.userId = @"uid";
userInfo.data = @"[{\"key\":\"real_name\", \"value\":\"土豪\"},"
                  "{\"key\":\"mobile_phone\", \"hidden\":true, \"value\":\"13800000000\"},"
                  "{\"key\":\"email\", \"value\":\"13800000000@163.com\"},"
                  "{\"index\":0, \"key\":\"account\", \"label\":\"账号\", \"value\":\"zhangsan\", \"href\":\"http://example.domain/user/zhangsan\"},"
                  "{\"index\":1, \"key\":\"sex\", \"label\":\"性别\", \"value\":\"先生\"},"
                  "{\"index\":5, \"key\":\"reg_date\", \"label\":\"注册日期\", \"value\":\"2015-11-16\"},"
                  "{\"index\":6, \"key\":\"last_login\", \"label\":\"上次登录时间\", \"value\":\"2015-12-22 15:38:54\"},"
                  "{\"index\":7, \"key\":\"tags\", \"label\": \"标签\", \"value\": \"企业,vip\"},"
                  "{\"index\":8, \"key\":\"leaderId\", \"value\": \"1001\"}"]";
[[QYSDK sharedSDK] setUserInfo:userInfo];

Android SDK 调用

创建一个YSFUserInfo实例,将包含用户信息的 JSON 字符串填充到YSFUserInfo.data。调用Unicorn.setUserInfo()时将此YSFUserInfo实例作为参数传递给网易七鱼 SDK。

YSFUserInfo userInfo = new YSFUserInfo();
userInfo.userId = "uid";
userInfo.data = "[{\"key\":\"real_name\", \"value\":\"土豪\"},
                  {\"key\":\"mobile_phone\", \"hidden\":true, \"value\":\"13800000000\"},
                  {\"key\":\"email\", \"value\":\"13800000000@163.com\"},
                  {\"index\":0, \"key\":\"account\", \"label\":\"账号\", \"value\":\"zhangsan\" , \"href\":\"http://example.domain/user/zhangsan\"},
                  {\"index\":1, \"key\":\"sex\", \"label\":\"性别\", \"value\":\"先生\"},
                  {\"index\":5, \"key\":\"reg_date\", \"label\":\"注册日期\", \"value\":\"2015-11-16\"},
                  {\"index\":6, \"key\":\"last_login\", \"label\":\"上次登录时间\", \"value\":\"2015-12-22 15:38:54\"},
                  {\"index\":7, \"key\": \"tags\", \"label\": \"标签\", \"value\": \"企业,vip\" },
                  {\"index\":8, \"key\": \"leaderId\", \"value\": \"1001\" }]";
Unicorn.setUserInfo(userInfo);

参数说明

网易七鱼系统轻量对接中的参数,不论是 Web SDK、iOS SDK、还是 Android SDK,都由一个用户唯一性标识uid和一个表示用户信息的 JSON 数组data组成。

在 Web SDK 中uid和data都直接出现在 JSON 中。iOS SDK 和 Android SDK 中,各定义了一个保存用户信息的结构体:iOS 中为QYUserInfo,Android 中为YSFUserInfo。iOS SDK 中,QYUserInfo.userId成员为用户唯一性标识字符串,QYUserInfo.data成员为表示用户信息的 JSON 字符串。Android SDK 中,YSFUserInfo.userId成员为用户唯一性标识字符串,YSFUserInfo.data成员为表示用户信息的 JSON 字符串。

下文参数说明中的uid分别对应 Web SDK 中的 JSON 字段 uid、iOS SDK 中的QYUserInfo.userId、Android SDK 中的YSFUserInfo.userId;data分别对应 Web SDK 中的 JSON 字段 data、iOS SDK 中的QYUserInfo.data、Android SDK 中的YSFUserInfo.data。需要特别注意的是,UID长度不能超过64个字符。

参数类型必须说明
uidString是用户唯一性标识。
dataArray / String是用一个数组(或表示 JSON 数组的字符串),表示要显示在客服端的扩展信息。

其中data字段用一个数组(iOS / Android SDK 中是一个表示 JSON 数组的字符串)描述用户的详细信息,数组中每个元素代表一个数据项。数据项以<key, value>对的形式为基础,增加了额外的字段以控制显示样式。数据项定义如下:

字段类型必须说明
keyString是数据项的名称,用于区别不同的数据。其中real_name、mobile_phone、email为保留字段,分别对应客服工作台用户信息中的“姓名”、“手机”、“邮箱”这三项数据。保留关键字对应的数据项中,index、label属性将无效,其显示顺序及名称由网易七鱼系统指定。
valueMixed是该数据显示的值,类型不做限定,根据实际需要进行设定。
labelString是该项数据显示的名称。
indexInt否用于排序,显示数据时数据项按index值升序排列;不设定index的数据项将排在后面;index相同或未设定的数据项将按照其在 JSON 中出现的顺序排列。
hrefString否超链接地址。若指定该值,则该项数据将显示为超链接样式,点击后跳转到其值所指定的 URL 地址。
hiddenBoolean否表示是否隐藏对应的数据项,true为隐藏,false为不隐藏。若不指定,默认为false不隐藏。
isCustomFieldBoolean否是否属于自定义字段。如果是,则通过key尝试匹配自定义字段名称并更新值,目前只支持 文本、数字、时间(13位数字时间戳)、单选、多选(用 ### 分割选中值,其中###前后都有空格)。
typeString否更新方式,只支持key为tags下的操作,支持replace(覆盖)、update(更新))。默认为覆盖

注意: real_name、mobile_phone、email三个保留字段的特别说明:

  • 若使用保留字段,数据将对应显示在“姓名”、“手机”、“邮箱”的位置上,顺序、名称不能指定;
  • 若使用保留字段,“姓名”、“手机”、“邮箱”对应的数据将不可编辑,以传递的数据为准;在不使用保留字段的情况下,这三项内容以客服填写的为准,并且可以修改;
  • 其中mobile_phone、email两项可以通过hidden字段隐藏,real_name不可隐藏;
  • 如果既想通过轻量对接提供“姓名”、“手机”、“邮箱”这三项数据,又希望客服可以修改、维护这些信息,可以避开保留关键字,用不同的key来提供数据;这在访客改变了联系方式,但没有及时更新用户信息的情况下非常有用。

注意: tags字段说明:

  • key值为'tags'时,该行数据对应七鱼系统内的用户标签数据
  • type代表更新方式,只支持覆盖、更新两种方式,分别传值replace、update,默认为覆盖
  • value内为标签名,以逗号分隔(注意不带空格,英文逗号),传入时会与七鱼系统内标签信息进行比对,如果标签名一致,会将该用户标签属性更改为传入的标签属性。value如果为空值,则不做更改(不会将用户标签属性清空)。
  • 如果轻量crm和crm接口对接都有key为'tags'的数据,且二者值不同,将用接口数据覆盖轻量数据

注意: leaderId字段说明:

  • key值为'leaderId'时,该数据对应七鱼系统内的负责人数据
  • value值为该客户对应的负责人客服id,客服id可以使用openapi的客服考勤和质量报表查询,也可以在管理端会话流程-会话分配-自定义链接分配下方查询
  • 传入的负责人id不在客服工作台内显示(客服工作台会显示负责人用户名)
  • 负责人分配仅在开启手动分配开关时生效,如果开启自动分配,传入的负责人会被自动分配覆盖

注意: 提交的数据将根据预设的样式直接显示在网易七鱼页面相应的位置上。如果数据敏感、保密性要求高,应当在提交时就做脱敏处理。网易七鱼系统不会对数据做额外的处理。

这篇文档有帮助吗?

目录