first commit

This commit is contained in:
2025-09-09 09:29:17 +08:00
commit 3898c312d5
26 changed files with 6649 additions and 0 deletions

View File

@@ -0,0 +1,366 @@
# 基本工作流创建
## 📚 学习资源
- **图文教程**[n8n工作流创建完整指南](https://mp.weixin.qq.com/s/oIcmTW0Gg2r63C0Tn91r2Q)
- **视频教程**[从零开始的n8n实战](https://www.bilibili.com/video/BV1nejbz6Eip)
- **官方文档**[n8n Workflow Examples](https://docs.n8n.io/workflows/)
通过本章节您将学会如何从零开始设计和构建实用的n8n工作流。
## 🎯 工作流设计原则
### SOLID原则在工作流中的应用
| 原则 | 工作流应用 | 实践建议 |
|------|------------|----------|
| **单一职责** | 每个工作流专注一个业务目标 | 避免在一个工作流中处理多个不相关的任务 |
| **开放封闭** | 易于扩展,难以修改核心逻辑 | 使用子工作流和模板化设计 |
| **里氏替换** | 相似节点可以互相替换 | 标准化节点接口和数据格式 |
| **接口隔离** | 最小化节点间依赖 | 只传递必要的数据字段 |
| **依赖倒置** | 依赖抽象而非具体实现 | 使用凭证管理而非硬编码 |
### 工作流生命周期
**需求分析****流程设计****节点配置****测试调试****部署运行****监控维护****优化迭代** → 回到流程设计
## 📝 第一个工作流:每日天气邮件
让我们从一个简单但实用的例子开始学习。
### 需求分析
**目标**: 每天早上8点自动获取天气信息并发送邮件提醒
**数据源**: OpenWeatherMap API
**输出**: HTML格式的天气邮件
**频率**: 每日执行
### 工作流设计
**Schedule Trigger每天8:00****HTTP Request获取天气API****Set Node处理天气数据****Code Node生成邮件HTML****Email Send发送天气邮件**
### 详细配置步骤
=== "1. 定时触发器配置"
```yaml
节点类型: Schedule Trigger
触发规则: Cron
Cron表达式: 0 8 * * *
时区: Asia/Shanghai
```
=== "2. 天气API请求"
```javascript
// HTTP Request 节点配置
{
"method": "GET",
"url": "https://api.openweathermap.org/data/2.5/weather",
"qs": {
"q": "Beijing,CN",
"appid": "{{$credentials.openweather.api_key}}",
"units": "metric",
"lang": "zh_cn"
}
}
```
=== "3. 数据处理"
```javascript
// Set 节点 - 提取有用信息
{
"city": "={{$json.name}}",
"temperature": "={{Math.round($json.main.temp)}}",
"feels_like": "={{Math.round($json.main.feels_like)}}",
"humidity": "={{$json.main.humidity}}",
"description": "={{$json.weather[0].description}}",
"icon": "={{$json.weather[0].icon}}",
"wind_speed": "={{$json.wind.speed}}",
"current_time": "={{new Date().toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'})}}"
}
```
=== "4. HTML邮件生成"
```javascript
// Code 节点 - 生成邮件HTML
const weatherData = $input.first().json;
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
.weather-card {
font-family: 'Arial', sans-serif;
max-width: 600px;
margin: 0 auto;
background: linear-gradient(135deg, #74b9ff, #0984e3);
color: white;
padding: 30px;
border-radius: 15px;
text-align: center;
}
.temperature {
font-size: 48px;
font-weight: bold;
margin: 20px 0;
}
.details {
display: flex;
justify-content: space-around;
margin-top: 30px;
}
.detail-item {
text-align: center;
}
.detail-value {
font-size: 24px;
font-weight: bold;
}
.detail-label {
font-size: 14px;
opacity: 0.8;
}
</style>
</head>
<body>
<div class="weather-card">
<h2>🌤️ ${weatherData.city} 今日天气</h2>
<div class="temperature">${weatherData.temperature}°C</div>
<p>${weatherData.description}</p>
<p>体感温度:${weatherData.feels_like}°C</p>
<div class="details">
<div class="detail-item">
<div class="detail-value">💧${weatherData.humidity}%</div>
<div class="detail-label">湿度</div>
</div>
<div class="detail-item">
<div class="detail-value">🌬️${weatherData.wind_speed}m/s</div>
<div class="detail-label">风速</div>
</div>
</div>
<hr style="margin: 30px 0; border: 1px solid rgba(255,255,255,0.3);">
<p style="font-size: 12px; opacity: 0.8;">
更新时间:${weatherData.current_time}<br>
由 n8n 自动发送 ❤️
</p>
</div>
</body>
</html>`;
return [{
json: {
html_content: htmlContent,
subject: `${weatherData.city} ${weatherData.temperature}°C - ${weatherData.description}`,
weather_summary: `今日${weatherData.city}气温${weatherData.temperature}°C${weatherData.description}`
}
}];
```
=== "5. 邮件发送"
```yaml
节点类型: Email Send
收件人: your-email@example.com
主题: "={{$json.subject}}"
邮件类型: HTML
邮件内容: "={{$json.html_content}}"
```
## 🔄 进阶工作流:客户反馈处理系统
现在我们来构建一个更复杂的业务工作流。
### 业务场景
**目标**: 自动化处理客户反馈表单提交
**触发**: 网站表单Webhook
**处理**: 分类、存储、分配、通知
**输出**: 多渠道通知和工单创建
### 工作流架构
**Webhook接收** → **判断反馈类型**
- **投诉** → 高优先级处理 → 发送紧急通知 + 创建高优先级工单 → 发送客户确认
- **建议** → 普通优先级处理 → 存储到数据库 + 分配给客服 → 发送客户确认
- **咨询** → 自动回复处理 → AI自动回复 + 发送确认邮件 → 发送客户确认
### 核心节点配置
=== "Webhook接收"
```javascript
// Webhook 节点配置
{
"httpMethod": "POST",
"path": "customer-feedback",
"authentication": "headerAuth",
"options": {
"rawBody": false
}
}
```
=== "反馈分类逻辑"
```javascript
// Switch 节点 - 根据反馈类型分发
const feedbackType = $json.body.feedback_type || 'unknown';
const urgentKeywords = ['投诉', '不满', '退款', '问题', '错误'];
const content = $json.body.message || '';
// 检查是否包含紧急关键词
const isUrgent = urgentKeywords.some(keyword =>
content.includes(keyword)
);
if (feedbackType === 'complaint' || isUrgent) {
return [0]; // 投诉流程
} else if (feedbackType === 'suggestion') {
return [1]; // 建议流程
} else {
return [2]; // 咨询流程
}
```
=== "数据库存储"
```sql
-- PostgreSQL 插入语句
INSERT INTO customer_feedback (
customer_name,
customer_email,
feedback_type,
message,
priority,
status,
created_at,
assigned_to
) VALUES (
'{{$json.body.name}}',
'{{$json.body.email}}',
'{{$json.body.feedback_type}}',
'{{$json.body.message}}',
'{{$json.priority || "normal"}}',
'new',
NOW(),
'{{$json.assigned_agent || null}}'
);
```
=== "AI自动回复"
```javascript
// AI Agent 节点配置
{
"model": "gpt-3.5-turbo",
"prompt": `你是一个专业的客服助手。客户发来了以下咨询:
客户姓名:{{$json.body.name}}
咨询内容:{{$json.body.message}}
请生成一个专业、友好的自动回复邮件,内容应该:
1. 感谢客户的咨询
2. 确认已收到并会尽快处理
3. 提供预计回复时间
4. 如果是常见问题,提供初步解答
5. 保持礼貌和专业的语调
请以中文回复,格式为邮件正文。`,
"temperature": 0.7,
"max_tokens": 500
}
```
## 🔧 工作流最佳实践
### 错误处理和重试机制
**主流程** → **判断执行成功?**
- **是** → 正常完成
- **否** → Error Trigger → **判断重试次数 < 3**
- **是** → 等待延迟 → 重新执行 → 回到主流程
- **否** → 发送失败通知 → 记录错误日志
### 性能优化建议
!!! tip "性能优化技巧"
**1. 批量处理**
```javascript
// 避免在循环中频繁API调用
// 好的做法:批量收集数据,一次性处理
const batchData = [];
for (const item of $input.all()) {
batchData.push(item.json);
}
// 批量API调用
const result = await callBatchAPI(batchData);
```
**2. 缓存机制**
```javascript
// 使用Set节点缓存常用数据
const cacheKey = `cache_${$json.query_key}`;
const cachedData = $workflow.cache[cacheKey];
if (cachedData && cachedData.timestamp > Date.now() - 3600000) {
return cachedData.data; // 使用1小时内的缓存
}
```
**3. 并行执行**:数据输入 → 拆分数据 → 并行处理1/2/3 → 合并结果
### 测试和调试策略
**1. 单元测试**
- 单独测试每个节点
- 使用测试数据验证逻辑
- 检查数据转换正确性
**2. 集成测试**
- 端到端流程测试
- 异常情况模拟
- 性能压力测试
**3. 调试技巧**
```javascript
// 在Code节点中添加调试信息
console.log('调试信息:', {
input_data: $input.all(),
processed_count: processedItems.length,
timestamp: new Date().toISOString()
});
// 使用Set节点添加调试字段
{
"debug_info": {
"node_name": "数据处理节点",
"execution_time": "={{Date.now()}}",
"input_size": "={{$input.all().length}}"
},
"original_data": "={{$json}}"
}
```
## 📚 工作流模板库
### 常用业务模板
| 模板类型 | 适用场景 | 核心节点 |
|---------|---------|----------|
| **数据同步** | CRM、ERP系统集成 | Schedule + HTTP + Database |
| **内容管理** | 社交媒体自动发布 | RSS + AI + Social Media APIs |
| **监控告警** | 系统监控、业务监控 | HTTP + IF + Email/Slack |
| **报告生成** | 定期业务报告 | Database + AI + Email |
| **客户服务** | 工单管理、自动回复 | Webhook + AI + Database |
### 学习资源
- **图文教程**: [n8n工作流创建完整指南](https://mp.weixin.qq.com/s/oIcmTW0Gg2r63C0Tn91r2Q)
- **视频教程**: [从零开始的n8n实战](https://www.bilibili.com/video/BV1nejbz6Eip)
- **官方文档**: [n8n Workflow Examples](https://docs.n8n.io/workflows/)
---
掌握了基本工作流创建后,您就可以开始构建更复杂的自动化解决方案了!
[上一章:常用节点](common-nodes/){ .md-button } [下一章:避坑指南](pitfalls/){ .md-button .md-button--primary }

View File

@@ -0,0 +1,509 @@
# 常用节点
## 📚 学习资源
- **图文教程**[n8n工作流创建完整指南](https://mp.weixin.qq.com/s/oIcmTW0Gg2r63C0Tn91r2Q)
- **视频教程**[从零开始的n8n实战](https://www.bilibili.com/video/BV1nejbz6Eip)
- **官方文档**[n8n Workflow Examples](https://docs.n8n.io/workflows/)
n8n提供了丰富的节点库覆盖了工作流自动化的各个方面。掌握这些常用节点是构建高效工作流的基础。
## 🧩 节点分类概览
**触发器**手动触发、定时触发、Webhook、邮件触发、文件监控
**输入**HTTP请求、数据库查询、文件读取、API调用、RSS获取
**处理**数据转换、AI处理、代码执行、图像处理、文本分析
**逻辑**:条件判断、循环处理、数据合并、分支路由、错误处理
**输出**邮件发送、文件保存、API推送、通知发送、数据存储
## 🔥 触发器节点 (Triggers)
触发器是工作流的起点,定义了工作流何时开始执行。
### Manual Trigger - 手动触发
**功能**: 用户手动启动的工作流执行
**使用场景**:
- 一次性任务执行
- 工作流测试和调试
- 按需数据处理
**配置**: 通常无需复杂配置,作为工作流的起始点
**最佳实践**Manual Trigger → 数据获取 → 数据处理 → 结果输出
### Schedule Trigger - 定时触发
**功能**: 基于时间的自动化任务执行
**配置选项**:
- **时间间隔**: 每分钟、小时、天、周、月
- **Cron表达式**: 高级时间配置
- **时区设置**: 确保正确的执行时间
**常用场景**:
=== "每日报告"
```
触发时间: 每天 09:00
时区: Asia/Shanghai
工作日执行: 周一到周五
```
=== "数据同步"
```
触发时间: 每30分钟
执行条件: 24/7运行
错误重试: 启用
```
=== "定期清理"
```
触发时间: 每周日 02:00
任务: 清理临时文件
通知: 完成后发送邮件
```
!!! warning "定时触发注意事项"
- 确保服务器时区设置正确
- 考虑服务器维护时间窗口
- 设置合理的执行超时时间
- 添加错误处理和重试机制
### Webhook - API触发
**功能**: 通过HTTP请求触发工作流
**配置要素**:
- **URL路径**: 自定义webhook端点
- **HTTP方法**: GET、POST、PUT、DELETE
- **认证方式**: 无认证、基础认证、头部认证
**典型应用**:
| 场景 | 触发源 | 数据处理 |
|------|-------|---------|
| **GitHub集成** | 代码推送事件 | 自动部署、测试通知 |
| **表单提交** | 网站表单 | 数据验证、邮件通知 |
| **支付回调** | 支付网关 | 订单处理、发货通知 |
| **监控告警** | 监控系统 | 故障分析、团队通知 |
**安全配置**:
```yaml
webhook_url: https://your-n8n.com/webhook/secure-endpoint
authentication:
type: header
name: X-API-Key
value: your-secret-api-key
```
## 📥 输入节点 (Input)
输入节点用于从各种数据源获取信息。
### HTTP Request - HTTP请求
**功能**: 与外部API和服务进行交互
**配置参数**:
- **请求方法**: GET、POST、PUT、DELETE、PATCH
- **URL**: 目标API地址
- **头部**: 认证、内容类型等
- **请求体**: POST数据、JSON负载
**实用示例**:
=== "获取天气数据"
```json
{
"method": "GET",
"url": "https://api.openweathermap.org/data/2.5/weather",
"qs": {
"q": "Beijing",
"appid": "your-api-key",
"units": "metric"
}
}
```
=== "发送Slack消息"
```json
{
"method": "POST",
"url": "https://hooks.slack.com/services/your/webhook/url",
"body": {
"text": "工作流执行完成",
"channel": "#general"
}
}
```
### Read/Write Files from Disk - 文件操作
**功能**: 读取和写入本地文件系统
**支持格式**:
- **文本文件**: TXT、CSV、JSON、XML
- **表格文件**: Excel、CSV
- **图像文件**: JPG、PNG、PDF
- **压缩文件**: ZIP、TAR
**配置示例**:
```javascript
// 读取CSV文件
{
"operation": "read",
"filePath": "/files/data/sales-report.csv",
"options": {
"encoding": "utf8",
"hasHeaders": true
}
}
// 写入JSON文件
{
"operation": "write",
"filePath": "/files/output/processed-data.json",
"fileContent": "{{ $json }}",
"options": {
"encoding": "utf8"
}
}
```
### Database Nodes - 数据库操作
支持主流数据库系统:
=== "MySQL"
```sql
-- 查询示例
SELECT customer_id, order_date, total_amount
FROM orders
WHERE order_date >= CURDATE() - INTERVAL 7 DAY;
-- 插入示例
INSERT INTO logs (timestamp, level, message)
VALUES (NOW(), 'INFO', '工作流执行成功');
```
=== "PostgreSQL"
```sql
-- 复杂查询
WITH monthly_sales AS (
SELECT DATE_TRUNC('month', order_date) as month,
SUM(total_amount) as total
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
)
SELECT * FROM monthly_sales
ORDER BY month DESC LIMIT 12;
```
=== "MongoDB"
```javascript
// 查询文档
db.users.find({
"status": "active",
"last_login": {
"$gte": new Date(Date.now() - 30*24*60*60*1000)
}
})
// 聚合操作
db.orders.aggregate([
{$match: {status: "completed"}},
{$group: {_id: "$product_id", total: {$sum: "$amount"}}},
{$sort: {total: -1}}
])
```
## 🔄 处理节点 (Process)
处理节点用于数据转换、分析和业务逻辑处理。
### Set - 数据设置
**功能**: 设置或修改数据字段
**操作类型**:
- **设置字段值**: 添加新字段或修改现有字段
- **删除字段**: 移除不需要的数据
- **重命名字段**: 改变字段名称
- **类型转换**: 字符串、数字、布尔值转换
**实用配置**:
```javascript
// 设置新字段
{
"user_full_name": "={{$json.first_name}} {{$json.last_name}}",
"processed_at": "={{new Date().toISOString()}}",
"status": "processed"
}
// 数据转换
{
"price": "={{parseFloat($json.price_string)}}",
"is_active": "={{$json.status === 'active'}}",
"tags": "={{$json.tag_string.split(',')}}"
}
```
### Code - 代码节点
**功能**: 执行自定义JavaScript或Python代码
**JavaScript示例**:
```javascript
// 复杂数据处理
for (const item of $input.all()) {
// 数据验证
if (!item.json.email || !item.json.email.includes('@')) {
continue;
}
// 数据转换
const processedItem = {
id: item.json.id,
email: item.json.email.toLowerCase(),
domain: item.json.email.split('@')[1],
processed_at: new Date().toISOString(),
hash: require('crypto').createHash('md5').update(item.json.email).digest('hex')
};
$return.push({json: processedItem});
}
```
**Python示例**:
```python
import pandas as pd
import numpy as np
from datetime import datetime
# 处理输入数据
data = []
for item in _input.all():
data.append(item['json'])
# 使用pandas处理
df = pd.DataFrame(data)
df['processed_at'] = datetime.now().isoformat()
df['score'] = df['score'].fillna(0)
df['category'] = df['score'].apply(lambda x: 'high' if x > 80 else 'low')
# 返回处理结果
for _, row in df.iterrows():
_return.push({'json': row.to_dict()})
```
### AI Agent - AI代理
**功能**: 集成大语言模型进行智能处理
**支持的AI服务**:
- OpenAI GPT系列
- Anthropic Claude
- Google Gemini
- 本地Ollama模型
**典型应用**:
=== "文本分析"
```javascript
// 情感分析
prompt: `分析以下文本的情感倾向,返回正面、负面或中性:
文本:{{$json.comment}}
请以JSON格式返回{"sentiment": "正面/负面/中性", "confidence": 0.95}`
```
=== "数据提取"
```javascript
// 信息提取
prompt: `从以下邮件中提取关键信息:
邮件内容:{{$json.email_content}}
请提取:
- 发件人姓名
- 联系方式
- 主要需求
- 紧急程度
以JSON格式返回结果。`
```
=== "内容生成"
```javascript
// 报告生成
prompt: `基于以下数据生成每日销售报告:
销售数据:{{$json.sales_data}}
报告应包含:
1. 销售总结
2. 重点产品表现
3. 趋势分析
4. 改进建议
请生成专业的中文报告。`
```
## 🧠 逻辑节点 (Logic)
逻辑节点控制工作流的执行路径和数据流向。
### IF - 条件判断
**功能**: 根据条件将数据流分为不同路径
**条件类型**:
- **数值比较**: 等于、大于、小于
- **字符串匹配**: 包含、开始于、结束于
- **逻辑运算**: 与、或、非
- **存在性检查**: 字段是否存在、是否为空
**实用场景**:数据输入 → 判断金额 > 1000 → 是:高价值客户流程 → 发送VIP邮件普通客户流程 → 发送标准邮件
### Switch - 多路分支
**功能**: 根据不同值将数据路由到多个分支
**配置示例**:
```javascript
// 根据订单状态分发处理
switch_value: "={{$json.order_status}}"
// 分支配置:
// 0: "pending" -> 待处理流程
// 1: "paid" -> 已付款流程
// 2: "shipped" -> 已发货流程
// 3: "completed" -> 已完成流程
// default: 异常处理流程
```
### Loop Over Items - 循环处理
**功能**: 对数据集合中的每个项目执行相同操作
**适用场景**:
- 批量数据处理
- 文件批量操作
- API批量调用
- 报告批量生成
**处理流程**:数据列表 → Loop Over Items → 处理单个项目 → API调用 → 结果收集 → 汇总输出
## 📤 输出节点 (Output)
输出节点将处理结果发送到外部系统或用户。
### Email Send - 邮件发送
**功能**: 发送电子邮件通知和报告
**配置要素**:
- **收件人**: 支持多个收件人、抄送、密送
- **邮件内容**: HTML格式、纯文本、动态内容
- **附件**: 支持文件、图片、报告附件
**邮件模板示例**:
```html
<!DOCTYPE html>
<html>
<head>
<style>
.report { font-family: Arial, sans-serif; }
.header { background-color: #f0f0f0; padding: 10px; }
.content { padding: 20px; }
.table { border-collapse: collapse; width: 100%; }
.table th, .table td { border: 1px solid #ddd; padding: 8px; }
</style>
</head>
<body>
<div class="report">
<div class="header">
<h2>{{$json.report_title}}</h2>
<p>生成时间: {{$json.generated_at}}</p>
</div>
<div class="content">
<p>尊敬的 {{$json.recipient_name}}</p>
<p>以下是您请求的{{$json.report_type}}报告:</p>
<table class="table">
<tr>
<th>指标</th>
<th>数值</th>
<th>变化</th>
</tr>
{{#each $json.metrics}}
<tr>
<td>{{this.name}}</td>
<td>{{this.value}}</td>
<td style="color: {{this.change_color}}">{{this.change}}</td>
</tr>
{{/each}}
</table>
</div>
</div>
</body>
</html>
```
### Webhook Response - 响应返回
**功能**: 向触发Webhook的服务返回响应
**响应配置**:
```javascript
{
"status_code": 200,
"headers": {
"Content-Type": "application/json",
"X-Processed-By": "n8n-workflow"
},
"body": {
"success": true,
"message": "数据处理完成",
"processed_items": "={{$json.count}}",
"timestamp": "={{new Date().toISOString()}}"
}
}
```
## 📊 节点使用统计和建议
### 使用频率统计
<div class="stats-grid">
<div class="stat-item">
<span class="stat-number">95%</span>
<span class="stat-label">工作流使用HTTP Request</span>
</div>
<div class="stat-item">
<span class="stat-number">78%</span>
<span class="stat-label">工作流使用Set节点</span>
</div>
<div class="stat-item">
<span class="stat-number">65%</span>
<span class="stat-label">工作流使用IF判断</span>
</div>
<div class="stat-item">
<span class="stat-number">52%</span>
<span class="stat-label">工作流使用Email发送</span>
</div>
</div>
### 学习建议
!!! tip "节点学习路径"
1. **基础必学**: Manual Trigger + Set + HTTP Request + Email
2. **进阶掌握**: Schedule Trigger + IF + Code + Database
3. **高级应用**: AI Agent + Loop + Switch + Webhook
4. **专业应用**: 根据业务需求选择特定集成节点
---
掌握这些常用节点后您已经具备了构建80%常见工作流的能力!
[上一章n8n汉化](../installation/localization/){ .md-button } [下一章:基本工作流创建](basic-workflows/){ .md-button .md-button--primary }

View File

@@ -0,0 +1,399 @@
# 社区节点
## 📚 学习资源
- **社区节点排行榜**[Top 100社区节点](https://github.com/restyler/awesome-n8n)
- **官方文档**[Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
- **安装指南**在n8n设置中搜索并安装社区节点
社区节点是n8n生态系统的重要组成部分提供了官方节点库之外的丰富功能扩展。
## 🌟 社区节点概述
### 什么是社区节点
社区节点是由n8n社区开发者创建的第三方节点扩展了n8n的功能边界。它们通过npm包的形式分发可以轻松安装和使用。
**社区节点的价值**:
- 🔧 **功能扩展**: 支持更多第三方服务和API
- 🚀 **快速集成**: 无需自己开发即可使用专业功能
- 🌍 **全球贡献**: 世界各地开发者的智慧结晶
- 💡 **创新实验**: 尝试最新的技术和集成方案
## 📊 热门社区节点排行榜
根据[Awesome n8n社区统计](https://github.com/restyler/awesome-n8n)以下是TOP 20热门社区节点
| 排名 | 节点名称 | 功能描述 | 下载量 |
|------|----------|----------|--------|
| 🥇 **1** | **n8n-nodes-chatgpt** | ChatGPT集成节点 | 50K+ |
| 🥈 **2** | **n8n-nodes-telegram** | Telegram机器人增强 | 35K+ |
| 🥉 **3** | **n8n-nodes-redis** | Redis数据库操作 | 28K+ |
| 4 | **n8n-nodes-youtube** | YouTube API集成 | 22K+ |
| 5 | **n8n-nodes-shopify-plus** | Shopify电商增强 | 18K+ |
| 6 | **n8n-nodes-firebase** | Firebase集成 | 15K+ |
| 7 | **n8n-nodes-discord** | Discord机器人 | 14K+ |
| 8 | **n8n-nodes-mysql-pool** | MySQL连接池 | 12K+ |
| 9 | **n8n-nodes-wechat** | 微信集成 | 11K+ |
| 10 | **n8n-nodes-anthropic** | Claude AI集成 | 10K+ |
## 🛠️ 社区节点安装
### 通过n8n界面安装
1. **进入设置页面**
- 点击n8n界面右上角的设置图标 ⚙️
- 选择"Community nodes"选项
2. **搜索和安装**
- 在搜索框中输入节点名称
- 点击"Install"按钮
- 等待安装完成并重启n8n
3. **验证安装**
- 在节点面板中查找新安装的节点
- 创建测试工作流验证功能
### 通过命令行安装
```bash
# 进入n8n安装目录
cd ~/.n8n
# 安装社区节点
npm install n8n-nodes-chatgpt
# 重启n8n服务
systemctl restart n8n
# 或
pm2 restart n8n
```
### Docker环境安装
```dockerfile
# 在Dockerfile中添加社区节点
FROM n8nio/n8n:latest
USER root
RUN npm install -g n8n-nodes-chatgpt n8n-nodes-redis
USER node
```
## 🎯 推荐社区节点详解
### AI和机器学习
=== "ChatGPT节点"
**包名**: `n8n-nodes-chatgpt`
**功能**:
- 完整的OpenAI API支持
- 支持GPT-3.5和GPT-4模型
- 流式响应和函数调用
- 图像分析和生成
**使用场景**:
```javascript
// 智能客服示例
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "你是一个专业的客服助手"
},
{
"role": "user",
"content": "{{$json.customer_message}}"
}
],
"temperature": 0.7
}
```
=== "Claude节点"
**包名**: `n8n-nodes-anthropic`
**功能**:
- Anthropic Claude模型集成
- 长文本处理能力
- 安全和对齐优化
- 代码生成和分析
**特色功能**:
- 100K+ token上下文支持
- 更好的代码理解能力
- 减少幻觉和错误输出
### 数据库和存储
=== "Redis节点"
**包名**: `n8n-nodes-redis`
**功能**:
- Redis数据库操作
- 缓存管理
- 发布/订阅模式
- 分布式锁
**操作示例**:
```javascript
// 缓存用户会话
{
"operation": "set",
"key": "user_session_{{$json.user_id}}",
"value": "{{$json.session_data}}",
"ttl": 3600
}
```
=== "MySQL连接池"
**包名**: `n8n-nodes-mysql-pool`
**功能**:
- 高效的数据库连接管理
- 连接池优化
- 事务支持
- 批量操作
### 通讯和社交
=== "Telegram增强"
**包名**: `n8n-nodes-telegram`
**功能**:
- 高级Telegram机器人功能
- 内联键盘支持
- 文件上传下载
- 群组管理
**机器人示例**:
```javascript
// 智能客服机器人
{
"chat_id": "{{$json.chat.id}}",
"text": "您好!我是智能助手,请问有什么可以帮助您的?",
"reply_markup": {
"inline_keyboard": [[
{"text": "产品咨询", "callback_data": "product_inquiry"},
{"text": "技术支持", "callback_data": "tech_support"}
]]
}
}
```
=== "Discord集成"
**包名**: `n8n-nodes-discord`
**功能**:
- Discord机器人开发
- 服务器管理
- 消息处理
- 语音频道操作
### 电商和支付
=== "Shopify增强"
**包名**: `n8n-nodes-shopify-plus`
**功能**:
- 扩展的Shopify API支持
- 高级产品管理
- 订单自动化处理
- 库存同步
**自动化示例**:新订单 → 库存检查 → 发货处理 → 客户通知 → 财务记录
### 中国本土化
=== "微信集成"
**包名**: `n8n-nodes-wechat`
**功能**:
- 微信公众号API
- 小程序后端集成
- 企业微信支持
- 微信支付处理
**应用场景**:
- 自动回复客户消息
- 用户管理和标签
- 营销活动推送
- 数据分析和报告
## 🔧 节点开发指南
### 开发环境准备
```bash
# 安装n8n开发工具
npm install -g n8n-node-dev
# 创建节点项目
n8n-node-dev new my-custom-node
# 进入项目目录
cd my-custom-node
# 安装依赖
npm install
```
### 基础节点结构
```typescript
import { INodeType, INodeTypeDescription } from 'n8n-workflow';
export class MyCustomNode implements INodeType {
description: INodeTypeDescription = {
displayName: 'My Custom Node',
name: 'myCustomNode',
group: ['transform'],
version: 1,
description: '自定义节点功能描述',
defaults: {
name: 'My Custom Node',
},
inputs: ['main'],
outputs: ['main'],
properties: [
{
displayName: '配置参数',
name: 'parameter',
type: 'string',
default: '',
placeholder: '请输入参数值',
description: '参数详细说明',
},
],
};
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData();
const returnData: INodeExecutionData[] = [];
for (let i = 0; i < items.length; i++) {
const parameter = this.getNodeParameter('parameter', i) as string;
// 自定义处理逻辑
const result = await processData(parameter, items[i].json);
returnData.push({
json: result,
});
}
return [returnData];
}
}
```
### 发布社区节点
1. **完善文档**
- 详细的README说明
- 使用示例和截图
- API参数说明
2. **质量检查**
- 单元测试覆盖
- 错误处理机制
- 性能优化
3. **发布到npm**
```bash
npm publish
```
4. **社区推广**
- 在n8n社区分享
- 提交到awesome-n8n列表
- 撰写技术博客
## ⚠️ 使用注意事项
### 安全考虑
!!! warning "安全提醒"
- 只安装来源可信的社区节点
- 定期更新节点版本
- 注意节点的权限和访问范围
- 在生产环境使用前充分测试
### 兼容性检查
**版本兼容性**:
```yaml
检查清单:
✅ n8n版本兼容性
✅ Node.js版本要求
✅ 依赖包冲突检查
✅ 操作系统兼容性
```
### 性能监控
```javascript
// 监控节点性能
const startTime = Date.now();
const result = await executeNodeLogic();
const executionTime = Date.now() - startTime;
if (executionTime > 10000) { // 10秒
console.warn(`Node execution took ${executionTime}ms`);
}
```
## 📈 社区节点趋势
### 热门类别分析
<div class="stats-grid">
<div class="stat-item">
<span class="stat-number">35%</span>
<span class="stat-label">AI/ML集成</span>
</div>
<div class="stat-item">
<span class="stat-number">25%</span>
<span class="stat-label">数据库连接</span>
</div>
<div class="stat-item">
<span class="stat-number">20%</span>
<span class="stat-label">通讯工具</span>
</div>
<div class="stat-item">
<span class="stat-number">20%</span>
<span class="stat-label">行业特定</span>
</div>
</div>
### 发展趋势
1. **AI集成爆发**: ChatGPT、Claude等AI节点使用量激增
2. **本土化需求**: 微信、钉钉等中国本土服务集成
3. **行业深化**: 针对特定行业的专业节点增多
4. **性能优化**: 更多高性能、低延迟的节点实现
## 🤝 贡献社区
### 参与方式
1. **使用和反馈**: 使用社区节点并提供反馈
2. **Bug报告**: 发现问题及时报告给维护者
3. **功能建议**: 提出新功能需求和改进建议
4. **代码贡献**: 参与节点开发和维护
5. **文档完善**: 帮助改进节点文档和教程
### 社区资源
- **GitHub组织**: [n8n-io](https://github.com/n8n-io)
- **社区论坛**: [community.n8n.io](https://community.n8n.io/)
- **Discord频道**: 实时交流和技术讨论
- **Reddit社区**: r/n8n 用户经验分享
---
社区节点让n8n的可能性无限扩展加入社区一起构建更强大的自动化生态
[上一章:自然语言编程](natural-language.md){ .md-button } [下一章:参考资料](../reference/resources.md){ .md-button .md-button--primary }

302
docs/learning/mcp.md Normal file
View File

@@ -0,0 +1,302 @@
# MCP应用
## 📚 参考资源
!!! info "核心学习资源"
- **官方模板**: [Build your own n8n workflows MCP server](https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/)
- **深度教程**: [n8n+MCP知乎专栏](https://zhuanlan.zhihu.com/p/1913630305291567877)
- **MCP协议文档**: [官方文档](https://modelcontextprotocol.io/)
- **视频教程**: [n8n+MCP实战教程](https://www.bilibili.com/video/BV11QX8YNEjU)
- **实战案例**: [n8n+MCP+DeepSeek案例](https://blog.csdn.net/m0_59235245/article/details/147950398)
- **社区节点**: [n8n-nodes-mcp](https://github.com/nerding-io/n8n-nodes-mcp)
---
模型上下文协议MCP定义了AI代理与外部工具的标准化通信框架允许在不同LLM之间无缝切换工具集成逻辑。
## 🔍 MCP架构概览
MCP架构包含三大核心组件
**Host 主机Claude Desktop, Cursor****Client 客户端MCP通信端点****Server 服务器n8n工作流服务****Tools 工具 + Resources 资源 + Prompts 提示**
### 组件说明
| 组件 | 功能 | 示例 |
|------|------|------|
| **Host (主机)** | 承载MCP连接的LLM应用 | Claude Desktop、Cursor IDE |
| **Client (客户端)** | 作为对接MCP服务器的通信端点 | MCP客户端库 |
| **Server (服务器)** | 为主机提供工具、数据或提示资源 | n8n工作流、API服务 |
## 🛠️ n8n的MCP角色
n8n能以两种角色接入MCP生态
### 1. 作为MCP服务器
**功能**: 将n8n工作流封装为AI代理可调用的"工具"
**价值**:
- 让AI能够执行复杂的自动化任务
- 将现有工作流转化为AI工具
- 构建强大的端到端智能工作流
### 2. 作为MCP客户端
**功能**: 在n8n中调用其他MCP服务器的能力
**价值**:
- 集成第三方MCP服务
- 扩展n8n的功能边界
- 构建混合式智能工作流
## 🚀 n8n MCP服务器部署
### 使用官方模板
**官方模板**: [Build your own n8n workflows MCP server](https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/)
### 部署步骤
=== "1. 导入模板"
1. 访问官方模板链接
2. 点击"Use this template"
3. 在n8n中导入工作流
4. 更新Webhook URL
=== "2. 配置Redis"
```yaml
# Redis配置用于存储"可用"工作流信息
Redis连接:
host: localhost
port: 6379
database: 0
password: your-redis-password
```
=== "3. 设置工作流标签"
```yaml
# 通过标签标记可用工作流
工作流标签: "mcp-available"
# 或使用其他过滤方式
工作流前缀: "MCP_"
```
=== "4. 部署MCP服务器"
```bash
# 启动n8n MCP服务器
cd your-n8n-project
npm install @n8n/mcp-server
# 配置环境变量
export N8N_MCP_WEBHOOK_URL="your-webhook-url"
export REDIS_URL="redis://localhost:6379"
# 启动服务
npm run mcp-server
```
### 配置示例
```json
{
"name": "n8n-mcp-server",
"version": "1.0.0",
"mcpServers": {
"n8n-workflows": {
"command": "node",
"args": ["mcp-server.js"],
"env": {
"N8N_WEBHOOK_URL": "https://your-n8n.com/webhook/mcp",
"REDIS_URL": "redis://localhost:6379"
}
}
}
}
```
## 🎯 实际应用案例
### 案例1智能客服工作流
**场景**: 将客服处理流程转换为MCP工具
**工作流设计**MCP触发器 → 客户信息查询 → 问题分类 → AI回复生成 → 回复发送 → 工单创建
**MCP工具定义**:
```json
{
"name": "customer_service_handler",
"description": "处理客户咨询并生成智能回复",
"inputSchema": {
"type": "object",
"properties": {
"customer_id": {"type": "string"},
"message": {"type": "string"},
"channel": {"type": "string"}
}
}
}
```
### 案例2数据分析工作流
**场景**: 将复杂数据分析转换为AI可调用的分析工具
**核心功能**:
- 数据清洗和预处理
- 统计分析和可视化
- 报告生成和发送
**使用方式**:
```javascript
// AI代理调用示例
const analysisResult = await mcpClient.call('data_analysis_tool', {
dataset: 'sales_data_2024',
analysis_type: 'trend_analysis',
date_range: '2024-01-01 to 2024-12-31'
});
```
### 案例3内容创作工作流
**场景**: AI辅助内容创作和发布
**工作流能力**:
- 内容主题研究
- 多平台内容生成
- 自动化发布调度
- 效果跟踪分析
## 🔧 高级配置技巧
### 输入模式设计
**最佳实践**:
```json
{
"inputSchema": {
"type": "object",
"properties": {
"required_field": {
"type": "string",
"description": "必需参数的详细描述"
},
"optional_field": {
"type": "string",
"description": "可选参数的用途说明",
"default": "默认值"
}
},
"required": ["required_field"]
}
}
```
### 错误处理机制
```javascript
// 在MCP工作流中添加错误处理
try {
const result = await executeWorkflow(input);
return {
success: true,
data: result,
timestamp: new Date().toISOString()
};
} catch (error) {
return {
success: false,
error: error.message,
error_code: error.code || 'UNKNOWN_ERROR',
timestamp: new Date().toISOString()
};
}
```
### 性能优化
**缓存策略**:
```javascript
// Redis缓存实现
const cacheKey = `workflow_${workflowId}_${JSON.stringify(input)}`;
const cachedResult = await redis.get(cacheKey);
if (cachedResult) {
return JSON.parse(cachedResult);
}
const result = await executeWorkflow(input);
await redis.setex(cacheKey, 3600, JSON.stringify(result)); // 1小时缓存
return result;
```
## 🌟 MCP生态集成
### 与Claude Desktop集成
**配置文件**: `~/.config/claude-desktop/claude_desktop_config.json`
```json
{
"mcpServers": {
"n8n-workflows": {
"command": "node",
"args": ["/path/to/n8n-mcp-server/index.js"],
"env": {
"N8N_WEBHOOK_URL": "https://your-n8n.com/webhook/mcp"
}
}
}
}
```
### 与Cursor IDE集成
**配置步骤**:
1. 安装MCP扩展
2. 配置n8n MCP服务器连接
3. 在代码中调用n8n工作流
### 社区MCP节点
**推荐MCP节点**: [n8n-nodes-mcp](https://github.com/nerding-io/n8n-nodes-mcp)
**安装方式**:
```bash
# 在n8n中安装MCP社区节点
npm install n8n-nodes-mcp
```
## 💡 进阶提示
### MCP最佳实践
- **模块化设计**: 将复杂工作流拆分为可复用的MCP服务
- **错误处理**: 确保MCP服务具备完善的异常处理机制
- **性能优化**: 合理使用缓存和批处理提升响应速度
- **安全考虑**: 实施适当的身份验证和权限控制
## 🚀 未来发展方向
### MCP技术趋势
1. **标准化程度提升**: MCP协议将更加成熟和标准化
2. **生态系统扩展**: 更多工具和平台将支持MCP
3. **AI能力增强**: AI代理将具备更强的工具调用能力
4. **企业级应用**: MCP将广泛应用于企业AI解决方案
### n8n在MCP生态的优势
- **丰富的集成能力**: 400+节点支持
- **可视化工作流**: 降低AI工具开发门槛
- **企业级部署**: 支持私有化和大规模部署
- **活跃的社区**: 持续的功能更新和支持
---
通过MCP协议n8n不仅是自动化工具更成为了AI时代的智能工作流引擎
[上一章:模板套用](templates.md){ .md-button } [下一章:自然语言编程](natural-language.md){ .md-button .md-button--primary }

View File

@@ -0,0 +1,347 @@
# 自然语言编程
## 📚 工具和资源
!!! tip "推荐工具"
- **n8nChat官方工具**: [n8nchat.com](https://n8nchat.com) - 官方自然语言编程平台
- **开源替代方案**: 社区维护的自然语言工作流生成器
- **AI助手集成**: 与ChatGPT、Claude等大模型的集成方案
---
使用自然语言编程n8n工作流让AI成为您的编程助手大幅降低工作流开发门槛。
## 🤖 自然语言编程概述
### 什么是自然语言编程
自然语言编程Natural Language Programming是指使用人类自然语言描述需求由AI自动生成相应的代码或工作流的技术。
**传统开发 vs 自然语言编程**:
| 对比维度 | 传统开发 | 自然语言编程 |
|----------|----------|-------------|
| **学习门槛** | 需要掌握编程语言 | 只需描述业务需求 |
| **开发速度** | 数小时到数天 | 数分钟到数小时 |
| **错误调试** | 需要技术专业知识 | AI辅助问题诊断 |
| **维护成本** | 需要技术人员 | 业务人员即可维护 |
## 🛠️ n8nChat - 官方自然语言工具
### 平台介绍
n8nChat是官方推出的自然语言编程平台让您可以通过对话的方式创建n8n工作流。
### 核心功能
<div class="feature-grid">
<div class="feature-card">
<div class="feature-icon">💬</div>
<h3>对话式创建</h3>
<p>用自然语言描述需求AI自动生成工作流</p>
</div>
<div class="feature-card">
<div class="feature-icon">🔄</div>
<h3>实时修改</h3>
<p>通过对话实时调整和优化工作流逻辑</p>
</div>
<div class="feature-card">
<div class="feature-icon">📋</div>
<h3>代码生成</h3>
<p>自动生成n8n工作流JSON和节点配置</p>
</div>
<div class="feature-card">
<div class="feature-icon">🎯</div>
<h3>一键导入</h3>
<p>生成的工作流可直接导入到n8n中使用</p>
</div>
</div>
### 使用流程
<div class="process-flow">
<div class="flow-step">
<div class="step-number">1</div>
<div class="step-content">
<h4>💬 描述需求</h4>
<p>用自然语言描述你想要的工作流功能</p>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">2</div>
<div class="step-content">
<h4>🤖 AI理解分析</h4>
<p>AI分析需求并理解业务逻辑</p>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">3</div>
<div class="step-content">
<h4>⚙️ 生成工作流</h4>
<p>AI自动生成相应的n8n工作流</p>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">4</div>
<div class="step-content">
<h4>✅ 用户确认</h4>
<p>review生成的工作流是否符合需求</p>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">5</div>
<div class="step-content">
<h4>🔧 调整优化</h4>
<p>根据反馈进行细节调整</p>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">6</div>
<div class="step-content">
<h4>🚀 导出使用</h4>
<p>导出到n8n平台正式使用</p>
</div>
</div>
</div>
## 💡 实际应用示例
### 示例1客户邮件自动回复
**用户描述**:
> "我希望创建一个工作流,当收到新邮件时,自动分析邮件内容,如果是客户咨询,就生成一个礼貌的自动回复并发送。"
**AI生成的工作流**:
<div class="workflow-diagram">
<div class="workflow-step">
<div class="step-box trigger">📧 邮件触发器</div>
<div class="arrow"></div>
<div class="step-box process">🔍 内容分析</div>
<div class="arrow"></div>
<div class="step-box decision">❓ 判断类型</div>
</div>
<div class="decision-branches">
<div class="branch">
<div class="branch-label">✅ 是咨询</div>
<div class="branch-flow">
<div class="step-box ai">🤖 生成回复</div>
<div class="arrow"></div>
<div class="step-box output">📤 发送邮件</div>
</div>
</div>
<div class="branch">
<div class="branch-label">❌ 非咨询</div>
<div class="branch-flow">
<div class="step-box process">🏷️ 标记处理</div>
</div>
</div>
</div>
</div>
**工作流逻辑说明:**
1. **邮件触发** → 监听新邮件到达
2. **内容分析** → AI分析邮件内容和语义
3. **智能判断** → 识别是否为客户咨询类邮件
4. **分支处理** → 根据判断结果执行不同操作
**生成的配置示例**:
```javascript
// AI Agent节点配置
{
"model": "gpt-3.5-turbo",
"prompt": "你是一个专业的客服助手。请为以下客户邮件生成一个礼貌、专业的自动回复:\n\n邮件内容{{$json.body}}\n\n回复要求\n1. 感谢客户的咨询\n2. 确认已收到邮件\n3. 告知会在24小时内回复\n4. 保持专业友好的语调",
"temperature": 0.7
}
```
### 示例2销售数据分析报告
**用户描述**:
> "每周一早上9点自动从销售数据库提取上周的销售数据分析销售趋势生成图表和报告然后发送给销售团队。"
**AI生成的工作流架构**:
```mermaid
graph TD
A[定时触发<br/>每周一9:00] --> B[数据库查询<br/>上周销售数据]
B --> C[数据分析<br/>计算趋势指标]
C --> D[图表生成<br/>可视化数据]
D --> E[报告生成<br/>AI分析总结]
E --> F[邮件发送<br/>团队通知]
style A fill:#e3f2fd
style E fill:#fff3e0
style F fill:#e8f5e8
```
### 示例3社交媒体内容发布
**用户描述**:
> "我想要一个工作流,能够根据我提供的主题,自动生成适合不同社交平台的内容,并在合适的时间发布到微博、微信公众号和抖音。"
**AI分析和建议**:
- 内容生成使用AI根据主题生成不同风格的内容
- 平台适配:针对不同平台调整内容格式和长度
- 定时发布:根据平台最佳发布时间自动调度
## 🔧 开源解决方案
### 本地部署n8n自然语言编程
如果您希望本地部署自然语言编程能力,可以参考以下开源项目:
**项目资源**:
- **GitHub项目**: 开源的n8n自然语言编程工具
- **部署教程**: [B站视频教程](https://www.bilibili.com/video/BV1HuKEzDEaj)
### 自建AI助手
使用n8n + LLM构建自己的自然语言编程助手
**用户输入****意图识别****需求分析****工作流生成****代码输出**
**核心组件**:
1. **意图识别**: 理解用户的真实需求
2. **工作流设计**: 规划最优的自动化流程
3. **节点配置**: 生成具体的节点参数
4. **代码生成**: 输出可执行的工作流JSON
## 📝 最佳实践
### 有效的需求描述
**✅ 好的描述**:
> "每天下午5点从CRM系统导出今日新增客户数据使用AI分析客户特征生成个性化的欢迎邮件模板并发送给对应的销售代表进行后续跟进。"
**❌ 模糊的描述**:
> "帮我做个自动化的东西处理客户。"
### 描述技巧
1. **明确触发条件**: 何时执行(定时/事件触发)
2. **详细数据源**: 从哪里获取数据
3. **处理逻辑**: 如何处理数据
4. **输出方式**: 结果如何呈现
5. **异常处理**: 出错时如何处理
### 迭代优化策略
=== "第一轮对话"
```
用户: "我需要一个邮件自动化工具"
AI: "请详细描述您的邮件自动化需求,比如:
- 什么时候发送邮件?
- 发送给谁?
- 邮件内容是什么?
- 需要什么条件触发?"
```
=== "第二轮对话"
```
用户: "每天早上8点给所有VIP客户发送个性化的问候邮件"
AI: "明白了,我需要了解:
- VIP客户名单从哪里获取
- 个性化内容包括哪些信息?
- 邮件模板是否有特定格式要求?"
```
=== "第三轮对话"
```
用户: "VIP客户从CRM系统获取个性化内容包括客户姓名、最近购买记录、生日提醒等"
AI: "完美!我将为您创建这个工作流..."
```
## 🚀 进阶应用
### AI辅助工作流优化
**场景**: 使用AI分析现有工作流并提供优化建议
```javascript
// AI分析工作流性能
const analysis = await analyzeWorkflow(workflowData);
const suggestions = {
performance: "建议将API调用改为批量处理可提升50%性能",
reliability: "添加错误重试机制,提高稳定性",
maintenance: "简化条件逻辑,提高可维护性"
};
```
### 多语言支持
**支持语言**:
- 🇨🇳 中文:详细的业务描述和技术要求
- 🇺🇸 英文国际化工作流和API集成
- 🇯🇵 日文:本地化业务流程
- 🇰🇷 韩文:区域特定的自动化需求
### 行业模板库
**预训练的行业知识**:
- 📊 **金融**: 风控流程、报表自动化
- 🛒 **电商**: 订单处理、库存管理
- 🏥 **医疗**: 患者管理、预约系统
- 📚 **教育**: 学员管理、课程安排
## 📚 学习资源
### 官方资源
- **n8nChat平台**: [https://n8nchat.com](https://n8nchat.com)
- **使用教程**: 平台内置的交互式教程
### 社区资源
- **开源项目**: [GitHub自然语言编程工具](https://github.com/search?q=n8n+natural+language)
- **部署教程**: [B站部署指南](https://www.bilibili.com/video/BV1HuKEzDEaj)
- **案例分享**: 社区用户分享的实际应用案例
### 技术原理
**底层技术栈**:
- **大语言模型**: GPT、Claude等用于理解需求
- **代码生成**: 将自然语言转换为工作流配置
- **模板匹配**: 基于常见模式快速生成解决方案
- **持续学习**: 根据用户反馈优化生成质量
## 🔮 未来展望
### 技术发展趋势
1. **更智能的理解**: AI对业务需求的理解更加准确
2. **多模态交互**: 支持语音、图像等多种输入方式
3. **实时协作**: 团队成员可以共同参与工作流设计
4. **自动优化**: AI主动发现并优化工作流性能
### 应用场景扩展
- **无代码开发**: 完全通过对话创建复杂应用
- **智能运维**: AI助手自动管理和优化工作流
- **业务咨询**: AI基于最佳实践提供业务建议
- **培训教育**: 交互式学习和实践指导
---
自然语言编程让每个人都能成为自动化专家,释放创造力,专注于业务价值!
[上一章MCP应用](mcp.md){ .md-button } [下一章:社区节点](community-nodes.md){ .md-button .md-button--primary }

286
docs/learning/pitfalls.md Normal file
View File

@@ -0,0 +1,286 @@
# 避坑指南
## 📚 学习资源
- **避坑指南**[冰糖数据的n8n避坑系列](https://x.com/binggandata/status/1951798212995829996)
- **最佳实践**[n8n官方最佳实践](https://docs.n8n.io/best-practices/)
- **错误处理**[n8n错误处理指南](https://docs.n8n.io/error-handling/)
n8n容易踩坑的环节也是开发稳定性高的n8n工作流的要求。
!!! warning "重要提醒"
97%的n8n工作流缺乏异常处理在出错时默默失败。掌握这些最佳实践对于构建可靠的自动化系统至关重要。
## 🚨 十大常见陷阱
### 1⃣ 缺乏异常处理
**问题**: 97%的n8n工作流缺乏异常处理在出错时默默失败。
**解决方案**:
- 为每个工作流添加一个错误触发器
- 强制对关键节点HTTP/API/DB进行异常处理
- 添加邮件/Slack通知机制
```mermaid
graph TD
A[主工作流] --> B{执行成功?}
B -->|是| C[正常完成]
B -->|否| D[Error Trigger]
D --> E[发送错误通知]
D --> F[记录错误日志]
D --> G[重试机制]
style D fill:#ffebee
style E fill:#ffebee
style F fill:#ffebee
```
### 2⃣ 安全配置不当
**问题**: 320个webhooks未进行身份验证152个进程仍在使用明文HTTP。
**解决方案**:
- 对所有webhooks强制执行身份验证
- 全程使用HTTPS
- 不要硬编码API密钥
- 定期轮换密钥并加密存储
**安全检查清单**:
```yaml
✅ 所有Webhook有认证
✅ 外部请求全HTTPS
✅ 敏感数据加密
✅ 权限分层管理
✅ 异常信息不泄露隐私
```
### 3⃣ 性能优化不足
**问题**: 流程中有无用节点、API在循环里频繁请求、无效数据转换反复出现。
**解决方案**:
- 能批量就批量避免单个API调用
- 流程结构清晰,节点合并
- 并行能并行,提高执行效率
- 复杂逻辑直接用代码节点搞定
**性能优化模式**:
=== "❌ 低效模式"
```javascript
// 循环中单个API调用
for (const item of items) {
await callAPI(item); // 串行调用,效率低
}
```
=== "✅ 高效模式"
```javascript
// 批量API调用
const batchSize = 10;
const batches = chunk(items, batchSize);
for (const batch of batches) {
await Promise.all(batch.map(callAPI)); // 并行调用
}
```
### 4⃣ AI集成缺乏优化
**问题**: 35%的工作流接入了AI但大部分没做向量数据库和缓存token消耗高。
**解决方案**:
- Prompt要分块避免超长输入
- 简单用GPT-3.5复杂用GPT-4
- 批量处理+结果校验
- AI节点也要异常处理和日志监控
**AI优化策略**:
| 场景 | 模型选择 | 优化方法 |
|------|----------|----------|
| **简单文本处理** | GPT-3.5 Turbo | 缓存常见查询 |
| **复杂分析** | GPT-4 | 分段处理长文本 |
| **批量处理** | Claude | 并行调用限流 |
| **实时响应** | 本地模型 | 预处理+缓存 |
### 5⃣ 文档和管理混乱
**问题**: 74.7%工作流分类都是General文档说明严重不足协作查错全靠猜。
**解决方案**:
- 流程统一命名+标签
- 关键节点加Sticky Note
- 协作排查省大把时间
**命名规范示例**:
```
[部门]_[业务]_[功能]_[版本]
例如:
- Sales_CRM_DataSync_v2
- HR_Recruit_AutoEmail_v1
- Finance_Report_DailyGen_v3
```
### 6⃣ 重复造轮子
**问题**: 高频套路重复开发数据转换Set→HTTP、API链式HTTP→HTTP、条件分流If/Switch→Set、数据聚合Set→Merge
**解决方案**: 直接套用成熟流程模板,少造轮子。
**常用模板**:
- 📊 **数据同步模板**: Schedule → HTTP → Transform → Database
- 🔄 **API集成模板**: Webhook → Validate → Process → Response
- 📧 **通知模板**: Trigger → Content → Multi-channel → Log
- 🤖 **AI处理模板**: Input → Preprocess → AI → Postprocess → Output
### 7⃣ 部署前安全检查不足
**问题**: 上线前缺乏系统性的安全检查。
**上线前安全清单**:
```yaml
身份认证:
✅ 所有webhook有认证
✅ API密钥使用凭证管理
✅ 数据库连接加密
网络安全:
✅ 外部请求全HTTPS
✅ 内网访问控制
✅ 防火墙规则配置
数据保护:
✅ 敏感数据加密存储
✅ 日志不包含敏感信息
✅ 权限最小化原则
监控告警:
✅ 异常处理机制
✅ 错误通知配置
✅ 性能监控设置
```
### 8⃣ 维护和优化滞后
**问题**: 慢流程没有拆分为子流程API并发缺乏批量处理和缓存老旧节点未及时清理。
**维护策略**:
- 慢流程拆分为子流程
- API并发要批量/加缓存
- 老旧节点及时清理
- 每月安全&性能巡检
- 流程有改动就同步文档
### 9⃣ 监控缺失
**问题**: 很多流程没监控,出错没人知道,维护成本高。
**监控体系建设**:
```mermaid
graph TD
A[工作流执行] --> B[日志记录]
B --> C[性能指标]
C --> D[异常检测]
D --> E[告警通知]
E --> F[问题修复]
F --> G[优化改进]
B --> H[集中日志存储]
C --> I[监控仪表板]
D --> J[自动化恢复]
```
**监控内容**:
- 每个关键流程都加集中日志和监控
- 记录流程名、节点、错误和时间戳
- AI/长流程建议加进度日志
### 🔟 缺乏持续改进
**问题**: 一次部署后就不管了,缺乏持续优化。
**持续改进流程**:
1. **定期评估**: 每月性能评估和优化建议
2. **用户反馈**: 收集使用者反馈和改进建议
3. **技术更新**: 跟进n8n新功能和最佳实践
4. **团队培训**: 定期技能提升和知识分享
## 🏆 最佳实践总结
只要你把这些最佳实践都落地了:
✅ **异常处理**: 绝大部分工作流有异常处理
✅ **安全认证**: webhook全认证、HTTPS全覆盖、无明文密钥
✅ **文档完善**: 流程分类注释完整
✅ **性能优化**: 平均执行时间都能压到10秒以内
## 📚 进阶学习
### 错误处理模式
=== "基础错误处理"
```javascript
// 在Code节点中添加错误处理
try {
const result = await processData($input.all());
return result;
} catch (error) {
console.error('Processing failed:', error);
return [{
json: {
error: true,
message: error.message,
timestamp: new Date().toISOString()
}
}];
}
```
=== "高级重试机制"
```javascript
// 指数退避重试
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
const delay = Math.pow(2, i) * 1000; // 1s, 2s, 4s
await new Promise(resolve => setTimeout(resolve, delay));
}
}
}
```
### 性能监控代码
```javascript
// 在关键节点添加性能监控
const startTime = Date.now();
// 执行业务逻辑
const result = await processBusinessLogic();
const executionTime = Date.now() - startTime;
// 记录性能日志
console.log('Performance:', {
node: 'DataProcessing',
executionTime,
itemCount: $input.all().length,
timestamp: new Date().toISOString()
});
// 如果执行时间过长,发送告警
if (executionTime > 30000) { // 30秒
// 发送性能告警
}
```
---
遵循这些避坑指南您的n8n工作流将更加稳定、高效和可维护
[上一章:基本工作流创建](basic-workflows.md){ .md-button } [下一章:模板套用](templates.md){ .md-button .md-button--primary }

312
docs/learning/templates.md Normal file
View File

@@ -0,0 +1,312 @@
# 模板套用
## 📚 模板资源库
!!! tip "精选模板资源"
- **GitHub最全集合**: [Awesome n8n Templates (2000+)](https://github.com/enescingoz/awesome-n8n-templates) ✅
- **分类工作流集合**: [n8n Workflows Collection (2000+)](https://github.com/Zie619/n8n-workflows) ✅
- **官方精选模板**: [n8n.io/workflows (500+)](https://n8n.io/workflows)
- **实用案例合集**: 覆盖各行业常见自动化场景
---
n8n的模板套用方式非常直观通过复制粘贴就能快速应用成熟的工作流方案。
## 🚀 快速模板应用
### 使用方法
1. **复制模板代码**在任意位置复制整段JSON文本
2. **粘贴到n8n**在n8n画布任意位置粘贴
3. **配置参数**:根据需要调整节点参数
4. **测试运行**:验证工作流是否正常
**复制模板****粘贴到n8n****配置凭证****调整参数****测试运行****部署上线**
## 📚 模板资源库
### 模板分类浏览
**按业务场景分类:**
- **营销自动化** - 邮件营销、社交媒体管理、客户关系维护
- **数据处理** - 数据同步、清洗、转换、分析
- **办公自动化** - 文档处理、会议安排、任务管理
- **电商运营** - 订单处理、库存管理、客服自动回复
- **内容管理** - 文章发布、图片处理、SEO优化
### 分类模板推荐
=== "数据处理"
- **Excel数据清洗**: 自动化数据验证和格式化
- **CSV文件合并**: 多文件数据整合
- **数据库同步**: 不同系统间数据同步
- **报表生成**: 定期业务报表自动生成
=== "通信自动化"
- **邮件营销**: 个性化邮件批量发送
- **客服机器人**: 智能客服自动回复
- **社交媒体**: 多平台内容自动发布
- **通知系统**: 多渠道消息推送
=== "业务流程"
- **订单处理**: 电商订单自动化处理
- **发票管理**: 发票生成和跟踪
- **库存管理**: 库存监控和补货提醒
- **客户关系**: CRM数据同步和更新
=== "AI增强"
- **内容生成**: AI辅助内容创作
- **图像处理**: 批量图像分析和处理
- **文档分析**: 智能文档解析和提取
- **情感分析**: 用户反馈情感分析
## 🎯 热门模板详解
### 1. 每日天气邮件推送
**应用场景**: 每天定时获取天气信息并发送邮件提醒
**模板代码**:
```json
{
"name": "Daily Weather Email",
"nodes": [
{
"parameters": {
"rule": {
"interval": [{"field": "cronExpression", "value": "0 8 * * *"}]
}
},
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [240, 300]
},
{
"parameters": {
"url": "https://api.openweathermap.org/data/2.5/weather",
"qs": {
"q": "Beijing",
"appid": "={{$credentials.openWeatherMap.apiKey}}",
"units": "metric"
}
},
"name": "Get Weather",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [460, 300]
}
],
"connections": {
"Schedule Trigger": {"main": [["Get Weather"]]}
}
}
```
**配置要点**:
- 配置OpenWeatherMap凭证
- 设置目标城市
- 自定义邮件模板
### 2. GitHub提交通知Slack
**应用场景**: GitHub代码提交时自动通知Slack频道
**核心节点**:
- Webhook Trigger (GitHub)
- Set Node (数据处理)
- Slack Node (消息发送)
**效果**: 开发团队实时了解代码更新情况
### 3. Excel报表自动生成
**应用场景**: 定期从数据库提取数据生成Excel报表
**工作流程**:定时触发 → 数据库查询 → 数据处理 → Excel生成 → 邮件发送
## 🛠️ 模板定制指南
### 基础定制
1. **修改触发条件**
- 调整定时频率
- 更改触发事件
- 添加条件过滤
2. **更新数据源**
- 替换API端点
- 更改数据库连接
- 修改文件路径
3. **调整输出格式**
- 自定义邮件模板
- 修改通知内容
- 更改数据格式
### 高级定制
=== "添加错误处理"
```javascript
// 在关键节点添加错误处理
try {
const result = await processData();
return result;
} catch (error) {
// 发送错误通知
await sendErrorNotification(error);
throw error;
}
```
=== "性能优化"
```javascript
// 批量处理优化
const batchSize = 10;
const results = [];
for (let i = 0; i < items.length; i += batchSize) {
const batch = items.slice(i, i + batchSize);
const batchResults = await Promise.all(
batch.map(processItem)
);
results.push(...batchResults);
}
```
=== "动态配置"
```javascript
// 从环境变量读取配置
const config = {
apiUrl: process.env.API_URL || 'https://api.example.com',
batchSize: parseInt(process.env.BATCH_SIZE) || 10,
retryCount: parseInt(process.env.RETRY_COUNT) || 3
};
```
## 📊 模板分享最佳实践
### 创建优质模板
**模板结构**:
```yaml
模板名称: 简洁明了的名称
描述: 详细的功能说明
用途: 具体应用场景
配置要求:
- 必需凭证
- 环境变量
- 外部依赖
使用说明:
- 安装步骤
- 配置方法
- 测试验证
注意事项:
- 常见问题
- 安全提醒
- 性能建议
```
### 模板文档模板
```markdown
# 模板名称
## 功能描述
简要描述模板的主要功能和价值
## 应用场景
- 场景1具体使用情况
- 场景2另一个使用情况
## 前置要求
- [ ] n8n版本要求
- [ ] 必需的凭证配置
- [ ] 外部服务依赖
## 安装使用
1. 复制模板JSON代码
2. 在n8n中粘贴
3. 配置必要的凭证
4. 调整参数设置
5. 测试运行
## 配置说明
### 必需配置
- **API密钥**: 用于xxx服务认证
- **邮箱凭证**: 用于发送通知邮件
### 可选配置
- **执行频率**: 默认每天执行一次
- **数据过滤**: 可添加筛选条件
## 常见问题
### Q: 无法连接API
A: 检查API密钥是否正确配置
### Q: 邮件发送失败
A: 验证SMTP设置和凭证配置
## 版本历史
- v1.0: 基础功能实现
- v1.1: 添加错误处理
- v1.2: 性能优化
```
## 🎨 自定义模板开发
### 模板设计原则
1. **通用性**: 模板应该适用于多种类似场景
2. **可配置**: 关键参数应该容易修改
3. **健壮性**: 包含适当的错误处理
4. **文档化**: 提供清晰的使用说明
### 模板测试清单
```yaml
功能测试:
✅ 正常流程执行成功
✅ 边界情况处理正确
✅ 错误情况优雅处理
性能测试:
✅ 执行时间在合理范围
✅ 内存使用控制得当
✅ 并发处理能力验证
兼容性测试:
✅ 不同n8n版本兼容
✅ 各种环境下可用
✅ 依赖服务版本兼容
文档测试:
✅ 安装说明准确完整
✅ 配置步骤清晰易懂
✅ 故障排除信息有效
```
## 🌟 社区贡献
### 分享你的模板
1. **GitHub提交**: 向社区模板库提交PR
2. **官方论坛**: 在n8n社区分享经验
3. **技术博客**: 写作详细的使用教程
4. **视频演示**: 录制操作演示视频
### 模板评估标准
| 评估维度 | 优秀 | 良好 | 一般 |
|----------|------|------|------|
| **功能完整性** | 覆盖完整业务流程 | 核心功能完备 | 基础功能可用 |
| **代码质量** | 结构清晰,注释完整 | 逻辑清楚 | 基本可读 |
| **错误处理** | 全面的异常处理 | 基本错误处理 | 缺少错误处理 |
| **文档质量** | 详细的使用指南 | 基本说明 | 简单描述 |
| **通用性** | 高度可配置 | 部分可配置 | 固定场景 |
---
通过模板套用,您可以快速构建专业级的自动化工作流,站在巨人的肩膀上创造价值!
[上一章:避坑指南](pitfalls.md){ .md-button } [下一章MCP应用](mcp.md){ .md-button .md-button--primary }