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

2026-10-13 · 原文发布日

退款拒付率异常监控并Slack告警

每天定时从Google Sheets读取销售与退款拒付两张表,计算近7天退款拒付率并与90天基线对比,超过设定倍数阈值即判定异常;异常时让Gemini生成一段简明的诊断说明,连同指标写入日志分页并向Slack发告警,无异常或数据不足时只记录不打扰。阈值倍数、表名和频道都在配置步骤可调,适合电商或支付团队盯退款健康度。

原文要点

该工作流每天09:00(n8n实例时区)运行,从Google Sheets读取销售与退款/拒付两张表,计算近7天退款拒付率并与90天基线对比,超过配置倍数即判异常;异常时用Google Gemini生成诊断摘要,指标与摘要写入日志分页并向Slack发告警,无异常或数据不足只记录不发消息。需配置阈值倍数、表ID与页名、Slack频道,以及Google Sheets OAuth、Slack、Gemini三类凭据。

这次做成什么

在本站练习中搭建一条“定时读表→算比率→判异常→Gemini诊断→写日志→按条件发Slack”的监控流,并用合成数据手动触发验证三条分支(异常/正常/数据不足)各走对路径。

准备什么

  • 一个可编辑的Google Sheets表格,含Sales、Refunds、Ratio Monitor Log三个分页
  • n8n实例(云端或自托管均可),能添加Google Sheets OAuth、Slack、Google Gemini三类凭据
  • 一个用于接收告警的Slack测试频道(建议专用测试频道,勿用正式客服频道)
  • 下方artifacts中的合成CSV数据,导入Sales和Refunds分页作为练习输入

具体怎么做

  1. 建表并导入合成数据

    新建Google Sheets,建三个分页:Sales(列:Date,Order ID,Amount)、Refunds(列:Date,Order ID,Type,Amount,Reason)、Ratio Monitor Log(列:Date,7d Ratio,90d Baseline,Multiplier,Status,Summary)。把下方合成CSV按分页导入,使近7天有一波集中退款,用于触发异常分支。

  2. 配置节点填入阈值与连接信息

    在工作流开头的配置节点中设置:anomalyThresholdMultiplier=2.5、monitoringDateOverride留空(测试时填2026-10-10)、spreadsheetId填你的表格ID、三个分页名、Slack频道名。在n8n凭据页分别添加Google Sheets OAuth、Slack、Gemini API并绑定到对应节点。

  3. 核对比率计算与判断逻辑

    确认计算逻辑为:近7天退款拒付率=近7天退款金额合计/近7天销售金额合计,90天基线同理;当近7天比率>基线×倍数时置status=ANOMALY,任一窗口数据为空时置status=INSUFFICIENT_DATA,否则NORMAL。可在测试时用monitoringDateOverride固定日期让结果可复现。

  4. 接Gemini诊断与Slack告警分支

    在异常分支的Gemini节点中粘贴下方诊断提示词,输入变量传入当前比率、基线、倍数与退款原因Top列表;把生成文本连同指标写入Ratio Monitor Log,并在Slack节点中按下方消息模板发送。非异常分支只写日志、不发Slack。

  5. 手动触发验证三分支后启用定时

    先手动执行:用合成异常数据应走ANOMALY并在测试频道收到消息;把阈值临时调到10应走NORMAL只写日志;清空Refunds近7天行应走INSUFFICIENT_DATA。三分支均符合预期后,再把Schedule Trigger设为每天09:00并激活工作流。

可直接复制的材料

配置节点示例值(本站设计的字段,需与原模板核对实际字段名)

本站独立编写的练习配置示例,字段名需在原模板配置节点中核对后替换,非原工作流文件。

{
  "anomalyThresholdMultiplier": 2.5,
  "monitoringDateOverride": "2026-10-10",
  "spreadsheetId": "替换为你的Google表格ID",
  "sheets": {
    "sales": "Sales",
    "refunds": "Refunds",
    "log": "Ratio Monitor Log"
  },
  "slackChannel": "#refund-monitor-test",
  "timezoneNote": "定时时间为n8n实例时区09:00"
}

合成练习数据(Sales与Refunds两个分页)

本站虚构合成数据,仅用于练习;近7天(10-04至10-10)销售420、退款125,刻意构造异常用于触发告警。

Sales分页(Date,Order ID,Amount):
2026-07-15,S001,320
2026-08-02,S002,410
2026-08-20,S003,280
2026-09-05,S004,350
2026-09-18,S005,390
2026-09-30,S006,300
2026-10-04,S007,100
2026-10-06,S008,120
2026-10-08,S009,90
2026-10-09,S010,110
Refunds分页(Date,Order ID,Type,Amount,Reason):
2026-08-03,R001,refund,20,尺码不符
2026-09-06,R002,refund,15,物流延迟
2026-09-20,R003,chargeback,25,未授权扣款
2026-10-05,R004,chargeback,40,未收到货
2026-10-07,R005,refund,35,质量问题
2026-10-09,R006,chargeback,50,未授权扣款

Gemini诊断提示词(本站设计,粘贴到Gemini节点)

本站独立编写的示例提示词;变量名需按你工作流中实际传递的字段调整,原模板未给出提示词全文。

你是一名电商支付风控助理。根据以下监控指标,用不超过120字的中文给出简明诊断说明:
- 近7天退款拒付率:{{ $json.current7dRatio }}%
- 90天基线比率:{{ $json.baseline90dRatio }}%
- 异常判定倍数阈值:{{ $json.multiplier }}倍
- 近7天退款原因分布:{{ $json.topReasons }}
要求:1)一句话说明是否异常及偏离程度;2)列出最可能的1-2个原因方向(基于原因分布);3)给出一条可立即执行的核查建议。不要使用专业黑话,不要编造指标之外的数字。

输入与输出示例

本站虚构演示,由合成数据手算得出,非作者运行结果;比率公式按原文描述推算,精确口径需以原模板计算节点为准。

输入

以上合成数据,监控日期定为2026-10-10:近7天销售=100+120+90+110=420,近7天退款=40+35+50=125,7天比率=125/420≈29.8%;90天销售合计2470、退款合计185,基线=185/2470≈7.5%;倍数阈值2.5。

对应输出

判定:29.8% > 7.5%×2.5≈18.7%,status=ANOMALY。Ratio Monitor Log新增一行:2026-10-10 | 29.8% | 7.5% | 2.5 | ANOMALY | 近7天退款拒付率29.8%,约为基线的4倍,主要由两笔拒付(chargeback)共90元拉高:未收到货40元、未授权扣款50元,建议立即核查这两笔订单的发货与支付验证记录,并联系支付网关确认是否存在盗刷。Slack测试频道收到同内容告警。

做完检查这些

  • 触发器为每天09:00(n8n实例时区),配置节点中倍数、表名、频道均可改且改动后生效
  • 用合成异常数据手动运行时,Ratio Monitor Log出现一行status=ANOMALY且Slack测试频道收到含比率与诊断的消息
  • 把倍数临时改为10后重跑,只写日志且status=NORMAL,Slack无新消息
  • 清空Refunds近7天数据后重跑,状态为INSUFFICIENT_DATA且不发Slack告警

容易卡住的地方

  • n8n实例时区若非本地时区,09:00触发时间会偏移,先在实例设置中确认时区
  • Google Sheets OAuth凭据需有该表格的读写权限,否则读数或写日志会静默失败
  • 日期列格式必须能被节点解析(建议YYYY-MM-DD),否则近7天窗口可能选不到数据
  • Gemini诊断依赖传入的原因分布字段,若上游未聚合原因列表,诊断会流于泛泛
  • Slack告警请先发测试频道验证格式,避免阈值未校准前打扰正式团队

原文与作者资料 ↗

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

原文标题
Monitor refund and chargeback ratio spikes with Google Sheets, Gemini, and Slack
原作者
WeblineIndia
原始发布日期
2026-10-13T06:51:46.056Z
来源
https://n8n.io/workflows/20853