2026-09-04 · 原文发布日
Gmail邮件自动分类、起草与归档分流
流程每分钟轮询Gmail新邮件,可选先查外部接口去重;Claude把邮件分成紧急、重要、普通、推广四类并返回摘要、待办、是否需回复和情绪。推广邮件打标签归档并记入Google Sheets,其余三类由Claude起草回复存进原线程的草稿箱;紧急和重要邮件另发Slack提醒并在Airtable建任务,普通邮件只记表格,最后回报接口标记已处理。
原文要点
原模板每分钟轮询Gmail新邮件,提取message ID、thread ID、发件人、主题、正文和收件日期,可先请求外部去重接口避免重复处理。Anthropic Claude将邮件分为Urgent/Important/Normal/Promotional四类并输出摘要、待办、是否需回复和情绪的JSON。推广邮件打标签归档并写入Google Sheets;其余三类由Claude起草回复存入原线程草稿箱;紧急和重要另发Slack并在Airtable建任务,普通邮件只记表,最后调接口标记已处理。模板免费,需自行替换渠道ID、Base ID、表格ID等占位符。
这次做成什么
在n8n中搭一条Gmail收件箱自动分流流水线:新邮件被Claude分类后按类别走向归档、起草回复、Slack提醒或建任务,全程自动但保留人工发送草稿的把关环节。
准备什么
- 一个可授权OAuth2的Gmail账号及n8n中的Gmail凭据
- Anthropic API Key,以HTTP Header凭据形式配置(x-api-key、anthropic-version、content-type)
- Slack OAuth2凭据及两个频道ID(紧急频道、通用频道)
- Airtable账号,已建含Due、From、Title、Status、Summary、Category、Action Items字段的任务表
- Google Sheets凭据,已建Promotional Log和Normal Log两个工作表
- 可选:一个按messageId去重的Supabase或Airtable HTTP接口
具体怎么做
接入Gmail触发器
新建工作流,添加Gmail Trigger节点,选择已授权的Gmail OAuth2凭据,事件选Message Received,轮询间隔设为每分钟。先点Execute once手动拉一封测试邮件,确认输出中含message ID、thread ID、From、Subject、正文和日期字段,后续节点都按这些字段名做映射。
配置去重检查(可选)
在触发器后加HTTP Request节点,GET请求你的去重服务并带上{{$json.id}}作为messageId查询参数。用IF节点判断返回结果:已存在则直接结束分支,不存在则继续。没有去重服务时可暂时删除此分支,但要接受重复执行的风险。
让Claude分类并输出JSON
添加HTTP Request节点POST到Anthropic消息接口,Headers配置x-api-key、anthropic-version、content-type三项,Body中把邮件主题和正文拼进提示词(见下方材料中的分类提示词),要求模型只返回JSON。其后接Code或Set节点解析JSON,取出category、summary、action_items、needs_reply、sentiment五个字段。
按类别分四条路由
用Switch节点按category分流:Promotional分支调用Gmail节点打标签并归档,再把发件人、主题、摘要追加到Google Sheets的Promotional Log;Urgent分支先发Slack到紧急频道、再在Airtable建任务(Due、From、Title、Status、Summary、Category、Action Items逐字段映射);Important分支同Urgent但发通用频道;Normal分支只写Normal Log表。
起草回复存入原线程草稿
Urgent、Important、Normal三条分支汇合后,再加一次Claude请求,把原文、摘要和待办喂给起草提示词(见材料),得到回复正文。然后用Gmail节点创建Draft,Thread ID填{{$json.threadId}},Subject填Re: 加原主题,保证草稿挂在原线程里而不是新邮件。
标记已处理并测试
末尾加HTTP Request节点把messageId POST给去重服务标记已处理。用一封自己发给自己的测试邮件手动执行整条流程,逐项核对Slack消息、Airtable记录、Sheets行和Gmail草稿是否都按类别正确落位。
可直接复制的材料
Claude邮件分类提示词
本站独立编写,双花括号处对应Gmail Trigger节点输出字段名,请按你的实际节点字段替换;分类规则可按业务调整
你是邮件分类助手。请阅读下面的邮件,完成分类并只返回一个JSON对象,不要输出任何其他文字。
分类规则:
- Urgent:需要在24小时内处理,涉及系统故障、截止临近、投诉升级、资金或安全事件
- Important:重要但不紧急,涉及合同、会议安排、客户咨询、内部审批
- Normal:日常信息,无需立即行动,如通知、抄送、常规往来
- Promotional:营销推广、订阅 Newsletter、广告促销
返回JSON结构(字段名和取值严格照此):
{"category":"Urgent|Important|Normal|Promotional","summary":"50字以内的中文摘要","action_items":["待办1","待办2"],"needs_reply":true,"sentiment":"positive|neutral|negative"}
邮件主题:{{$json.Subject}}
发件人:{{$json.From}}
邮件正文:{{$json.snippet}}Claude回复起草提示词
本站独立编写,接入起草节点时确认上游字段名一致;情绪为negative时可在提示词里加安抚语气要求
你是邮件回复起草助手。请根据下面的原始邮件和分类结果,起草一封中文回复。
要求:
1. 语气专业、简洁,200字以内
2. 逐条回应对方提出的问题和待办事项
3. 不确定的信息不要编造,用"待确认"标注
4. 只输出回复正文,不要输出主题行和签名以外的任何说明
原邮件主题:{{$json.Subject}}
原邮件正文:{{$json.snippet}}
分类:{{$json.category}}
摘要:{{$json.summary}}
待办:{{$json.action_items}}Airtable任务字段映射表
本站独立示例,Due用当天或次日日期,Action Items由数组拼接成分号分隔字符串,表结构须先在Airtable手工建好
{"Due":"2026-09-10","From":"sender@example.com","Title":"Re: 服务器告警处理","Status":"To Do","Summary":"生产环境API响应超时,需要排查","Category":"Urgent","Action Items":"排查API超时原因;回复客户处理进度"}输入与输出示例
本站虚构演示输入与输出,数字和字段为示意,非实际运行结果
输入
测试邮件:发件人li.wei@example.com,主题"线上支付接口从昨晚开始间歇性超时",正文说明多个客户反馈支付失败、希望今天内给出处理方案,情绪明显焦急。对应输出
Claude分类节点输出{"category":"Urgent","summary":"客户反馈支付接口间歇性超时,要求今日给出方案","action_items":["排查支付接口超时原因","回复客户处理时间表"],"needs_reply":true,"sentiment":"negative"};随后Slack紧急频道收到提醒,Airtable新增一条Status为To Do、Category为Urgent的任务,Gmail原线程下出现一封待确认回复草稿。做完检查这些
- 手动执行时Gmail Trigger能拉到含threadId和messageId的完整邮件数据
- Claude返回的内容能被解析出category、summary等五个字段且无多余文字
- 四类邮件各自走对分支:推广进归档和表、紧急进Slack和Airtable、普通只记表
- 生成的草稿挂在原邮件线程下而不是成为独立新邮件
- 同一封邮件第二次轮询时被去重接口拦截不再重复处理
容易卡住的地方
- Anthropic请求头缺anthropic-version会直接报错,三个Header缺一不可
- Airtable建表字段名与映射列不完全一致时写入会静默失败或报错
- Gmail草稿节点不填Thread ID会生成独立草稿,破坏原线程串联的设计
- 去掉去重环节后,轮询重启或执行历史清空会导致旧邮件被重复处理
- Claude偶尔在JSON外包裹解释文字,需在解析节点做容错提取
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Triage and reply to Gmail with Claude and log priority alerts to Slack
- 原作者
- Bhaskar Gorati
- 原始发布日期
- 2026-09-04T05:19:51.409Z
- 来源
- https://n8n.io/workflows/19183