员工离职客户要流失?用 EasyWeChat 完成企业微信客户继承的 4 个步骤 员工离职客户要流失用 EasyWeChat 完成企业微信客户继承的 4 个步骤【免费下载链接】easywechat 一个 PHP 微信 SDK项目地址: https://gitcode.com/gh_mirrors/ea/easywechatEasyWeChat 是一个 PHP 编写的微信生态 SDK覆盖公众号、小程序、企业微信、微信支付等模块。本文以「企业微信客户继承」为例面向 PHP 开发者说明如何把离职或转岗成员名下的客户、客户群移交给接替人避免人员变动后客户资源无人跟进。什么场景下你会用到它成员离职交接。销售或客服离职后其添加的外部联系人会进入「待分配」状态企业需要在有效期内把这些客户移交给其他成员否则客户联系关系将无法挽回。在职成员转岗。企业微信允许把在职成员的客户整体划转给另一个成员团队内部调整分工时同样走这套接口。客户群再分配。成员名下含有外部客户的群聊群主离职后群会失去主人需要批量把群主身份转给接替人。周期性巡检。有成员长期未处理交接、或 HR 需要审计「是否还有客户没分配完」时可以定期拉取待分配列表做检查。注意以上接口都依赖企业已开通「客户联系」功能且待分配客户列表存在处理时限具体以企业微信官方文档为准所以交接流程宜早不宜迟。快速上手1. 环境检查企业微信模块在 composer.json 中声明的运行要求是 PHP8.0.2并依赖curl、openssl、simplexml、fileinfo等扩展php -v php -m | grep -E curl|openssl|simplexml|fileinfo2. 安装依赖当前开发主线是 6.xcomposer require w7corp/easywechat:^6.17企业微信「客户继承」一组封装好的 APIexternal_contact模块保留在 5.x 版本中overtrue/wechat:~5.0下文核心功能拆解以 5.x 的写法为主如果你使用 6.x通用调用方式见 API 调用文档。3. 最小可运行示例先拿到「离职成员客户列表」确认配置和权限没问题?php // 5.x 写法 $config [ corp_id wxXXXX, secret 客户联系的 Secret, // 注意客户联系相关接口需用该功能的 Secret token xxx, aes_key xxx, ]; $app \EasyWeChat\Factory::work($config); $result $app-external_contact-getUnassigned(0, 100); var_dump($result[customer] ?? [], $result[is_last] ?? true);能返回customer数组说明配置、Secret 权限和网络都通了后面的继承操作只是换调用方法。核心功能拆解1. 拉取待交接客户列表原理企业微信把离职成员的客户统一挂到「待分配」池中接口按页返回。$pageId 0; $pageSize 1000; $result $app-external_contact-getUnassigned($pageId, $pageSize); // $result[customer] —— 本页客户列表含 external_userid、handover_userid 等字段 // $result[is_last] —— 是否最后一页注意点is_last为false时还要翻页page_id递增直到取完否则只会拿到第一页客户。2. 把客户分配给接替人原理指定「客户、原跟进人、接替人」三元组服务端完成关系移交并给客户端发送通知。$externalUserId woAJ2GCAAAXtWyujaWJHDDGi0mACH71w; // 客户 ID $handoverUserId zhangsan; // 原跟进人离职/转岗成员 $takeoverUserId lisi; // 接替人 $message 您好您的服务已调整后续将由我的同事继续为您服务。; $app-external_contact-transfer($externalUserId, $handoverUserId, $takeoverUserId, $message);注意点$message可以不传不传时企业微信使用默认文案批量处理时建议控制节奏避免触发接口频控频控细则以官方文档为准。3. 离职成员的群再分配原理把一批客户群的群主身份一次性转给接替人接口会返回没转成功的群。$chatIds [chatid1, chatid2]; $result $app-external_contact-transferGroupChat($chatIds, $takeoverUserId); // $result[failed_chat_list] —— 转移失败的群聊 ID注意点返回里有failed_chat_list务必检查并落库记录失败原因需要结合群状态人工判断不要假设全部成功。4. 查询接替结果原理客户接替是异步流程发起transfer之后要再查一次状态才算闭环。$result $app-external_contact-getTransferResult( $externalUserId, $handoverUserId, $takeoverUserId );注意点建议把「发起转移」和「查询结果」做成两步比如转移后延迟几分钟再轮询并在自己的系统里留一份转移记录方便审计和重试。以上四个接口含获取客户群列表、备注修改等周边能力的完整参数说明见仓库内 客户联系文档。如果你使用 6.x 版本external_contact模块没有内置需要用通用 Client 直接调端点模式如下端点路径与参数以企业微信官方文档为准$app new \EasyWeChat\Work\Application($config); $response $app-getClient()-postJson(/cgi-bin/externalcontact/transfer_customer, [ external_userid $externalUserId, handover_userid $handoverUserId, takeover_userid $takeoverUserId, ]); if ($response-isSuccessful()) { // $response[errcode] 0 }常见坑与排查返回errcode非 0。企业微信接口的业务成败要看errcode/errmsg字段而不是 HTTP 状态码。6.x 的响应对象提供了isSuccessful()/isFailed()帮助判断若想让请求失败时不自动抛异常可把配置里的http.throw设为false后自行处理。access_token 失效导致的偶发失败。SDK 的 HTTP 层会自动附带 access_token并内置了 token 过期后的重试机制见 AccessTokenAwareClient、重试客户端一般无需手动刷新仍偶发失败时可以再开启http.retry配置。权限类报错。客户联系相关接口要求使用「客户联系」功能的 Secret 获取 token——仓库文档里明确提示了标签类接口仅支持客户联系 Secret 调用见 external-contact.md。如果一直报权限错误先去企业微信管理后台确认应用是否开启了客户联系能力、Secret 用对了没有。批量交接中个别客户失败。单条失败不应中断整批流程捕获异常、记录external_userid和错误信息最后统一重试或人工处理重试策略可参考 client.md 中的自定义重试策略。其他疑难问题。仓库自带了排查文档 troubleshooting.md建议先查一遍再动手。进阶方向缓存与 access_token 共享多实例部署时如何统一管理 token见 cache.md。通用 API Client6.x 的预置参数withCorpId()之类、并行请求、自定义重试策略见 client.md。服务端回调接收企业微信推送的变更事件如客户关系变更见 server.md。日志接入 PSR-3 日志观察每次请求细节见 logging.md。6.x 企业微信模块概览见 work/index.md。适用范围与限制适合有 PHP 运行时、企业已开通「客户联系」功能、需要程序化批量交接客户的团队。不适合企业没有开通客户联系功能时这一组接口本身就不可用非 PHP 技术栈请参考企业微信官方多语言示例。版本差异external_contact等封装模块在 5.x 提供6.x 改为通用 Client 自行调用端点选型时注意版本具体接口字段、频控与时限等规则请以企业微信官方文档为最终依据。【免费下载链接】easywechat 一个 PHP 微信 SDK项目地址: https://gitcode.com/gh_mirrors/ea/easywechat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考