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

2026-09-14 · 原文发布日

资助项目截止日期与经费消耗追踪

面向公益或科研资助管理的n8n流程:Webhook接收新资助与支出记录,OpenAI把资助条款转成含里程碑与缓冲期的JSON报告日历,写入Google Sheets各标签页并邮件通知负责人;消耗达80%或距支出截止45天内时起草财务提醒;每周一推送30天内到期事项,每月首日生成组合审查摘要发Gmail并同步Telegram。

原文要点

原文描述的免费n8n模板:两个POST Webhook分别接收新资助(grant-award)与支出记录(grant-spend);资助载荷规范化为资助方、项目、金额、期限、报告频率、关键联系人等字段并校验必填;OpenAI把条款转成含里程碑、到期日、缓冲天数、合规风险提示的JSON报告日历;写入Google Sheets的Awards、Deadlines、SpendLog、ReminderLog、Errors五个标签页;无效载荷邮件通知管理员、Telegram告警并记入Errors;消耗达80%或距支出截止45天内时AI起草财务提醒邮件并发Telegram;每周一找30天内到期事项起草带数据清单的提醒邮件并标记“reminder sent”;每月首日审查全组合(burn≥80%或45天内到期)生成摘要发给财务负责人。

这次做成什么

在n8n里复现这套“资助台账自动化”:用两条Webhook收单、五张表标签页记账、AI生成报告日历和提醒草稿,并用合成资助数据走通从收单到周一提醒的完整链路。

准备什么

  • 可运行Webhook的n8n实例,外部系统能向其POST数据
  • OpenAI API凭据,用于日历生成与提醒起草
  • Google Sheets文档,预先建好Awards、Deadlines、SpendLog、ReminderLog、Errors五个标签页
  • Gmail与Telegram凭据,以及测试用负责人邮箱和聊天ID
  • 用于练习的合成资助与支出JSON载荷

具体怎么做

  1. 建表结构

    在Google Sheets建五个标签页:Awards列含award_id、funder、program、amount、term、spent_to_date、关键联系人;Deadlines列含award_id、milestone、due_date、status;SpendLog记每笔支出;ReminderLog记提醒;Errors记拒绝记录。

  2. 收资助Webhook

    新建Webhook节点路径设grant-award、方法POST;后接Set节点把载荷规范为统一字段;再接IF节点校验award_id、funder、amount、term必填,缺失时走Gmail通知管理员+Telegram告警+写Errors页的分支。

  3. AI生成报告日历

    校验通过后调OpenAI,提示词(见材料)要求把资助条款输出为含milestones数组(每项含milestone名、due_date、buffer_days)和risk_note的严格JSON;解析后Awards追加一行,Deadlines按里程碑逐项追加,Gmail把日历发给资助负责人,Telegram发新资助通知。

  4. 收支出Webhook

    第二个Webhook路径grant-spend;校验后用award_id在Awards页查找匹配行,找不到走Errors分支;找到则SpendLog追加一行,并用更新节点把spent_to_date累加回Awards对应行。

  5. 阈值财务提醒

    IF节点计算burn=spent_to_date/amount,burn≥0.8或距spend_by日期≤45天成立时,调OpenAI起草简短财务提醒,Gmail发负责人、Telegram告警;不成立则静默结束。

  6. 定时巡检

    Schedule Trigger设每周一早晨:读取Deadlines中status非reminder sent且due_date在30天内的行,AI起草含数据清单的提醒邮件发出,写ReminderLog并把该行标记为reminder sent;另一个Schedule Trigger设每月1号:扫描全部Awards中burn≥80%或45天内到期者,AI生成组合摘要邮件发财务负责人。

可直接复制的材料

资助条款转报告日历提示词

本站独立编写示例,里程碑类型可按机构要求增删,解析失败需有兜底分支。

你是资助合规助理。根据下面的资助条款,生成严格JSON报告日历,只输出JSON。结构:{"milestones":[{"milestone":"里程碑名称","due_date":"YYYY-MM-DD","buffer_days":数字}],"risk_note":"一句话合规风险提示"}。里程碑需覆盖期中报告、期末报告和支出截止;buffer_days默认7天。
资助条款:{{terms}}
资助金额:{{amount}}
起止日期:{{term_start}}至{{term_end}}

财务提醒起草提示词

本站独立编写示例,占位字段来自Awards行数据,发送前建议人工预览一次。

请用中文起草一封不超过200字的财务提醒邮件,语气正式。要素:资助编号{{award_id}}、当前消耗率{{burn_percent}}%、支出截止日{{spend_by}}、剩余额度{{remaining}}元,并提醒负责人在截止前提交支出凭证。只输出邮件正文。

合成资助与支出载荷

本站合成练习数据,金额为虚构示例,两个对象分别POST到grant-award和grant-spend。

{"award":{"award_id":"G-2026-014","funder":"某公益基金会","program":"乡村阅读计划","amount":300000,"currency":"CNY","term_start":"2026-10-01","term_end":"2027-09-30","reporting_cadence":"quarterly","lead_email":"lead@example.org","terms":"每季度提交进展报告,期末提交审计报告,2027-09-30前完成全部支出"},"spend":{"award_id":"G-2026-014","amount":245000,"date":"2027-06-10","category":"图书采购"}}

输入与输出示例

本站虚构演示,百分比与金额由合成数据算出,非真实运行结果。

输入

先POST合成award载荷(G-2026-014,30万元,一年期,季度报告);数月后POST spend载荷(同一award_id支出245000元,此时距支出截止约112天)。

对应输出

award收单后生成JSON日历含四个里程碑(三次季度报告due_date分别为2026-12-31、2027-03-31、2027-06-30,期末审计报告2027-09-30,buffer_days均7),Awards和Deadlines各追加行,负责人收到日历邮件;spend入账后spent_to_date=245000,burn=81.7%≥80%,触发财务提醒邮件含“当前消耗率82%、剩余额度55000元”并推Telegram。

做完检查这些

  • 缺少award_id的载荷被IF分支拦截,管理员邮箱收到通知且Errors页新增一行
  • POST支出后Awards页对应行的spent_to_date精确累加245000,不产生新行
  • burn达到80%阈值时财务提醒邮件与Telegram告警各触发一次,低于阈值不触发
  • 周一定时跑后,30天内到期的Deadlines行status被改为reminder sent且ReminderLog有对应记录

容易卡住的地方

  • Awards页必须预建award_id与spent_to_date列,否则匹配和消耗率计算直接失败
  • 80%、45天、30天三个阈值写死在条件里,机构政策不同需逐个节点调整
  • Webhook路径grant-award与grant-spend需配到外部系统,测试期先用curl或Postman发合成载荷
  • AI起草的邮件直接外发有合规风险,练习阶段建议先发测试邮箱人工确认
  • 日期比较依赖统一时区和YYYY-MM-DD格式,混合日期格式会让到期筛选漏报

原文与作者资料 ↗

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

原文标题
Track grant deadlines and spend down with OpenAI, Google Sheets, Gmail and Telegram
原作者
Khairul Muhtadin
原始发布日期
2026-09-14T11:15:50.340Z
来源
https://n8n.io/workflows/19568