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

2026-09-26 · 原文发布日

健身房流失预警:每周算出高风险会员自动发短信挽回

每周定时从Google Sheets拉活跃会员和出勤记录,计算近30天对前30天的到访变化、出勤降幅、距今未到店天数,合成0~100流失风险分;筛出有流失信号且分数≥60的会员,查档案后把资料和流失指标发给Gemini,产出内部分析、300字以内的挽回短信和是否可发短信的标记;可发的经Twilio(SMS/WhatsApp)发出,并把内容、时间、会员ID、风险分记入触达日志表。阈值和频率可调。模板免费。

原文要点

n8n模板(iamvaar,免费)每周定时运行:从Google Sheets的Members标签拉活跃会员、从Attendance标签取出勤记录,计算近30天对前30天的到访变化、出勤降幅、距今未到店天数,合成封顶0~100的流失风险分;筛出有流失信号且分数≥60的会员,查MemberProfiles档案后连同指标发给Google Gemini,产出内部分析、不超过300字符的挽回短信和可否发短信标记;可发的经Twilio(SMS/MMS/WhatsApp)发出,并把短信内容、时间戳、会员ID、风险分追加到OutreachLog标签。需配Google Sheets服务账号、Gemini(PaLM)凭据、Twilio凭据与From号码,阈值60和周频可调。附YouTube讲解视频。

这次做成什么

搭一条"每周自动算出高风险会员并自动发短信挽回"的流水线。本站练习方案:先往四张表里灌合成数据手跑一遍,核对风险分与≥60筛选分支,再接Gemini看短信文案,最后用Twilio测试号码验证发送与日志追加,确认无误后再放成每周定时。

准备什么

  • 一个可用的n8n实例(自托管或n8n Cloud)并已导入模板页19961的免费工作流
  • Google账号:能建服务账号并下载JSON密钥,且能把表格共享给服务账号邮箱
  • Google Gemini(PaLM)API密钥;Gemini调用可能产生费用
  • Twilio账号、可用的From号码;试用账号只能发到已验证的号码
  • 一张自建Google表格,含Members/Attendance/MemberProfiles/OutreachLog四个标签页

具体怎么做

  1. 导入模板并核对触发器

    在n8n模板页19961打开免费工作流导入自己的实例。找到Schedule Trigger节点,保持每周一次(如周一09:00,cron 0 9 * * 1),先改成手动执行以便调试,全部跑通后再打开定时。

  2. 建表并接Google Sheets凭据

    新建表格"Gym Member Management & Outreach Tracker",建四个标签页:Members(列member_id、status、join_date、phone)、Attendance(member_id、visit_date)、MemberProfiles(member_id、name、plan等)、OutreachLog(member_id、risk_score、message、sent_at)。在n8n凭据里建Google Sheets服务账号,把表格共享给服务账号邮箱,并在各Google Sheets节点里选好文档ID与对应标签页。

  3. 用合成数据验证风险分计算

    把材料里的合成CSV灌进Members和Attendance。在计算节点确认字段映射(近30天到访、前30天到访、降幅、未到店天数)。本站练习版公式:风险分=min(100, 降幅%×0.6 + 未到店天数×1.2 + 近30天0次则加20),原模板公式以导入后节点实际逻辑为准。手动执行一次,确认降幅75%的M0102得67分进入下一分支,而得40分的会员被跳过。

  4. 接Gemini生成短信并解析分支

    在凭据中添加Gemini(PaLM) API key,AI Agent节点的提示词用材料中的全文,把会员档案与指标作为JSON传入。确认输出解析出diagnosis/sms/eligible三个字段,且只有eligible=true才流向Twilio节点,否则直接结束。

  5. 接Twilio发送并写日志

    添加Twilio凭据,填From号码,确认工作流的消息类型(SMS还是WhatsApp)与Twilio后台配置一致。先把收件号码改为Twilio已验证的测试号码手动跑一条;发送成功后检查OutreachLog是否追加了member_id、风险分、短信内容和时间戳四列。全部通过后把触发器调回每周定时。

可直接复制的材料

发给Gemini的短信生成提示词(本站编写)

本站独立编写的练习提示词,非原模板自带内容;{member}处由工作流填入会员JSON,店名请替换成自己的。

你是健身房会员留存运营助手。下面给你一名会员的档案与出勤指标JSON:
{member}
指标含义:visits_last30=近30天到店次数,visits_prior30=前30天到店次数,drop_pct=出勤降幅百分比,days_since_last=距今未到店天数,risk_score=0~100流失风险分。
请只输出严格JSON,不要输出任何其他文字:
{"diagnosis":"给内部运营看的一句话流失原因分析","sms":"不超过300字符的中文挽回短信,语气友好、不强迫、不含虚假优惠承诺,署名【乐动健身】","eligible":true或false}
规则:phone为空或近30天到店为0且距今超过45天时eligible必须为false。

合成测试数据:Members与Attendance

全部为虚构号码与日期,仅供隔离测试;M0102近30天2次、前30天8次、未到店18天;M0101出勤稳定应被筛掉;M0103近30天0次用于验证加成分支。

Members标签页(CSV):
member_id,status,join_date,phone
M0101,active,2025-03-12,13800000001
M0102,active,2024-11-05,13800000002
M0103,active,2026-01-20,13800000003

Attendance标签页(CSV,设"今天"=2026-09-26,近30天=8/28~9/26,前30天=7/29~8/27):
member_id,visit_date
M0102,2026-08-02
M0102,2026-08-06
M0102,2026-08-10
M0102,2026-08-13
M0102,2026-08-17
M0102,2026-08-20
M0102,2026-08-24
M0102,2026-08-27
M0102,2026-09-01
M0102,2026-09-08
M0101,2026-09-24
M0101,2026-09-21
M0101,2026-09-18
M0101,2026-09-14
M0101,2026-09-10
M0101,2026-09-05
M0101,2026-09-02
M0101,2026-08-30
M0103,2026-08-29

OutreachLog标签页只需表头:member_id,risk_score,message,sent_at

阈值与调度练习配置

本站练习设定值,非原模板导出配置;导入模板后以工作流节点里的实际公式与字段为准,阈值和周频可按留存政策调整。

{
  "scheduleCron": "0 9 * * 1",
  "lookbackDays": 30,
  "riskThreshold": 60,
  "riskFormulaPractice": "min(100, drop_pct*0.6 + days_since_last*1.2 + (visits_last30==0 ? 20 : 0))",
  "messageType": "sms",
  "smsMaxChars": 300
}

输入与输出示例

本站虚构演示,数字由练习公式推得,非实跑结果;实际得分以原模板计算节点为准。

输入

按上表数据手跑一次:会员M0102(13800000002为Twilio已验证测试号),前30天到店8次、近30天到店2次、最后到店2026-09-08,距"今天"18天。

对应输出

降幅=(8-2)/8=75%;风险分=75×0.6+18×1.2+0=66.6≈67≥60,进入Gemini分支。示意Gemini返回:{"diagnosis":"近一月出勤骤降75%,疑似动力流失","sms":"【乐动健身】好久不见!您的训练节奏我们帮您留着,本周到店可约一次免费体测,期待见到您。","eligible":true}。Twilio向测试号发出该短信,OutreachLog追加一行:M0102,67,(上述短信),2026-09-26T09:00:12Z。M0101得分低于60被跳过。

做完检查这些

  • 手动执行一次后,M0102算出67分且只有它进入Gemini分支,M0101与低分会员被跳过
  • Gemini输出能被解析出diagnosis/sms/eligible三字段,eligible=false时不触发Twilio节点
  • 短信成功发到Twilio已验证测试号,且OutreachLog新增一行含member_id、风险分、内容、时间戳
  • 把触发器改回每周cron后,下一次到点能在执行日志看到一次成功运行

容易卡住的地方

  • 风险公式与60阈值在不同模板版本里可能不同,导入后以计算节点实际逻辑为准,别照抄本站练习公式当原作实现
  • 服务账号邮箱未共享表格会直接报权限错误,四个标签页名与列名要和节点配置一致
  • Twilio试用账号只能发到已验证号码,WhatsApp需单独申请模板并通过审核
  • Gemini若未输出严格JSON会导致解析节点报错,提示词里必须强调只输出JSON
  • 调试期务必用合成数据和测试号码,不要向真实会员手机发测试短信
  • 模板本身免费,但Gemini调用与Twilio短信按各自资费另计

原文与作者资料 ↗

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

原文标题
Rescue at-risk gym members using Google Sheets, Gemini, and Twilio SMS
原作者
iamvaar
原始发布日期
2026-09-26T13:30:45.038Z
来源
https://n8n.io/workflows/19961