需求:识别客户是谁
通过企业微信添加了客户的微信后,在单聊页面,能够识别出当前微信对应的客户是谁。
也就是说,当一个企业的客户,通过微信添加了员工的企业微信后,希望能够通过客户的微信,直接对应到CRM的客户账号,完成客户身份的识别,打通数据壁垒,为进一步操作客户的业务数据提供支撑。
建立客户微信和CRM客户账号的映射
新添加的客户,首次和员工聊天时,自建应用还不知道正在聊天的客户到底是谁。想要知道正在聊天的微信是哪个客户,需要让客户微信和CRM系统中的客户账号形成对应关系。
建立映射的方式是:员工将小程序发给客户,引导客户登录或授权。
客户登录或授权时,建立映射关系的逻辑如下:
- 客户登录小程序,小程序后台获取到openid和unionid;建立了用户unionid和客户账号的映射,存在数据库中。
- 小程序后台向企业微信自建应用后台发送消息,参数包含openid和unionid;企业微信自建应用后台通过参数openid和unionid查询客户的外部联系人ID(external_userid);建立unionid和external_userid的映射,并存到数据库。
- 企业微信自建应用后台,向客户的跟进人员工发送消息,提醒员工,客户的微信账号已经和CRM系统中的客户账号完成了绑定。
客户信息的映射建立完成之后,自建应用的就知道当前微信是哪位客户了,并以此为基础继续提供服务。
自建应用识别客户身份
当客户已经通过小程序登录完成数据绑定后,企业微信自建应用可以通过如下方法识别出客户身份:
- 在聊天页面,自建应用的页面调用JS接口【获取当前外部联系人ID(external_userid )】,然后将 external_userid 传给自建应用后台;
- 自建应用后台通过 external_userid 找到 unionid,然后通过 unionid 找到客户账号信息。
此时自建应用就识别出了客户身份,可以操作客户在CRM中的数据了。
数据库中,客户信息的映射关系
数据库中,需要存储客户各种信息之间的映射关系。
存储的映射关系如下:
- external_userid → unionid
- unionid → 客户账号信息(客户ID、手机号码等)
小程序登录
小程序登录,参考官方文档:小程序登录
unionid转换为external_userid
官方文档链接:unionid转换为external_userid
UnionID机制说明
如果开发者拥有多个移动应用、网站应用、和公众账号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
官方链接:“UnionID关联”功能介绍及运营建议
参数说明
- external_userid:来自企业微信,外部联系人ID;
- unionid:来自微信开放平台,用户唯一标识;
openid能够获取unionid吗?
微信开放平台的官方回复,让开发者自己存映射关系,官方没有提供接口。
小程序后台调用微信服务端【登录凭证校验】接口时,能够同时获取到openid和unionid。