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

2026-09-24 · 原文发布日

n8n 模板:供应商发票自动分流给应付账款团队

这个免费 n8n 工作流通过 webhook 接收发票提交(invoice_id、供应商名、发票文本),先拒收缺文本的提交并邮件告知原因,再用 Jev Classification 核查 PO 号、金额、供应商身份、银行信息、币种等完整性,据此分流到待付款、向供应商补件或人工审核三条路径,结果写入 Google Sheets。就绪路径还会查重:重复发票走 Telegram 提醒,否则邮件通知 AP 做三方匹配。每天 17 点再用 OpenAI 汇总各路径数量,生成积压简报邮件给财务团队。

原文要点

n8n.io/workflows/19907是作者Khairul Muhtadin发布的免费模板:webhook接收invoice_id、vendor_name、invoice_text;空文本直接拒收并用Gmail告知;可用文本交给Jev Classification核查PO号、金额、供应商身份、银行信息、币种与完整性评分;据此分流到待付款、供应商补件或人工审核三条路径并写入Google Sheets“Invoice Intake”页;就绪路径还会查重,重复走Telegram提醒,否则Gmail通知AP做三方匹配;每天17:00用OpenAI(LangChain agent)汇总各路径数量并邮件发送积压简报。

这次做成什么

在自有n8n实例上复刻这条发票分流流水线:webhook收单→完整性核查→三路分流→写表→查重通知→每日简报,并用一条合成发票数据跑通全流程。

准备什么

  • 一个可创建凭据的n8n实例(自托管或云端)
  • Jev Classification(TypeSafe)、Google Sheets OAuth2、Gmail OAuth2、Telegram、OpenAI五套凭据
  • 一个含“Invoice Intake”工作表的Google Sheets文档及其文档ID
  • 可发送POST请求的工具(curl或Postman)用于测试webhook

具体怎么做

  1. 部署模板并配置webhook

    在n8n.io/workflows/19907页面将免费模板导入你的工作区(模板免费,OpenAI等模型调用可能另计费)。复制webhook节点的生产URL,确认它接收POST且body含invoice_id、vendor_name、invoice_text三字段。

  2. 建立Google Sheets日志表

    新建Google Sheets文档,建名为“Invoice Intake”的工作表,首行写入列:invoice_id、vendor_name、route、status、routed_at,把文档ID填入工作流的Sheets节点并绑定OAuth2凭据。

  3. 配置核查与分流逻辑

    为Jev Classification节点添加TypeSafe凭据,核查项为:PO/参考号是否存在、金额是否存在、供应商身份是否存在、银行信息是否存在、币种、总体完整性评分。按模板规则解析结果生成缺失项清单与路由决定:ready_for_payment、vendor_follow_up、human_review三选一。

  4. 配置通知与查重

    在Gmail节点把占位邮箱ap-team@yourcompany.com和vendor-billing@example.com换成你的测试邮箱;Telegram节点填入测试chat ID。就绪路径的分支保持模板逻辑:先在“Invoice Intake”表查invoice_id重复,重复发Telegram,否则发Gmail通知排队三方匹配。

  5. 用合成数据端到端测试

    先POST一条缺invoice_text的请求验证拒收邮件;再POST下方完整合成发票验证分流写表与邮件;同一invoice_id再POST一次验证Telegram重复提醒;最后手动触发17:00定时分支(或用测试触发)检查OpenAI简报邮件。

可直接复制的材料

webhook测试请求体(合成发票)

本站编写的合成测试数据,供应商与银行信息均为虚构;字段名与模板webhook要求一致。

{
  "invoice_id": "INV-2026-0417",
  "vendor_name": "Acme Office Supplies Ltd.",
  "invoice_text": "Invoice INV-2026-0417\nVendor: Acme Office Supplies Ltd.\nPO Reference: PO-8842\nAmount: 3,450.00\nCurrency: USD\nBank: First Test Bank, Account ****2210, SWIFT FTBKUS33\nDue date: 2026-10-15"
}

“Invoice Intake”工作表列结构

本站按原文描述整理的列方案;模板实际写入的字段可能更多,部署后以对齐模板节点的列为准。

工作表名: Invoice Intake
首行列(按顺序):
invoice_id | vendor_name | route | status | routed_at
取值约定:
route ∈ {ready_for_payment, vendor_follow_up, human_review}
status ∈ {queued_three_way_match, awaiting_vendor_docs, needs_ap_review, duplicate_flagged}
routed_at 格式: ISO 8601,如 2026-09-24T09:30:00Z

输入与输出示例

本站虚构演示结果,非实际运行输出;17:00简报需在当日有数据后触发才能看到。

输入

POST webhook body:invoice_id=INV-2026-0417,vendor_name=Acme Office Supplies Ltd.,invoice_text含PO-8842、金额3450.00 USD、银行信息齐全

对应输出

路由决定 route=ready_for_payment;“Invoice Intake”追加一行:INV-2026-0417 | Acme Office Supplies Ltd. | ready_for_payment | queued_three_way_match | 2026-09-24T09:30:00Z;AP邮箱收到“请对INV-2026-0417排队三方匹配”的Gmail;再次提交同ID时Telegram收到“疑似重复发票INV-2026-0417”提醒。

做完检查这些

  • 缺invoice_text的请求被拒收且Gmail邮件中写明拒收原因
  • 完整发票写入Sheets且route列为ready_for_payment,AP收到Gmail通知
  • 同一invoice_id二次提交触发Telegram重复提醒而非再次排队
  • 缺失PO号的发票被分流到vendor_follow_up或human_review并记录缺失项
  • 定时分支产出的简报邮件包含三条路径各自的数量汇总

容易卡住的地方

  • 模板免费但OpenAI汇总步骤会产生模型调用费用,需自配密钥
  • 五套凭据缺一不可,Telegram chat ID填错会导致重复提醒静默失败
  • Sheets列名与模板写入字段不一致会直接追加失败或错位
  • Jev Classification的核查问题集以模板实际配置为准,本文仅按原文列出的六项复原
  • 不要把真实供应商银行信息用于测试,一律用合成数据

原文与作者资料 ↗

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

原文标题
Route vendor invoices for AP review with Jev Classification, Google Sheets, Gmail, Telegram, and OpenAI
原作者
Khairul Muhtadin
原始发布日期
2026-09-24T12:34:07.944Z
来源
https://n8n.io/workflows/19907