Appearance
在客服链接里带客户资料
你的客户在小程序里点「联系客服」,进来的却只有一个微信昵称——他是不是会员、什么等级、在哪个门店买的,客服一概不知道,只能张嘴问。
在客服链接后面挂一小段业务参数,客户进来时这些信息就一起带过来了,写进他的客户名片:

开始之前
- 已经建好微信客服渠道,见微信客服概述
- 你能改客服入口所在的代码或后台配置
- 要传的字段已经在工作台建好了,见下一节
先在工作台建字段
没建过的字段传过来会被直接丢掉,一个字都不留。 所以顺序必然是先建字段、再传,反过来就是白传。
在工作台的 设置 > 客户字段 里把要传的字段建好,完整做法见自定义字段。
建字段时有个 字段标识,就是参数里用的那个英文名,它要和你系统里的叫法对得上。这里差一个字母,资料就录不进去,而且这条路没有任何报错,你只能靠自己验证发现。字段标识建好之后不能再改,动手前先和技术同事对一遍。
有四个字段不用建,直接传就行:name(姓名)、phone(手机号)、email(邮箱)、avatar(头像)。
参数怎么拼
形态是 字段标识=值,多个之间用 & 连接,整串做一次 encodeURIComponent:
member_id=A1234&vip_level=gold字段标识的格式要求:小写字母开头,只能用小写字母、数字和下划线,最长 64 个字符。member_id、vip_level、store_no 都可以,VipLevel、vip-level 不行。
值里有中文或空格不用额外处理,照上面编码一次即可,合从这边会自动解开。
小程序里这样调
js
wx.openCustomerServiceChat({
extInfo: {
url: `${客服链接}&scene_param=${encodeURIComponent('member_id=A1234&vip_level=gold')}`
},
corpId: '<企业 ID>',
success() {}
})客服链接和企业 ID 从工作台的 小程序 页复制,完整接入步骤见在小程序中接入。
其他入口
公众号菜单、支付凭证、搜一搜这些是把客服链接填进对方后台,同样在链接末尾追加 &scene_param=... 即可。
不过那些后台是否允许链接带额外参数、会不会把它截断,由对方决定。填进去之后先按自己验证扫一次码确认。
客服链接本身一个字都不能改
只能在链接末尾追加 &scene_param=。改动链接里原有的任何字符,或者把参数复制到另一条客服链接上使用,微信都不会回调——客服直接收不到这位客户的消息。这是微信平台的规定,不是合从能放宽的。
128 字节怎么花
scene_param 的内容编码前不能超过 128 字节,这是微信平台定的。
超了是整段丢失,而且没有任何提示
超过上限时,客户照常进入对话,但参数一个字都不会传过来。微信不报错,合从这边也收不到任何痕迹,工作台里因此也不会有「资料没录进来」的提示。
长度要在你自己的代码里先算好。
算的是字节不是字数,一个汉字算 3 个:
| 参数 | 字节数 |
|---|---|
member_id=A1234 | 15 |
member_id=A1234&vip_level=gold | 30 |
member_id=A1234&vip_level=钻石会员 | 38 |
{"member_id":"A1234","vip_level":"gold"} | 41 |
几条用得上的经验:
- 实际装得下 3 到 4 个字段,挑客服最需要的传,不要把整个用户档案搬过来
- 值用英文代号比中文省:
gold是 4 字节,「钻石会员」是 12 字节 - 不要用 JSON,同样的内容比
键=值多花三分之一以上,在 128 字节的额度下不划算 - 头像网址一般 60 到 150 字节,单独一个就可能把额度吃光。要传头像就别传别的,或者先换成短链
什么时候会带进来
客户的微信聊天列表里还没有这个客服会话时,他点链接、扫码或在小程序里点按钮进来,参数才会带过来。
已经和这个客服账号聊过的老客户再进来,参数不会更新。这对正常使用影响不大:他第一次进来时资料就写进名片了,会一直保留。
对话进行中也改不了——参数在客户进入会话的那一刻就定死了。
客服那边看到什么
资料写进客户名片,同时在对话里留下一条记录:消息流里一条灰字,右栏 对话动态 里能看到这次录了哪些字段、来源是入口链接参数。
有两条规矩值得先知道:
- 以你传来的值为准。客服手动填过的姓名、手机号,客户再带着新值进来会被覆盖,因为你自己的系统才是这些信息的源头。不希望被覆盖的字段就别传。
- 这次没带不等于清空。某个字段这次没传,名片上原来的值原样保留,不会被抹掉。
同样的资料再带一次不会重复提示,客户来回点几次客服,对话里也不会刷屏。
自己验证有没有生效
这条路是单向的:客户点进来,你那边收不到任何回执。字段标识拼错一个字母,你不会收到报错,只会觉得功能没生效。对话动态就是你唯一的调试渠道。
测试前先在微信里删掉这个客服会话
微信聊天列表里已经有这个客服会话时,再点链接进去不会传参数,也不会有任何报错。每次改完参数重新测,都要先长按会话 → 删除该聊天,再重新扫码或点链接。
步骤:
- 改完代码后,扫码或点链接进入客服对话。
- 发一句话。 不说话不会建立对话,也就没有地方显示结果,参数会先存着。扫码之后隔太久才开口的,那次带的参数就不再使用,自测时扫完码当场发一句话即可。
- 在工作台打开这通对话,右栏切到 对话动态,看 流转轨迹 里的最后一条。
三种结果:
全部录入成功,就是本页开头那张图的样子:消息流里一条灰字,右栏列出录进去的字段。
有字段没录进去,右栏逐条列出是哪个字段、什么原因。

一个都没录进去,消息流里显示「客户资料未能录入(配置有误)」。

失败原因只有两种,对照着改即可:
- 未在「客户字段」中创建或未启用:这个字段标识工作台里没有,多半是拼错了,也可能是字段被停用了
- 格式不正确:这一段不符合
字段标识=值的写法,或者字段标识用了大写字母、连字符这类不允许的字符。界面上会把你拼的那一段原样显示出来
有错误时每次都会提示,方便你反复改、反复测。
建议从一个短字段开始(比如 member_id=test),确认收得到,再逐个往上加。这样撞到 128 字节上限时,你能一眼看出是加哪个字段之后没的。
入口参数不做身份识别
同一个人在你的网站和微信客服里各咨询一次,就算两边传的是同一个会员号,在工作台里也是两位客户,聊天记录不会合并。
这是出于账号安全的考虑:入口参数是明文挂在链接上的,客户自己看得见、也改得动。如果拿它去反查「这个会员在别处的记录」,任何人改一下别人的会员号点进来,就能看到别人的聊天内容。所以这串参数只用于展示资料,不作为客户身份识别的依据。
出于同样的原因,不要传身份证号、银行卡号、密码这类信息。