2026-10-06 · 原文发布日
自动追踪邮件里的承诺并生成催办草稿
n8n模板:每小时扫一次Gmail收件箱,OpenAI判断邮件里有没有具体承诺或兑现了之前的承诺;新承诺写入Google Sheets的Commitments台账,兑现则把对应条目标记完成。每天早八点做汇总,把到期和逾期事项分类,让OpenAI拟好跟进邮件存进Chase-Queue表等待你批准,并发日报邮件;逾期三天以上的事项直接升级提醒且只提醒一次。
原文要点
Vinh Le发布的免费n8n模板:每小时运行,08:00(按工作流时区)走每日汇总,其余小时做收件箱扫描。扫描时取未处理的Gmail邮件,由OpenAI判断是'新承诺'还是'兑现了旧承诺':新承诺按去重键写入Google Sheets的Commitments台账,兑现则把最早一条匹配的未完成条目标记done;处理过的邮件打上promises-processed标签防止重复;AI输出无法解析或缺截止日期时邮件提醒主人。每日汇总把活跃事项分为今日到期、逾期、逾期3天以上(升级,只提醒一次)、正常、已关闭,为到期和逾期项起草跟进邮件存进Chase-Queue表待批准,并发日报。模板含一次性setup lane可自动建表。
这次做成什么
搭一个'邮件承诺台账':自动登记别人在邮件里答应的事,每天早上给你一份到期清单和待批准的催办草稿。用本站合成邮件文本先验证提取逻辑,再接真实收件箱。
准备什么
- n8n实例与Gmail OAuth2凭据
- Google Sheets OAuth2凭据
- OpenAI API密钥
- 可修改Gmail标签的权限(流程自动打标签防重复)
具体怎么做
运行一次性setup lane建表
导入模板后先手动执行setup lane,它会自动创建名为Promise Ledger — Follow-ups的表格,含Commitments与Chase-Queue两个标签页。执行完从输出复制spreadsheet ID,确认不需要演示lane后将其删除。
配置Gmail标签与Workflow Config
在Gmail后台新建标签promises-processed,通过Gmail API或模板提示取得其label ID。打开Workflow Config节点,粘贴spreadsheet ID、label ID和你自己的邮箱地址(owner email),并把工作流时区设为你希望早八点触发汇总的时区。
用合成邮件验证提取提示词
激活前,先在OpenAI提取节点后临时用Set节点喂入下方合成邮件文本,检查模型是否输出{type:promise}并带截止日期、负责人和去重键;再喂一封'已完成'邮件确认输出{type:fulfillment}能匹配到台账中最旧的未完成条目。验证通过再连真实收件箱。
理解每日汇总与批准队列
08:00的汇总把每条活跃承诺分类,只为今日到期和逾期项起草跟进邮件写入Chase-Queue(状态pending,需要你人工批准后才可手动发出);逾期3天以上直接升级提醒你本人并标记escalated,只提醒一次。日报邮件列出全部到期/逾期/升级项。
可直接复制的材料
OpenAI承诺提取提示词
本站独立撰写,与原文描述的提取行为一致,替换提取节点提示词使用。
你是邮件承诺提取助手。输入一封邮件的正文与已有未完成承诺清单。判断该邮件属于哪一类,只输出JSON:
1) 含具体承诺:{"type":"promise","summary":"承诺事项一句话","owner":"承诺人邮箱","due_date":"YYYY-MM-DD或null","dedupe_key":"承诺人+事项关键词"}
2) 兑现了已有承诺:{"type":"fulfillment","matched_dedupe_key":"匹配的去重键"}
3) 两者都不是:{"type":"none"}
规则:只有含明确行动和可辨认时间(含'下周三'等相对时间,按邮件日期换算)才算promise;模糊的'回头聊'不算;无法确定日期时due_date填null。合成测试邮件两封
本站虚构邮件,演练时逐封喂入提取节点,验证promise登记与fulfillment核销。
[
{"from": "li.wei@partner-example.com", "date": "2026-10-05", "body": "您好,报价单我这边确认没问题,我会在10月9日前把盖章合同寄回给您。"},
{"from": "li.wei@partner-example.com", "date": "2026-10-09", "body": "合同今天已经用顺丰寄出,单号SF123456789,请注意查收。"}
]输入与输出示例
本站虚构演示,展示提取与汇总节点的预期行为,非模板实测结果。
输入
第一封合成邮件:li.wei在2026-10-05写'我会在10月9日前把盖章合同寄回';四天后第二封写'合同今天已经寄出,单号SF123456789'。对应输出
第一封提取结果:{"type":"promise","summary":"寄回盖章合同","owner":"li.wei@partner-example.com","due_date":"2026-10-09","dedupe_key":"li.wei+盖章合同"},Commitments新增一行。第二封:{"type":"fulfillment","matched_dedupe_key":"li.wei+盖章合同"},该条标记done。若合同未寄出,10月9日08:00汇总会把它列入'今日到期'并在Chase-Queue生成一封pending状态的催办草稿,日报邮件同步提醒。做完检查这些
- 同一承诺邮件被重复扫描时因Gmail标签不会二次登记
- 无截止日期的承诺触发给主人的复核提醒邮件而不是静默丢弃
- 逾期3天以上的条目标记escalated后下一轮不再重复升级提醒
- Chase-Queue里的草稿保持pending状态,不会被自动发出
容易卡住的地方
- label ID必须取自Gmail系统而非标签显示名,填错会导致打标失败进而重复处理
- 相对日期换算依赖邮件日期,转发链里日期混乱时due_date可能算错
- fulfillment匹配的是最旧一条未完成承诺,同一联系人有多个相似承诺时可能核销错行
- 工作流时区决定08:00汇总的实际触发时刻,部署在UTC服务器上要换算
- Gmail读取授权范围不足时扫描节点会直接报错
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Track and chase email promises with Gmail, Google Sheets and OpenAI
- 原作者
- Vinh Le
- 原始发布日期
- 2026-10-06T05:37:52.393Z
- 来源
- https://n8n.io/workflows/20510