如何用 n8n + OpenAI 自动总结 Gmail 邮件
如果你每天收到大量邮件,真正耗时的不是阅读每一封邮件,而是判断:哪封需要马上处理、哪封可以稍后回复、哪封应该分配给团队成员。这个教程会搭建一个最小可行工作流:Gmail 收到新邮件后,n8n 自动提取正文,调用 OpenAI 生成摘要和优先级,再推送到 Slack。
这篇文章适合做 AI 自动化内容站的样板,因为它不是泛泛介绍“n8n 是什么”,而是解决一个明确问题,并且包含工作流、Prompt、成本和常见错误。
快速结论
如果你的邮件数量已经多到影响判断优先级,n8n + OpenAI 是一个很适合验证的自动化方案。它的优势是搭建快、可视化强、容易接入 Gmail、Slack、Google Sheets 等工具。缺点是:邮件正文清洗、隐私权限、模型误判优先级都需要认真处理。
建议先不要做“全自动回复邮件”,而是先做“自动摘要 + 人工确认”。这样风险更低,也更容易验证价值。
适合谁
- 每天需要处理大量客户、销售、招聘或项目邮件的人
- 想把邮件摘要推送到团队 IM 的运营、产品经理或客服负责人
- 正在学习 n8n、OpenAI API 和工作流自动化的开发者
- 想给公司内部做 AI 自动化 Demo 的技术人员
不太适合:邮件数量很少、邮件内容高度敏感且无法外发到第三方模型、或者需要严格合规审批的场景。
最终效果
工作流运行后,你会在 Slack 里收到类似这样的消息:
主题:客户反馈:导出功能异常
发件人:customer@example.com
摘要:客户在导出 CSV 时遇到乱码问题,影响三个账号。问题可能和编码设置有关,需要技术团队排查。
优先级:高
建议动作:创建 bug ticket,并在 2 小时内回复客户预计处理时间。
是否需要人工回复:是这个结果比直接转发整封邮件更有价值,因为它把阅读、判断和下一步动作压缩成一个结构化输出。
准备工作
你需要准备:
| 工具 | 用途 | 说明 |
|---|---|---|
| n8n | 自动化编排 | 可以用云版,也可以自托管 |
| Gmail | 邮件来源 | 建议先用测试标签,不要直接监听所有邮件 |
| OpenAI API | 生成摘要 | 原型阶段可用较便宜的小模型 |
| Slack | 接收通知 | 也可以替换成企业微信、飞书或邮件 |
| Google Sheets | 可选 | 用于记录摘要历史和处理状态 |
工作流步骤
第一步:用 Gmail Trigger 监听新邮件
在 n8n 里新建 Workflow,添加 Gmail Trigger。建议不要一开始监听整个收件箱,而是建立一个专门标签,例如:
ai-summary-test这样你可以先把少量邮件移动到这个标签下测试,避免工作流误处理大量真实邮件。
推荐配置:
- Trigger:New Email
- Label:ai-summary-test
- Include Spam and Trash:false
- Download Attachments:false
如果邮件包含敏感附件,第一版不要处理附件,只处理正文和标题。
第二步:清洗邮件正文
邮件正文通常包含 HTML、签名、历史引用和广告尾巴。如果直接发给模型,会浪费 token,也会影响摘要质量。你可以先用 Set Node 或 Function Node 提取:
subject
from
date
bodyText正文清洗建议:
- 移除 HTML 标签
- 删除过长的历史引用
- 删除公司签名
- 截取前 3000-6000 字作为原型输入
第一版不用追求完美,重点是确保模型看到的是主要正文,而不是一堆格式噪音。
第三步:调用 OpenAI 生成结构化摘要
Prompt 可以这样写:
你是一个邮件处理助理。请阅读下面的邮件,并用 JSON 输出结果。
要求:
1. summary:三句话以内摘要
2. priority:只能是 高 / 中 / 低
3. suggested_action:建议下一步动作
4. needs_human_reply:true 或 false
5. reason:为什么这样判断
优先级规则:
- 付费客户投诉、付款问题、系统故障:高
- 普通咨询、合作沟通:中
- 订阅通知、营销邮件:低
邮件主题:{{$json.subject}}
发件人:{{$json.from}}
邮件正文:{{$json.bodyText}}为什么建议 JSON?因为后续你可以更容易把字段写入 Slack、Google Sheets 或数据库。
第四步:推送到 Slack
Slack 消息建议不要只发摘要,而是包含原邮件链接、优先级和建议动作:
【{{$json.priority}}】{{$json.subject}}
摘要:{{$json.summary}}
建议动作:{{$json.suggested_action}}
需要人工回复:{{$json.needs_human_reply}}
原因:{{$json.reason}}如果团队规模较大,可以根据优先级分流:
- 高优先级:推送到客户支持频道
- 中优先级:推送到普通邮件摘要频道
- 低优先级:只写入表格,不通知
成本估算
假设每天处理 100 封邮件,每封邮件平均:
- 输入:1500 tokens
- 输出:250 tokens
- 总计:1750 tokens
那么每月大约:
100 封/天 × 30 天 × 1750 tokens = 5,250,000 tokens/月如果只是邮件摘要,大多数情况下不需要每封都用最强模型。比较稳妥的方式是:
- 普通邮件用便宜模型摘要。
- 高价值客户或异常邮件再用更强模型复核。
- 对重复邮件、系统通知做规则过滤,不调用模型。
这样可以把成本控制在可接受范围内。
常见错误
错误 1:直接监听所有邮件
这会导致测试阶段很难排查问题,也可能把私人邮件发送给模型。建议先建立测试标签,只处理少量邮件。
错误 2:Prompt 没有业务规则
如果你只说“请总结邮件”,模型无法知道什么是高优先级。你需要写清楚业务规则,例如“付费客户投诉默认为高优先级”。
错误 3:没有处理失败重试
API 调用可能失败,Slack 也可能发送失败。至少要记录失败邮件,避免重要邮件悄悄丢失。
错误 4:直接让 AI 自动回复
自动回复风险比自动摘要高很多。建议先让 AI 给出建议回复,由人确认后再发送。
可以继续优化的方向
- 把摘要结果写入 Google Sheets,增加处理状态字段
- 根据发件人域名判断客户类型
- 加入关键词规则,例如“退款”“无法登录”“发票”提高优先级
- 每天生成一份邮件日报
- 接入 Linear、Jira 或 GitHub Issues 自动创建任务
总结
n8n + OpenAI 自动总结 Gmail 邮件,是一个非常适合作为 AI 自动化入门项目的场景。它有明确输入、明确输出、低风险 MVP,也容易扩展到 Slack、表格和任务系统。
真正决定效果的不是“能不能调用模型”,而是你是否做好了正文清洗、优先级规则、失败记录和人工确认。建议先做摘要,不要一开始就做自动回复。
上线前事实核验
待核验:本文可能涉及工具能力、平台限制、价格、搜索政策或当前产品行为。正式上线前需要用官方文档、实际测试或最新数据复查。