尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

客户资料频繁更新怎么办?教你用接口自动同步客户信息

客户资料频繁更新怎么办?教你用接口自动同步客户信息 做企业微信客户运营的同学经常会遇到一个头疼的问题客户资料老是变。客户今天用的这个手机号下周换了。客户昨天还在高意向阶段今天突然说暂时不考虑了。上周加进来的客户备注写的是抖音渠道-王总这周销售一翻记录发现名字对不上、电话也对不上。客户资料不是静态的。它一直在变联系方式变、意向阶段变、标签变、负责员工变、订单状态变。如果全靠人工去改备注、填表格迟早会乱。更省事的做法是用接口把这些变更自动同步起来让企业微信里的客户信息和你的业务系统保持一致。企微里哪些客户信息可以同步企业微信开放了不少客户联系相关接口能拿到的客户信息比很多人想象的要多。基础信息包括客户的external_userid、昵称、头像、性别、类型微信用户还是企微用户。这些信息可以通过获取外部联系人详情接口拿到。添加信息包括客户是哪天加的、通过哪个员工加的、来源渠道是什么。比如客户是通过扫渠道活码加进来的来源里就会带上渠道标识。标签信息包括客户当前被打了哪些企业标签。标签本身就可以看作客户状态的一种描述高意向已成交待复购售后中这些标签本质上就是客户的动态属性。自定义字段信息是企微后来开放的客户自定义字段能力可以给客户附加更多结构化信息比如客户等级、行业、公司名称、备注手机号等。客户事件信息可以通过回调事件拿到。客户添加员工、客户删除员工、客户标签变更、客户字段变更企业微信都会推送事件通知你的服务端收到后就可以做对应的同步处理。自动同步的整体思路客户信息同步核心要解决两个方向的问题企微数据同步到业务系统业务系统数据同步到企微。先说企微到业务系统。企业微信侧发生变更时会通过回调事件通知你的服务端。比如客户添加了员工企微推送add_external_contact事件客户标签变了推送change_external_contact事件。你的系统收到事件后调接口拉取最新客户信息写入自己的数据库。再说业务系统到企微。CRM 里客户阶段变了、订单系统里客户成交了、客服系统里客户投诉处理完了这些变化也应该同步回企业微信。可以通过编辑标签、更新备注等方式把业务系统的状态写回企微。示例代码一监听客户变更事件并同步const express require(express); const axios require(axios); const app express(); app.use(express.json()); const CORP_ID 你的企业ID; const SECRET 你的应用Secret; const BASE_URL https://qyapi.weixin.qq.com/cgi-bin; // 获取 access_token建议做缓存这里简化处理 async function getAccessToken() { const res await axios.get(${BASE_URL}/gettoken, { params: { corpid: CORP_ID, corpsecret: SECRET } }); if (res.data.errcode ! 0) { throw new Error(获取 token 失败${res.data.errmsg}); } return res.data.access_token; } // 拉取客户最新信息 async function fetchCustomerDetail(token, externalUserid) { const res await axios.post( ${BASE_URL}/externalcontact/get, { external_userid: externalUserid }, { params: { access_token: token } } ); if (res.data.errcode ! 0) { throw new Error(获取客户详情失败${res.data.errmsg}); } return res.data.external_contact; } // 写入本地数据库这里用控制台模拟 async function saveToLocal(customerInfo) { console.log(同步客户信息到本地, { externalUserid: customerInfo.external_userid, name: customerInfo.name, avatar: customerInfo.avatar, type: customerInfo.type, gender: customerInfo.gender, updateTime: new Date().toISOString() }); } // 客户变更事件回调 app.post(/callback, async (req, res) { const { Event, ChangeType, ExternalUserID, UserID } req.body; // 只处理客户联系相关事件 if (Event ! change_external_contact) { return res.send(success); } console.log(收到事件${ChangeType}客户${ExternalUserID}员工${UserID}); try { const token await getAccessToken(); // 客户被删除时不需要拉取详情直接标记本地数据 if (ChangeType del_external_contact) { console.log(客户 ${ExternalUserID} 删除了员工 ${UserID}本地标记为已流失); return res.send(success); } // 其他事件添加、标签变更、字段变更等拉取最新客户信息 const customerInfo await fetchCustomerDetail(token, ExternalUserID); await saveToLocal(customerInfo); res.send(success); } catch (err) { console.error(同步失败, err.message); res.send(success); // 即使报错也要返回 success否则企微会重复推送 } }); app.listen(3000, () { console.log(回调服务已启动监听端口 3000); });示例代码二把业务系统数据写回企微const axios require(axios); const BASE_URL https://qyapi.weixin.qq.com/cgi-bin; // 标签映射表业务阶段 → 企微标签ID const stageTagMap { 线索: etXXXXXX01, 高意向: etXXXXXX02, 已报价: etXXXXXX03, 已成交: etXXXXXX04, 已流失: etXXXXXX05 }; // 根据业务阶段同步标签到企微 async function syncStageToWecom({ accessToken, userid, externalUserid, newStage, oldStage }) { const addTags []; const removeTags []; // 新阶段的标签要加上 if (stageTagMap[newStage]) { addTags.push(stageTagMap[newStage]); } // 旧阶段的标签要移除如果和新阶段不同 if (oldStage oldStage ! newStage stageTagMap[oldStage]) { removeTags.push(stageTagMap[oldStage]); } if (addTags.length 0 removeTags.length 0) { console.log(无需同步阶段未变化); return; } const res await axios.post( ${BASE_URL}/externalcontact/mark_tag, { userid, external_userid: externalUserid, add_tag: addTags, remove_tag: removeTags }, { params: { access_token: accessToken } } ); if (res.data.errcode ! 0) { throw new Error(标签同步失败${res.data.errmsg}); } console.log(客户阶段已同步${oldStage} → ${newStage}); } // 示例CRM 里客户从高意向变成已成交 syncStageToWecom({ accessToken: ACCESS_TOKEN, userid: zhangsan, externalUserid: woAJ2GCAAAd1NPGH001, newStage: 已成交, oldStage: 高意向 });这个例子里业务系统的客户阶段变化通过标签同步回了企微。销售在企微客户列表里看到的标签会自动从高意向变成已成交。同样的思路也可以用在其他字段上。比如 CRM 里更新了客户手机号可以通过修改客户备注信息接口把手机号写回企微的备注字段。客服系统里客户投诉等级升级了可以自动打上售后紧急标签。总结客户资料频繁更新不是问题问题是更新后没有及时同步到所有需要这些数据的系统里。用接口自动同步客户信息核心就两件事企微侧变更通过回调事件拉取最新数据写入业务系统业务系统变更通过接口把状态写回企微标签或备注刚开始可以先做实时事件同步和标签双向同步这两个功能。这两个跑通后客户在企微和业务系统里的状态就能保持一致。后面再接入全量比对、客户转移处理、字段冲突策略就能把客户资料管理从手动改备注升级成系统自动同步销售看到的数据永远是最新的。
返回列表