在企微私域生态中,能够自动回复“你好”的机器人只是玩具,真正具备商业价值的系统,必须能将客户的微信消息与企业内部的“订单流”、“查询大盘”以及“人工客服中台”深度咬合。
要将这几套完全独立的系统揉捏进一条毫秒级响应的流水线,并且不被早晚高峰的高并发冲垮,架构师通常会在最外层引入 星云API作为稳固的网关基座。通过底层基建接管繁重的报文加解密与通信重活后,我们将全部算力倾注于“意图路由 -> 业务穿透 -> 人机协作”的核心编排上。
以下是自动收发消息与多业务线联动的完整架构拆解:
1. 流量调度枢纽:把“聊天记录”转为“业务事件”
自动收发消息与业务联动的起点,是把毫无规律的聊天文本,转译为内部系统能听懂的“业务事件(Event)”。
极速接收与防重:底层网关瞬间获取免解密的明文 JSON,提取
MsgId放入 Redis 执行防重拦截,并将抓取到的三维坐标(群/单聊 ID、客户 ID、消息 ID)与文本推入 MQ。意图分发漏斗:消费者拉取消息后,通过意图引擎(正则探针 + 轻量级大模型)打上业务动作标签(Action)。
命中“查物流 SF123” -> 生成事件
Action = QUERY_ORDER。命中“修改收货地址” -> 生成事件
Action = UPDATE_ORDER。命中“转人工”或大模型连续 2 次无法解析 -> 生成事件
Action = TRANSFER_CS。
2. 订单与查询联动:防越权的底层系统穿透
当消息被定性为“订单查询”或“业务操作”时,流程进入全自动的系统穿透环节。
身份主键反查(鉴权):绝不能直接拿着企微的社交 ID 去查 ERP。系统利用上下文中的
FromUserName,穿透到内部的映射表中反查出该客户的真实 ERP 主键CustomerId,将其作为查询的底层凭证。命令总线与 RPC 熔断:通过
Action标签动态唤醒对应的业务处理器(如OrderQueryHandler)。带着合法的CustomerId与订单参数向核心 ERP 发起 RPC 调用。由于老旧 ERP 往往响应较慢,此处必须加挂严苛的超时熔断器(如 2 秒超时)。一旦 ERP 卡顿,立刻向客户回推“系统正在后台为您查询,请稍候”,绝不让查询业务的阻塞反向拖垮企微通信大盘。
3. 客服业务联动:基于 Redis 状态机的人机无缝接管
当客户的诉求过于复杂,或者主动触发了TRANSFER_CS事件时,系统必须立刻停止机器人的自动回复,将链路切换至人工客服中台。
会话状态反转:系统提取当前的
ExternalChatId与FromUserName,在 Redis 中修改该客户的会话状态锁(例如将session:state从BOT_MODE切换为HUMAN_MODE)。流量直接透传:一旦状态切换,该客户后续发来的所有消息,网关消费者拉取后将直接跳过意图解析与 ERP 查询引擎,直接推入人工客服系统的 WebSocket 队列。客服人员的 PC 屏幕上会瞬间弹窗,并自动带出该客户前置与机器人的聊天记录及自动查出的订单画像。
反向触达接口:人工客服在控制台敲下回复后,客服系统将文本推回调度中枢,由调度中枢调用企微的发送 API 发回给客户。客服结束后,清除 Redis 状态锁,机器人重新接管。
4. 结果回推联动:字典级规范的装配与下发
无论结果是来自底层 ERP 的订单物流卡片,还是人工客服敲下的一段话,最终都必须调用企微的发送接口,准确无误地落回客户的聊天窗口。
引用闭环(Quote Reply):提取在入口处封存的原始
MsgId,在组合自动回复下发时触发引用机制,在复杂的群聊或单聊中形成清晰的一对一上下文对应。严苛的对象装配:在组装包含订单详情、引用及 Markdown 排版的消息时,企微服务器对 JSON 层级结构的校验严苛至极。强烈建议研发团队在开发下发装配引擎时,必须严格对照 开发文档 中关于各类消息实体的数据字典。
一字不落地将官方数据规范映射为系统内的下发 DTO 类,完成严丝合缝的对象序列化。交由统一通道发起触达后,一条从“客户发问 -> 智能调度 -> 穿透 ERP 查单 -> 无缝转接人工 -> 规范结果回推”的全自动跨系统业务联动便彻底打通。