如何用 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. 高价值客户或异常邮件再用更强模型复核。
  3. 对重复邮件、系统通知做规则过滤,不调用模型。

这样可以把成本控制在可接受范围内。

常见错误

错误 1:直接监听所有邮件

这会导致测试阶段很难排查问题,也可能把私人邮件发送给模型。建议先建立测试标签,只处理少量邮件。

错误 2:Prompt 没有业务规则

如果你只说“请总结邮件”,模型无法知道什么是高优先级。你需要写清楚业务规则,例如“付费客户投诉默认为高优先级”。

错误 3:没有处理失败重试

API 调用可能失败,Slack 也可能发送失败。至少要记录失败邮件,避免重要邮件悄悄丢失。

错误 4:直接让 AI 自动回复

自动回复风险比自动摘要高很多。建议先让 AI 给出建议回复,由人确认后再发送。

可以继续优化的方向

  • 把摘要结果写入 Google Sheets,增加处理状态字段
  • 根据发件人域名判断客户类型
  • 加入关键词规则,例如“退款”“无法登录”“发票”提高优先级
  • 每天生成一份邮件日报
  • 接入 Linear、Jira 或 GitHub Issues 自动创建任务

总结

n8n + OpenAI 自动总结 Gmail 邮件,是一个非常适合作为 AI 自动化入门项目的场景。它有明确输入、明确输出、低风险 MVP,也容易扩展到 Slack、表格和任务系统。

真正决定效果的不是“能不能调用模型”,而是你是否做好了正文清洗、优先级规则、失败记录和人工确认。建议先做摘要,不要一开始就做自动回复。

上线前事实核验

待核验:本文可能涉及工具能力、平台限制、价格、搜索政策或当前产品行为。正式上线前需要用官方文档、实际测试或最新数据复查。

顶部