2026-10-14 · 原文发布日
Gmail客服邮件自动答复:知识库检索加人工兜底
这条n8n流程每分钟检查Gmail未读邮件,过滤自动回复和无效来信后用OpenAI判断是否客服咨询(带关键词兜底),投诉、退款、法律、退订或低置信度的直接转内部升级邮件。可答的问题经OpenAI嵌入后检索Pinecone知识库(未配置时用内置演示库),匹配分超过阈值就让OpenAI基于检索片段起草回复,否则转人工。支持预览、测试、正式三种模式,建议先在测试模式验证再上线。
原文要点
原文是一个免费n8n模板:Gmail触发器每分钟查未读邮件(排除自己发出的),清洗掉自动回复、空邮件和无发件人邮件;用OpenAI Chat Completions判定是否客服咨询,失败时走关键词兜底;投诉、退款、法律、退订或低置信度直接生成内部升级邮件。可答问题经OpenAI嵌入后查Pinecone(未配置时用内置演示库),最佳匹配分超过阈值才起草回复,否则转人工。配置节点里有预览/测试/正式三档模式,靠TEST_RUN和TEST_EMAIL切换。
这次做成什么
在本站照着搭出一个“来信分类→知识库检索→自动起草或升级人工”的Gmail客服流程骨架,并先用测试模式验证再上线。
准备什么
- 一个可登录n8n云端或自托管实例的账号
- 一个Gmail账号及其OAuth2凭据,用于触发和回复节点
- OpenAI API密钥(聊天与嵌入两个HTTP请求节点共用)
- Pinecone账号与一个维度为1536的索引及其Api-Key凭据
- 一个用于接收测试邮件和内部升级邮件的邮箱地址
具体怎么做
配置触发与凭据
在工作流里给Gmail Trigger绑定Gmail OAuth2凭据,触发查询保持只读未读邮件(如 is:unread),并确认它监控的是你想接管的收件箱;再给Gmail发送/回复节点绑同一凭据。
填配置节点
在config节点填入:升级收件地址supportTeamEmail、你自己的“不回复”发件地址列表、置信度阈值与匹配分阈值、chat模型与embedding模型名、TEST_RUN=true和TEST_EMAIL=你的测试邮箱。具体字段名以原模板config节点为准,需在导入后核对。
接入OpenAI与Pinecone
给chat completions和embeddings两个HTTP Request节点添加OpenAI API凭据;在Pinecone建维度1536的索引,添加Header Auth(Api-Key)凭据,并把索引host和namespace填进config。暂不配Pinecone时流程会用内置演示库,可先跑通链路。
测试模式验证
保持TEST_RUN=true,用另一邮箱向监控收件箱发三类测试信:普通咨询、退款投诉、空主题乱码信。检查测试邮箱是否收到起草副本、升级邮件是否发到supportTeamEmail、无效信是否被丢弃且未回复。
切换正式模式
确认三档行为都符合预期后,把TEST_RUN改为false并激活工作流。上线后第一周每天抽查已发送的自动回复线程,必要时调高匹配分阈值让更多邮件转人工。
可直接复制的材料
config节点示例值(本站编写)
本站独立编写的示例配置,字段名需以导入后原模板config节点的实际字段为准逐项替换;PINECONE_INDEX_HOST要换成你自己的索引host。OpenAI与Pinecone均可能产生费用。
{"TEST_RUN": true, "TEST_EMAIL": "qa-inbox@example.com", "SUPPORT_TEAM_EMAIL": "support-escalation@example.com", "NO_REPLY_SENDERS": ["noreply@example.com", "mailer-daemon@googlemail.com"], "CLASSIFY_CONFIDENCE_THRESHOLD": 0.7, "KB_MATCH_SCORE_THRESHOLD": 0.78, "CHAT_MODEL": "gpt-4o-mini", "EMBED_MODEL": "text-embedding-3-small", "PINECONE_INDEX_HOST": "your-index-xxxx.svc.pinecone.io", "PINECONE_NAMESPACE": "kb-v1"}客服判定提示词(本站编写兜底示例)
本站编写的兜底提示词,与原模板内置逻辑不同,可在原OpenAI节点失效或想自定义分类时替换使用;{{subject}}与{{body}}换成n8n表达式引用。
你是邮件分类器。判断下面这封邮件是否属于可由客服知识库回答的产品咨询。
只输出一行JSON:{"is_support": true/false, "category": "咨询|投诉|退款|法律|退订|其他", "confidence": 0到1的小数, "reason": "不超过30字"}
规则:含退款、投诉、律师、退订、取消订阅等意图时is_support必须为false;无法判断时confidence给0.5以下。
邮件主题:{{subject}}
邮件正文:{{body}}三封合成测试邮件数据
本站虚构的三档测试用例,expect列是期望流程行为,用于测试模式逐条核对;不要替换成真实客户邮箱。
[{"from": "li.wei@example.net", "subject": "发票抬头怎么修改", "body": "你好,我上周开的电子发票抬头写错了,请问在哪里可以重新开具?订单号 A-20261003。", "expect": "自动起草回复"},{"from": "zhang.m@example.net", "subject": "要求立刻退款", "body": "你们的产品根本不能用,我要求全额退款,否则投诉到消协。", "expect": "转升级邮件"},{"from": "noreply@example.net", "subject": "自动回复:休假中", "body": "我目前不在办公室,将于下周回复。", "expect": "直接丢弃不处理"}]输入与输出示例
本站虚构演示,未真实运行该模板;实际起草内容取决于你的知识库条目与提示词。
输入
用测试邮箱发信:主题“发票抬头怎么修改”,正文“你好,我上周开的电子发票抬头写错了,请问在哪里可以重新开具?订单号 A-20261003。”对应输出
测试模式下流程向 qa-inbox@example.com 发出一封起草副本,正文示例:“您好,关于订单 A-20261003 的发票抬头问题:登录账户后进入【订单中心】找到该订单,点击【发票管理】→【重新开具】,填写正确抬头后提交,系统将在1-2个工作日内开具新发票并发送至您的注册邮箱。如原发票已报销,请先联系财务作废后再重新申请。”同时执行记录中分类结果显示 is_support=true、置信度高于阈值、知识库匹配分达标。做完检查这些
- 测试模式下三封合成邮件分别走向起草副本、升级邮件、丢弃三条路径,互不串路
- 所有自动起草只出现在测试邮箱,客户真实线程没有收到任何邮件
- 把TEST_RUN改为false后,普通咨询在原始Gmail线程中回复,且退款类邮件只发内部升级不回复客户
- 知识库匹配分低于阈值时邮件被转人工而不是硬答
容易卡住的地方
- Gmail触发查询若包含已读或自己发出的邮件会导致误触发,需按原文要求排除本人地址
- Pinecone索引维度与EMBED_DIMENSIONS不一致会让嵌入写入直接报错
- 阈值设得过低会让低质量答案直接发给客户,先在测试模式调参再上线
- OpenAI和Pinecone调用均按各自计费,每分钟轮询在邮件量大时费用会累积
- 原文的‘每分钟检查’是模板触发间隔设定,不代表处理耗时有保证
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Answer Gmail support emails with OpenAI and a Pinecone knowledge base
- 原作者
- Atharva Ashtekar
- 原始发布日期
- 2026-10-14T08:03:07.015Z
- 来源
- https://n8n.io/workflows/20940