在企业微信二次开发里,客户连续发多条消息是很常见的情况。
如果系统只看当前这一条消息,很容易出现“上下文断掉”的问题。星云API在这类场景里,建议把客户的会话状态一起保存下来。
一、为什么要保存会话状态
比如客户先发:
我想查一下订单
接着又发:
订单号 20261020001
如果系统只处理第二条消息,就不知道这个订单号是做什么的。
所以需要记录上一轮会话状态,比如:
客户ID:xxx
当前业务:订单查询
当前状态:等待订单号
这样下一条消息进来后,就能继续往下处理。
二、收到新消息后怎么判断
建议每次收到消息时,先查询这个客户当前有没有未完成的会话。
流程可以这样:
收到消息
↓
查询客户当前会话状态
↓
有上下文 → 继续当前业务
无上下文 → 重新判断客户意图
具体消息接收和发送接口可以参考接口文档。
三、给每个业务设置状态
例如订单查询可以拆成:
等待订单号
→ 校验订单
→ 查询结果
→ 返回客户
→ 会话结束
如果客户中途换了问题,也可以重新识别业务,再切换到新的流程。
这种方式比单纯做关键词匹配更稳定,也更适合连续咨询场景。
四、会话不要一直保留
会话状态建议增加过期时间。
例如客户半小时都没有继续回复,就可以自动清空当前状态,避免下一次聊天还进入旧流程。
同时,如果业务已经完成,也应该立即结束当前会话。
总结
客户连续咨询时,核心不是“每条消息都单独判断”,而是:
识别客户
→ 读取上下文
→ 判断当前状态
→ 继续执行
→ 完成后清空状态
把会话状态管理好以后,订单查询、售后咨询、资料收集、自动客服这些场景都会自然很多。
星云API负责企业微信消息的接收和发送,业务系统再结合会话状态,就可以形成比较完整的连续处理逻辑。



