2026-09-28 · 原文发布日
每周自动审计SaaS订阅浪费
免费n8n模板:每周一从Google Drive读取公司卡账单CSV并标准化交易,用OpenAI从Gmail发票收据邮件提取订阅明细,再与Google Sheets里的SaaS清单三方交叉比对,找出僵尸扣费、重复订阅、闲置席位、涨价、功能重叠和影子IT,估算月度年度可省金额;发现浪费时让OpenAI生成按优先级排序的退订优化方案,结果写表格、发HTML邮件和Slack摘要。
原文要点
原模板由Rahul Joshi发布在n8n模板库(免费),手动或每周一9点运行。从Google Drive文件夹下载公司卡账单CSV并标准化交易;从Gmail抓发票收据邮件,分批用gpt-4o-mini提取订阅明细;再读Google Sheets的SaaS Inventory表三方合并比对,识别僵尸扣费、重复订阅、闲置席位、涨价、功能重叠与影子IT,估算月度和年度可省金额。发现浪费时gpt-4o-mini生成按优先级排序的退订优化方案,写入Leak Report表、经Gmail发HTML报告并发Slack摘要;无浪费则结束不发报告。配置项含文件夹ID、Sheet ID、unusedDays、minSeatUtilization、currency、dateFormat、debitsAreNegative等阈值。
这次做成什么
在n8n搭一条“三路取数→标准化→交叉比对→按需出报告”的SaaS浪费审计流,并用本站合成的迷你卡账单、SaaS清单和一封模拟发票邮件先跑通比对逻辑,验证僵尸扣费与闲置席位两类发现能触发报告,再接真实邮箱与网盘。练习环境一律用合成文件和隔离的测试账号。
准备什么
- n8n实例及可建多凭据的权限
- Google Drive OAuth2凭据,测试文件夹内放合成账单CSV
- Gmail OAuth2凭据,使用隔离测试邮箱及模拟发票邮件
- OpenAI API凭据,账号可用gpt-4o-mini
- Google Sheets凭据,表内含SaaS Inventory与Leak Report两个工作表
- Slack OAuth2凭据与目标摘要频道
具体怎么做
集中配置与准备合成数据
建Set节点写入driveFolderId、sheetId、reportEmail、slackChannel及阈值:unusedDays=90、minSeatUtilization=0.5、currency=USD、dateFormat=YYYY-MM-DD、debitsAreNegative=true。在测试Drive文件夹放下方合成账单CSV;在测试表格SaaS Inventory表粘贴下方清单数据;Leak Report表首行写audit_date、category、vendor、detail、monthly_savings_usd、annual_savings_usd。
三路取数与标准化
Google Drive节点按文件夹ID列出并下载CSV,Code节点解析每行为统一charge格式{vendor,amount_usd,charged_at,last_seen}(注意debitsAreNegative=true时扣费为负数需取绝对值)。Gmail节点按发票收据查询抓邮件,分批进OpenAI节点(gpt-4o-mini)用下方提取提示词产出订阅明细。Google Sheets节点读SaaS Inventory。
交叉比对识别六类浪费
Code节点合并三源:账单里90天内反复扣费但清单中标记inactive或未登记→僵尸扣费或影子IT;同一vendor多行同额扣费→重复订阅;清单seats_used/seats_total低于minSeatUtilization→闲置席位;本次金额高于历史价→涨价;清单overlap_group相同且都活跃→功能重叠。每条发现计算monthly与annual可省额,输出leaks数组。
按需生成方案与三路输出
IF判断leaks非空:true分支把leaks交gpt-4o-mini生成按金额降序的退订优化方案,随后Google Sheets向Leak Report追加各行、Gmail发HTML报告到reportEmail、Slack发摘要;false分支静默结束不发任何消息。
可直接复制的材料
合成公司卡账单CSV
本站合成练习数据,vendor均为虚构;负额表示扣费,与debitsAreNegative=true匹配。放测试Drive文件夹,勿用真实账单。
date,description,amount,currency
2026-09-05,DESIGNLY PRO MONTHLY,-49.00,USD
2026-09-05,DESIGNLY PRO MONTHLY,-49.00,USD
2026-09-12,METRICSBOARD,-99.00,USD
2026-09-20,CLOUDVAULT STORAGE,-15.00,USD
2026-09-21,NOTELY TEAM,-30.00,USDSaaS Inventory测试清单CSV
本站虚构清单,导入SaaS Inventory表;MetricsBoard席位利用率0.2、CloudVault停用超过90天,用于触发两类发现。
tool,vendor,seats_total,seats_used,status,last_active,monthly_price_usd,overlap_group
Designly Pro,Designly,10,9,active,2026-09-27,49,design
MetricsBoard,MetricsBoard,20,4,active,2026-03-10,99,analytics
CloudVault,CloudVault,5,0,inactive,2026-05-02,15,storage
Notely,Notely,8,7,active,2026-09-26,30,notes发票邮件明细提取提示词
本站独立编写,供Gmail批次后的gpt-4o-mini节点使用;提取结果与账单、清单一起进入比对节点。
你是财务数据提取助手。输入是一批发票或收据邮件的正文与主题。对每封邮件判断是否为SaaS订阅类扣费,是则输出一条记录,字段为:vendor(供应商名)、plan(套餐名)、amount_usd(金额,数字)、billing_period(monthly或annual)、invoice_date(YYYY-MM-DD)、seats(席位数,无则null)、renewal_hint(续费日期,无则null)。只输出JSON数组,非订阅类邮件不输出。金额币种非美元时在amount_usd中给出折算值并在plan字段末尾注明原币种。输入与输出示例
本站虚构演示,金额为按合成数据推算的参考值,非真实运行结果。
输入
用上方合成账单与清单,加一封模拟邮件:主题‘CloudVault invoice’,正文写CloudVault Pro storage plan $15.00 monthly, billed 2026-09-20, 5 seats。阈值unusedDays=90、minSeatUtilization=0.5,手动执行一次。对应输出
leaks数组示例:{"category":"重复订阅","vendor":"Designly","detail":"同日两笔49美元扣费","monthly_savings_usd":49,"annual_savings_usd":588};{"category":"僵尸扣费","vendor":"CloudVault","detail":"清单状态inactive且5月后无活跃,仍月扣15美元","monthly_savings_usd":15,"annual_savings_usd":180};{"category":"闲置席位","vendor":"MetricsBoard","detail":"20席仅用4席(利用率0.2)","monthly_savings_usd":79,"annual_savings_usd":948}。Slack摘要:发现3处浪费,月度可省约143美元、年度约1716美元,明细见Leak Report。做完检查这些
- Designly同日两笔49美元被识别为重复订阅并计入可省额
- CloudVault在账单持续扣费且清单为inactive时被判僵尸扣费
- MetricsBoard席位利用率低于0.5时触发闲置席位发现且金额按闲置比例估算
- Leak Report追加行数与发现条数一致,Slack摘要含月度与年度合计
- 把合成账单换成无问题数据后工作流静默结束,不发邮件也不发Slack
容易卡住的地方
- debitsAreNegative设置与账单符号习惯相反时金额全错,先用合成CSV验证符号方向
- dateFormat与CSV实际日期格式不一致会导致last_seen解析失败,比对结果为空
- Gmail查询过宽会把营销邮件送进提取节点,先用隔离测试邮箱收窄查询
- 账单CSV列名不同需同步改标准化节点的字段映射
- gpt-4o-mini提取可能漏字段,seats为空时闲置席位规则要跳过而非误判
- 对真实凭据不要按本练习操作,全部用合成文件与测试账号;OpenAI调用另计费
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Detect SaaS subscription leaks with Google Drive, Gmail, OpenAI, and Slack
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-09-28T08:49:03.790Z
- 来源
- https://n8n.io/workflows/20034