用 n8n 自动追踪健身课程签到与会员留存
Webhook 接收签到 → Google Sheets 匹配会员 → AI 判断参与度并生成个性化消息 → 记录日志并邮件/Discord 通知 → 每周一定时生成留存报告
- 给谁
- 健身工作室运营者或需要自动化会员管理的中小场馆管理员
- 你会得到
- 自动记录每次课程签到,识别流失风险会员,发送个性化跟进消息,并向管理者推送每周留存摘要
- 你需要
- n8n · google-sheets · gmail · discord
硬约束
需要 n8n 实例及以下凭证:Google Sheets OAuth2、OpenAI API、Gmail OAuth2、Discord Bot。前端签到系统需能向指定 webhook URL POST JSON。
他们做了什么
模板作者 khmuhtadin 在 n8n 上发布了一个健身工作室自动化模板。该模板通过 webhook 接收签到事件,在 Google Sheets 中匹配会员,调用 OpenAI gpt-4o-mini 判断会员参与度并生成个性化消息,记录签到日志,通过 Gmail 发送邮件,并在 Discord 上推送告警与每周报告。
效果如何
来源展示了完整的工作流结构与节点配置(author_report)。模板包含 36 个节点,覆盖签到接收、校验、会员匹配、AI 消息生成、日志记录、邮件通知、Discord 告警及每周定时报告。
值得知道
1)AI 输出要求严格 JSON 格式,Parse Agent Output 节点已包含 fallback 逻辑以应对格式异常;2)weekly report 的 no-show 率与 at-risk 判定基于过去 14 天无签到且入会超过 30 天的规则,由 Compute Weekly Stats 节点计算;3)来源未提供实际运行数据或 ROI;4)Discord 与 Gmail 的 studio 收件地址需替换为真实地址;5)模板默认时区为 Asia/Jakarta,需按需调整。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- Read Member Roster 节点:绑定Google Sheets OAuth2 凭证。
- Engagement Model 节点:绑定OpenAI API 凭证。
- Append Check-in to Log 节点:绑定Google Sheets OAuth2 凭证。
- Email Member Message 节点:绑定Gmail OAuth2 凭证。
- Alert Manager on Discord 节点:绑定discordBotApi 凭证。
- Alert Invalid on Discord 节点:绑定discordBotApi 凭证。
- Email Invalid Notice 节点:绑定Gmail OAuth2 凭证。
- Alert Unknown on Discord 节点:绑定discordBotApi 凭证。
- Email Unknown Notice 节点:绑定Gmail OAuth2 凭证。
- Read Attendance for Report 节点:绑定Google Sheets OAuth2 凭证。
- Read Roster for Report 节点:绑定Google Sheets OAuth2 凭证。
- Insight Model 节点:绑定OpenAI API 凭证。
- Email Weekly Report 节点:绑定Gmail OAuth2 凭证。
- Post Weekly Report on Discord 节点:绑定discordBotApi 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #18763(约 36 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-25
步骤
准备数据表与凭证
在 Google Sheets 创建两个工作表:MemberRoster(会员名册)和 AttendanceLog(签到日志)。确保列名包含 member_id、member_name、member_email、membership、join_date、checkin_date、status 等。在 n8n 中配置对应凭证:Google Sheets OAuth2、OpenAI API、Gmail OAuth2、Discord Bot。
配置 Webhook 触发与输入校验
在 n8n 中配置 Webhook 节点,路径为 fitness/checkin,方法 POST。前端签到系统需发送包含 member_id、class_name、status 和可选 notes 的 JSON。Normalize Check-in 节点将生成 checkin_id 并标准化字段;Validate Check-in Input 节点校验 member_id 和 class_name 非空,缺失时触发 Discord 与 Gmail 告警。
运行提示词 · 来源原文。Alert Invalid on Discord 节点的 content 字段
={{ 'Invalid check-in rejected: member_id=' + $json.member_id + ' class=' + $json.class_name + ' at ' + $json.received_at + '. Missing required fields.' }}匹配会员名册
Read Member Roster 节点读取 Google Sheets 的 MemberRoster 表。Match Member by ID 节点用 Code 节点将签到中的 member_id 与名册匹配,提取 member_name、member_email、membership、join_date。若未找到,触发 Discord 与 Gmail 未知会员告警。
运行提示词 · 来源原文。Alert Unknown on Discord 节点的 content 字段
={{ 'Unknown member check-in: id=' + $json.member_id + ' class=' + $json.class_name + ' at ' + $json.received_at + '. Member not in roster; no email sent.' }}AI 判断参与度并生成消息
Build Agent Input 节点整合会员与签到上下文,传入 AI Agent 节点。AI Judge Engagement and Write Message 使用 gpt-4o-mini,根据签到状态判断参与度(at_risk/new/engaged),生成 50 字以内的个性化消息。Parse Agent Output 节点解析 AI 返回的 JSON,提取 engagement_status 与 message,并标记 needs_attention。
运行提示词 · 来源原文。AI Judge Engagement and Write Message 节点的 text 字段(用户输入)
={{ 'Member: ' + $json.member_name + ' | membership: ' + $json.membership + ' | class today: ' + $json.class_name + ' | check-in status: ' + $json.status + ' | notes: ' + $json.notes + ' | joined: ' + $json.join_date + ' | new member: ' + $json.is_new + ' | received at: ' + $json.received_at }}运行提示词 · 来源原文。AI Judge Engagement and Write Message 节点的 options.systemMessage 字段
You are the member experience assistant for a small fitness studio. A front desk class check-in just came in. Judge the member engagement: at_risk when the check-in status is no_show (write a warm, gentle nudge encouraging them to come back soon, never blaming them); new when the member joined within the last 30 days (write a short encouraging note that helps them build the habit); otherwise engaged (write a brief warm thank you). Write ONE short message under 50 words addressed to the member by first name. Never mention internal metrics or algorithms. Return ONLY valid JSON with double quoted keys and no code fences: {\"engagement_status\":\"at_risk|new|engaged\",\"message\":\"...\"}. No markdown, no emojis, no text outside the JSON.记录日志并发送通知
Build Check-in Log Row 节点整理签到记录,Append Check-in to Log 写入 AttendanceLog 表。Build Member Message 节点组装邮件内容,Email Member Message 通过 Gmail 发送给会员。若 needs_attention 为 true(at_risk 或 no_show),Alert Manager on Discord 向管理频道发送留存告警。
运行提示词 · 来源原文。Alert Manager on Discord 节点的 content 字段
={{ 'Retention alert: ' + $('Build Check-in Log Row').item.json.member_name + ' | class ' + $('Build Check-in Log Row').item.json.class_name + ' | status ' + $('Build Check-in Log Row').item.json.status + ' | AI ' + $('Build Check-in Log Row').item.json.engagement_status + '. Follow up to keep them engaged.' }}每周定时生成留存报告
Weekly Insights Trigger 节点每周一上午 9 点触发(cron: 0 9 * * 1)。Compute Weekly Stats 节点从 AttendanceLog 和 MemberRoster 计算本周签到数、独立会员、各课程分布、no-show 率、流失风险会员和新会员。AI Write Weekly Insight 使用 gpt-4o-mini 生成 120 字以内的经营摘要。Parse Weekly Insight 解析后,Email Weekly Report 发送邮件,Post Weekly Report on Discord 推送至 Discord。
运行提示词 · 来源原文。AI Write Weekly Insight 节点的 text 字段(用户输入)
={{ 'Write the weekly studio report. Data: ' + $json.stats_blob }}运行提示词 · 来源原文。AI Write Weekly Insight 节点的 options.systemMessage 字段
You are the studio analytics assistant for a small fitness studio. Given the weekly attendance stats, write a friendly digest under 120 words for the studio owner: total check-ins, unique members, the busiest class, no-show count and rate, any members at risk of churn, and new members for the week. End with one actionable recommendation. If the week was quiet or there was no data, say so plainly. Return ONLY valid JSON: {\"digest\":\"...\"}. No markdown, no emojis, no text outside the JSON.运行提示词 · 来源原文。Post Weekly Report on Discord 节点的 content 字段
={{ 'Weekly studio report: ' + $('Parse Weekly Insight').item.json.total_checkins + ' check-ins, ' + $('Parse Weekly Insight').item.json.unique_members + ' members, ' + $('Parse Weekly Insight').item.json.no_show_rate + '% no-show.\n' + $('Parse Weekly Insight').item.json.digest }}
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你正在搭建一个 n8n 工作流,用于自动追踪健身课程签到与会员留存。请先确认:1)Google Sheets 已创建 MemberRoster 和 AttendanceLog 两个表且列名匹配;2)n8n 中已配置 Google Sheets OAuth2、OpenAI API、Gmail OAuth2、Discord Bot 四类凭证;3)前端签到系统可向 /fitness/checkin 发送 POST 请求。然后按步骤导入 workflow.json 或按节点说明逐一手动配置。
先检查 Google Sheets 列名和凭证权限,再配置 webhook URL 让前端系统接入。
来源
Track fitness class attendance and retention with Google Sheets, gpt-5.6-terra, Gmail, and Discord · khmuhtadin · n8n.io · 2026-08-27
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。