AI PLAY玩法更新持续收录
← 回到更新流

2026-10-02 · 原文发布日

Gemini自动分拣Gmail、登记发票并推送急件

这个n8n免费模板每5分钟检查Gmail收件箱(排除促销、社交和自己发的邮件),把正文交给Gemini返回分类、摘要、紧急标记和可选的发票字段;随后自动建立并贴上对应标签(如AI/Clients、AI/Invoices),需要回复的邮件可在原线程生成草稿,发票类追加到Google Sheets台账并附邮件链接,紧急邮件推送到Telegram,另在n8n数据表里存一份可检索的处理日志。不需要草稿可把开关关掉。

原文要点

n8n上的免费模板20313:定时触发Gmail收件箱(排除促销、社交和自己发出的邮件),交给Google Gemini返回JSON分类、摘要、紧急标记、可选回复文本和发票字段;随后确保对应Gmail标签存在并贴上、在同一线程建草稿、发票追加到Google Sheets、紧急件推Telegram,并把处理日志写入n8n Data Table。模板设置项含姓名、业务描述、语气、Sheets文档ID、Telegram chat ID和create_drafts开关。

这次做成什么

在本站从零复刻一条与模板同思路的自动分拣流程:每5分钟扫收件箱→Gemini分类→打标签/建草稿/记台账/发提醒,并用一封虚构发票邮件跑通全链路。本站不提供原工作流下载,只给可照着搭的节点方案;若要原模板请到n8n.io/workflows/20313导入,导入前请核对各节点界面是否与本站描述一致。

准备什么

  • 一个n8n云或自托管实例(支持Gmail、Google Sheets、Telegram节点)
  • Gmail凭据(允许读取、加标签、建草稿)与Google Gemini API Key
  • 已建一张发票台账Google Sheets并知道其文档ID(可选)
  • 一个Telegram Bot Token和自己的chat ID(可选,不发急件可跳过)

具体怎么做

  1. 建触发器与过滤器

    新增Schedule Trigger设为每5分钟,接Gmail节点的Get Many Messages;查询条件排除促销、社交分类和自己发的邮件,例如label:inbox -category:promotions -category:social -from:me,limit设10,只取未读。接一个Gmail Get Message取完整正文,因为列表只给片段。

  2. 组装Gemini提示词并解析JSON

    接一个AI节点(Gemini模型),System部分放本站artifact里的分类提示词,用户部分用表达式拼入发件人、主题、正文。模型输出后接Code节点做JSON.parse并兜底:解析失败时把分类标为other、紧急置false,避免整条流程中断。

  3. 打标签分支

    按category字段走Switch:Clients、Invoices、Newsletter、Other四类。每类先调Gmail节点查标签是否存在(如AI/Clients),不存在则Create Label,再对该邮件执行Add Labels。标签名统一加前缀AI/便于在Gmail侧一眼区分。

  4. 草稿分支

    增加Settings节点存create_drafts布尔值。Gemini返回needs_reply=true且开关为true时,用Gmail Create Draft,threadId取原邮件的threadId、收件人取From字段、正文用Gemini给的reply_text。开关false则整条分支跳过。

  5. 发票台账分支

    category=Invoices且Settings里的sheets_doc_id非空时,用Google Sheets Append Row写入台账,列映射严格对应表头:Date、Issuer、Number、Net、VAT、Total、Currency、Subject、Link to the email,其中邮件链接用https://mail.google.com/mail/u/0/#inbox/加邮件ID拼出。

  6. 急件提醒与日志

    urgent=true且chat_id已填时发Telegram消息(发件人+主题+一句话摘要)。最后不论走哪个分支,都向n8n Data Table插入一行:收到时间、发件人、主题、分类、是否紧急、摘要、是否建草稿、是否写台账,便于之后检索核对。

可直接复制的材料

Gemini分类提示词(System部分,本站独立编写)

{{}}占位符在n8n里用表达式替换;若只要英文摘要可把summary改为英文。本站独立编写,非原模板提示词原文。

你是一名商务邮箱助理,为{{你的名字}}工作。业务背景:{{业务描述}}。请阅读下面这封邮件,只输出一个JSON对象,不要输出其他文字,字段如下:
category:只能是 Clients、Invoices、Newsletter、Other 之一。含发票、账单、付款通知的归为Invoices;客户咨询或合作沟通归Clients;订阅推送归Newsletter;其余归Other。
summary:不超过40字的中文一句话摘要。
urgent:布尔值,涉及付款截止、服务中断、当天必须响应的请求时为true。
needs_reply:布尔值,对方明确等待回复时为true。
reply_text:needs_reply为true时给一段符合{{语气}}的中文草稿回复,否则为空字符串。
invoice:仅当category为Invoices时给出对象{issuer, number, net, vat, total, currency},金额保留数字不带符号,取不到的字段填空字符串;其余情况为null。
邮件信息:
发件人:{{From}}
主题:{{Subject}}
正文:{{Body}}

发票台账表头与映射

表头与原模板描述一致;表达式字段名需按你自己Code节点的实际输出调整。

{"sheetHeaders":["Date","Issuer","Number","Net","VAT","Total","Currency","Subject","Link to the email"],"mapping":{"Date":"{{ $json.receivedAt }}","Issuer":"{{ $json.invoice.issuer }}","Number":"{{ $json.invoice.number }}","Net":"{{ $json.invoice.net }}","VAT":"{{ $json.invoice.vat }}","Total":"{{ $json.invoice.total }}","Currency":"{{ $json.invoice.currency }}","Subject":"{{ $json.subject }}","Link to the email":"https://mail.google.com/mail/u/0/#inbox/{{ $json.messageId }}"}}

输入与输出示例

本站虚构演示数据,非模板实际运行结果;邮件ID与输出以真实运行为准。

输入

测试邮件:发件人 accounting@nordwind-demo.example,主题 Invoice NW-2041 for October hosting,正文:Hi, attached is invoice NW-2041, net 1200 EUR, VAT 228 EUR, total 1428 EUR, payment due within 14 days, please confirm receipt.

对应输出

Gemini示意输出:{"category":"Invoices","summary":"Nordwind十月托管发票NW-2041,含税1428欧元,14天内付款","urgent":false,"needs_reply":true,"reply_text":"您好,发票NW-2041已收到,我们将在期限内安排付款,谢谢。","invoice":{"issuer":"Nordwind","number":"NW-2041","net":"1200","vat":"228","total":"1428","currency":"EUR"}};台账追加一行:2026-10-05 | Nordwind | NW-2041 | 1200 | 228 | 1428 | EUR | Invoice NW-2041... | https://mail.google.com/mail/u/0/#inbox/19ab...;同时贴上AI/Invoices标签并在原线程建好草稿。

做完检查这些

  • 发一封测试发票邮件后,Gmail中出现AI/Invoices标签且邮件已挂上
  • Google Sheets台账新增一行,九列值与邮件内容对应,邮件链接点击能打开原邮件
  • 把create_drafts设为false后再次触发,不再产生草稿但分类、台账、日志照常
  • Data Table中每封处理过的邮件都有一行记录,草稿与台账标记与实际一致

容易卡住的地方

  • Gmail列表节点只返回片段,必须再取一次完整正文,否则摘要会缺内容
  • Gemini偶发输出非纯JSON,没有解析兜底时整条流程会报错中断
  • Telegram和Sheets的ID为空时对应分支必须跳过,否则凭据节点直接失败
  • 5分钟轮询有延迟,作者流程如此设计,不代表邮件能秒级处理

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Triage Gmail with Gemini, label emails, log invoices to Sheets, and send Telegram alerts
原作者
Amelqa
原始发布日期
2026-10-01T17:11:11.011Z
来源
https://n8n.io/workflows/20313