n8n 自动邮件分流:Gmail + GPT-4o + Slack 紧急通知
定时扫描 Gmail 收件箱,用 GPT-4o 分类邮件紧急度与意图,自动打标签并推送 Slack 摘要
- 给谁
- 需要管理大量邮件的职场人士、团队负责人或创始人
- 你会得到
- 每小时(或每4小时)自动获取新邮件,AI 分类后打上 Gmail 标签,高紧急度邮件即时推送到 Slack,其余邮件汇总为摘要 digest
- 你需要
- n8n · gmail · google-sheets · slack
硬约束
前置条件:n8n 实例(自托管或云版);Gmail、Slack、Google Sheets、OpenAI 的 OAuth/API 凭证。需在 Gmail 中预创建标签(AI Agent/To Respond 等格式),在 Google Sheets 中创建含指定列的双表工作簿。来源中调度间隔存在不一致:workflow.json 节点设置为每4小时,描述文本同时出现每小时和每4小时。
他们做了什么
作者 siddhant 在 n8n 官方模板库发布了该工作流模板(模板ID 6588,发布于 2025-07-28)。模板展示了一个定时运行的自动化流程:从 Gmail 获取近期邮件,通过 GPT-4o-mini 分析内容并输出结构化 JSON(摘要、紧急度、分类、意图),随后用代码节点解析结果、匹配 Gmail 标签、向 Slack 发送高紧急度即时警报,并将所有记录写入 Google Sheets 双表结构,最后等待 30 秒生成 Medium/Low 紧急度的 Slack 摘要 digest。
效果如何
来源作者声称该工作流可实现「每小时(或每4小时)扫描收件箱,将新邮件汇总为可操作的 Slack 消息」,分类维度包括 Urgency(High/Medium/Low)和 Intent(To Respond/Awaiting Reply/Notification/Meeting update/Marketing/FYI)。模板在 n8n 平台获得 1981 次查看。以上均为作者报告(author_report),本站未实测验证。
值得知道
1. 来源中 Schedule Trigger 的实际节点参数为每4小时(hoursInterval: 4),但描述文本同时出现「每小时」和「每4小时」,存在不一致,搭建时需自行确认。2. 描述提到「System Prompt」,但 workflow.json 中 OpenAI 节点仅包含单条 user message,角色定义嵌入在 user content 中,并非独立的 system 消息。3. Calculate Intent 节点代码中存在拼写 messgae_id(非 message_id),为来源原文保留。4. 代码节点使用 eval 风格 JSON 解析,对 GPT 输出格式敏感,若模型返回 markdown 代码块或智能引号可能导致解析失败(节点已做清洗处理)。5. Filter timestamp 中 HOURS = 0.5 与描述中「最近1小时」的摘要不完全对应。6. 高紧急度分支和低紧急度摘要分支在 If 节点后分离,高紧急度邮件也会经过标签添加和 Sheet 记录,但不会进入 digest(digest 仅取 Medium/Low)。7. 需要预先在 Gmail 中创建 AI Agent/ 前缀的标签,否则标签匹配会失败。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- Get many messages 节点:绑定Gmail OAuth2 凭证。
- Get many labels 节点:绑定Gmail OAuth2 凭证。
- Message a model1 节点:绑定OpenAI API 凭证。
- Send a message2 节点:绑定Slack OAuth2 凭证。
- Add label to message2 节点:绑定Gmail OAuth2 凭证。
- Add label to message3 节点:绑定Gmail OAuth2 凭证。
- Send a message3 节点:绑定Slack OAuth2 凭证。
- Append row in sheet1 节点:绑定Google Sheets OAuth2 凭证。
- Append row in sheet2 节点:绑定Google Sheets OAuth2 凭证。
- Get row(s) from sheet2 节点:绑定Google Sheets OAuth2 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #6588(约 17 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
连接账户
在 n8n 中配置四个凭证:Gmail (OAuth2)、Slack (OAuth2)、Google Sheets (OAuth2)、OpenAI (API Key)。确保每个凭证状态为 Active。
创建 Gmail 标签
进入 Gmail 设置 → 标签,创建以下格式标签:AI Agent/To Respond、AI Agent/Awaiting Reply、AI Agent/Notification、AI Agent/Marketing 等。这些标签将被工作流用于按意图自动归类邮件。
创建 Google Sheets 工作簿
新建 Google Sheets,命名为类似 N8N - Emails。添加两个工作表:Sheet1(存储全部已处理邮件)和 Sheet2(仅存储最新批次,用于摘要)。两个表的首行均需包含列:From | Summary | Intent | Category | TimeStamp | Urgency。
导入工作流并配置 Slack 频道
将 workflow.json 导入 n8n 实例。检查每个节点已关联正确的活跃凭证。在 Slack 节点(Send a message2 和 Send a message3)中选择目标频道,用于接收高紧急度警报和摘要。
调整调度间隔
检查 Schedule Trigger1 节点。来源 workflow.json 中设置为每4小时(hoursInterval: 4),描述文本提及每小时和每4小时两种说法。按需修改为 30 分钟、1 小时、2 小时或 4 小时。
运行测试
手动执行一次工作流,验证:邮件被正确获取、Gmail 标签正确添加、Slack 通知触发、数据写入 Google Sheets。
激活工作流
确认测试无误后,激活工作流。此后将按设定间隔自动运行。
触发与获取邮件
Schedule Trigger 按设定时间启动。工作流先获取 Gmail 标签列表,再拉取最近4小时内的全部邮件(receivedAfter 动态计算)。
GPT-4o 分析邮件
每封邮件送入 OpenAI 节点(Message a model1),使用 gpt-4o-mini 模型。提示词要求输出纯 JSON,包含 summary、urgency、category、intent 四个字段。
运行提示词 · 来源原文。n8n OpenAI 节点 Message a model1 的 messages.values[0].content 字段
=You're an email assistant for a busy startup founder. Classify the email content into the following fields and return **only raw JSON** (no markdown): { "summary": [Short summary of the email in 1 sentence], "urgency": [High, Medium, Low], "category": [Investor, Customer, Support, Spam, Other], "intent": ["To respond", "Awaiting reply", "FYI", "Notification", "Meeting update", "Marketing"] } The descriptions of the intents are as follows: 1. To respond: Emails you need to respond to 2.FYI: Emails that don't require your response, but are important 3. Notification: Automated updates from tools you use or Team chats in tools like Google Docs or Microsoft Office 4. Meeting update: Calendar updates from Zoom, Google Meet, etc 5. Awaiting reply: Emails you're expecting a reply to 6. Actioned: Email threads that have been resolved 7. Marketing: Marketing or cold emails Analyze the following email: Subject: {{ $json.Subject }} Body: {{ $json.snippet }} Return only valid JSON with no extra formatting.解析意图并打标签
Calculate Intent 代码节点解析 GPT 返回的 JSON,清洗 markdown 代码块和智能引号,将 intent 映射为对应 Gmail 标签 ID,输出 summary、urgency、category、intent、message_id、label_id。
运行提示词 · 来源原文。n8n Code 节点 Calculate Intent 的 jsCode 字段
let raw = $json.message?.content || $json.message || ""; // Remove triple backticks (```json ... ```) raw = raw.replace(/```json|```/g, '').trim(); // Fix smart quotes and other formatting problems raw = raw.replace(/[“”]/g, '"').replace(/[‘’]/g, "'"); try { const parsed = JSON.parse(raw); return { summary: parsed.summary || "No summary provided", urgency: parsed.urgency || "Unknown", category: parsed.category || "Unknown", intent: parsed.intent || "Unknown", messgae_id: $('Get many messages').item.json.id, label_id: $("Get many labels").all().find((item) => item.json.name === `AI Agent/${parsed.intent}`).json.id }; } catch (err) { return { summary: "⚠️ Failed to parse GPT output", urgency: "Unknown", category: "Unknown", intent: "Unknown", error: err.message, original: raw }; }高紧急度 Slack 警报
If 节点判断 urgency 等于 High 时,触发 Slack 即时警报。消息包含发件人、摘要、紧急度、分类和意图。
运行提示词 · 来源原文。n8n Slack 节点 Send a message2 的 text 字段
=*Siddhant, Important Email Detected* From: {{ $('Get many messages').item.json.From }} *Summary:* {{ $('Calculate Intent').item.json.summary }} *Urgency:* {{ $('Calculate Intent').item.json.urgency }} , *Category:* {{ $('Calculate Intent').item.json.category }}, *Intent:* {{ $('Calculate Intent').item.json.intent }}记录到 Google Sheets
所有邮件数据并行写入 Sheet1(长期存档)和 Sheet2(最新批次)。字段映射:From、Summary、Intent、Category、TimeStamp、Urgency。
等待并生成 Slack 摘要
等待 30 秒后,从 Sheet2 读取最新批次,Filter timestamp 代码节点筛选最近 0.5 小时内、urgency 为 Medium 或 Low 的条目(排除 Marketing)。Daily Digest Preparation 节点格式化为文本,由 Send a message3 推送 Slack 摘要。
运行提示词 · 来源原文。n8n Code 节点 Filter timestamp 的 jsCode 字段
const HOURS = 0.5; // hours window const now = new Date(); return items.filter(item => { const timestamp = item.json.TimeStamp || item.json.timestamp || ""; const urgency = (item.json.Urgency || item.json.urgency || "").toLowerCase(); if (!timestamp) return false; const itemDate = new Date(timestamp); const hoursDiff = Math.abs((now - itemDate) / 36e5); // 36e5 = 60*60*1000 console.log(hoursDiff) return hoursDiff <= HOURS && (urgency === "low" || urgency === "medium"); });运行提示词 · 来源原文。n8n Code 节点 Daily Digest Preparation 的 jsCode 字段
let text = ``; const medium = []; const low = []; items.forEach(item => { const urgency = (item.json.Urgency || "").toLowerCase(); const intent = (item.json.Intent || "").toLowerCase(); if (urgency === "medium") { medium.push(item); } else if ( urgency === "low" && intent !== "Marketing" ) { low.push(item); } }); if (medium.length === 0 && low.length === 0) { text += "_No important messages today._"; } else { if (medium.length > 0) { text += "*Medium Urgency:*\n"; medium.forEach((item, index) => { text += `*${index + 1}.* ${item.json.Summary || "No summary"}\nFrom: ${item.json.From || "Unknown"}\nUrgency: ${item.json.Urgency || "Unknown"}, Category: ${item.json.Category || "Unknown"}, Intent: ${item.json.Intent || "N/A"}\n\n`; }); } if (low.length > 0) { text += "*Low Urgency:*\n"; low.forEach((item, index) => { text += `*${index + 1}.* ${item.json.Summary || "No summary"}\nFrom: ${item.json.From || "Unknown"}, Intent: ${item.json.Intent || "N/A"}\n\n`; }); } } return [{ json: { text } }];运行提示词 · 来源原文。n8n Slack 节点 Send a message3 的 text 字段
=🧠 *Inbox Assistant – Daily Digest* 📅 *{{ $now.format("DD : HH:mm") }}* ━━━━━━━━━━━━━━━━━━━ {{ $json.text }}
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你是一个 n8n 工作流搭建助手。用户希望复现「Gmail + GPT-4o + Slack 自动邮件分流」模板。请按以下顺序协助: 1. 确认用户已拥有 n8n 实例和四个凭证(Gmail/Slack/Google Sheets/OpenAI)。 2. 指导在 Gmail 中创建 AI Agent/ 前缀标签。 3. 指导创建 Google Sheets 双表结构(Sheet1/Sheet2,六列)。 4. 协助导入 workflow.json 并检查节点凭证映射。 5. 提醒检查 Schedule Trigger 间隔(来源存在每小时 vs 每4小时的不一致)。 6. 建议先手动测试再激活。 不提供凭证密钥;所有敏感信息在 n8n 凭证管理器中配置。
需要 n8n 实例 + 4 个 OAuth/API 凭证 + Gmail 标签预创建
来源
Automated email triage with Gmail, GPT-4o, and Slack urgency notifications · siddhant · n8n.io · 2025-07-28
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。