Skip to Content

26c - 工作流蓝图集

本文是《AI Agent 实战手册》第 26 章第 3 节。 上一节:26b-n8n-AI-Agent节点配置 | 下一节:26d-错误处理模式

概述

本节提供 5 个经过生产验证的 n8n AI 工作流蓝图,覆盖内容管线、线索评分、员工入职、跨平台数据同步和 AI 报告生成等高频场景。每个蓝图包含完整的节点拓扑图、逐步搭建说明、关键配置参数和提示词模板,可直接导入 n8n 或作为起点进行定制。


1. 蓝图总览与工具对比

五大蓝图速查表

蓝图核心场景关键节点触发方式预估搭建时间
AI 内容管线RSS → 摘要 → 翻译 → 发布RSS Feed、LLM Chain、HTTP RequestSchedule Trigger(定时)30-45 分钟
AI 线索评分表单/CRM → LLM 评分 → 分级路由Webhook、AI Agent、SwitchWebhook / CRM 触发45-60 分钟
AI 辅助入职HR 表单 → 账号创建 → 欢迎邮件Form Trigger、Code、GmailForm Trigger60-90 分钟
数据同步 + AI 增强多平台数据 → 清洗 → 增强 → 回写Schedule、HTTP Request、LLM ChainSchedule / Webhook45-60 分钟
AI 报告生成数据采集 → 分析 → 报告 → 分发Schedule、Postgres/HTTP、LLM ChainSchedule Trigger(周期)60-90 分钟

相关工具与服务

工具/服务用途价格备注
n8n Cloud工作流托管€24/月起(Starter)含 2,500 次执行/月
n8n Self-hosted自托管工作流免费(社区版)需自备服务器
OpenAI APILLM 推理$2.00/$8.00 每百万 token(GPT-4.1)工具调用稳定
Anthropic APILLM 推理$3.00/$15.00 每百万 token(Claude Sonnet)复杂推理优势
Google Gemini APILLM 推理$1.25/$10.00 每百万 token(2.5 Pro)长上下文优势
DeepSeek APILLM 推理$0.27/$1.10 每百万 token(V3)高性价比
Supabase数据库 + 向量存储免费层可用,Pro $25/月PostgreSQL 兼容
Google Sheets轻量数据存储免费(Google 账号)适合原型和小规模

💡 价格信息截止日期:2025 年 7 月。请以各服务官方最新定价为准。


2. 蓝图一:AI 内容管线(RSS → 摘要 → 翻译 → 发布)

场景说明

自动从多个 RSS 源抓取最新文章,用 LLM 生成中文摘要,可选翻译为其他语言,最终发布到 Slack/Telegram/Notion 等渠道。适用于技术团队的每日资讯速递、内容运营的素材采集、竞品动态监控等场景。

节点拓扑

[Schedule Trigger] → [RSS Feed Read ×N] → [Merge] → [Filter: 去重/时间过滤] → [Loop Over Items] → [LLM Chain: 摘要生成] → [LLM Chain: 翻译(可选)] → [Switch: 发布渠道] ├→ [Slack: 发送摘要] ├→ [Telegram: 发送消息] └→ [Notion: 创建页面] → [Google Sheets: 归档记录]

操作步骤

步骤 1:创建定时触发器

  1. 新建工作流,添加 Schedule Trigger 节点
  2. 设置触发频率:
    • 每日资讯:每天 08:00
    • 实时监控:每 2 小时
  3. 时区设置为 Asia/Shanghai

步骤 2:配置 RSS 源读取

  1. 添加多个 RSS Feed Read 节点,每个对应一个信息源
  2. 填入 RSS URL,例如:
    • https://hnrss.org/newest?points=100(Hacker News 热门)
    • https://blog.langchain.dev/rss/(LangChain 博客)
    • https://openai.com/blog/rss.xml(OpenAI 博客)
  3. 添加 Merge 节点,模式选择 Append,合并所有源的文章

步骤 3:去重与时间过滤

添加 Filter 节点或 Code 节点进行过滤:

// Code 节点:过滤最近 24 小时的文章并去重 const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000); const seen = new Set(); const results = []; for (const item of $input.all()) { const pubDate = new Date(item.json.pubDate || item.json.isoDate); const link = item.json.link; if (pubDate >= cutoff && !seen.has(link)) { seen.add(link); results.push(item); } } return results;

步骤 4:LLM 摘要生成

  1. 添加 Loop Over Items 节点(逐条处理)
  2. 在循环内添加 Basic LLM Chain 节点
  3. 连接 Chat Model 子节点(推荐 GPT-4o-mini 或 DeepSeek-V3,成本低)
  4. 配置 Prompt:

提示词模板:内容摘要

你是一位专业的技术内容编辑。请将以下英文文章摘要为中文,要求: 1. 标题:翻译为中文,保留关键技术术语的英文原文 2. 核心要点:3-5 个要点,每个 1-2 句话 3. 一句话总结:不超过 50 字 4. 相关标签:2-4 个标签 文章标题:{{ $json.title }} 文章链接:{{ $json.link }} 文章内容:{{ $json.contentSnippet || $json.content || '无内容,请基于标题生成摘要' }} 请用以下 JSON 格式输出: { "title_cn": "中文标题", "key_points": ["要点1", "要点2", "要点3"], "summary": "一句话总结", "tags": ["标签1", "标签2"], "original_link": "原文链接" }

步骤 5:可选翻译步骤

如需多语言发布,添加第二个 Basic LLM Chain 节点:

将以下中文摘要翻译为 [目标语言],保持技术术语准确: {{ $json.summary }}

步骤 6:多渠道发布

添加 Switch 节点按渠道分发,或并行发送到多个渠道:

Slack 发布:使用 Slack 节点,消息格式:

📰 *{{ $json.title_cn }}* {{ $json.key_points.join('\n• ') }} 💡 {{ $json.summary }} 🔗 {{ $json.original_link }} 🏷️ {{ $json.tags.join(' | ') }}

Notion 归档:使用 Notion 节点创建数据库条目,字段映射:

  • Title → title_cn
  • Tags → tags(多选属性)
  • URL → original_link
  • Summary → summary

步骤 7:归档到 Google Sheets

添加 Google Sheets 节点,将每条处理记录写入表格,便于追踪和去重:

  • 列:日期、原标题、中文标题、摘要、链接、标签、发布渠道

关键配置参数

参数推荐值说明
LLM Temperature0.3摘要需要准确性,低温度
Max Tokens1024摘要不需要太长
批处理大小10-20 篇/次避免 API 速率限制
定时间隔每日或每 4 小时根据信息时效性需求
错误处理Continue On Fail单篇失败不影响整体

n8n JSON 片段:核心摘要节点

{ "nodes": [ { "parameters": { "url": "https://hnrss.org/newest?points=100", "options": {} }, "name": "RSS Feed Read", "type": "n8n-nodes-base.rssFeedRead", "position": [250, 300] }, { "parameters": { "promptType": "define", "text": "=你是一位专业的技术内容编辑。请将以下英文文章摘要为中文...\n\n文章标题:{{ $json.title }}\n文章链接:{{ $json.link }}\n文章内容:{{ $json.contentSnippet }}" }, "name": "AI Summarizer", "type": "@n8n/n8n-nodes-langchain.chainLlm", "position": [650, 300] } ] }

3. 蓝图二:AI 线索评分(Lead Scoring)

场景说明

当新线索通过表单、CRM 或 Webhook 进入系统时,自动用 LLM 分析线索质量,生成 0-100 分的评分和 A-F 等级,并根据分级路由到不同处理流程:高分线索立即通知销售、中分线索进入培育序列、低分线索归档。适用于 B2B SaaS、数字营销、咨询服务等需要线索筛选的业务。

节点拓扑

[Webhook / Form Trigger / CRM Trigger] → [HTTP Request: 数据增强(可选)] → [AI Agent: 线索评分与分析] → [Code: 解析评分结果] → [Switch: 按等级路由] ├→ HOT (A-B, 80-100) → [Slack 通知] + [CRM 更新: 高优先级] ├→ WARM (C, 50-79) → [Email 序列: 培育] + [CRM 更新: 跟进] └→ COLD (D-F, 0-49) → [Google Sheets: 归档] + [CRM 更新: 低优先级] → [Google Sheets: 全量日志]

操作步骤

步骤 1:配置触发器

方式 A:Webhook 触发(推荐,灵活性最高)

  1. 添加 Webhook 节点
  2. HTTP Method 选择 POST
  3. 路径设置为 /lead-scoring
  4. 将 Webhook URL 配置到你的表单服务(JotForm、Typeform、自建表单)

方式 B:CRM 触发

  1. 添加 Salesforce TriggerHubSpot Trigger 节点
  2. 监听”新建联系人”或”新建线索”事件

步骤 2:数据增强(可选)

添加 HTTP Request 节点调用数据增强 API,补充线索信息:

URL: https://api.apollo.io/v1/people/match Method: POST Body: { "email": "{{ $json.email }}", "reveal_personal_emails": false }

可增强的数据维度:公司规模、行业、职位级别、融资阶段、技术栈等。

步骤 3:配置 AI Agent 评分

  1. 添加 AI Agent 节点
  2. 连接 Chat Model(推荐 GPT-4o 或 Claude Sonnet,评分需要较强推理能力)
  3. 添加工具(可选):
    • HTTP Request Tool:查询 CRM 历史交互记录
    • Code Tool:执行自定义评分逻辑
  4. 配置 System Prompt:

提示词模板:线索评分

你是一位经验丰富的 B2B 销售分析师。请根据以下线索信息进行评分和分析。 ## 评分维度(总分 100) - 公司匹配度(0-30 分):公司规模、行业、地区是否匹配 ICP - 角色匹配度(0-25 分):职位是否为决策者或影响者 - 行为信号(0-25 分):访问页面、下载资料、参加活动等 - 预算信号(0-20 分):公司融资阶段、营收规模、明确预算表达 ## 我们的 ICP(理想客户画像) - 行业:[SaaS/电商/金融科技] - 公司规模:[50-500 人] - 地区:[中国大陆/东南亚] - 目标角色:[CTO/VP Engineering/技术总监] ## 线索信息 姓名:{{ $json.name }} 邮箱:{{ $json.email }} 公司:{{ $json.company }} 职位:{{ $json.title }} 公司规模:{{ $json.company_size || '未知' }} 行业:{{ $json.industry || '未知' }} 来源:{{ $json.source || '未知' }} 备注:{{ $json.message || '无' }} ## 输出格式(严格 JSON) { "score": 85, "grade": "A", "tier": "HOT", "reasoning": "评分理由,2-3 句话", "dimensions": { "company_fit": 25, "role_fit": 22, "behavior_signal": 20, "budget_signal": 18 }, "recommended_action": "建议的下一步行动", "personalized_message": "个性化跟进邮件草稿(3-5 句话)" }

步骤 4:解析评分结果

添加 Code 节点解析 LLM 输出:

// 解析 AI Agent 的评分结果 const response = $json.output || $json.text || ''; let parsed; try { // 尝试从响应中提取 JSON const jsonMatch = response.match(/\{[\s\S]*\}/); parsed = JSON.parse(jsonMatch[0]); } catch (e) { // 解析失败时的降级处理 parsed = { score: 50, grade: 'C', tier: 'WARM', reasoning: '自动评分解析失败,默认中等优先级', recommended_action: '人工审查' }; } // 确保 tier 分类正确 if (parsed.score >= 80) parsed.tier = 'HOT'; else if (parsed.score >= 50) parsed.tier = 'WARM'; else parsed.tier = 'COLD'; return [{ json: { ...parsed, lead_email: $('Webhook').item.json.email } }];

步骤 5:分级路由

添加 Switch 节点,按 tier 字段路由:

条件路由处理
tier = “HOT”输出 1Slack 即时通知 + CRM 标记高优先级
tier = “WARM”输出 2自动发送培育邮件 + CRM 标记跟进
tier = “COLD”输出 3归档到 Google Sheets + CRM 标记低优先级

HOT 线索 Slack 通知模板

🔥 *高质量线索!评分 {{ $json.score }}/100 ({{ $json.grade }})* 👤 {{ $('Webhook').item.json.name }} — {{ $('Webhook').item.json.title }} 🏢 {{ $('Webhook').item.json.company }} 📧 {{ $('Webhook').item.json.email }} 📊 *评分详情* • 公司匹配:{{ $json.dimensions.company_fit }}/30 • 角色匹配:{{ $json.dimensions.role_fit }}/25 • 行为信号:{{ $json.dimensions.behavior_signal }}/25 • 预算信号:{{ $json.dimensions.budget_signal }}/20 💡 *建议行动*:{{ $json.recommended_action }} ✉️ *建议跟进话术*: {{ $json.personalized_message }}

关键配置参数

参数推荐值说明
LLM 模型GPT-4o / Claude Sonnet评分需要较强推理能力
Temperature0.2评分需要高一致性
Max Tokens1024评分结果不需要太长
数据增强可选Apollo/Clearbit API 增强线索信息
人工审查门槛评分 70-85边界线索建议人工复核

4. 蓝图三:AI 辅助员工入职(Onboarding Automation)

场景说明

HR 提交新员工信息后,自动完成账号创建、权限分配、入职文档生成、欢迎邮件发送、Slack 频道邀请、入职任务清单创建等一系列操作。LLM 负责生成个性化的欢迎消息、入职指南和培训计划。适用于快速增长的团队,将入职流程从数小时缩短到几分钟。

节点拓扑

[Form Trigger: HR 填写新员工信息] → [Code: 数据标准化] → [并行分支] ├→ [Google Workspace: 创建账号] ├→ [Jira/Linear: 创建入职任务] ├→ [Slack: 邀请加入频道 + 发送欢迎消息] └→ [LLM Chain: 生成个性化入职指南] → [Merge: 汇总结果] → [LLM Chain: 生成欢迎邮件] → [Gmail: 发送欢迎邮件] → [Notion: 创建员工档案页] → [Google Sheets: 记录入职日志]

操作步骤

步骤 1:创建 HR 输入表单

  1. 添加 n8n Form Trigger 节点
  2. 配置表单字段:
字段名类型必填说明
employee_nameText员工姓名
emailEmail个人邮箱
departmentDropdown部门(工程/产品/设计/运营/销售)
roleText职位名称
start_dateDate入职日期
manager_nameText直属上级
manager_emailEmail上级邮箱
equipment_needsText设备需求

步骤 2:数据标准化

添加 Code 节点处理表单数据:

const data = $json; const startDate = new Date(data.start_date); const username = data.email.split('@')[0]; // 根据部门确定 Slack 频道和权限组 const deptConfig = { '工程': { slack_channels: ['#engineering', '#dev-general', '#code-review'], jira_project: 'ENG', tools: ['GitHub', 'AWS Console', 'Datadog'] }, '产品': { slack_channels: ['#product', '#roadmap', '#user-research'], jira_project: 'PROD', tools: ['Figma (查看)', 'Amplitude', 'Notion'] }, '设计': { slack_channels: ['#design', '#design-system', '#product'], jira_project: 'DES', tools: ['Figma', 'Framer', 'Notion'] }, '运营': { slack_channels: ['#operations', '#metrics', '#support'], jira_project: 'OPS', tools: ['Google Analytics', 'Intercom', 'Notion'] }, '销售': { slack_channels: ['#sales', '#deals', '#customer-success'], jira_project: 'SALES', tools: ['HubSpot', 'Gong', 'Notion'] } }; const config = deptConfig[data.department] || deptConfig['运营']; return [{ json: { ...data, username, corporate_email: `${username}@yourcompany.com`, slack_channels: config.slack_channels, jira_project: config.jira_project, required_tools: config.tools, start_date_formatted: startDate.toLocaleDateString('zh-CN'), first_week_end: new Date(startDate.getTime() + 5 * 24 * 60 * 60 * 1000) .toLocaleDateString('zh-CN') } }];

步骤 3:并行执行账号创建和任务分配

使用 n8n 的并行分支(从同一节点引出多条连线)同时执行:

分支 A:创建 Google Workspace 账号

  • 使用 Google Admin 节点或 HTTP Request 调用 Google Admin SDK
  • 创建企业邮箱账号
  • 设置初始密码并标记”首次登录需修改”

分支 B:创建入职任务清单

  • 使用 JiraLinear 节点
  • 创建 Epic:“[员工姓名] 入职任务”
  • 子任务包括:完成 IT 设置、阅读团队文档、参加入职培训、完成合规培训、与团队成员 1:1

分支 C:Slack 邀请

  • 使用 Slack 节点邀请加入相关频道
  • 在 #general 频道发送欢迎公告

分支 D:AI 生成个性化入职指南

提示词模板:入职指南生成

你是一位友好的 HR 助手。请为新员工生成一份个性化的入职指南。 ## 新员工信息 - 姓名:{{ $json.employee_name }} - 部门:{{ $json.department }} - 职位:{{ $json.role }} - 入职日期:{{ $json.start_date_formatted }} - 直属上级:{{ $json.manager_name }} - 需要使用的工具:{{ $json.required_tools.join('、') }} ## 要求 1. 第一天清单(5-7 项,包括 IT 设置、团队介绍、环境熟悉) 2. 第一周目标(3-5 项,包括阅读文档、参加会议、完成培训) 3. 第一个月里程碑(2-3 项,包括独立完成小任务、理解业务流程) 4. 推荐阅读的内部文档列表(基于部门) 5. 常见问题 FAQ(3-5 个新员工常问的问题和回答) 语气要友好、鼓励,让新员工感到被欢迎。

步骤 4:汇总并生成欢迎邮件

  1. 添加 Merge 节点(Wait for All),等待所有并行分支完成
  2. 添加 Basic LLM Chain 节点生成欢迎邮件:
请基于以下信息生成一封专业且温暖的欢迎邮件(HTML 格式): 收件人:{{ $json.employee_name }}({{ $json.email }}) 企业邮箱:{{ $json.corporate_email }} 部门:{{ $json.department }} 直属上级:{{ $json.manager_name }} 入职日期:{{ $json.start_date_formatted }} Slack 频道:{{ $json.slack_channels.join('、') }} 入职指南摘要: {{ $json.onboarding_guide }} 邮件需包含: 1. 热情的欢迎语 2. 企业邮箱和初始密码信息 3. 第一天需要做的 3 件事 4. 直属上级和 HR 联系方式 5. 相关 Slack 频道列表 输出纯 HTML,使用简洁专业的样式。
  1. 添加 Gmail 节点发送邮件

步骤 5:创建 Notion 员工档案

使用 Notion 节点在员工数据库中创建新页面:

  • 属性映射:姓名、部门、职位、入职日期、上级、状态(“入职中”)
  • 页面内容:入职指南全文

关键配置参数

参数推荐值说明
LLM 模型GPT-4o-mini / DeepSeek-V3文本生成任务,性价比优先
Temperature0.6欢迎邮件需要一定创意
并行分支超时30 秒防止单个 API 阻塞整体
错误处理Continue On Fail单个步骤失败不阻塞入职流程

5. 蓝图四:跨平台数据同步 + AI 增强

场景说明

定期从多个数据源(CRM、电商平台、客服系统)拉取数据,用 LLM 进行数据清洗、字段标准化、缺失信息推断和标签分类,然后将增强后的数据回写到主数据库或数据仓库。适用于多系统并行的企业,解决数据孤岛和数据质量问题。

节点拓扑

[Schedule Trigger: 每日/每小时] → [并行数据拉取] ├→ [HTTP Request: CRM API(HubSpot/Salesforce)] ├→ [HTTP Request: 电商平台 API(Shopify)] └→ [Postgres: 客服工单数据] → [Merge: 合并数据流] → [Code: 数据标准化 + 去重] → [Loop Over Items] → [LLM Chain: AI 数据增强] → [Code: 数据验证] → [Switch: 路由] ├→ 有效数据 → [Postgres/Supabase: 写入主库] └→ 异常数据 → [Google Sheets: 人工审查队列] → [Slack: 同步报告通知]

操作步骤

步骤 1:配置多源数据拉取

CRM 数据(HubSpot 示例)

  1. 添加 HTTP Request 节点
  2. URL:https://api.hubapi.com/crm/v3/objects/contacts
  3. 认证:Bearer Token(HubSpot API Key)
  4. 查询参数:limit=100&properties=email,firstname,lastname,company,jobtitle,industry
  5. 添加分页逻辑(使用 Loop 节点处理 paging.next.after

电商数据(Shopify 示例)

  1. 添加 HTTP Request 节点
  2. URL:https://{{ $credentials.shopifyDomain }}/admin/api/2025-01/customers.json
  3. 认证:Shopify Admin API Token
  4. 过滤:updated_at_min={{ $now.minus(1, 'day').toISO() }}

客服数据(Postgres 直连)

  1. 添加 Postgres 节点
  2. 查询:
SELECT customer_email, ticket_count, avg_satisfaction, last_ticket_date, common_issues FROM customer_support_summary WHERE updated_at >= NOW() - INTERVAL '1 day'

步骤 2:数据标准化与去重

添加 Code 节点统一数据格式:

const allRecords = $input.all().map(item => item.json); // 统一字段名 const normalized = allRecords.map(record => ({ email: (record.email || record.customer_email || '').toLowerCase().trim(), name: record.firstname ? `${record.firstname} ${record.lastname}` : record.name || '', company: record.company || record.company_name || '', title: record.jobtitle || record.job_title || '', industry: record.industry || '', source: record._source || 'unknown', ticket_count: record.ticket_count || 0, satisfaction: record.avg_satisfaction || null, order_count: record.orders_count || 0, total_spent: record.total_spent || 0 })); // 按 email 去重,合并多源数据 const merged = {}; for (const record of normalized) { if (!record.email) continue; if (!merged[record.email]) { merged[record.email] = { ...record, sources: [record.source] }; } else { // 合并非空字段 const existing = merged[record.email]; for (const [key, value] of Object.entries(record)) { if (value && !existing[key]) existing[key] = value; } existing.sources.push(record.source); } } return Object.values(merged).map(r => ({ json: r }));

步骤 3:AI 数据增强

Loop Over Items 内添加 Basic LLM Chain 节点:

提示词模板:数据增强

你是一位数据分析专家。请根据以下客户记录,推断和补充缺失信息。 ## 客户记录 - 邮箱:{{ $json.email }} - 姓名:{{ $json.name }} - 公司:{{ $json.company }} - 职位:{{ $json.title }} - 行业:{{ $json.industry }} - 工单数:{{ $json.ticket_count }} - 满意度:{{ $json.satisfaction || '未知' }} - 订单数:{{ $json.order_count }} - 消费总额:{{ $json.total_spent }} ## 任务 1. 如果行业为空,根据公司名和邮箱域名推断行业 2. 根据所有数据,给出客户分类标签(从以下选项中选择 1-3 个): VIP客户、活跃用户、沉睡用户、高风险流失、新客户、大客户、技术用户、决策者 3. 计算客户健康度评分(0-100): - 满意度权重 40% - 活跃度(工单+订单频率)权重 30% - 消费金额权重 30% 4. 如果健康度 < 50,给出流失风险预警和建议行动 ## 输出格式(严格 JSON) { "inferred_industry": "推断的行业(如已有则保持原值)", "tags": ["标签1", "标签2"], "health_score": 75, "churn_risk": "low/medium/high", "recommended_action": "建议行动(仅当 churn_risk 为 medium/high 时)" }

步骤 4:数据验证与路由

添加 Code 节点验证增强后的数据:

const original = $json; const aiResult = JSON.parse($json.ai_output); const enriched = { ...original, industry: aiResult.inferred_industry || original.industry, tags: aiResult.tags, health_score: aiResult.health_score, churn_risk: aiResult.churn_risk, recommended_action: aiResult.recommended_action || null, enriched_at: new Date().toISOString(), is_valid: true }; // 基本验证 if (!enriched.email || !enriched.email.includes('@')) { enriched.is_valid = false; enriched.validation_error = '无效邮箱'; } if (enriched.health_score < 0 || enriched.health_score > 100) { enriched.health_score = Math.max(0, Math.min(100, enriched.health_score)); } return [{ json: enriched }];

添加 Switch 节点按 is_valid 路由:

  • 有效数据 → 写入 Postgres/Supabase 主库
  • 异常数据 → 写入 Google Sheets 人工审查队列

步骤 5:同步报告通知

添加 Code 节点汇总统计,然后通过 Slack 发送报告:

📊 *数据同步报告 — {{ $now.format('yyyy-MM-dd HH:mm') }}* ✅ 同步成功:{{ $json.success_count }} 条 ⚠️ 需人工审查:{{ $json.review_count }} 条 🔴 高流失风险:{{ $json.high_churn_count }} 条 📈 健康度分布: • 优秀 (80-100):{{ $json.health_excellent }} 条 • 良好 (60-79):{{ $json.health_good }} 条 • 关注 (40-59):{{ $json.health_attention }} 条 • 预警 (<40):{{ $json.health_warning }} 条

关键配置参数

参数推荐值说明
LLM 模型GPT-4o-mini / DeepSeek-V3数据增强任务,性价比优先
Temperature0.1数据推断需要高确定性
批处理大小50 条/批平衡速度和 API 限制
同步频率每日或每 4 小时根据数据时效性需求
去重策略以 email 为主键跨平台统一标识

6. 蓝图五:AI 报告生成(自动化周报/月报)

场景说明

定期从数据库、API 和 Google Sheets 采集业务数据,用 LLM 分析趋势、生成洞察和建议,输出格式化的 HTML 报告,通过邮件分发给管理层。适用于月度财务报告、周度运营报告、营销效果分析、项目进度汇报等场景。

节点拓扑

[Schedule Trigger: 每周一 09:00 / 每月 1 日] → [并行数据采集] ├→ [Postgres: 业务指标查询] ├→ [Google Sheets: 手动录入数据] ├→ [HTTP Request: 第三方 API(Google Analytics / Stripe)] └→ [HTTP Request: 上期报告数据(用于环比)] → [Merge: 汇总所有数据] → [Code: 数据预处理 + 计算指标] → [LLM Chain: 生成分析报告] → [Code: 组装 HTML 报告] → [Switch: 分发渠道] ├→ [Gmail: 发送给管理层] ├→ [Slack: 发送摘要到频道] └→ [Google Drive: 存档 PDF(可选)] → [Google Sheets: 记录报告历史]

操作步骤

步骤 1:配置定时触发

  1. 添加 Schedule Trigger 节点
  2. 周报:每周一 09:00
  3. 月报:每月 1 日 09:00
  4. 时区:Asia/Shanghai

步骤 2:并行数据采集

业务指标(Postgres)

-- 本期核心指标 SELECT COUNT(DISTINCT user_id) AS active_users, COUNT(*) FILTER (WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '1 week') AS new_signups, SUM(amount) FILTER (WHERE status = 'paid') AS revenue, AVG(satisfaction_score) AS avg_satisfaction, COUNT(*) FILTER (WHERE status = 'churned') AS churned_users FROM business_metrics WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '1 week' AND created_at < date_trunc('week', NOW());
-- 上期指标(用于环比计算) SELECT COUNT(DISTINCT user_id) AS prev_active_users, SUM(amount) FILTER (WHERE status = 'paid') AS prev_revenue FROM business_metrics WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '2 weeks' AND created_at < date_trunc('week', NOW()) - INTERVAL '1 week';

第三方数据(Stripe 收入)

URL: https://api.stripe.com/v1/charges Method: GET Query: created[gte]={{ $now.minus(7, 'days').toSeconds() }}&limit=100 Auth: Bearer sk_live_xxx

Google Analytics(网站流量)

使用 HTTP Request 调用 GA4 Data API,获取页面浏览量、会话数、跳出率等。

步骤 3:数据预处理

添加 Code 节点计算关键指标和环比变化:

const current = $('Postgres Current').item.json; const previous = $('Postgres Previous').item.json; const stripe = $('Stripe').item.json; // 计算环比变化 const calcChange = (curr, prev) => { if (!prev || prev === 0) return { value: curr, change: 'N/A', trend: '➡️' }; const pct = ((curr - prev) / prev * 100).toFixed(1); const trend = pct > 5 ? '📈' : pct < -5 ? '📉' : '➡️'; return { value: curr, change: `${pct}%`, trend }; }; return [{ json: { period: `${$now.minus(7, 'days').format('MM-dd')} ~ ${$now.minus(1, 'day').format('MM-dd')}`, metrics: { active_users: calcChange(current.active_users, previous.prev_active_users), revenue: calcChange(current.revenue, previous.prev_revenue), new_signups: { value: current.new_signups, change: 'N/A', trend: '➡️' }, satisfaction: { value: current.avg_satisfaction?.toFixed(1), change: 'N/A', trend: '➡️' }, churn: { value: current.churned_users, change: 'N/A', trend: '➡️' } }, raw_data: { current, previous, stripe } } }];

步骤 4:LLM 生成分析报告

添加 Basic LLM Chain 节点(推荐 GPT-4o 或 Claude Sonnet,分析质量更高):

提示词模板:周报分析

你是一位资深业务分析师。请根据以下数据生成一份专业的周度业务报告。 ## 报告周期 {{ $json.period }} ## 核心指标 - 活跃用户:{{ $json.metrics.active_users.value }}(环比 {{ $json.metrics.active_users.change }}) - 营收:¥{{ $json.metrics.revenue.value }}(环比 {{ $json.metrics.revenue.change }}) - 新注册:{{ $json.metrics.new_signups.value }} - 用户满意度:{{ $json.metrics.satisfaction.value }}/5.0 - 流失用户:{{ $json.metrics.churn.value }} ## 要求 请生成以下内容: ### 1. 执行摘要(3-5 句话) 概括本周整体表现,突出最重要的变化。 ### 2. 关键发现(3-5 条) 每条发现包含:数据事实 + 可能原因 + 影响评估。 ### 3. 风险预警 如果有指标出现显著下降或异常,列出风险点和建议的应对措施。 ### 4. 下周建议行动(2-3 条) 基于数据趋势,给出具体可执行的建议。 ### 5. 趋势判断 用一句话总结整体趋势方向(上升/平稳/下降)。 语气要专业、数据驱动,避免模糊表述。每个观点都要有数据支撑。

步骤 5:组装 HTML 报告

添加 Code 节点将 LLM 分析结果组装为格式化 HTML:

const metrics = $('Data Processing').item.json.metrics; const analysis = $json.text; // LLM 输出 const period = $('Data Processing').item.json.period; const html = ` <!DOCTYPE html> <html> <head> <style> body { font-family: -apple-system, sans-serif; max-width: 700px; margin: 0 auto; padding: 20px; color: #333; } .header { background: #1a1a2e; color: white; padding: 24px; border-radius: 8px; margin-bottom: 24px; } .metric-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0; } .metric-card { background: #f8f9fa; padding: 16px; border-radius: 8px; text-align: center; } .metric-value { font-size: 28px; font-weight: bold; color: #1a1a2e; } .metric-label { font-size: 13px; color: #666; margin-top: 4px; } .metric-change { font-size: 13px; margin-top: 4px; } .analysis { line-height: 1.8; } .footer { margin-top: 32px; padding-top: 16px; border-top: 1px solid #eee; font-size: 12px; color: #999; } </style> </head> <body> <div class="header"> <h1 style="margin:0;">📊 周度业务报告</h1> <p style="margin:8px 0 0;opacity:0.8;">${period}</p> </div> <div class="metric-grid"> <div class="metric-card"> <div class="metric-value">${metrics.active_users.value}</div> <div class="metric-label">活跃用户</div> <div class="metric-change">${metrics.active_users.trend} ${metrics.active_users.change}</div> </div> <div class="metric-card"> <div class="metric-value">¥${Number(metrics.revenue.value).toLocaleString()}</div> <div class="metric-label">营收</div> <div class="metric-change">${metrics.revenue.trend} ${metrics.revenue.change}</div> </div> <div class="metric-card"> <div class="metric-value">${metrics.new_signups.value}</div> <div class="metric-label">新注册</div> <div class="metric-change">${metrics.new_signups.trend}</div> </div> </div> <div class="analysis"> ${analysis.replace(/\n/g, '<br>')} </div> <div class="footer"> 此报告由 AI 自动生成 | 生成时间:${new Date().toLocaleString('zh-CN')} | 数据来源:内部数据库 + Stripe + GA4 </div> </body> </html>`; return [{ json: { html, subject: `📊 周度业务报告 | ${period}`, analysis } }];

步骤 6:多渠道分发

邮件分发:使用 Gmail 节点

  • 收件人:管理层邮件列表
  • 主题:{{ $json.subject }}
  • 内容类型:HTML
  • 正文:{{ $json.html }}

Slack 摘要:使用 Slack 节点发送精简版

📊 *周度业务报告已生成* | {{ $json.period }} {{ $json.analysis.substring(0, 500) }}... 📧 完整报告已发送至管理层邮箱

Google Drive 存档(可选):使用 Google Drive 节点上传 HTML 文件

关键配置参数

参数推荐值说明
LLM 模型GPT-4o / Claude Sonnet分析报告需要高质量推理
Temperature0.4分析需要准确但不死板
Max Tokens4096报告内容较长
数据查询超时30 秒防止慢查询阻塞
报告存档建议开启便于历史对比

n8n JSON 片段:报告生成核心节点

{ "nodes": [ { "parameters": { "rule": { "interval": [{ "field": "weeks", "weekday": 1, "hour": 9 }] } }, "name": "Weekly Schedule", "type": "n8n-nodes-base.scheduleTrigger", "position": [250, 300] }, { "parameters": { "operation": "executeQuery", "query": "SELECT COUNT(DISTINCT user_id) AS active_users, SUM(amount) AS revenue FROM business_metrics WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '1 week'" }, "name": "Postgres Metrics", "type": "n8n-nodes-base.postgres", "position": [450, 300] }, { "parameters": { "promptType": "define", "text": "=你是一位资深业务分析师...\n\n核心指标:\n{{ $json.metrics }}" }, "name": "AI Report Generator", "type": "@n8n/n8n-nodes-langchain.chainLlm", "position": [850, 300] } ] }

实战案例:从零搭建 AI 内容管线

案例背景

一个 3 人技术团队需要每天追踪 AI 领域的最新动态,但手动浏览 10+ 个信息源耗时 1-2 小时。目标:用 n8n 搭建自动化内容管线,每天早上 8 点在 Slack 频道推送中文摘要。

完整搭建流程

第 1 步:规划信息源

确定 5 个核心 RSS 源:

  • Hacker News 热门(https://hnrss.org/newest?points=100
  • OpenAI 博客(https://openai.com/blog/rss.xml
  • Anthropic 研究(https://www.anthropic.com/research/rss.xml
  • n8n 博客(https://blog.n8n.io/rss/
  • The Verge AI 板块(https://www.theverge.com/rss/ai-artificial-intelligence/index.xml

第 2 步:搭建工作流骨架

  1. 创建新工作流,命名为”AI 每日资讯”
  2. 添加 Schedule Trigger → 5 个 RSS Feed Read → Merge → Code(过滤)→ Loop → LLM Chain → Slack
  3. 先不配置 LLM,用 Set 节点模拟输出,验证数据流通

第 3 步:调试数据流

常见问题:

  • RSS 节点返回空数据 → 检查 URL 是否正确,部分站点需要代理
  • Merge 后数据格式不一致 → 在 Code 节点中统一字段名
  • 时间过滤不生效 → 注意 RSS 的时间字段名可能是 pubDateisoDatedate

第 4 步:接入 LLM

  • 选择 DeepSeek-V3($0.27/百万 token),每天处理 20 篇文章约花费 $0.01
  • Temperature 设为 0.3,确保摘要准确
  • 添加 Auto-fixing Output Parser 处理偶尔的 JSON 格式错误

第 5 步:优化与上线

  • 添加 Google Sheets 归档,用于去重(下次运行时跳过已处理的链接)
  • 设置 Continue On Fail,单篇文章处理失败不影响整体
  • 添加错误通知:工作流失败时发送 Slack 告警

案例分析

指标优化前优化后
每日信息追踪时间1-2 小时5 分钟(阅读摘要)
信息源覆盖3-5 个(手动)10+ 个(自动)
每月成本0(人力成本除外)~$0.30(LLM API)
信息延迟不确定固定每天 08:00

关键决策点

  1. 选择 Basic LLM Chain 而非 AI Agent——摘要是确定性任务,不需要工具调用
  2. 使用 DeepSeek-V3 而非 GPT-4o——摘要任务对模型能力要求不高,成本降低 90%
  3. 先归档再发布——确保数据可追溯,便于后续分析

避坑指南

❌ 常见错误

  1. 在 Loop 中使用 AI Agent 而非 LLM Chain

    • 问题:AI Agent 节点每次调用都会初始化工具和记忆,在循环中使用会导致性能极差且成本翻倍
    • 正确做法:批量处理确定性任务(摘要、翻译、分类)时使用 Basic LLM Chain;只有需要工具调用和自主决策时才用 AI Agent
  2. 忽略 API 速率限制导致工作流失败

    • 问题:在 Loop 中快速连续调用 LLM API,触发速率限制(429 错误),整个工作流中断
    • 正确做法:在 Loop 节点中启用 Batch SizeWait Between Batches(建议 1-2 秒间隔);或使用 n8n 的 Wait 节点添加延迟
  3. LLM 输出 JSON 解析失败导致后续节点崩溃

    • 问题:LLM 偶尔输出格式不规范的 JSON(多余逗号、缺少引号),Code 节点 JSON.parse() 直接报错
    • 正确做法:使用 try-catch 包裹解析逻辑,提供降级默认值;或使用 Auto-fixing Output Parser 自动修复
  4. 数据同步工作流缺少幂等性设计

    • 问题:工作流重试或重复执行时,同一条数据被多次写入目标系统,造成数据重复
    • 正确做法:使用唯一标识(如 email、order_id)作为去重键;写入时使用 UPSERT(INSERT ON CONFLICT UPDATE)而非 INSERT
  5. 报告生成工作流的数据查询超时

    • 问题:复杂 SQL 查询在大数据量下超时,导致报告生成失败
    • 正确做法:为数据查询设置明确的超时时间;预先创建物化视图或汇总表;将数据采集和报告生成拆分为两个工作流
  6. 入职工作流中并行分支的错误处理不当

    • 问题:某个并行分支(如 Google Workspace API)失败,Merge 节点等待超时,整个入职流程卡住
    • 正确做法:每个并行分支都启用 Continue On Fail;Merge 节点设置合理超时;失败的步骤记录到日志,后续人工补救
  7. 线索评分的 Prompt 没有包含 ICP 定义

    • 问题:LLM 不了解你的理想客户画像,评分标准不一致,同类线索得分差异大
    • 正确做法:在 System Prompt 中明确定义 ICP(行业、规模、角色、地区),并提供评分维度和权重
  8. 工作流蓝图直接用于生产而不做适配

    • 问题:蓝图中的字段名、API 端点、凭证配置与实际环境不匹配,导致各种运行时错误
    • 正确做法:将蓝图视为起点而非终点;逐个节点验证配置;先用测试数据跑通全流程,再接入真实数据

✅ 最佳实践

  1. 先跑通骨架,再接入 LLM:用 Set 节点模拟 LLM 输出,验证整个数据流通后再替换为真实 LLM 调用,节省调试时的 API 费用
  2. 为每个蓝图添加”健康检查”节点:在工作流末尾添加 Code 节点统计成功/失败数量,发送执行摘要到 Slack
  3. 使用环境变量管理配置:将 API Key、数据库连接串、Slack Channel ID 等存储在 n8n 凭证中,而非硬编码在节点参数里
  4. 建立蓝图版本管理:导出工作流 JSON 存入 Git 仓库,每次修改都提交,便于回滚和团队协作
  5. 设计渐进式复杂度:从最简单的版本开始(如只有 1 个 RSS 源 + 1 个 Slack 输出),验证后再逐步添加翻译、多渠道、归档等功能
  6. 监控 LLM 成本:在 Code 节点中记录每次 LLM 调用的 token 使用量,定期审查成本趋势

相关资源与延伸阅读

  1. n8n 工作流模板库 — 社区贡献的 2,000+ 工作流模板,可按场景搜索和一键导入 https://n8n.io/workflows/ 

  2. n8n AI 工作流官方文档 — AI 节点的完整参考文档,包括 LLM Chain、AI Agent、向量存储等 https://docs.n8n.io/advanced-ai/ 

  3. n8n 社区论坛 — 工作流问题讨论、故障排查和经验分享的活跃社区 https://community.n8n.io/ 

  4. n8n GitHub 仓库 — 开源代码、Issue 追踪和功能请求 https://github.com/n8n-io/n8n 

  5. n8n RSS Feed Read 节点文档 — RSS 节点的详细配置参考 https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread/ 

  6. n8n AI Automation Guide 2025 — n8nhost.io 的 AI 自动化实践指南 https://n8nhost.io/ai-automation-n8n-guide-2025/ 

  7. Apollo.io API 文档 — 线索数据增强 API,可用于线索评分蓝图中的数据增强步骤 https://docs.apollo.io/ 

  8. Supabase 文档 — 开源 PostgreSQL 托管平台,适合作为数据同步蓝图的目标数据库 https://supabase.com/docs 

  9. n8n 本地部署指南 — 使用 Docker 自托管 n8n 的完整教程 https://docs.n8n.io/hosting/ 

  10. Osinity: 自动化 Meta 广告报告 — 使用 n8n + AI 自动生成广告报告的实战案例 https://osinity.com/blog/automate-meta-ads-reporting-n8n 


参考来源


📖 返回 总览与导航 | 上一节:26b-n8n-AI-Agent节点配置 | 下一节:26d-错误处理模式

Last updated on