n8n 模板:WhatsApp AI 客服机器人(文本/语音/图片/文档 + RAG)
将 Google Docs 产品文档自动索引到 MongoDB Atlas,通过 WhatsApp 接收多类型消息并用 GPT-4o-mini 做检索增强问答
- 给谁
- 内部技术支持团队、产品专员、知识库管理员
- 你会得到
- 用户通过 WhatsApp 发送文字、语音、图片或文档,系统自动检索产品文档并返回上下文感知的 AI 回答
硬约束
前置条件:n8n 实例;OpenAI API 密钥;MongoDB Atlas 集群(需创建向量搜索索引);Google Docs OAuth2 凭证;Meta WhatsApp Business 账号及 API 凭证;HTTP Header Auth 凭证(用于下载媒体文件)。费用:OpenAI 按 token 计费,MongoDB Atlas 按集群规格计费,WhatsApp Business API 按消息量计费。
他们做了什么
作者 thomasgpt(NovaNode)在 n8n.io 发布了一个官方模板,包含两个工作流:工作流一通过手动触发从 Google Docs 导入产品文档,经分块、OpenAI 嵌入后存入 MongoDB Atlas 向量数据库;工作流二通过 WhatsApp Trigger 监听用户消息,支持文本、语音、图片、文档四种类型,经类型路由和预处理后,由 Knowledge Base Agent 调用 GPT-4o-mini 结合向量检索与对话记忆生成回答,最终通过 WhatsApp API 回复用户。
效果如何
模板描述声称该方案可让支持代理减少手动搜索文档的时间,通过 RAG 实现准确、快速的 AI 问答(author_report)。模板在 n8n.io 获得 259,220 次浏览。
值得知道
1) 模板中 Knowledge Base Agent 的 systemMessage 为空字符串,需用户自行填写;2) WhatsApp 发送节点的 phoneNumberId 硬编码为 677680658761861,需替换为实际号码;3) Simple Memory 的 sessionKey 基于 WhatsApp 联系人 ID,同一用户多轮对话共享记忆;4) 文档处理分支通过 Code 节点映射 calendar/xml MIME 类型,未映射类型将收到「The File type you provided is unsupported.」回复;5) 本站未实测该工作流(reproduction=not_tested),实际运行需验证各凭证权限和 webhook 可达性。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- OpenAI Chat Model 节点:绑定OpenAI API 凭证。
- Embeddings OpenAI 节点:绑定OpenAI API 凭证。
- MongoDB Vector Search 节点:绑定mongoDb 凭证。
- MongoDB Vector Store Inserter 节点:绑定mongoDb 凭证。
- OpenAI Embeddings Generator 节点:绑定OpenAI API 凭证。
- Google Docs Importer 节点:绑定googleDocsOAuth2Api 凭证。
- WhatsApp Trigger 节点:绑定whatsAppTriggerApi 凭证。
- OpenAI 节点:绑定OpenAI API 凭证。
- OpenAI1 节点:绑定OpenAI API 凭证。
- Gets WhatsApp Voicemail Source URL 节点:绑定whatsAppApi 凭证。
- Gets WhatsApp Image Source URL 节点:绑定whatsAppApi 凭证。
- Gets WhatsApp Document Source URL 节点:绑定whatsAppApi 凭证。
- Download Voicemail 节点:绑定HTTP Header Auth 凭证。
- Download Image 节点:绑定HTTP Header Auth 凭证。
- Download Document 节点:绑定HTTP Header Auth 凭证。
- Send Unsupported Response 节点:绑定whatsAppApi 凭证。
- Send Response 节点:绑定whatsAppApi 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #4827(约 35 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-25
步骤
配置向量嵌入与文档索引环境
在 n8n 中配置文档摄入工作流的前置连接:1) 在 Google Docs 节点凭证中完成 OAuth2 授权,并填入待索引的产品文档 URL;2) 在 MongoDB 节点凭证中连接 Atlas 集群,指定集合名称(如 n8n-template);3) 确保集合上已创建向量搜索索引,索引名与 n8n 配置一致(默认 data_index);4) 参考以下 MongoDB 搜索索引模板创建索引。
搭建指导 · 来源原文。MongoDB Atlas 搜索索引 JSON 定义;在 Atlas 控制台或 CLI 中创建
{ "mappings": { "dynamic": false, "fields": { "_id": { "type": "string" }, "text": { "type": "string" }, "embedding": { "type": "knnVector", "dimensions": 1536, "similarity": "cosine" }, "source": { "type": "string" }, "doc_id": { "type": "string" } } } }配置 WhatsApp 问答工作流
配置接收与回复 WhatsApp 消息的连接:1) 在 WhatsApp Trigger 和 WhatsApp 节点中填入 Meta 账号凭证,启用消息接收与发送;2) 将 MongoDB Vector Search 节点连接到同一集合(n8n-template),确保索引名为 data_index;3) 在 Knowledge Base Agent 节点中设置 system prompt,定义公司语气、回答风格及业务规则,并确认其引用了已连接的 MongoDB 集合做上下文检索。
执行文档摄入与索引工作流
手动触发「Execute Workflow」运行文档摄入工作流。流程:Google Docs Importer 拉取文档 → Document Section Loader 加载内容并附加 doc_id 元数据 → Document Chunker 按 markdown 分块(chunkSize=3000, chunkOverlap=200)→ OpenAI Embeddings Generator 生成 1536 维向量 → MongoDB Vector Store Inserter 将块与嵌入写入 Atlas。运行成功后,产品文档即被索引可供语义搜索。
搭建指导 · 来源原文。Sticky Note 说明;工作流手动触发前的提示
Run this workflow manually to import and index Google Docs product documentation into MongoDB with vector embeddings for fast search.
运行 WhatsApp AI 问答工作流
工作流由 WhatsApp Trigger 自动触发。 incoming 消息经 Route Types Switch 按类型分流:Text 直接提取消息体;Audio 经 WhatsApp API 获取媒体 URL、HTTP Request 下载后由 OpenAI audio/translate 转录为文本;Image 经 WhatsApp API 获取 URL、HTTP Request 下载后由 OpenAI image/analyze(gpt-4o-mini, detail=auto)生成描述;Document 经 WhatsApp API 获取 URL、HTTP Request 下载后,由 Code 节点映射文件扩展名,再经 Route Document Types Switch 按 MIME 类型分流到 Extract from PDF/XLS/XLSX 等节点提取文本,最终统一格式化为 text 字段。所有分支的文本汇入 Knowledge Base Agent,该节点调用 Simple Memory(sessionKey 基于用户 WhatsApp ID)维护多轮上下文,通过 MongoDB Vector Search(retrieve-as-tool, toolName=productDocs)检索相关文档片段,再由 OpenAI Chat Model(gpt-4o-mini)生成回答,最后由 Send Response 节点通过 WhatsApp API 回复用户。
搭建指导 · 来源原文。Sticky Note1 说明;工作流整体功能概述
This workflow listens for WhatsApp messages (text, audio, image, documents), converts them into embeddings, searches MongoDB, and uses GPT-4o-mini to provide context-aware answers with conversation memory.
运行提示词 · 来源原文。Map text prompt 节点 (n8n-nodes-base.set);将 WhatsApp 文本消息体映射为 text 字段输出到 Knowledge Base Agent
={{ $json.messages[0].text.body }}运行提示词 · 来源原文。Map image prompt 节点 (n8n-nodes-base.set);将 OpenAI image analyze 结果与图片 caption 合并为 text 字段
=User image description: {{ $json.content }} User image caption: {{ $('Route Types').item.json.messages[0].image.caption }}运行提示词 · 来源原文。Map document prompt 节点 (n8n-nodes-base.set);将文档提取结果与 caption、MIME 类型合并为 text 字段
=Parsed text: {{ $json.text || $json.data || $json }} Caption text: {{ $('Route Types').item.json.messages[0].document.caption }} MimeType: {{ $('Gets WhatsApp Document Source URL').item.json.mime_type }}运行提示词 · 来源原文。Map file extensions 节点 (n8n-nodes-base.code);标准化 MIME 类型供 Route Document Types Switch 使用
let requests = $("Download Document").all() requests.forEach((request) => { let mime_type = request.json.mime_type if ( mime_type === "text/calendar" || mime_type === "application/ics" || mime_type === "text/x-calendar" ) { request.json.mime_type = "mapped/calendar" } if ( mime_type === "application/xml" || mime_type === "text/xml") { request.json.mime_type = "mapped/xml" } if (!mime_type) { request.json.mime_type = $('Gets WhatsApp Document Source URL').first().json.mime_type } }) return requests;
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,按顺序确认输入、权限和测试方案
这一段是提示词,页面不会在这里插入广告。
你正在搭建一个基于 n8n 的 WhatsApp AI 客服系统。请按以下顺序操作:1) 确认你已拥有 OpenAI API 密钥、MongoDB Atlas 集群(M10 或以上以支持向量搜索)、Google Docs 文档链接、Meta WhatsApp Business 账号;2) 在 n8n 中导入本模板工作流;3) 按步骤配置所有凭证(Google Docs OAuth2、MongoDB、OpenAI、WhatsApp Trigger、WhatsApp API、HTTP Header Auth);4) 在 MongoDB Atlas 中创建向量搜索索引(索引名 data_index,维度 1536,相似度 cosine);5) 先在测试环境手动运行文档摄入工作流,确认文档被正确分块和嵌入;6) 配置 WhatsApp webhook 指向你的 n8n 实例;7) 测试发送文本、语音、图片、PDF 消息,验证各分支正常处理并返回上下文相关的回答。
此提示词为编辑建议的搭建启动词,非节点运行指令。节点内具体提示词见各步骤 prompts。
来源
AI-powered WhatsApp chatbot for text, voice, images, and PDF with RAG · thomasgpt · n8n.io · 2025-06-09
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。