我花了大概两天时间,把 OpenClaw 接入了 WhatsApp。
接入之前,我每天要手动盯着好几个窗口:客户消息、工单系统、定时提醒、团队通知,全靠人肉切换。接入之后,这些事情大部分都自动跑了。这篇文章记录完整的配置过程,以及我觉得真正改变工作方式的几个场景。
为什么选择 OpenClaw + WhatsApp 这个组合?
先说背景。我需要一个能统一处理消息的中枢——既能接收 WhatsApp 上的客户消息,又能主动推送通知,还要跟内部的工单系统打通。调研了几个方案之后,最终选了 OpenClaw 作为核心处理层,原因有三:
- OpenClaw 自带 Webhook 支持,可以直接接收和发送 HTTP 请求,不需要额外开发
- 配合 n8n 做中转,可以把各种服务串联起来,不写代码也能配置
- 通过 Twilio 对接 WhatsApp Business API,消息收发稳定,支持模板消息和自由文本
整体架构是:WhatsApp → Twilio → n8n → OpenClaw Webhook → 业务逻辑处理 → 回传结果。
接入架构总览
在开始配置之前,先理清楚各个组件的分工:
- WhatsApp Business API:消息的入口和出口,负责与用户的实际通信
- Twilio:作为 WhatsApp Business API 的托管平台,处理号码注册、消息收发和模板审核
- n8n:自动化中转层,负责把 Twilio 的 Webhook 事件路由到 OpenClaw,以及把 OpenClaw 的结果推回 WhatsApp
- OpenClaw Webhook:核心处理层,接收结构化数据,触发业务逻辑
第一步:配置 Twilio + WhatsApp Business API
1.1 注册 Twilio 账号并申请 WhatsApp 号码
- 前往 twilio.com 注册账号,完成手机号验证。
- 进入控制台,找到 Messaging → Senders → WhatsApp Senders。
- 按照引导提交 WhatsApp Business 号码申请,需要提供企业 Facebook Business Manager 账号。
- 审核通过后,你会得到一个可用于发送 WhatsApp 消息的号码。
💡 测试阶段可以使用 Twilio 提供的 Sandbox 号码,无需等待审核,适合先把流程跑通再切换正式号码。
1.2 配置 Twilio Webhook 地址
- 在 Twilio 控制台进入 Messaging → Settings → WhatsApp Sandbox Settings(测试阶段)或正式号码的配置页。
- 在 When a message comes in 填入你的 n8n Webhook 地址(下一步配置后填入)。
- HTTP 方法选择 POST。
第二步:在 n8n 中搭建自动化流程
2.1 创建接收 Twilio 消息的 Webhook 节点
- 打开 n8n,新建一个 Workflow。
- 添加 Webhook 节点,方法选 POST,路径自定义(例如
/whatsapp-in)。 - 复制生成的 Webhook URL,填回 Twilio 控制台的配置项里。
2.2 解析消息内容并路由
Twilio 发过来的 POST 数据包含发送者号码、消息正文等字段。在 n8n 里用 Function 节点提取关键字段:
// 提取发送者和消息内容
const from = $json["body"]["From"];
const body = $json["body"]["Body"];
return [{ json: { from, body } }];
2.3 转发到 OpenClaw Webhook
- 添加 HTTP Request 节点。
- Method 选 POST,URL 填入 OpenClaw 的 Webhook 地址。
- Body 传入解析后的消息数据(JSON 格式)。
2.4 把 OpenClaw 的处理结果回传 WhatsApp
- OpenClaw 处理完成后,通过另一个 Webhook 回调 n8n。
- n8n 再调用 Twilio 的发送消息 API,把结果推给对应的 WhatsApp 用户。
第三步:配置 OpenClaw Webhook
- 在 OpenClaw 后台进入 设置 → Webhook(或对应的集成配置页面)。
- 新增一条 Webhook 规则,填入触发条件和接收 URL。
- 开启签名验证,把生成的 Secret 同步填入 n8n 的 HTTP Request 节点 Header 里(
X-OpenClaw-Signature),防止伪造请求。 - 保存并用 n8n 发一条测试消息,确认 OpenClaw 能正常接收到数据。
四个真正改变工作方式的场景
场景一:收到消息自动回复
客户发来常见问题(价格、营业时间、订单状态),OpenClaw 匹配关键词后自动生成回复,通过 n8n 推回 WhatsApp。95% 的重复性问题不再需要人工介入,响应时间从平均 20 分钟缩短到几秒钟。
场景二:客户和工单通知
工单系统产生新事件时(新工单、状态变更、超时预警),OpenClaw Webhook 触发,n8n 自动把结构化通知推送到指定 WhatsApp 号码或群组。再也不用刷新工单系统的邮件通知,重要事件第一时间到手机。
场景三:定时报告和提醒
在 n8n 里配置 Cron 节点,每天早上 9 点自动拉取 OpenClaw 的数据汇总,生成日报通过 WhatsApp 推给相关人员。开会前不用再临时整理数据,数据直接送到人。
场景四:内部团队协同
团队内部的任务分配、审批提醒、截止日期预警,全部通过 WhatsApp 群组推送。减少了大量”你看到了吗”的确认消息,信息传递链路变短了一半。
踩过的坑,帮你提前避开
坑一:Twilio Sandbox 号码有白名单限制
测试阶段只有加入白名单的号码才能收到消息。正式上线前务必切换到已审核的正式号码,否则用户会直接收不到推送。
坑二:WhatsApp 模板消息需要提前审核
主动推送给用户的消息(非用户先发起的对话)必须使用经过 Meta 审核的模板消息,审核周期约 1~3 个工作日。自由文本只能在用户主动发起的 24 小时会话窗口内使用。
坑三:n8n 的 Webhook 节点默认只监听一次
测试时注意:n8n 免费版的 Webhook 节点在”测试模式”下触发一次后会自动停止监听。正式运行需要激活(Activate)整个 Workflow,切换到生产模式。
坑四:OpenClaw Webhook 签名验证格式
签名验证使用 HMAC-SHA256,需要把请求 Body 的原始字符串(不能经过再次序列化)和 Secret 一起做哈希。在 n8n 里直接传 JSON 对象会导致签名不匹配,需要显式转成字符串再传。
总结
整套方案跑通之后,最大的感受是:信息不再需要我去找,它自己找到我。
OpenClaw + WhatsApp Business API + Twilio + n8n 这个组合,对于中小团队来说性价比很高——Twilio 按量计费,n8n 可以自部署免费使用,OpenClaw 的 Webhook 配置也不复杂。
如果你也在考虑把业务系统和 WhatsApp 打通,这套方案值得参考。有问题欢迎评论区交流,我会持续更新踩坑记录。