ChatGPT销售找线索AI 评分 · 73/100AI 辅助编辑·未发现明显提示词注入风险n8n.io

n8n 自动业务 KPI 洞察:GPT-4 驱动 MSSQL 与多渠道日报

每日自动聚合 MSSQL、Google Analytics、Sheets 数据 → 计算 ROAS/CAC → AI 生成摘要 → WhatsApp/邮件推送

经验丰富步骤流程提示词贴士
给谁
需要每日掌握营收、获客成本与营销效率的创始人、运营负责人或小团队
你会得到
无需手动报表,每日定时收到包含关键指标、风险预警与行动建议的简洁通知
你需要
n8n · google-sheets · email · whatsapp

硬约束

前置条件:n8n 实例(自托管或云版);凭证需配置 microsoftSql、googleAnalyticsOAuth2、googleApi(服务账号)、smtp、openAiApi、whatsAppApi。来源中的 SQL 查询与文档 ID 均为占位符,必须替换为真实业务数据。

他们做了什么

模板作者 mohamed-abubakkar 在 n8n 上构建了一个面向创始人的自动业务情报代理。工作流通过 Schedule Trigger 每日触发,并行从 MSSQL 数据库、Google Analytics、Google Sheets 收集昨日营收、新注册用户、总访客量与营销支出;经 IF 节点校验数据完整性后,通过 Summarize/Code 节点归一化并合并为统一 JSON;再由 Code 节点计算 ROAS 与 CAC,并应用规则判断风险等级;最终由 AI Agent(OpenAI gpt-4.1-mini)生成简洁的业务摘要、风险、机会与建议,通过 WhatsApp 与邮件推送给指定接收人。

效果如何

来源展示了完整的节点配置、连线关系与示例输入输出 JSON(如 revenue=4290 时 ROAS=5.36、CAC=40、agentStatus=normal)。作者声称该工作流可全自动每日运行,无需人工报表。但来源未提供真实业务场景的运行日志、长期稳定性数据或 ROI 验证(author_report)。

值得知道

1. 来源中的 SQL 查询(SELECT * from yourtable)和 Google Sheets documentId 均为占位符,必须根据实际业务替换;2. Google Analytics propertyId 缓存了作者自己的值,需替换为自有 GA4 媒体资源 ID;3. 增长计算字段(revenueGrowthPct、userGrowthPct)在 KPI Calculator 中被注释掉,如需环比需取消注释并确保昨日数据字段传入;4. AI Agent 的 systemMessage 和 user prompt 可按业务场景调整,模型也可更换为 gpt-4.1 或 gpt-4;5. 除 WhatsApp 与邮件外,来源 sticky note 提到可扩展 Slack/Telegram,但 workflow.json 中未包含这些节点,需自行添加;6. 错误处理仅通过邮件通知,未提供自动重试或降级策略;7. 本站未实际导入运行,搭建后请务必用测试数据验证每个 Code 节点的输入输出格式。

n8n 工作流模板

结构已检查 · 未实际运行

下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。

配置与测试清单

需要绑定的凭证

  • Yesterday's Revenue 节点:绑定microsoftSql 凭证。
  • Yesterday's Registered Users 节点:绑定microsoftSql 凭证。
  • Yesterday's Report 节点:绑定googleAnalyticsOAuth2 凭证。
  • Yesterday's Marketing Expenses 节点:绑定googleApi 凭证。
  • Send Error Email 节点:绑定smtp 凭证。
  • OpenAI Chat Model 节点:绑定OpenAI API 凭证。
  • Send message 节点:绑定whatsAppApi 凭证。
  • Send Final Email 节点:绑定smtp 凭证。

需要替换的配置

  • 源模板来自 n8n 公开库 #12008(约 31 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
  • Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。

测试输入与预期结果

  • 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
  • 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。

模板处理说明

  • 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
  • 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。

模板获取日期: 2026-10-24

步骤

  1. 配置数据源节点

    在 n8n 工作流中配置四个并行数据收集节点:1) Yesterday's Revenue(Microsoft SQL 节点)连接 MSSQL 数据库,将默认查询 SELECT * from yourtable 替换为获取昨日总营收的真实表与字段;2) Yesterday's Registered Users(Microsoft SQL 节点)同样替换查询以获取昨日新增注册用户;3) Yesterday's Report(Google Analytics 节点)设置 propertyId 为自有 GA4 媒体资源 ID,dateRange 设为 yesterday;4) Yesterday's Marketing Expenses(Google Sheets 节点)通过服务账号认证,替换 documentId 与 sheetName 为实际营销费用表。所有节点需提前在 n8n 凭证管理器中配置对应连接。

  2. 添加数据校验与错误通知

    为每个数据源后添加 IF 节点(Check data、If、Condition for google report、Condition for marketing reports),检查上游节点是否返回有效数据(使用 exists 条件)。若任一数据源缺失,流程走向 Send Error Email 节点,发送错误通知邮件。邮件正文已预置为:「Daily business intelligence workflow failed due to missing input data...」。需将 toEmail/fromEmail 替换为实际运维邮箱。

    运行提示词 · 来源原文。Send Error Email 节点的 text 字段

    Dear User,
    
    Daily business intelligence workflow failed due to missing input data.
    One or more required sources did not return valid results.
    Action: Review individual data source logs and resolve before next run.
  3. 数据归一化与合并

    通过 Summarize/Set 节点提取关键字段:Get only Total Revenue Amount(对 TotalAmount 求和)、Get only Total Users(对 email 计数)、Get Only Total Users(提取 totalUsers 字段)、Get only Total Spend Amount(对 Ad Spend 求和)。随后用 Merge all result 节点将四条分支合并,再接入 Normalize the data(Code 节点),将分散数据统一为 {revenue, registeredUsers, totalUsers, adSpend} 的 JSON 对象。

    运行提示词 · 来源原文。Normalize the data 节点的 jsCode 字段

    const result = {
      revenue: 0,
      registeredUsers: 0,
      totalUsers: 0,
      adSpend: 0
    };
    
    for (const item of items) {
      if (item.json.sum_TotalAmount !== undefined) {
        result.revenue = item.json.sum_TotalAmount;
      }
    
      if (item.json.count_email !== undefined) {
        result.registeredUsers = item.json.count_email;
      }
    
      if (item.json["Total Users"] !== undefined) {
        result.totalUsers = item.json["Total Users"];
      }
    
      if (item.json.sum_Ad_Spend !== undefined) {
        result.adSpend = item.json.sum_Ad_Spend;
      }
    }
    
    return [{ json: result }];
  4. KPI 计算与业务规则判断

    接入 KPI Calculator(Code 节点)计算 ROAS(营收/广告支出)与 CAC(广告支出/新用户数),结果保留两位小数。随后接入 Business Decision Logic(Code 节点),根据规则标记状态:ROAS < 1 为 high risk(营销投入无回报);ROAS ≥ 3 为良好表现;CAC > 100 为 medium risk(获客成本过高)。输出包含 agentStatus、agentPriority、insights 数组。

    运行提示词 · 来源原文。KPI Calculator 节点的 jsCode 字段

    const revenue = Number($json.revenue) || 0;
    const adSpend = Number($json.adSpend) || 0;
    const users = Number($json.registeredUsers) || 0;
    
    // Optional: yesterday values (if available later)
    const yesterdayRevenue = Number($json.yesterdayRevenue) || 0;
    const yesterdayUsers = Number($json.yesterdayUsers) || 0;
    
    // KPI calculations
    const ROAS = adSpend > 0 ? revenue / adSpend : 0;
    const CAC = users > 0 ? adSpend / users : 0;
    
    // Growth calculations
    const revenueGrowthPct =
      yesterdayRevenue > 0
        ? ((revenue - yesterdayRevenue) / yesterdayRevenue) * 100
        : 0;
    
    const userGrowthPct =
      yesterdayUsers > 0
        ? ((users - yesterdayUsers) / yesterdayUsers) * 100
        : 0;
    
    return [
      {
        json: {
          ...$json,
          ROAS: Number(ROAS.toFixed(2)),
          CAC: Number(CAC.toFixed(2)),
          //revenueGrowthPct: Number(revenueGrowthPct.toFixed(2)),
          //userGrowthPct: Number(userGrowthPct.toFixed(2))
        }
      }
    ];

    运行提示词 · 来源原文。Business Decision Logic 节点的 jsCode 字段

    const kpi = $json;
    
    let status = "normal";
    let priority = "low";
    let insights = [];
    
    if(kpi.ROAS < 1){
      status = "risk";
      priority = "high";
      insights.push("Marketing spend is not generating returns");
    }
    
    if(kpi.ROAS >= 3){
      insights.push("Marketing campaigns are perfoming very well");
    }
    
    if(kpi.CAC > 100){
      status = "risk";
      priority = "medium";
      insights.push("Customer acquision cost is high");
    }
    
    return [{
      json: {
        ...kpi,
        agentStatus: status,
        agentPriority: priority,
        insights
      }
    }];
  5. AI 生成业务摘要

    配置 AI Agent 节点,promptType 设为 define。将 OpenAI Chat Model 节点(默认 gpt-4.1-mini,可更换为 gpt-4.1 或 gpt-4)作为语言模型接入,Calculator 作为可选工具接入。AI Agent 的 user prompt 接收上游 KPI JSON,systemMessage 设定角色为创始人助理,要求输出:一行业务摘要、一项风险(如有)、一项机会、一项建议行动。

    运行提示词 · 来源原文。AI Agent 节点的 text 字段(user prompt)

    =Business KPIs:
    {{ JSON.stringify($json) }}
    
    Write:
    1. One-line business summary
    2. One risk (if any)
    3. One opportunity
    4. One recommended action

    运行提示词 · 来源原文。AI Agent 节点的 options.systemMessage 字段

    You are an AI business agent working for a company founder.
    
    Your job:
    - Analyze business KPIs
    - Explain what is happening
    - Decide if a notification is required
    - Keep the message short, clear, and actionable
    - Do not use technical terms
    - Do not exaggerate
  6. 格式化并推送多渠道通知

    AI Agent 输出接入 Merge 节点与原始 KPI 数据合并,随后同时分发至:1) Send message(WhatsApp 节点),textBody 包含 AI 摘要与四项指标;2) Send Final Email(Email 节点),subject 为 Yesterday's Revenue Report。两个节点的正文模板均已预置,需替换接收方联系方式。来源亦支持扩展至 Slack/Telegram(需自行添加对应节点)。

    运行提示词 · 来源原文。Send message(WhatsApp)节点的 textBody 字段

    ={{ $json.output }}
    
    Revenue :- {{ $json.revenue }}
    New Users :- {{ $json.registeredUsers }}
    Total Users :- {{ $json.totalUsers }}
    Total Ad Spend :- {{ $json.adSpend }}

    运行提示词 · 来源原文。Send Final Email 节点的 text 字段

    =Dear User,
    
    {{ $json.output }}
    
    Revenue :- {{ $json.revenue }}
    New Users :- {{ $json.registeredUsers }}
    Total Users :- {{ $json.totalUsers }}
    Total Ad Spend :- {{ $json.adSpend }}

可复制提示词

搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限

这一段是提示词,页面不会在这里插入广告。

你正在搭建一个 n8n 自动业务 KPI 日报工作流。请按以下顺序确认:1) 已准备 n8n 实例及六种凭证(MSSQL、Google Analytics OAuth2、Google API 服务账号、SMTP、OpenAI API、WhatsApp API);2) 已替换所有占位查询与文档 ID;3) 已设置 Schedule Trigger 的每日执行时间;4) 已配置错误通知邮箱;5) 已测试单节点数据返回。建议先用样例数据跑通 Normalize the data 节点,再启用 AI Agent。

先替换 SQL 与 Sheets ID,再逐节点测试数据流,最后启用定时触发。

来源

Automated business KPI insights with GPT-4, MSSQL, analytics & multi-channel alerts · mohamed-abubakkar · n8n.io · 2025-12-22

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例