2026-10-03 · 原文发布日
n8n模板:能读语音和图片的WhatsApp AI前台
免费n8n模板:通过WhatsApp Cloud API接收客户消息,文字直接通过,语音经OpenRouter上的Gemini转写、图片由Claude描述并保留图注,统一存进n8n数据表。稍候片刻等客户发完连续消息后,把同一号码的内容合并交给带PostgreSQL对话记忆的Claude代理回复,可选联网搜索工具,长回复拆成最多三条WhatsApp消息发回。内置的是暖通公司示例提示词,可换成任意靠聊天接单答疑的业务。
原文要点
这是n8n模板库中的免费模板(ID 20359)。流程用WhatsApp Cloud API触发,按消息类型分流:文字直接通过,语音经OpenRouter上的Gemini转写,图片经OpenRouter上的Claude描述并保留图注,统一写入名为whatsapp inbox的n8n数据表。短暂等待后只让该号码最新一轮运行继续,合并该号码的缓存消息并清空,再交给带PostgreSQL对话记忆、可选SerpAPI搜索和计算器工具的Claude代理,回复拆成最多三条WhatsApp消息发回。内置提示词是暖通(HVAC)公司示例。
这次做成什么
照着本页在自己的n8n实例里搭起一个能收文字、语音、图片的WhatsApp AI前台,并用本站独立编写的宠物寄养店示例替换内置暖通提示词完成一次端到端自测。
准备什么
- 一个n8n实例(1.x,含LangChain节点与Data Table功能)
- Meta开发者账号及已开通WhatsApp Cloud API的测试号码
- OpenRouter、Anthropic、PostgreSQL(如Supabase)三份API凭据
- 可选:SerpAPI密钥(不用联网搜索可跳过)
具体怎么做
导入模板并建数据表
在n8n模板库打开workflow 20359点导入。然后新建一个Data Table,命名为whatsapp inbox,建两列:phone(string)和text(string)。如果你的表ID与模板不同,在写入/读取/清空三个数据表节点里改选你自己的表。
配置五组凭据
依次为节点挂凭据:WhatsApp触发与发送节点用Facebook Graph API的Header Auth;语音转写和图片描述的两个HTTP请求节点用OpenRouter的Header Auth密钥;代理的聊天模型节点用Anthropic凭据;Postgres Chat Memory节点填你的PostgreSQL连接;可选的SerpAPI工具节点填SerpAPI密钥。
接通Meta webhook
复制WhatsApp Trigger节点显示的webhook URL,到Meta开发者后台你的应用里把该URL填为回调地址并完成验证,订阅messages字段。确认发来的webhook元数据里能拿到phone_number_id,回复发送节点依赖它。
准备记忆表并替换业务提示词
在PostgreSQL里建whatsapp_chat_history表供对话记忆使用。把代理系统提示词里的暖通公司内容整段替换成本页材料中的宠物寄养店提示词(或你自己的业务版本)。
用合成消息自测
先用测试号码发一条文字,确认它被规范化写入whatsapp inbox;再连发两条文字验证等待与合并逻辑(只有最新一轮继续执行);最后发一条语音验证OpenRouter转写路径。检查回复是否被拆成不超过三条发回。
可直接复制的材料
本站编写的AI前台系统提示词(宠物寄养店示例)
本站独立编写的示例,替换模板内置的暖通公司提示词用;公司名与服务项请改成你的实际业务。
你是「安心宠物寄养」的WhatsApp前台助手。职责:
1. 用与客户相同的语言(默认中文)回答寄养价格、接送时间、疫苗要求、笼位与监控等问题。
2. 客户想预约时,收集:宠物种类、体重、寄养起止日期、是否需要接送,然后说你会请店员确认并回电。
3. 不知道答案的问题不要编造,回复「我帮你转给店员,稍后回复你」。
4. 每条回复控制在80字以内,语气亲切,不用表情符号堆砌。
5. 不要讨论与寄养无关的话题,礼貌地把话题拉回来。whatsapp inbox数据表结构
在n8n Data Table界面按此建两列即可;模板其他表ID请在对应节点里核对替换。
{
"tableName": "whatsapp inbox",
"columns": [
{"name": "phone", "type": "string"},
{"name": "text", "type": "string"}
]
}合并消息自测输入(合成)
本站虚构的测试号码与消息,模拟客户连发三条触发合并逻辑。
{
"phone": "8613800000000",
"messages": [
"你好,请问国庆能寄养猫吗",
"一只3公斤的英短",
"10月1日到10月6日"
]
}输入与输出示例
本站虚构演示,未真实调用模板与模型;实际措辞取决于你替换后的提示词。
输入
测试号码8613800000000在20秒内连发三条消息:「你好,请问国庆能寄养猫吗」「一只3公斤的英短」「10月1日到10月6日」对应输出
数据表先存下三行;等待窗口结束后仅最新一轮继续,合并为一条长文本交给代理。客户收到回复(示意):「您好!国庆期间可以寄养猫咪。已记录:英短、3公斤、10月1日至6日。请稍候,店员确认笼位后回电您。」回复若超长会被拆成最多三条发送。做完检查这些
- 文字、语音、图片三类消息都能被正确分流并转成规范化文本写入whatsapp inbox
- 同一号码连发多条时只有最新一轮执行继续,旧轮次被终止
- 回复来自PostgreSQL记忆续接的Claude代理,且发回WhatsApp时不超过三条
- 数据表中已处理的消息行被清空,WhatsApp侧显示已读
容易卡住的地方
- Meta webhook验证失败多半是回调URL或verify token填错,需在Meta后台核对
- phone_number_id取自发来消息的元数据,用测试号码以外的环境时要确认字段存在
- PostgreSQL里缺少whatsapp_chat_history表会让记忆节点报错
- 等待窗口只是短暂缓冲,间隔很久的两条消息不会被合并,属预期行为
- OpenRouter、Anthropic等模型调用可能各自计费,免费的是n8n模板本身
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Handle WhatsApp HVAC reception with Gemini, Claude, and Meta WhatsApp API
- 原作者
- Hassan
- 原始发布日期
- 2026-10-02T19:29:54.618Z
- 来源
- https://n8n.io/workflows/20359