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

2026-09-29 · 原文发布日

n8n自动核对GST发票与GSTR-2B并起草催办邮件

这个免费n8n模板每月15日上午自动跑印度GST进项发票核对:按设定查询条件搜Gmail里的发票邮件、下载PDF附件逐张处理,用OpenAI解析GSTIN、发票号日期、应税金额和税额字段,跳过非税票和重复票;再读Google Sheets里的GSTR-2B页,按供应商GSTIN加发票号匹配、税额容差兜底,标记缺票、税额不符、抬头开错等问题,结果写回对账页,向财务邮箱发ITC风险汇总,并按供应商分组生成催办邮件存为Gmail草稿待人工发送。

原文要点

这是一个免费的n8n模板,每月15日上午10点自动运行:按配置的Gmail查询条件搜索发票邮件并下载PDF附件,逐张用OpenAI解析GSTIN、发票号/日期、应税金额及IGST/CGST/SGST字段,跳过非税票与重复票;再读取Google Sheets中的GSTR-2B页,按供应商GSTIN加发票号匹配,税额差在容差内也可兜底匹配;对缺票、税额不符、供应商GSTIN无效、买方GSTIN开错等问题打标,写回Reconciliation页,向财务邮箱发HTML格式ITC风险汇总,并按供应商分组用OpenAI起草催办邮件存为Gmail草稿。需要Gmail、Google Sheets、OpenAI三组凭据。

这次做成什么

用该模板搭一条每月自动核对的流水线:把练习用发票PDF放入测试Gmail邮箱,跑通“解析→对账→写表→汇总邮件→催办草稿”全流程,并用自己构造的含缺票和税额差的数据验证标记逻辑。

准备什么

  • 一个n8n实例(云端或自托管)并能导入该免费模板
  • 测试用Gmail账号并完成Gmail OAuth2授权,不与真实财务邮箱混用
  • Google Sheets OAuth2授权及一个含GSTR-2B与Reconciliation两个页的测试表格
  • OpenAI API密钥(提取与起草两个节点共用,会实际计费)

具体怎么做

  1. 导入模板并配置规则参数

    在n8n导入工作流20089后,打开开头的规则设置节点,填入companyName、companyGSTIN(15位格式如27ABCDE1234F1Z5)、accountsEmail(财务收件地址)、taxTolerance(税额容差,建议先设1表示±1卢比)和returnPeriod(申报期如092026),并把Gmail搜索查询改为符合你发票到达方式的条件,例如 has:attachment filename:pdf subject:(invoice OR tax) after:2026/09/01。

  2. 准备Google Sheets两个页

    建一个测试表格,GSTR-2B页至少含supplier_gstin、invoice_number、invoice_date、taxable_value、igst、cgst、sgst列;Reconciliation页留空由流程写入。把表格ID分别填进两个Google Sheets节点,替换模板中的YOUR_GOOGLE_SHEET_ID占位,并为两个节点选择对应的页名。

  3. 连接三个凭据

    在Credentials中新建Gmail OAuth2(需要搜索邮件、发汇总邮件、建草稿权限)、Google Sheets OAuth2、OpenAI API Key三个凭据,逐一挂到对应节点。注意发票正文会发送给OpenAI,先确认公司数据政策允许,测试阶段只用虚构发票。

  4. 投放测试发票并手动跑一次

    往测试Gmail邮箱发3封带PDF附件的邮件:2封能在GSTR-2B表里匹配到(其中1封税额差在容差内),1封在表中不存在。GSTR-2B表里再放1条没有对应邮件的记录。手动执行工作流,观察PDF拆分、OpenAI提取、匹配分支的输出。

  5. 核对产出

    打开Reconciliation页确认每张票的状态(matched、missing_in_2b、tax_mismatch等)和那条“表里有票但没邮件”的记录;检查财务邮箱收到的HTML汇总里缺票数量和ITC风险金额;再到Gmail草稿箱看是否按供应商分组生成了催办草稿,确认草稿未被自动发送。

可直接复制的材料

发票字段提取提示词(本站独立编写,挂到提取节点)

本站示例提示词,需按模板节点的输入变量名调整pdfText占位

你是印度GST发票字段提取器。从下面的发票PDF文本中提取字段,只返回JSON,不要解释。字段:supplier_gstin(15位)、buyer_gstin、invoice_number、invoice_date(YYYY-MM-DD)、taxable_value(数字)、igst、cgst、sgst(数字)。如果不是税务发票(如报价单、收据),返回{"is_tax_invoice":false}。否则返回{"is_tax_invoice":true, ...上述字段}。发票文本:{{ $json.pdfText }}

供应商催办邮件起草提示词(本站独立编写)

本站示例提示词,变量名需与模板分组节点输出对齐

你是财务对账专员。以下是与供应商{{ $json.vendorName }}(GSTIN: {{ $json.supplierGstin }})在申报期{{ $json.returnPeriod }}的对账问题清单:{{ $json.issueList }}。请起草一封不超过120词的英文邮件:礼貌说明这些发票在GSTR-2B中缺失或税额不符、可能造成ITC损失,请求对方在5个工作日内核对并在GST门户修正或重新开票。只输出邮件正文,语气专业。

GSTR-2B测试页CSV(本站虚构数据)

第三条SV-88故意不投放邮件,用于验证“表中有票无邮件”分支

supplier_gstin,invoice_number,invoice_date,taxable_value,igst,cgst,sgst
27AAKFL2345M1Z2,INV-1021,2026-09-05,50000,9000,0,0
29PQRTS7788K1Z4,BL-447,2026-09-12,20000,0,1800,1800
07XYZAB9001Q1Z8,SV-88,2026-09-18,12000,2160,0,0

规则参数示例配置

全部为虚构练习值,正式使用前替换为真实公司信息并确认申报期逻辑

{"companyName":"Demo Textiles Pvt Ltd","companyGSTIN":"27ABCDE1234F1Z5","accountsEmail":"accounts-demo@example.com","taxTolerance":1,"returnPeriod":"092026","gmailQuery":"has:attachment filename:pdf subject:(invoice OR tax) after:2026/09/01"}

输入与输出示例

本站虚构演示,非模板实际运行结果,金额按虚构数据计算

输入

测试邮箱收到供应商GSTIN为27AAKFL2345M1Z2的发票INV-1021,应税金额50000、IGST 9000;GSTR-2B表中同供应商同票号记录的IGST为8990,容差设为1。另有一张SV-88只在表中存在没有邮件。

对应输出

Reconciliation页出现两行:INV-1021标记tax_mismatch(差10,超出容差1);SV-88标记missing_email_invoice。财务汇总邮件显示ITC at risk合计约11160卢比(SV-88的2160加INV-1021的9000);Gmail草稿箱生成一封发给27AAKFL2345M1Z2供应商的催办草稿和一封发给SV-88供应商的草稿,均待人工发送。

做完检查这些

  • Gmail搜索节点能按设定查询条件返回测试邮件,且每个PDF附件被拆成独立条目带发件人上下文
  • OpenAI提取节点对报价单类附件返回is_tax_invoice为false并被跳过,不产生对账记录
  • 税额差在容差内的发票标记为匹配,超出容差的标记tax_mismatch并进入汇总邮件
  • 催办邮件只生成Gmail草稿而不自动发送,且按供应商分组每个供应商一封

容易卡住的地方

  • 模板按供应商GSTIN加发票号匹配,发票号大小写或前缀空格不一致会导致误判缺票,投放测试数据前先统一格式
  • 买方GSTIN开错(发票抬头不是本公司GSTIN)会被标记,测试数据里别把buyer_gstin写成别的值除非专门验证该分支
  • OpenAI按调用量计费,PDF页数多时单张成本上升,测试期用小附件
  • 作者页面未说明PDF为扫描件图片时是否可用,需先在原模板核对提取节点是否支持OCR
  • 每月15日10点的调度基于n8n实例时区,自托管时确认服务器时区设置

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Reconcile GST invoices from Gmail with GSTR-2B using Google Sheets and OpenAI
原作者
Rahul Joshi
原始发布日期
2026-09-28T19:48:26.378Z
来源
https://n8n.io/workflows/20089