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

2026-10-04 · 原文发布日

n8n模板:Gmail收件箱自动分类并预写回复草稿

免费n8n模板:每分钟检查Gmail新未读邮件,把主题和摘要发给OpenAI,返回分类、草拟的回复和是否需要本人答复的判断。需要答复的在原会话里建好回复草稿;被判定为需本人决定的邮件打上YouDecide标签,其余打Drafted。无需答复的按广告类打Noise标签、其余打FYI归档。四个分类的定义写在系统提示词里,可按自己的收件箱情况改写,需预先建好四个Gmail标签。

原文要点

该免费n8n模板(Gilbert Losert发布于n8n模板库)每分钟轮询Gmail新未读邮件,把主题和摘要发给OpenAI,要求返回分类、草拟回复和一个“发件人是否在等答复”的标志。需要答复的邮件在原会话线程里创建Gmail回复草稿;OpenAI分类为“du”的打YouDecide标签,其余打Drafted。不需要答复的:分类为“werbung”(广告)打Noise标签,其余打FYI。四个分类定义写死在系统提示词里,可按自己收件箱改写;需在Gmail预先建好YouDecide、Drafted、FYI、Noise四个标签,并在节点里更新标签ID。凭据为Gmail OAuth2和OpenAI API key,模型需能返回JSON。

这次做成什么

在n8n里搭一条收件箱分拣流水线:每分钟检查未读邮件,让OpenAI判断分类并预写回复,需要答复的在原线程挂草稿,其余打标签归档。原模板需到n8n模板页导入;本指南给出独立重建方案和一套中文四分法系统提示词,方便你直接改成自己的分类口径。

准备什么

  • n8n实例,Gmail账号完成OAuth2授权并允许修改标签和创建草稿
  • OpenAI API key,所选模型支持JSON格式输出(可在节点里换兼容模型)
  • Gmail里已手动创建四个标签:YouDecide、Drafted、FYI、Noise,并记录各自标签ID
  • 接受每分钟一次的轮询频率及其API调用量

具体怎么做

  1. 预建标签并记录ID

    在Gmail网页版左侧“标签”里新建YouDecide、Drafted、FYI、Noise四个标签。标签ID可以在n8n的Gmail节点的Label下拉中直接选,或先用Gmail节点的Get Labels操作列出全部标签抄下ID,后面四个打标节点都要用。

  2. 建触发器与取信

    新建工作流,加Gmail Trigger节点,事件选Message Received,轮询间隔设1分钟,过滤条件加is:unread(可再加-in:spam)。凭据选你的Gmail OAuth2。练习阶段可以先点Fetch Test Event抓一封真实邮件看字段:subject、snippet、threadId、messageId、From。

  3. 接OpenAI分类与起草

    加OpenAI Chat节点,系统消息粘贴下方材料里的四分法提示词,用户消息只拼两个字段:主题={{ $json.subject }},摘要={{ $json.snippet }}。要求模型返回JSON四字段:category(decide/advertise/fyi/其他)、needs_reply(布尔)、draft_reply(中文草稿正文)、reason(一句话判断依据)。节点后接JSON解析,把结果与原始邮件字段合并。

  4. 分支一:需要答复就建草稿

    加If节点判断needs_reply为true。真分支接Gmail节点Create Draft:操作选Reply,Thread ID填{{ $json.threadId }},收件人填原From地址,正文填draft_reply。再按category打标:category为decide打YouDecide(对应原模板的“du”逻辑:需要本人拍板),其余打Drafted,表示AI已代拟。

  5. 分支二:无需答复就打标归档

    假分支里再嵌一个If:category为advertise打Noise标签并可顺手Archive(从收件箱移除);其余打FYI标签。所有打标节点操作均为Add Labels,Message ID填{{ $json.messageId }}。最后可选把邮件标记已读,避免下一轮轮询重复处理。

  6. 激活前人工抽查

    先不激活,用手动执行跑5-10封真实邮件,逐个打开Gmail草稿箱检查draft_reply语气是否可用、分类是否合理。不合适就改系统提示词里的分类定义和示例,确认稳定后再Activate。

可直接复制的材料

OpenAI四分法系统提示词(本站独立撰写,替代原“du/werbung”德文口径)

本站独立撰写的中文提示词,不是原模板提示词的翻译;分类名映射为:decide→YouDecide、advertise→Noise、fyi→FYI、其余需要答复的→Drafted。OpenAI调用按官方API计费。

你是邮件分拣与回复助理。根据用户给出的邮件主题和摘要,输出严格JSON,不要输出任何其他文字。

schema:{"category":"decide|advertise|fyi|other","needs_reply":true或false,"draft_reply":"中文回复草稿正文,不需要回复时填空字符串","reason":"30字内判断依据"}

分类定义:
- decide:发件人在等本人做决定或答复,例如询价、审批请求、约时间、明确提问。needs_reply一律为true。
- advertise:营销、促销、群发广告、陌生推销。needs_reply为false。
- fyi:通知类、账单提醒、系统自动邮件、订阅内容,发件人没有期待答复。needs_reply为false。
- other:不属于以上三类但发件人似乎期待回应的日常沟通。needs_reply按摘要判断。

draft_reply要求:150字以内,语气礼貌简洁,不承诺具体金额、日期或合同条款,不确定的写“我确认后回复您”。

测试用合成邮件批次(练习输入)

本站虚构练习数据,不来自真实收件箱;用于手动执行时对照分类是否命中预期。

[
  {"subject":"报价确认:9月服务器采购合同","snippet":"李工您好,附件是最终报价单,请确认是否按此价格走采购流程,盼周五前回复。","expected_category":"decide","expected_needs_reply":true},
  {"subject":"【限时5折】云存储年付大促最后24小时","snippet":"尊敬的用户,云存储空间限时五折,立即升级立享优惠,点击链接购买。","expected_category":"advertise","expected_needs_reply":false},
  {"subject":"您的10月话费账单已生成","snippet":"您本期账单金额为86.40元,将于15日自动扣款,详情见附件。","expected_category":"fyi","expected_needs_reply":false}
]

输入与输出示例

本站虚构演示,未实际调用OpenAI;真实草稿文字以模型当次输出为准。

输入

主题=“报价确认:9月服务器采购合同”,摘要=“李工您好,附件是最终报价单,请确认是否按此价格走采购流程,盼周五前回复。”

对应输出

OpenAI返回示意:{"category":"decide","needs_reply":true,"draft_reply":"您好,报价单已收到。我正在核对配置与预算,确认后会在周五前回复您是否可以按此价格推进采购流程。谢谢。","reason":"发件人明确要求周五前确认价格"}。随后工作流在该邮件原threadId下创建回复草稿,并给原邮件打YouDecide标签;广告类则会打Noise,账单类打FYI。

做完检查这些

  • 四个Gmail标签在节点里都能通过下拉选到,执行后标签确实出现在对应邮件上
  • 需要答复的邮件在Gmail草稿箱里生成回复草稿,且挂在原会话线程而不是新邮件
  • 广告类邮件打了Noise并被移出收件箱,账单类打了FYI且留在收件箱
  • OpenAI返回非JSON时工作流有报错分支或重试,不会把原文当草稿发出去
  • 激活后同一封邮件不会因仍属未读而被重复处理(建议处理后标记已读)

容易卡住的地方

  • 轮询间隔是1分钟,邮件量大时OpenAI调用费用会累积,可在触发器加更严的过滤条件
  • snippet只是摘要,长邮件正文截断可能导致分类偏差,重要收件箱可改成取full body
  • 原模板分类词是德文“du/werbung”,直接照搬到中文收件箱会全部落入FYI,必须按本指南改写分类定义
  • Create Draft只是草稿不会自动发送,但若你后续在Gmail误点发送,内容责任在本人,激活前务必抽查
  • 标签ID在不同Gmail账号间不通用,换账号后四个打标节点都要重新选标签

原文与作者资料 ↗

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

原文标题
Triage Gmail inbox, label emails, and draft replies with OpenAI
原作者
Gilbert Losert
原始发布日期
2026-10-04T08:34:40.527Z
来源
https://n8n.io/workflows/20399