ChatGPT销售找线索AI 评分 · 72/100AI 辅助编辑·未发现明显提示词注入风险n8n.io

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

步骤

  1. 连接账户

    在 n8n 中配置四个凭证:Gmail (OAuth2)、Slack (OAuth2)、Google Sheets (OAuth2)、OpenAI (API Key)。确保每个凭证状态为 Active。

  2. 创建 Gmail 标签

    进入 Gmail 设置 → 标签,创建以下格式标签:AI Agent/To Respond、AI Agent/Awaiting Reply、AI Agent/Notification、AI Agent/Marketing 等。这些标签将被工作流用于按意图自动归类邮件。

  3. 创建 Google Sheets 工作簿

    新建 Google Sheets,命名为类似 N8N - Emails。添加两个工作表:Sheet1(存储全部已处理邮件)和 Sheet2(仅存储最新批次,用于摘要)。两个表的首行均需包含列:From | Summary | Intent | Category | TimeStamp | Urgency。

  4. 导入工作流并配置 Slack 频道

    将 workflow.json 导入 n8n 实例。检查每个节点已关联正确的活跃凭证。在 Slack 节点(Send a message2 和 Send a message3)中选择目标频道,用于接收高紧急度警报和摘要。

  5. 调整调度间隔

    检查 Schedule Trigger1 节点。来源 workflow.json 中设置为每4小时(hoursInterval: 4),描述文本提及每小时和每4小时两种说法。按需修改为 30 分钟、1 小时、2 小时或 4 小时。

  6. 运行测试

    手动执行一次工作流,验证:邮件被正确获取、Gmail 标签正确添加、Slack 通知触发、数据写入 Google Sheets。

  7. 激活工作流

    确认测试无误后,激活工作流。此后将按设定间隔自动运行。

  8. 触发与获取邮件

    Schedule Trigger 按设定时间启动。工作流先获取 Gmail 标签列表,再拉取最近4小时内的全部邮件(receivedAfter 动态计算)。

  9. 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.
  10. 解析意图并打标签

    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
      };
    }
  11. 高紧急度 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 }}
  12. 记录到 Google Sheets

    所有邮件数据并行写入 Sheet1(长期存档)和 Sheet2(最新批次)。字段映射:From、Summary、Intent、Category、TimeStamp、Urgency。

  13. 等待并生成 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

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例