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

2026-10-09 · 原文发布日

n8n每天自动筛查B2B流失风险订单并告警

这个n8n模板每天凌晨定时读取Google Sheets里的新B2B订单,按account_id关联客户基线数据,计算订货量、下单节奏和核心SKU占比三类异常信号,命中即触发。冷却期内已告警过的客户会被跳过;其余订单连同基线上下文交给Gemini,输出风险分级、主要假设和两条销售话术的结构化JSON,然后发Slack告警、用Gmail邮件通知对应销售,并把审计记录写回Sheets、标记订单已处理。作者为认证创作者,模板免费。

原文要点

原文描述的免费n8n模板:每天凌晨2:00定时运行,读取Google Sheets的Orders_Ingest页签中未处理订单(须有order_id),从Account_Baselines按account_id关联客户基线并忽略Tier-3客户;计算订货量、下单节奏、核心SKU占比三类异常信号,命中至少一条才继续;客户上次告警日在冷却窗口内则抑制重复告警;其余订单连同基线上下文交Google Gemini,输出风险分级、主要假设、两条销售话术的结构化JSON;随后发Slack告警、Gmail通知对应销售、向Alert_Audit_Log写审计、更新Account_Baselines的last_alert_date、把订单标记为已处理。需建Google服务账号并共享表格、Gemini(Google PaLM)凭据、Slack OAuth、Gmail OAuth2,配置表格ID与cooldown_days。

这次做成什么

搭建“每日读新订单→对基线算三类异常→冷却去重→Gemini风险评估→Slack+邮件+回写”的流失预警流程,并用合成订单验证命中、未命中、冷却三种路径。

准备什么

  • Google Sheets服务账号凭据,且表格已共享给服务账号邮箱
  • Google Gemini (Google PaLM) API凭据、Slack OAuth凭据、Gmail OAuth2凭据
  • 一张含Orders_Ingest、Account_Baselines、Alert_Audit_Log三页签的表格,列含processed、account_id、last_alert_date等
  • 持续运行的n8n实例(每日定时触发)

具体怎么做

  1. 建三张页签

    Orders_Ingest列建议:order_id、account_id、rep_email、order_qty、order_date、core_sku_units、total_units、processed;Account_Baselines列:account_id、tier、avg_qty、avg_interval_days、core_sku_ratio、last_alert_date;Alert_Audit_Log列:audit_id、account_id、order_id、signals、risk_level、hypothesis、alerted_at。把表格共享给服务账号邮箱。

  2. 接凭据与配置

    在n8n建Google服务账号、Gemini、Slack OAuth、Gmail OAuth2四组凭据;在工作流配置区填表格ID和cooldown_days(本站练习设14)。

  3. 读单与关联

    定时节点每日2:00触发,读Orders_Ingest中processed为空的行,过滤无order_id的行;按account_id关联Account_Baselines,tier为Tier-3的账号直接忽略。

  4. 计算三类异常信号

    用代码节点对每条订单计算:量异常(本次数量低于基线avg_qty的一定比例,练习设<60%)、节奏异常(距上次下单间隔超过avg_interval_days的1.5倍)、核心SKU占比异常(core_sku_units/total_units低于基线core_sku_ratio的70%)。只保留命中至少一条的订单。阈值为本站练习设定,原文未给具体数值。

  5. 冷却与Gemini评估

    查该账号last_alert_date,距今小于cooldown_days则跳过。其余订单把订单字段加基线字段组成上下文送Gemini,用下方提示词要求返回结构化JSON。

  6. 告警与回写

    向Slack频道发告警(账号、命中信号、风险级、假设、两条话术),用Gmail给该单rep_email发简报;向Alert_Audit_Log追加审计行;更新Account_Baselines的last_alert_date;把Orders_Ingest该行processed置为TRUE。

可直接复制的材料

Gemini风险评估提示词(本站编写)

本站编写的练习提示词;返回结构与原文描述(风险分级、主要假设、两条话术)对应。

你是B2B客户流失风险分析师。根据给定的新订单数据与该客户的历史基线(平均订货量、平均下单间隔、核心SKU占比)以及命中的异常信号,评估流失风险。只返回JSON:{"risk_level":"high|medium|low","primary_hypothesis":"一句最可能的原因假设","talking_points":["给销售的第一条沟通话术","第二条话术"]}。假设必须能从数据中找到依据,不要编造客户未提供的事实。

异常判定练习参数(本站设定)

本站独立设定的练习阈值,原文只说明有三类信号与冷却窗口,未给具体数值;上线前应按业务分布校准。

{"volume_drop_threshold":0.6,"cadence_stretch_factor":1.5,"core_sku_ratio_floor":0.7,"cooldown_days":14,"ignore_tiers":["Tier-3"]}

合成订单与基线(一组)

虚构练习数据;该单订货量为基线25%、核心SKU占比0.20(基线0.75的约27%),命中量与SKU两类信号。

Orders_Ingest: {"order_id":"SO-9001","account_id":"AC-101","rep_email":"rep-li@example.com","order_qty":20,"order_date":"2026-10-08","core_sku_units":4,"total_units":20,"processed":""}
Account_Baselines: {"account_id":"AC-101","tier":"Tier-1","avg_qty":80,"avg_interval_days":30,"core_sku_ratio":0.75,"last_alert_date":""}

输入与输出示例

本站虚构演示,未实际调用Gemini、Slack或Gmail;节奏判定边界值是否算命中取决于比较符实现。

输入

上方合成订单SO-9001:数量20(基线avg_qty 80)、间隔45天(基线30天)、核心SKU占比0.20(基线0.75),last_alert_date为空

对应输出

命中信号:volume_drop(20<80×0.6)、core_sku_drop(0.20<0.75×0.7);节奏45<30×1.5=45未命中。Gemini返回示意{"risk_level":"high","primary_hypothesis":"核心品类采购占比骤降,可能转向竞品","talking_points":["询问核心SKU补货计划是否延后","提供核心SKU组合优惠并约拜访"]};Slack与Gmail各发一条,Alert_Audit_Log新增一行,last_alert_date更新为当日,processed置TRUE。

做完检查这些

  • 未命中任何信号的订单不触发Gemini调用,仅被跳过或标记处理
  • last_alert_date在14天内的账号即使命中信号也不重复告警
  • Tier-3账号的订单被忽略且不写审计日志
  • 每条告警订单在Alert_Audit_Log恰好一行,且Orders_Ingest对应行processed为TRUE

容易卡住的地方

  • 原文说明表格需共享给服务账号邮箱,漏做会在读表时报权限错误
  • 三类信号的具体阈值原文未给出,本页数值是本站练习设定,须自行校准
  • 订单缺order_id的行会被过滤,数据源接入时先保证该列完整
  • Gemini的假设只是基于数值上下文的推测,销售行动前需人工判断
  • 每日2:00定时依赖n8n持续运行,实例停机当天无筛查

原文与作者资料 ↗

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

原文标题
Flag B2B churn-risk orders from Google Sheets with Gemini and Slack alerts
原作者
iamvaar
原始发布日期
2026-10-08T21:10:02.302Z
来源
https://n8n.io/workflows/20689