n8n创意写作AI 评分 · 待评分AI 辅助编辑·未发现明显提示词注入风险n8n.io

用 n8n 自动分类 Gmail 邮件并用 Groq 起草回复

Gmail 触发 → 字段提取 → Groq AI 分析 → JSON 解析 → 高优先级告警 + Google Sheets 记录 → 条件性草稿回复

有一点经验步骤流程提示词贴士
给谁
需要自动化处理大量 Gmail 收件箱、希望 AI 辅助分类摘要并预起草回复的用户
你会得到
新邮件到达后自动分类、提取关键信息、生成草稿回复;高优先级邮件即时告警,全部记录到 Google Sheets
你需要
n8n · gmail · google-sheets

硬约束

前置条件:n8n 实例(自托管或云版);Gmail OAuth2 凭证(读取邮件+创建草稿权限);Groq API 密钥;可选 Google Sheets OAuth2 凭证。费用:Groq API 按 token 计费,n8n 及 Google API 有免费额度限制。

他们做了什么

作者 utkarsh-automates 在 n8n 模板平台发布了该工作流模板。模板配置 Gmail 触发器每分钟轮询新邮件,通过 If 节点过滤空内容邮件,用 Set 节点提取发件人、主题、正文等字段,再经 Groq AI Agent(llama-3.3-70b-versatile)生成结构化 JSON 分析(含分类、优先级、摘要、草稿回复等),随后用 Code 节点解析并标准化输出,最后根据优先级发送告警邮件、记录到 Google Sheets,并在需要回复时创建 Gmail 草稿。

效果如何

作者报告该模板可实现:自动分类、摘要、草稿生成、高优先级告警、Sheet 记录(author_report)。未提供量化 ROI 或长期稳定性数据。

值得知道

1) 本站未实测该工作流,reproduction=not_tested;2) AI 输出依赖 JSON 格式遵守,虽有 fallback 解析仍可能因模型输出格式错误导致解析失败;3) 正文截断至 3000 字符,超长邮件可能丢失上下文;4) Groq 模型参数(temperature 0.3, maxTokens 2048)为模板默认值,可按需调整;5) Google Sheets 记录为可选,禁用时不影响核心流程;6) 草稿回复不会自动发送,仅创建草稿需人工复核后发送;7) 每分钟轮询可能接近 Gmail API 配额,高频场景建议评估轮询间隔。

n8n 工作流模板

结构已检查 · 未实际运行

下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。

配置与测试清单

需要绑定的凭证

  • 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。

需要替换的配置

  • 源模板来自 n8n 公开库 #16592(约 19 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
  • Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。

测试输入与预期结果

  • 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
  • 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。

模板处理说明

  • 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
  • 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。

模板获取日期: 2026-10-24

步骤

  1. 配置 Gmail 触发与内容过滤

    在 n8n 工作流中添加「Gmail Trigger」节点,设置轮询间隔为每分钟(pollTimes: everyMinute)。添加「If」节点(Check Email Content),条件为 {{ $json.text || $json.snippet }} 不等于空字符串,跳过无正文或摘要的邮件。

  2. 提取邮件关键字段

    添加「Edit Fields (Set)」节点,映射以下字段:sender(发件人邮箱)、sender_name(发件人名称)、subject(主题,默认'(No Subject)')、body(正文或摘要前 3000 字符)、email_id(邮件 ID)、received_date(接收时间)。

  3. AI 分析与分类

    添加「AI Agent」节点(Email Analysis Agent),promptType 设为 define。在 text 字段填入用户提示词,在 options.systemMessage 填入系统提示词。连接「Groq Chat Model」子节点,模型选择 llama-3.3-70b-versatile,temperature 0.3,maxTokensToSample 2048。

    运行提示词 · 来源原文。AI Agent 节点的 text 字段(用户提示词)

    =Analyze and categorize this email, then draft an appropriate response.
    
    FROM: {{ $json.sender_name }} <{{ $json.sender }}>
    SUBJECT: {{ $json.subject }}
    BODY:
    {{ $json.body }}
    
    Respond ONLY with valid JSON.

    运行提示词 · 来源原文。AI Agent 节点的 options.systemMessage 字段

    You are an expert email assistant. Your job is to analyze incoming emails, categorize them by urgency and type, and draft professional responses.
    
    You MUST respond ONLY with valid JSON. No markdown, no code blocks.
    
    Required JSON structure:
    {
      "category": "One of: URGENT | ACTION_REQUIRED | FOLLOW_UP | FYI | NEWSLETTER | SPAM | PROMOTION | PERSONAL",
      "priority": "One of: HIGH | MEDIUM | LOW",
      "summary": "2-3 sentence summary of what this email is about",
      "key_asks": ["What the sender wants — each ask as a separate item"],
      "sentiment": "One of: positive | neutral | negative | frustrated",
      "requires_response": true,
      "suggested_response_time": "Respond within: 1 hour / 4 hours / 24 hours / 48 hours / No response needed",
      "draft_response": {
        "subject": "Re: original subject or new subject if needed",
        "body": "Professional, concise draft reply. Match the tone of the original email. If the email is a newsletter or promotion, leave this empty.",
        "tone": "The tone used: professional / friendly / formal / apologetic / enthusiastic"
      },
      "action_items": ["Any to-do items this email creates for you"],
      "labels_suggested": ["Suggested Gmail labels: work, personal, finance, travel, project-X, etc."]
    }
    
    Rules:
    - SPAM/NEWSLETTER/PROMOTION: set requires_response to false, draft_response body to empty string
    - URGENT: anything with deadlines within 24hrs, payment issues, or critical requests
    - ACTION_REQUIRED: needs you to do something but not time-critical
    - FOLLOW_UP: someone following up on a previous conversation
    - FYI: informational, no action needed
    - Draft responses should be concise (under 150 words)
    - Never be sycophantic in drafts — be professional and direct
    - If the email is in a non-English language, respond in the same language
    - Extract ALL action items, even implicit ones
  4. 解析 AI 输出并验证

    添加「Code」节点(Parse AI Analysis),运行 JavaScript 代码解析 AI 返回的 JSON。先尝试 JSON.parse,失败则尝试提取 markdown code block 或 regex 匹配 {…},仍失败返回 parse_status: failed。成功则标准化输出所有字段(category, priority, summary, key_asks, sentiment, requires_response, suggested_response_time, draft_subject, draft_body, draft_tone, action_items, labels)。

    运行提示词 · 来源原文。Parse AI Analysis 节点的 jsCode 字段

    const items = $input.all();
    const output = items[0].json.output;
    
    let parsed;
    try {
      parsed = JSON.parse(output);
    } catch (e) {
      const jsonMatch = output.match(/```(?:json)?\s*([\s\S]*?)```/);
      if (jsonMatch) {
        try { parsed = JSON.parse(jsonMatch[1].trim()); } catch (e2) { parsed = null; }
      }
      if (!parsed) {
        const objMatch = output.match(/\{[\s\S]*\}/);
        if (objMatch) {
          try { parsed = JSON.parse(objMatch[0]); } catch (e3) { parsed = null; }
        }
      }
    }
    
    if (!parsed) {
      return [{ json: { parse_status: 'failed', error: 'Could not parse AI analysis' } }];
    }
    
    return [{
      json: {
        parse_status: 'success',
        timestamp: new Date().toISOString(),
        sender: items[0].json.sender || '',
        sender_name: items[0].json.sender_name || '',
        original_subject: items[0].json.subject || '',
        email_id: items[0].json.email_id || '',
        category: parsed.category || 'FYI',
        priority: parsed.priority || 'LOW',
        summary: parsed.summary || '',
        key_asks: Array.isArray(parsed.key_asks) ? parsed.key_asks.join('; ') : '',
        sentiment: parsed.sentiment || 'neutral',
        requires_response: parsed.requires_response || false,
        suggested_response_time: parsed.suggested_response_time || '',
        draft_subject: parsed.draft_response?.subject || '',
        draft_body: parsed.draft_response?.body || '',
        draft_tone: parsed.draft_response?.tone || '',
        action_items: Array.isArray(parsed.action_items) ? parsed.action_items.join('; ') : '',
        labels: Array.isArray(parsed.labels_suggested) ? parsed.labels_suggested.join(', ') : ''
      }
    }];
  5. 优先级判断、告警与记录

    添加「If」节点(Check Parse Success)验证 parse_status 为 success。成功后进入「If」(Evaluate Priority Level)判断 priority 是否等于 HIGH:是则触发「Gmail」节点(Send High Priority Alert)发送 HTML 告警邮件到指定地址;无论优先级如何,都通过「Google Sheets」节点(Append to Google Sheets)追加记录到「Email Log」工作表。

  6. 条件性创建草稿回复

    Google Sheets 记录后,添加「If」节点(Assess Reply Necessity)判断 requires_response 是否为 true。为真时触发「Gmail」节点(Draft Gmail Reply)以 createDraft 操作创建草稿回复;为假时流程结束。

可复制提示词

搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限

这一段是提示词,页面不会在这里插入广告。

你正在搭建一个 n8n 工作流,用于自动监控 Gmail、用 Groq AI 分类邮件并起草回复。请按以下顺序确认你已准备好:1) Gmail OAuth2 凭证(读取+草稿权限);2) Groq API 密钥;3) 可选的 Google Sheets 凭证与 Sheet ID。然后导入 workflow JSON 或按步骤手动创建节点,重点检查 AI Agent 的 systemMessage 与 Parse AI Analysis 的字段映射是否匹配下游 If 条件。

搭建前请确认 Gmail OAuth2 已授权读取邮件和创建草稿;Groq API 密钥已保存到 n8n Credentials;如需日志功能,提前创建 Google Sheet 并获取文档 ID。

来源

Categorize emails and draft Gmail replies with Groq and Google Sheets · utkarsh-automates · n8n.io · 2026-06-24

留言与反馈

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

正在加载…

    相关用例