2026-09-08 · 原文发布日
Gmail发票自动入账并预测应付现金流
流程监听Gmail中未读且带PDF附件的发票邮件,提取附件文本后用OpenAI(默认gpt-5-mini)抽取供应商、金额、到期日等结构化字段并分类,按总额划分高/普通优先级后写入Google Sheets,再汇总当月支出和未来30天应付金额发邮件提醒,高价值发票单独走审批提醒;每周一早上还自动生成应付账款周报。
原文要点
原模板(Jeffy Thomas)监听Gmail中未读且带PDF附件的邮件,下载附件并提取PDF文本,用OpenAI Chat Model(默认gpt-5-mini)抽取结构化发票字段、分类并生成一句话摘要;随后按发票总额划分High/Normal优先级(默认阈值1000),把记录追加到Google Sheets,再读取整张台账计算当月累计支出和未来30天应付金额,用Gmail发送现金流提醒邮件,高价值发票走单独的审批提醒;另有每周一上午9点的定时分支,读取台账生成含总额、分类占比和7天内到期发票的HTML周报并邮件发出。Google Sheets表头示例:vendor、invoice_number、invoice_date、due_date、currency、total_amount、tax_amount、category、priority、summary、email_from、received_at。
这次做成什么
在n8n中搭一条发票入账流:Gmail收到带PDF的发票邮件后自动抽取字段、按金额分优先级、写入表格台账,汇总当月支出与30天内应付后邮件提醒,高价值发票单独发审批提醒;并用一个定时分支每周生成应付周报。以下提示词、字段映射和测试数据为本站独立设计的可照做方案,节点名称以原模板为准,具体界面参数需在你的n8n实例中核对。
准备什么
- 一个可用的n8n实例(云端或自托管),并能导入或重建该工作流节点
- Gmail账号及OAuth2凭据,触发器与发送邮件两处都要连接
- OpenAI API凭据,且Chat Model节点所用模型账号内有访问权限
- Google账号及OAuth2凭据,已建好一张含指定表头的Google Sheets发票台账
- 一个用于接收提醒与周报的邮箱地址,以及明确的高价值金额阈值
具体怎么做
准备Google Sheets台账
新建一张Google Sheets,工作表第一行依次填入表头:vendor、invoice_number、invoice_date、due_date、currency、total_amount、tax_amount、category、priority、summary、email_from、received_at。在n8n的每个Google Sheets节点(追加与读取)中连接Google OAuth2,并选中这张表和这个工作表标签。
配置Gmail触发与附件提取
添加Gmail Trigger节点,连接Gmail OAuth2,事件选收到新邮件,过滤条件设为仅未读且包含附件的邮件。其后接下载附件的步骤取得PDF二进制,再接PDF文本提取步骤,把发票正文转成纯文本供模型处理。
用OpenAI抽取结构化字段
接OpenAI Chat Model(原模板默认gpt-5-mini,可换成你账号可用的模型),使用本页artifacts中的抽取提示词,要求模型只返回JSON:供应商、发票号、开票日、到期日、币种、总额、税额、费用分类和一句话摘要。之后接一个规范化步骤:把金额转数字、日期统一为YYYY-MM-DD。
按阈值分优先级并记录元信息
在规范化后比较total_amount与高价值阈值(默认1000,可在该步骤中改),高于等于阈值记为High,否则Normal;同时记录发件人email_from与收到时间received_at。
追加台账并汇总现金流
追加一条记录到Google Sheets;随后读取整张台账,用代码或汇总步骤计算两个指标:当月累计支出(invoice_date在本月的total_amount之和)和未来30天应付(due_date在未来30天内的total_amount之和)。
发送提醒与周报分支
用Gmail发送节点把两个现金流指标发给收件人;priority为High时改走高价值审批提醒邮件(主题和内容单独写)。另建Schedule Trigger(每周一上午9点)→读取台账→生成含总额、分类占比、7天内到期发票的HTML表格→Gmail发送的独立分支。
可直接复制的材料
发票字段抽取提示词(粘贴到OpenAI节点)
本站独立编写。{{ $json.pdfText }}是示意占位,请替换为你工作流中PDF文本字段的实际表达式;分类清单可自行增删,但要和后续汇总口径一致。
你是发票信息抽取助手。从下面的发票文本中抽取字段,只输出一个JSON对象,不要输出任何其他文字。字段要求:
vendor:供应商名称(字符串)
invoice_number:发票号(字符串,找不到填空字符串)
invoice_date:开票日期,格式YYYY-MM-DD
due_date:付款到期日,格式YYYY-MM-DD
currency:币种代码,如USD、CNY
total_amount:含税总额(数字,不带千分位)
tax_amount:税额(数字,没有则为0)
category:费用分类,只能从 office_supplies、software、travel、utilities、services、other 中选一个
summary:用一句中文概括这张发票
发票文本:
{{ $json.pdfText }}发票台账首行示例数据(合成CSV)
本站虚构的合成测试数据,供应商与邮箱均为占位。可用于先手动填入台账验证汇总与周报逻辑,1356.00大于默认阈值1000应判High,499.00应判Normal。
vendor,invoice_number,invoice_date,due_date,currency,total_amount,tax_amount,category,priority,summary,email_from,received_at
恒达办公用品,INV-2026-0912,2026-09-05,2026-10-05,CNY,1356.00,156.00,office_supplies,High,采购打印纸与墨盒一批,billing@hengda.example,2026-09-06T09:12:00
云启软件,YS-8831,2026-09-08,2026-09-22,CNY,499.00,0.00,software,Normal,年度协作工具续费,invoice@yunqi.example,2026-09-08T14:40:00优先级与现金流汇总的判断口径
本站按原文口径整理的配置说明,不是可导入的n8n工作流文件。阈值、周报时间与汇总范围均可在原模板对应步骤中修改。
{
"highValueThreshold": 1000,
"priorityRule": "total_amount >= highValueThreshold 时 priority=High,否则 Normal",
"monthToDateSpend": "invoice_date 落在当前自然月内的所有 total_amount 求和",
"dueNext30Days": "due_date 介于今天与今天+30天之间且未标记付款的 total_amount 求和",
"weeklyDigest": {"schedule": "每周一 09:00", "include": ["当月累计支出", "各category占比", "未来7天内到期的发票清单"]}
}输入与输出示例
本站虚构演示,未实际调用OpenAI或Gmail;日期窗口以2026-09-08为“今天”推算。
输入
合成测试邮件:发件人 billing@hengda.example,主题“9月发票 INV-2026-0912”,附件PDF正文含:恒达办公用品,发票号INV-2026-0912,开票2026-09-05,到期2026-10-05,合计¥1356.00(税额¥156.00),内容为打印纸与墨盒采购。台账中另有9月软件费499.00(到期日2026-10-20,在30天窗口之外)和9月差旅800.00(到期日2026-10-31,在30天窗口之外)。对应输出
抽取JSON示意:{"vendor":"恒达办公用品","invoice_number":"INV-2026-0912","invoice_date":"2026-09-05","due_date":"2026-10-05","currency":"CNY","total_amount":1356.00,"tax_amount":156.00,"category":"office_supplies","summary":"采购打印纸与墨盒一批"}。因1356.00≥1000,priority=High,走审批提醒邮件。台账追加后当月累计支出=1356+499+800=2655.00元,未来30天应付(到期日在窗口内)=1356.00元,提醒邮件正文含这两个数字。做完检查这些
- 给Gmail触发器发送一封带PDF附件的测试邮件后,Google Sheets台账新增一行,12个表头字段全部有值
- 总额1356.00的测试发票priority为High且收到审批提醒邮件,499.00的为Normal且只收普通通知
- 提醒邮件中当月累计支出等于台账本月total_amount手工求和,30天应付金额与到期日筛选结果一致
- 周一9点定时分支生成的HTML周报含当月总额、分类占比和未来7天到期清单,且成功发到指定邮箱
容易卡住的地方
- Gmail触发器与发送节点要分别连接OAuth2,漏连任一处会导致监听不到或发不出
- OpenAI Chat Model默认gpt-5-mini,你的API账号若无该模型权限需在节点中换成可用模型
- Sheets表头必须与追加字段完全一致,大小写或拼写不一致会写入失败或错位
- 高价值阈值默认1000且不带币种判断,多币种发票混用时直接比较会误判优先级
- PDF若是扫描图片而非文本层,文本提取结果为空,抽取字段会全空,需另接OCR(原文未含此节点)
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Process and forecast AP invoices from Gmail with OpenAI and Google Sheets
- 原作者
- Jeffy Thomas
- 原始发布日期
- 2026-09-08T13:27:46.872Z
- 来源
- https://n8n.io/workflows/19392