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

2026-10-13 · 原文发布日

印度NGO捐款收据与CSR提案全流程自动化

这条n8n流程面向印度非营利机构:接收Razorpay捐款webhook后回查API验真并按付款ID去重,生成财年连续编号的80G收据PDF(经Gotenberg转换),用OpenAI写感谢语后通过Gmail和WhatsApp发出,同时登记捐赠台账并在Slack提醒大额捐赠。另有季度定时汇总影响数据起草捐赠人邮件,以及CSR咨询表单进来后自动匹配项目、生成定制提案PDF并存档建草稿。

原文要点

原工作流由Rahul Joshi发布在n8n模板库(免费模板),主线为:接收Razorpay的payment.captured webhook,规范化捐赠人字段并忽略非captured事件;回查Razorpay Payments API验真、按付款ID在Google Sheets去重;计算财年连续收据号、捐赠人等级与标记;验真失败时向Slack发不匹配告警。有效捐赠用OpenAI(gpt-4o-mini)写感谢语,HTML版80G收据交Gotenberg转PDF,归档Google Drive,经Gmail与WhatsApp发出,台账写入Donations/Donors表并在大额或升级时提醒Slack。另有季度(1/4/7/10月)定时汇总Impact Metrics起草分级捐赠人邮件草稿,以及CSR咨询表单触发的项目匹配、提案PDF生成、Gmail草稿与CSR Pipeline登记。配置含多处占位符(表格ID、Slack频道、Drive文件夹、80G/12A/CSR-1、PAN等机构信息)需自行替换。

这次做成什么

在自有n8n中复刻这条三合一流程(捐款收据、季度影响邮件、CSR提案),先用一条合成webhook数据跑通收据主线,再按同样模式搭季度与CSR两条支线;没有原工作流文件可下载时,按本页的触发器→处理→分支→输出结构手工搭节点。

准备什么

  • 一个自托管或云端n8n实例,可对外暴露webhook URL
  • Razorpay测试账号的key ID与secret(用测试模式凭据,勿用生产密钥)
  • OpenAI API密钥,模型沿用gpt-4o-mini或自选替代
  • Google账号(Sheets/Gmail/Drive的OAuth2)、Slack工作区、可用的WhatsApp发送渠道
  • 一个可访问的Gotenberg实例用于HTML转PDF
  • 五个Google Sheets标签页:Donations、Donors、Impact Metrics、Programs、CSR Pipeline

具体怎么做

  1. 建表与字段映射

    新建一个Google Sheet,建五个标签页。Donations列:payment_id、donor_name、email、phone、amount、receipt_no、fy、date;Donors列:email、name、total_given、tier;Impact Metrics列:quarter、metric、value;Programs列:program_name、focus_area、min_budget;CSR Pipeline列:company、contact、budget、status。把表ID记下,后面替换模板中的REPLACE_WITH_GOOGLE_SHEET_ID。

  2. 配置Razorpay触发与验真

    在n8n加Webhook节点(POST路径如/razorpay-donation),在Razorpay后台把payment.captured事件指向该URL。 webhook后接IF节点只放行event=payment.captured;再接HTTP Request节点用Basic Auth(key ID/secret)调用Razorpay Payments API按payment.id回查金额与状态,与webhook载荷比对,不一致则走Slack告警分支停止。

  3. 去重与收据编号

    用Google Sheets节点按payment_id在Donations中查找,已存在则直接结束。不存在时用Code节点计算财年(印度财年为4月至次年3月)并生成形如80G/2025-26/0042的连续号(读取Donations本财年行数+1,补零四位),同时按金额划分donor tier并打大额标记。

  4. AI感谢语与PDF收据

    OpenAI节点用材料中的感谢语提示词生成个性化文本;Code节点把捐赠数据填入80G收据HTML模板(含机构80G/12A/CSR-1、PAN、地址、签名人,均为需替换的占位);HTTP Request节点把HTML POST到你的Gotenberg实例转PDF,随后Google Drive节点上传到收据文件夹。

  5. 发出与登记

    Gmail节点把感谢语正文+PDF附件发给donor_email;WhatsApp节点发简短致谢;Google Sheets节点向Donations追加一行、在Donors中按email做upsert(累加total_given、更新tier);IF节点判断大额或升级时Slack节点发提醒到配置的频道ID。

  6. 季度邮件与CSR支线

    Schedule Trigger设为1/4/7/10月执行:汇总Donations与Impact Metrics,OpenAI起草影响故事,按tier各生成一封Gmail草稿并Slack通知。CSR支线用表单触发器接收咨询,按budget与focus_area在Programs中匹配,OpenAI生成提案文本,Gotenberg转PDF归档Drive并建带附件的Gmail草稿,CSR Pipeline登记线索、Slack播报。

可直接复制的材料

Razorpay合成测试webhook载荷

本站虚构的合成测试数据,金额为派(paise),即₹5000.00;仅在Razorpay测试模式下使用,勿填真实付款ID或个人电话。

{
  "event": "payment.captured",
  "payload": {
    "payment": {
      "entity": {
        "id": "pay_TEST0001abcd",
        "amount": 500000,
        "currency": "INR",
        "status": "captured",
        "email": "demo.donor@example.org",
        "contact": "+919999000111",
        "notes": {
          "donor_name": "演示捐赠人"
        }
      }
    }
  }
}

OpenAI感谢语提示词(主线)

本站独立编写的示例提示词,机构名称、用途描述需替换为实际信息;模型可用gpt-4o-mini或自选。

你是一家印度注册非营利机构的捐赠关系专员。根据以下JSON数据写一段120字以内的英文感谢语,用于邮件正文:
- 称呼捐赠人名字(donor_name)
- 提到具体金额(amount_inr,卢比)与收据号(receipt_no)
- 一句话说明捐款用途(用于乡村教育项目,示例用途,可按机构实际改)
- 语气温暖、克制,不用感叹号堆砌,不做免税承诺性表述,只提示80G收据已附在邮件中
输入数据:
{"donor_name":"演示捐赠人","amount_inr":5000,"receipt_no":"80G/2025-26/0042"}
只输出感谢语正文,不要主题行,不要签名。

CSR提案生成提示词(支线)

本站设计的练习提示词,对应原流程CSR支线的OpenAI步骤;资质信息必须人工填写后再发。

你是非营利机构的CSR合作顾问。根据企业咨询与匹配到的项目,写一份一页式CSR合作提案正文(英文,约300词),结构为:1) 对企业关注领域的呼应;2) 推荐项目与预算匹配说明;3) 预期量化影响(用给定的impact_unit示例);4) 下一步建议(30分钟电话会议)。
企业咨询:{"company":"DemoTech Pvt Ltd","focus_area":"education","budget_inr":1500000}
匹配项目:{"program_name":"乡村数字课堂","min_budget":1000000,"impact_unit":"每10万卢比支持一间教室一学年"}
不要编造机构资质编号,资质段落留【待填机构80G/CSR-1信息】占位。

输入与输出示例

本站虚构演示,未实际运行;收据号、阈值与输出格式取决于你自己的节点配置。

输入

用上面的合成webhook载荷POST到 https://n8n.example.internal/webhook/razorpay-donation,模拟一笔₹5000.00的captured付款

对应输出

Donations表新增一行:pay_TEST0001abcd | 演示捐赠人 | demo.donor@example.org | +919999000111 | 5000 | 80G/2026-27/0042 | 2026-27 | 2026-10-13(10月属印度财年2026-27);Donors表upsert该邮箱tier=Supporter;Slack未触发大额提醒(金额低于本站示例阈值₹10000);Gmail发出带80G/2026-27/0042.pdf附件的感谢邮件。

做完检查这些

  • 重复发送同一payment_id的webhook,第二次流程在去重节点直接结束,不新增台账行
  • 把载荷中amount改成与Razorpay回查结果不一致的值,流程走Slack不匹配告警分支且不生成收据
  • 跨年测试:付款日期分别为3月与4月时,收据号财年段分别显示上一年度与新年度
  • Gotenberg不可达时流程在PDF转换节点报错,且Donations不写入半成品行(可先写状态列再更新)
  • CSR表单提交budget低于所有Programs的min_budget时,提案中如实说明无匹配项目而不是强行推荐

容易卡住的地方

  • 模板中的表格ID、Slack频道ID、Drive文件夹ID、机构80G/12A/CSR-1与PAN均为占位符,漏替换任何一处都会运行到一半报错
  • webhook金额单位是派(paise),直接与卢比比较会导致验真永远失败,需先除以100
  • 财年连续编号若靠读行数实现,并发两笔捐款可能撞号,生产环境需加锁或改用计数器表
  • WhatsApp发送渠道原模板只写了节点未指定服务商,需自行确认所用节点的接入方式与模板消息审批
  • 季度草稿按tier生成,若Donors表tier字段有空值会漏发部分捐赠人

原文与作者资料 ↗

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

原文标题
Send 80G receipts and CSR proposals with Razorpay, GPT-4o-mini, and Google
原作者
Rahul Joshi
原始发布日期
2026-10-13T12:37:28.039Z
来源
https://n8n.io/workflows/20879