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

2026-09-05 · 原文发布日

逾期发票的智能催款跟进

这个n8n模板让催款有分寸:每天早上读Google Sheets里逾期且未暂停的发票,逐张查Gmail最近与客户的往来邮件。若同阶段催款邮件已发过就只对账标记;若近期有对话则顺延;否则把往来记录交给OpenAI判断该发、该缓还是转人工,判定为发才生成对应阶段的提醒邮件发出,并把阶段和下次跟进日期写回表格,全程有置信度门槛和重复检查。

原文要点

原模板每天上午9点(美国中部时区)运行,从Google Sheets的Invoices页读取逾期且未暂停、未人工介入的发票;对每张发票在Gmail中检索与客户的近期往来,若同阶段催款主题已发过则只对账标记,近期有对话则顺延;否则把邮件线程摘要交给OpenAI分类为SEND/DEFER/HUMAN,带置信度门槛并校验JSON输出;判为SEND才生成对应阶段的催款邮件经Gmail发出,把已发阶段和下次跟进日期写回表格。配置项含表格ID、签名、回溯窗口、近期对话小时数。

这次做成什么

搭建一条每日运行的逾期发票催款流水线:表格筛选→Gmail查重与近期对话检测→OpenAI三分类→按阶段发信→回写表格,全程有重复检查和置信度门槛,避免重复催款打扰客户。

准备什么

  • n8n实例(自托管或云端均可)
  • Google Sheets、Gmail、OpenAI三组凭据已配置
  • 一个含Invoices工作表的Google表格,含Invoice ID唯一键等模板要求的列
  • OpenAI账户可用的模型ID,需与模板Configuration步骤中的模型一致
  • 用于测试的合成发票数据,不要用真实客户邮箱

具体怎么做

  1. 建发票表

    在Google Sheets新建表格,建名为Invoices的工作表,按模板说明列出必需列:Invoice ID(唯一键)、客户邮箱、金额、到期日、当前阶段、收款状态(paid/void/closed/on hold/human review等)、下次跟进日期等,列名须与模板注释完全一致,先填3至5条合成测试行。

  2. 配凭据与参数

    在n8n中分别添加Google Sheets、Gmail、OpenAI凭据;打开模板的Configuration节点,填入Sheet ID、工作表名、发件人姓名与签名、Gmail回溯窗口、近期对话小时数(例如72小时),并确认OpenAI模型ID是你账户可用的模型。

  3. 理解筛选与查重逻辑

    流程每日9点(America/Chicago)触发,只取未付/未作废/未暂停/未人工介入且逾期时长达到下一催款阶段的行;对每张发票在Gmail搜索与该客户的近期邮件,若发现同阶段主题邮件已发过,则标记为已催款并更新表格;若窗口期内有新对话则顺延下次跟进。

  4. 配置OpenAI分类

    把邮件线程压缩摘要发给OpenAI,要求只输出JSON,含decision(SEND/DEFER/HUMAN)、confidence、reason字段;流程对输出做解析校验和置信度门槛判断,低于门槛或解析失败转人工标记。

  5. 发信与回写

    判定SEND时按当前阶段生成固定结构的提醒邮件(可含一句安全的往来引用),经Gmail发出,并把已发阶段和下次跟进日期写回该行;DEFER/HUMAN则更新收款状态和跟进时间或转入人工审核。

  6. 先草稿模式测试

    先把Gmail发送改为存草稿或人工确认,用合成发票跑几遍,核对表格回写是否正确、重复运行不会重复发信,确认无误后再开启定时。

可直接复制的材料

OpenAI催款判定提示词(本站独立编写)

本站按原流程逻辑独立编写的提示词,双花括号占位需替换为实际字段;置信度阈值建议先在0.7左右起步并在模板Configuration中核对默认值。

你是应收账款的催款决策助手。下面是某张逾期发票的信息和与客户的近期邮件往来摘要。请判断下一步动作,只能输出一个JSON对象,不要输出任何其他文字。

判断规则:
- SEND:客户近期没有回复或明确表示会付款但未付,适合按当前阶段发出提醒邮件。
- DEFER:客户近期正在沟通(如承诺付款日期、提出异议、要求延期),应暂缓催款。
- HUMAN:出现争议、法律措辞、投诉或无法判断的情况,转人工处理。

输出格式:{"decision":"SEND|DEFER|HUMAN","confidence":0到1之间的小数,"reason":"一句中文理由"}

发票信息:发票号={{invoice_id}},金额={{amount}}元,逾期天数={{days_overdue}}天,当前催款阶段={{stage}}
邮件往来摘要:{{thread_summary}}

Invoices测试表(合成CSV)

全部为虚构测试数据,邮箱请用你自己的测试别名;列名需以模板注释中要求的实际列名为准。

invoice_id,client_email,amount,due_date,stage,collection_status,next_followup_date
INV-9001,test-a@example.com,12000,2026-08-01,stage1,open,
INV-9002,test-b@example.com,5800,2026-08-10,stage1,open,
INV-9003,test-c@example.com,30000,2026-07-20,stage2,human_review,
INV-9004,test-d@example.com,9600,2026-08-15,stage1,on_hold,
INV-9005,test-e@example.com,4500,2026-08-05,stage1,paid,

Configuration节点建议值(示例)

键名为本站示意,实际参数名以模板Configuration节点为准;lookback_days与recent_conversation_hours含义为Gmail回溯天数与近期对话判定窗口。

{
  "google_sheet_id": "替换为你的表格ID",
  "sheet_name": "Invoices",
  "sender_name": "财务部 李敏",
  "signature": "XX公司财务部\n电话:010-00000000",
  "lookback_days": 14,
  "recent_conversation_hours": 72
}

输入与输出示例

本站虚构演示,非作者运行结果;日期和置信度为示意设定。

输入

INV-9002,客户test-b@example.com,金额5800元,逾期26天,当前stage1;Gmail线程摘要:客户8月28日回复“发票收到,本月资金紧张,9月10日前安排付款”,此后无新邮件。

对应输出

OpenAI输出{"decision":"DEFER","confidence":0.86,"reason":"客户已承诺9月10日前付款,属于正在沟通"};流程不发催款邮件,把该行collection_status更新为deferred,next_followup_date设为2026-09-11。

做完检查这些

  • 连续两天定时运行后,同一发票不会重复收到同阶段催款邮件
  • OpenAI返回非JSON或confidence低于门槛时,该行被标记为人工审核而不是发信
  • 发信成功后表格中stage与next_followup_date被正确更新
  • on_hold、paid、human_review状态的行在筛选阶段就被排除
  • 近期对话窗口内有客户新邮件的发票被顺延而非催款

容易卡住的地方

  • Invoices表的列名必须与模板注释完全一致,差一个字符筛选就会失效
  • 模板定时为America/Chicago上午9点,国内使用需换算或改时区
  • OpenAI模型ID必须换成你账户可用的模型,否则节点直接报错
  • 默认行为是真发邮件,未先切换草稿模式测试可能打扰真实客户
  • Gmail回溯窗口太短会漏掉客户近期回复,导致重复催款

原文与作者资料 ↗

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

原文标题
Follow up on overdue invoices with OpenAI, Gmail and Google Sheets
原作者
Sean Jastillano
原始发布日期
2026-09-05T13:25:57.000Z
来源
https://n8n.io/workflows/19245