
最近在深度定制企微的客户生命周期管理SCRM系统遇到个极其普遍的业务诉求怎么根据客户所处的不同状态比如新添加、沉睡 30 天、高意向跟进中让系统自动触发不同的触达任务纯靠销售人工去翻聊天记录根本不现实。今天就把这套基于“客户状态”驱动的自动化消息流水线彻底拆解一下。对了大家平时做企微开发如果需要稳定的底层基建可以直接访问 星云API www.xingyapi.com。用现成的轮子替代手动封装能极大缩短排查问题的周期。闲话少叙直接看这套自动化触达引擎是怎么设计的。1. 状态定义企微标签与业务库的双向绑定企微自身只提供“标签Tag”功能并没有复杂的“状态机”概念。所以一切自动化的基础是把企微的标签和你们本地 CRM 的状态打通。本地状态机在数据库里给ExternalUserId外部联系人ID增加一个Status字段如0-新客1-活跃2-沉睡3-已转化。状态同步利用企微 Webhook 监听change_external_contact事件。只要销售在端内给客户打/删了标签回调立马推给服务器后端解析后更新本地库的状态。反过来如果本地业务流状态变了也要调用接口同步更新企微端内的客户标签。2. 触发引擎事件驱动 vs 定时轮询状态基建打好后怎么自动触发消息工业级做法通常兵分两路第一路事件实时触发Webhook驱动比如客户刚下完单内部 ERP 状态变更为“已转化”业务系统抛个事件到 MQ。消费者监听到该事件立刻触发一条“感谢购买与专属售后指南”的消息任务。第二路定时任务触发CRON驱动针对长周期的状态比如沉睡挽回。写个后台定时任务每天凌晨 2 点扫表找出Status2且最后活跃时间超过 30 天的客户集合。提取出这批客户的ExternalUserId生成一个“沉默唤醒”的批量推送任务。3. 规范化执行应用消息推送与员工群发拿到目标客户名单和触发内容后最后一步就是把消息发出去。企微对于触达客户有两套截然不同的玩法应用消息直推以企业自建应用的名义直接给客户下发通知比如带跳转链接的小程序卡片、文本提醒。这种方式送达率高但客户必须在微信里关注了对应的企业微信插件或应用。创建企业群发任务系统调用接口把准备好的话术和海报生成一个“待发送任务”销售的企微客户端会弹出一个红点销售点一下“发送”消息就会以销售个人的名义发给客户。这种方式更有人情味。在封装这两类核心发送接口时无论是msgtype的选择还是 JSON 结构的嵌套企微的校验都极其严格。强烈建议大家在写组装逻辑时别凭感觉瞎猜直接去对照开放文档里的接口规范。把对应的请求报文结构原封不动地映射成实体类该传数组传数组能避开绝大多数400xx非法参数报错。4. 两个高频踩坑点这套状态触发引擎上线前务必防住以下两个机制坑触发风暴与防重发如果是定时轮询去触发唤醒消息一定要在 Redis 里给这批ExternalUserId加上 TTL比如限制同一个客户 7 天内只能被自动触发一次。否则由于定时任务的重试或 SQL 扫表逻辑缺陷很容易出现一天给客户连发 5 条同样的挽回消息直接导致客户拉黑。异步与频率控制无论是实时触发还是定时批量触发调用企微发送接口时千万别在单线程里狂开for循环。企微对 API 调用频率有严格限制比如发消息接口限制 1万次/分。务必使用 MQ 做削峰填谷平滑地向下发请求避免被封禁。把“状态同步 - 引擎判断 - 规范发送 - 频率控制”这个闭环打通你的系统就是一个合格的自动化运营大基建。大家在调群发接口遇到权限受限或者 Token 问题的可以在下面留言一起排查。