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

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发票台账
  • 一个用于接收提醒与周报的邮箱地址,以及明确的高价值金额阈值

具体怎么做

  1. 准备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,并选中这张表和这个工作表标签。

  2. 配置Gmail触发与附件提取

    添加Gmail Trigger节点,连接Gmail OAuth2,事件选收到新邮件,过滤条件设为仅未读且包含附件的邮件。其后接下载附件的步骤取得PDF二进制,再接PDF文本提取步骤,把发票正文转成纯文本供模型处理。

  3. 用OpenAI抽取结构化字段

    接OpenAI Chat Model(原模板默认gpt-5-mini,可换成你账号可用的模型),使用本页artifacts中的抽取提示词,要求模型只返回JSON:供应商、发票号、开票日、到期日、币种、总额、税额、费用分类和一句话摘要。之后接一个规范化步骤:把金额转数字、日期统一为YYYY-MM-DD。

  4. 按阈值分优先级并记录元信息

    在规范化后比较total_amount与高价值阈值(默认1000,可在该步骤中改),高于等于阈值记为High,否则Normal;同时记录发件人email_from与收到时间received_at。

  5. 追加台账并汇总现金流

    追加一条记录到Google Sheets;随后读取整张台账,用代码或汇总步骤计算两个指标:当月累计支出(invoice_date在本月的total_amount之和)和未来30天应付(due_date在未来30天内的total_amount之和)。

  6. 发送提醒与周报分支

    用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