2026-09-05 · 原文发布日
Gmail发票PDF自动归类存档入账表
这个n8n模板处理收件箱里的发票:每分钟检查Gmail新邮件,筛出带PDF附件的逐个处理,用Google Gemini提取日期、供应商、金额、税额、类别、支付方式并生成建议文件名,再按AI判断把PDF归入公司或个人对应的Google Drive文件夹,最后把提取的字段、发件人地址和文件链接追加到Google Sheets。公司名需替换成自己的以保证分类准确。
原文要点
原文是免费n8n模板(作者Murilo Costa):每分钟轮询Gmail新邮件,只在含PDF附件时继续并把多个附件拆成单条处理;用Google Gemini从每份PDF提取发票日期、供应商、金额、税额、类别、支付方式并生成建议文件名;按Gemini判断分为corporativo(公司)或pessoal(个人)两路,上传到对应Google Drive文件夹;最后把提取字段、发件人地址和Drive文件链接追加到Google Sheets,表头示例为Data da Fatura、Fornecedor、Valor、URL do Arquivo。设置要点是把提示词里的[NOME_DA_SUA_EMPRESA]换成真实公司名,并自行配置四个服务的OAuth2凭据和两个Drive目标文件夹。
这次做成什么
照着原模板的链路跑通一张测试发票:从邮件筛PDF→Gemini提取字段→判断公司/个人→上传Drive→追加Sheets行。本页提供可直接粘贴的提取提示词、一条合成发票测试数据和对应的Sheets行,先用n8n手动执行验证字段映射,再启用每分钟触发。
准备什么
- n8n近期版本,能导入模板并手动执行工作流
- Gmail、Google Drive、Google Sheets的OAuth2凭据各一份
- Google Gemini API凭据(需自行配置,模板不含密钥)
- 两个Google Drive文件夹(公司、个人各一)及一个带葡语列表头的Sheets表格
- 一张用于测试的合成发票PDF(可用本站数据自制,勿用真实客户发票)
具体怎么做
准备Sheets和Drive目标
在Google Sheets建表,第一行表头依次为Data da Fatura、Fornecedor、Valor、Impostos、Categoria、Metodo de Pagamento、Remetente、URL do Arquivo。在Drive建两个文件夹如Faturas_Corporativo和Faturas_Pessoal,分别从分享链接复制文件夹ID备用。
导入模板并配四个凭据
导入原模板后按Sticky Notes逐个挂凭据:Gmail触发节点挂Gmail OAuth2;Gemini节点挂你的Gemini凭据;两个Drive上传节点分别选公司和个人的文件夹ID;Sheets追加节点选上一步的表格和工作表。先不要激活定时触发。
替换公司名并核对提取提示词
打开Gemini提取节点的提示词,把占位符[NOME_DA_SUA_EMPRESA]替换成你的真实公司名,否则公司/个人分类会失准。可参考材料中本站重写的提示词结构核对输出字段是否为七个字段加suggested_filename,要求模型只输出JSON便于后续节点解析。
用测试邮件手动执行验证
给自己发一封带合成发票PDF的邮件(内容用材料中的测试数据),在工作流里手动执行一次Gmail轮询。检查三点:无PDF的邮件被过滤掉不继续;Gemini输出被正确解析成字段;PDF按分类进了对应Drive文件夹且文件名采用suggested_filename。
核对Sheets追加行后启用触发
确认Sheets新增一行的各列与提取字段一一对应、URL do Arquivo是可打开的Drive链接后,再把工作流切换为激活状态,由每分钟触发器正式轮询。
可直接复制的材料
发票字段提取与分类提示词(本站重写版)
本站独立编写的练习提示词,公司名「星辰办公用品公司」是虚构占位,使用时替换成你的真实公司名;原模板提示词为葡语且含[NOME_DA_SUA_EMPRESA]占位符,本站未核验其逐字内容。
你将收到一份发票PDF的内容。请提取以下字段并只输出一个JSON对象,不要输出任何解释文字:
{"data_fatura":"发票日期,YYYY-MM-DD","fornecedor":"供应商全称","valor":总金额数字,"impostos":税额数字,无则0,"categoria":"从 办公耗材/软件订阅/差旅/餐饮/设备/其他 中选一个","metodo_pagamento":"支付方式","destino":"corporativo 或 pessoal","suggested_filename":"建议文件名,格式 日期_供应商_金额.pdf,不含特殊字符"}
分类规则:供应商为「星辰办公用品公司」开具的发票记为corporativo;明显私人消费(个人餐饮、个人电商购物)记为pessoal;无法判断时记为pessoal。合成发票测试数据(制PDF用)
本站虚构的合成数据,供应商和金额均为编造,复制到文档导出为PDF即可做测试附件,不含任何真实个人信息。
发票编号:INV-2026-0412
开票日期:2026-09-01
供应商:星辰办公用品公司
项目:A4复印纸 10箱 单价45.00元
金额小计:450.00元
税额(13%):58.50元
合计:508.50元
支付方式:对公转账输入与输出示例
本站虚构演示,未真实调用Gemini或上传Drive,链接为示意格式非真实文件。
输入
向测试Gmail发一封邮件,主题「9月办公用品发票」,附件为上述合成发票PDF,发件人为ap@example-supplier.cn对应输出
Gemini输出示意:{"data_fatura":"2026-09-01","fornecedor":"星辰办公用品公司","valor":508.50,"impostos":58.50,"categoria":"办公耗材","metodo_pagamento":"对公转账","destino":"corporativo","suggested_filename":"2026-09-01_星辰办公用品公司_508.50.pdf"}。PDF上传至Faturas_Corporativo文件夹;Sheets追加行:2026-09-01 | 星辰办公用品公司 | 508.50 | 58.50 | 办公耗材 | 对公转账 | ap@example-supplier.cn | https://drive.google.com/file/d/示意链接/view做完检查这些
- 无PDF附件的邮件在过滤节点被拦截,不进入提取步骤
- Gemini输出是合法JSON且包含destino和suggested_filename两个键
- 公司发票PDF进入Faturas_Corporativo文件夹且文件名与suggested_filename一致
- Sheets追加行的八列与提取字段、发件人、Drive链接一一对应无错位
- 提示词中的公司名已替换为真实公司名而非占位符
容易卡住的地方
- 忘记替换[NOME_DA_SUA_EMPRESA]会让公司/个人分类整体失效,这是原文特别强调的步骤
- 模板按每分钟轮询,频繁触发会消耗Gmail API配额和Gemini调用量,两者可能各自计费
- Gemini对扫描件图片型PDF的提取准确率没有保证,模糊字段需人工抽查
- 表头列名与追加字段不匹配时会出现整行错位,建表时逐字核对葡语表头
- 凭据和文件夹ID都不包含在模板里,导入后四个服务全部要自己配OAuth2
- 多附件邮件会被拆成多条分别处理,同一封邮件可能产生多行记录,属预期行为
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Capture, classify, and log Gmail PDF invoices with Gemini and Google Drive
- 原作者
- Murilo Costa
- 原始发布日期
- 2026-09-04T22:29:08.413Z
- 来源
- https://n8n.io/workflows/19223