关于 n8n
这项技能为 n8n 平台的工作流、集成和自定义节点开发提供指导,面向需要将服务、API 与数据处理步骤组合起来的开发者。内容涵盖工作流规划、代码节点、TypeScript 自定义节点、错误处理和 AI Agent 模式。
主要功能
- 01规划触发器、节点与数据流
- 02编写 JavaScript 和 Python 代码节点
- 03开发 TypeScript 自定义节点
- 04连接 API、数据库与云服务
- 05设计错误处理和 AI Agent 工作流
适用场景
- 01将多个服务组合成自动化工作流
- 02为工作流编写数据转换逻辑
- 03构建可复用的自定义集成节点
- 04排查执行错误并规划部署
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vladm3105/ aidoc-flow-framework --skill n8n安装后在 Claude Code 中输入/n8n确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
n8nexamples/README.mdn8n_custom_node.tsn8n_deployment.yamln8n_workflow_examples.js详细介绍
n8n 工作流自动化技能
目的
为在 n8n 自动化平台上开发工作流、自定义节点和集成提供专业指导。帮助 AI 助手设计工作流、编写自定义代码节点、构建基于 TypeScript 的自定义节点、集成外部服务并实现 AI Agent 模式。
何时使用此技能
在以下情况下调用此技能:
- 设计组合多个服务的自动化工作流
- 在工作流节点中编写 JavaScript/Python 代码
- 使用 TypeScript 构建自定义节点
- 集成 API、数据库和云服务
- 使用 LangChain 创建 AI Agent 工作流
- 排查工作流执行错误
- 规划可自托管的 n8n 部署
- 将手动流程转换为自动化工作流
请勿在以下情况下使用此技能:
- 一般自动化建议(使用适当的语言/平台技能)
- 特定云平台的集成(结合云服务提供商技能)
- 数据库设计(使用数据库专家技能)
- 前端开发(n8n 的 UI 自定义功能有限)
n8n 核心概念
平台架构
运行时环境:
- 基于 Node.js 的执行引擎
- TypeScript(90.7%)和 Vue.js 前端
- pnpm 单体仓库结构
- 可自托管或部署到云端
工作流执行模式:
- 手动触发器 - 由用户发起执行
- Webhook 触发器 - 激活 HTTP 端点
- 计划触发器 - 基于 Cron 的定时执行
- 事件触发器 - 外部服务事件(数据库变更、文件上传)
- 错误触发器 - 处理工作流失败
Fair-code 许可证:
- Apache 2.0 和 Commons Clause
- 可免费自托管并不限量执行
- 对 SaaS 服务有商业限制
节点类型和类别
核心节点(数据处理):
- Code - 执行 JavaScript/Python
- Set - 设置变量值
- If - 条件分支
- Switch - 多分支路由
- Merge - 合并数据流
- Split In Batches - 分批处理大型数据集
- Loop Over Items - 遍历数据
触发器节点(工作流启动):
- Webhook - HTTP 端点
- Schedule - 按时间执行
- Manual Trigger - 用户触发
- Error Trigger - 捕获工作流失败
- Start - 默认入口点
操作节点(500 多种集成):
- API 连接器(REST、GraphQL、SOAP)
- 数据库客户端(PostgreSQL、MongoDB、MySQL、Redis)
- 云服务(AWS、GCP、Azure、Cloudflare)
- 通信(Email、Slack、Discord、SMS)
- 文件操作(FTP、S3、Google Drive、Dropbox)
- 身份验证(OAuth2、API keys、JWT)
AI 节点(LangChain 集成):
- AI Agent - 自主决策
- AI Chain - 顺序执行大模型操作
- AI Transform - 使用大模型处理数据
- Vector Store - 嵌入向量的存储和检索
- Document Loaders - 从文件中提取文本
数据流和连接
连接类型:
- 主连接 - 主要数据流(实线)
- 错误连接 - 失败路由(红色虚线)
数据结构:
// Input/output format for all nodes
[
{
json: { /* Your data object */ },
binary: { /* Optional binary data (files, images) */ },
pairedItem: { /* Reference to source item */ }
}
]
数据访问模式:
- 表达式 -
{{ $json.field }}(当前节点的输出) - 输入引用 -
{{ $('NodeName').item.json.field }}(指定节点) - 所有项目 -
{{ $input.all() }}(整个数据集) - 第一个项目 -
{{ $input.first() }}(单个项目) - 项目索引 -
{{ $itemIndex }}(当前迭代)
凭据和身份验证
凭据类型:
- 预定义 - 为热门服务预配置(OAuth2、API key)
- 通用 - HTTP 身份验证(Basic、Digest、Header Auth)
- 自定义 - 用户定义的凭据结构
安全实践:
- 凭据以加密形式存储在数据库中
- 支持使用环境变量存储敏感值
- 可选择在工作流间共享凭据
- 轮换:需要手动更新
工作流设计方法
规划阶段
步骤 1:定义需求
- 输入来源(Webhook、计划任务、数据库)
- 所需的数据转换
- 输出目标(API、文件、数据库)
- 错误处理要求
- 执行频率和数据量
步骤 2:梳理数据流
- 确定触发事件
- 列出转换步骤
- 指定验证规则
- 定义分支逻辑
- 规划错误恢复
步骤 3:选择节点
决策标准:
- 有原生节点时优先使用原生节点(经过优化且有人维护)
- 自定义逻辑少于 50 行时使用 Code 节点
- 可复用的复杂逻辑超过 100 行时构建自定义节点
- API 没有原生节点时使用 HTTP Request 节点
- 系统操作使用 Execute Command 节点(存在安全风险)
实施阶段
工作流结构模式:
[Trigger] → [Validation] → [Branch (If/Switch)] → [Processing] → [Error Handler]
↓ ↓
[Path A nodes] [Path B nodes]
↓ ↓
[Merge/Output] [Output]
模块化设计:
- 将可复用逻辑提取到子工作流中
- 使用 Execute Workflow 节点实现模块化
- 将主工作流限制在 15-20 个节点(便于阅读)
- 使用输入变量参数化工作流
错误处理策略:
- Error Trigger 工作流 — 捕获所有失败
- Try/Catch 模式 — 在节点上连接错误输出
- 重试逻辑 — 配置各节点的重试设置
- 验证节点 — 使用 If/Switch 检查数据
- 通知 — 发生严重故障时发送提醒(Email、Slack)
测试阶段
本地测试:
- 使用示例数据执行
- 验证每个节点的输出(检查数据面板)
- 使用无效数据测试错误路径
- 检查凭据连接
生产环境验证:
- 启用工作流并监控执行情况
- 查看执行历史中的失败记录
- 检查资源使用情况(执行时间、内存)
- 验证输出数据质量
工作流中的代码执行
Code 节点(JavaScript)
可用 API:
- Node.js 内置模块 —
fs、path、crypto、https - Lodash —
_.groupBy()、_.sortBy()等 - Luxon — 日期时间处理
- n8n 辅助对象 —
$input、$json、$binary
基本结构:
// Access input items
const items = $input.all();
// Process data
const processedItems = items.map(item => {
const inputData = item.json;
return {
json: {
// Output fields
processed: inputData.field.toUpperCase(),
timestamp: new Date().toISOString()
}
};
});
// Return transformed items
return processedItems;
数据转换模式:
筛选:
const items = $input.all();
return items.filter(item => item.json.status === 'active');
聚合:
const items = $input.all();
const grouped = _.groupBy(items, item => item.json.category);
return [{
json: {
summary: Object.keys(grouped).map(category => ({
category,
count: grouped[category].length
}))
}
}];
API 调用(异步):
const items = $input.all();
const results = [];
for (const item of items) {
const response = await fetch(`https://api.example.com/data/${item.json.id}`);
const data = await response.json();
results.push({
json: {
original: item.json,
enriched: data
}
});
}
return results;
代码中的错误处理:
const items = $input.all();
return items.map(item => {
try {
// Risky operation
const result = JSON.parse(item.json.data);
return { json: { parsed: result } };
} catch (error) {
return {
json: {
error: error.message,
original: item.json.data
}
};
}
});
Code 节点(Python)
可用库:
- 标准库 —
json、datetime、re、requests - NumPy — 数组操作
- Pandas — 数据分析(如果已安装)
基本结构:
# Access input items
items = _input.all()
# Process data
processed_items = []
for item in items:
input_data = item['json']
processed_items.append({
'json': {
'processed': input_data['field'].upper(),
'timestamp': datetime.now().isoformat()
}
})
# Return transformed items
return processed_items
复杂度评级:Code 节点
- 简单转换(map/filter):1
- 带错误处理的 API 调用:2
- 多步骤异步操作:3
- 使用库的复杂算法:4
- 性能关键型处理:5(考虑使用自定义节点)
自定义节点开发
何时构建自定义节点
在以下情况下构建自定义节点:
- 在多个工作流中复用逻辑(超过 3 个工作流)
- 有复杂的身份验证要求
- 执行性能关键型操作(Code 节点有开销)
- 向社区贡献(公开的 npm 包)
- 集成组织专用服务
在以下情况下使用 Code 节点:
- 一次性转换
- 快速原型设计
- 简单的 API 调用(少于 100 行)
开发风格
[查看代码示例:examples/n8n_custom_node.ts]
1. 编程式风格(完全可控)
适用于:
- 复杂的身份验证流程
- 高级参数验证
- 自定义 UI 组件
- 带状态管理的轮询操作
[参见:examples/n8n_custom_node.ts 中的 CustomNode 类]
2. 声明式风格(简化)
适用于:
- 标准 CRUD 操作
- RESTful API 封装
- 无复杂逻辑的简单集成
[参见:examples/n8n_custom_node.ts 中导出的 operations 和 router]
其他示例:
- 凭据配置:examples/n8n_custom_node.ts 中的
customApiCredentials - 凭据验证:examples/n8n_custom_node.ts 中的
validateCredentials() - 轮询触发器:examples/n8n_custom_node.ts 中的
PollingTrigger类
开发工作流
步骤 1:初始化 Node
# Create from template
npm create @n8n/node my-custom-node
# Directory structure created:
# ├── nodes/
# │ └── MyCustomNode/
# │ └── MyCustomNode.node.ts
# ├── credentials/
# │ └── MyCustomNodeApi.credentials.ts
# └── package.json
步骤 2:实现逻辑
- 定义节点属性(参数、凭据)
- 实现 execute 方法
- 添加错误处理
- 编写单元测试(可选)
步骤 3:构建并测试
# Build TypeScript
npm run build
# Link locally for testing
npm link
# In n8n development environment
cd ~/.n8n/nodes
npm link my-custom-node
# Restart n8n to load node
n8n start
步骤 4:发布
# Community node (npm package)
npm publish
# Install in n8n
Settings → Community Nodes → Install → Enter package name
复杂度评级:自定义节点
- 声明式 CRUD 封装:2
- 带身份验证的程序化实现:3
- 复杂状态管理:4
- 高级轮询/Webhook:5
集成模式
API 集成策略
决策树:
Has native node? ──Yes──> Use native node
│
No
├──> Simple REST API? ──Yes──> HTTP Request node
├──> Complex auth (OAuth2)? ──Yes──> Build custom node
├──> Reusable across workflows? ──Yes──> Build custom node
└──> One-off integration? ──Yes──> Code node with fetch()
HTTP 请求节点模式
带查询参数的 GET:
URL: https://api.example.com/users
Method: GET
Query Parameters:
- status: active
- limit: 100
Authentication: Header Auth
- Name: Authorization
- Value: Bearer {{$credentials.apiKey}}
带 JSON 请求体的 POST:
URL: https://api.example.com/users
Method: POST
Body Content Type: JSON
Body:
{
"name": "={{ $json.name }}",
"email": "={{ $json.email }}"
}
分页处理(代码节点):
let allResults = [];
let page = 1;
let hasMore = true;
while (hasMore) {
const response = await this.helpers.request({
method: 'GET',
url: `https://api.example.com/data?page=${page}`,
json: true,
});
allResults = allResults.concat(response.results);
hasMore = response.hasNext;
page++;
}
return allResults.map(item => ({ json: item }));
Webhook 模式
接收 Webhook:
- 创建 Webhook 触发器节点
- 配置 HTTP 方法(POST/GET)
- 设置身份验证(无/Header Auth/Basic Auth)
- 从节点获取 Webhook URL
- 在外部服务中注册 URL
响应 Webhook:
// In Code node after webhook trigger
const webhookData = $input.first().json;
// Process data
const result = processData(webhookData);
// Return response (synchronous webhook)
return [{
json: {
status: 'success',
data: result
}
}];
Webhook URL 结构:
Production: https://your-domain.com/webhook/workflow-id
Test: https://your-domain.com/webhook-test/workflow-id
数据库集成
常见模式:
带参数的查询:
-- PostgreSQL node
SELECT * FROM users
WHERE created_at > $1
AND status = $2
ORDER BY created_at DESC
-- Parameters from previous node
Parameters: ['{{ $json.startDate }}', 'active']
批量插入:
// Code node preparing data for database
const items = $input.all();
const values = items.map(item => ({
name: item.json.name,
email: item.json.email,
created_at: new Date().toISOString()
}));
return [{ json: { values } }];
// Next node: PostgreSQL
// INSERT INTO users (name, email, created_at)
// VALUES {{ $json.values }}
文件操作
上传到 S3:
Workflow: File Trigger → S3 Upload
- File Trigger: Monitor directory for new files
- S3 node:
- Operation: Upload
- Bucket: my-bucket
- File Name: {{ $json.fileName }}
- Binary Data: true (from file trigger)
下载并处理:
HTTP Request (download) → Code (process) → Google Drive (upload)
- HTTP Request: Binary response enabled
- Code: Process $binary.data
- Google Drive: Upload with binary data
AI Agent 工作流
LangChain 集成
AI Agent 节点配置:
- Agent 类型:OpenAI Functions、ReAct、Conversational
- 大模型:OpenAI、Anthropic、Hugging Face、Ollama(本地)
- 记忆:Buffer、Buffer Window、Summary
- 工具:Calculator、Webhook、数据库查询、自定义 API 调用
基本 Agent 模式:
Manual Trigger → AI Agent → Output
- AI Agent:
- Prompt: "You are a helpful assistant that {{$json.task}}"
- Tools: [Calculator, HTTP Request]
- Memory: Conversation Buffer Window
守门员模式(受监督的 AI)
**使用场景:**在 Agent 执行操作前进行人工审批
Webhook → AI Agent → If (requires approval) → Send Email → Wait for Webhook → Execute Action
↓ (auto-approve)
Execute Action
实现方式:
- AI Agent 生成操作计划
- If 节点检查置信度分数
- 置信度低 → 发送审批请求邮件
- 等待 Webhook(批准/拒绝)
- 根据响应执行或中止
迭代 Agent 模式
**使用场景:**带状态的多步骤问题解决
Loop Start → AI Agent → Tool Execution → State Update → Loop End (condition check)
↑______________________________________________________________|
状态管理:
// Code node - Initialize state
return [{
json: {
task: 'Research topic',
iteration: 0,
maxIterations: 5,
context: [],
completed: false
}
}];
// Code node - Update state
const state = $json;
state.iteration++;
state.context.push($('AI Agent').item.json.response);
state.completed = state.iteration >= state.maxIterations || checkGoalMet(state);
return [{ json: state }];
RAG(检索增强生成)模式
Query Input → Vector Store Search → Format Context → LLM → Response Output
向量存储设置:
- 文档加载器节点 → 将文本拆分为多个片段
- 嵌入节点 → 生成向量(OpenAI、Cohere)
- 向量存储节点 → 存储到 Pinecone/Qdrant/Supabase
- 查询:检索相关片段 → 注入大模型提示词
复杂度评级:AI 工作流
- 简单的大模型调用:1
- 带工具的 Agent:3
- 守门员模式:4
- 多 Agent 编排:5
部署与托管
自托管选项
[查看代码示例:examples/n8n_deployment.yaml]
Docker(推荐):
- 使用 PostgreSQL 的 Docker Compose
- 用于扩展的队列模式配置
- 按使用规模划分的资源需求
[查看:examples/n8n_deployment.yaml 中的 docker-compose 配置]
npm(开发):
npm install n8n -g
n8n start
# Access: http://localhost:5678
环境配置:
[查看:examples/n8n_deployment.yaml 中的完整环境变量参考]
必需变量:
N8N_HOST- Webhook 的公开 URLWEBHOOK_URL- Webhook 端点基础 URLN8N_ENCRYPTION_KEY- 凭据加密(必须持久保存)DB_TYPE- 数据库(SQLite/PostgreSQL/MySQL/MariaDB)EXECUTIONS_DATA_SAVE_ON_ERROR- 错误日志记录EXECUTIONS_DATA_SAVE_ON_SUCCESS- 成功日志记录
examples/n8n_deployment.yaml 中记录了性能调优变量
扩展性考量
队列模式(高吞吐量):
# Separate main and worker processes
# Main process (UI + queue management)
N8N_QUEUE_MODE=main n8n start
# Worker processes (execution only)
N8N_QUEUE_MODE=worker n8n worker
数据库:
- SQLite:开发/低吞吐量(每天 <1000 次执行)
- PostgreSQL:生产环境(推荐)
- MySQL/MariaDB:适用于现有基础设施的替代方案
资源要求:
| 工作流量 | CPU | RAM | 数据库 |
|---|---|---|---|
| <100 次执行/天 | 1 核 | 512MB | SQLite |
| 100-1000 次/天 | 2 核 | 2GB | PostgreSQL |
| 1000-10000 次/天 | 4 核 | 4GB | PostgreSQL |
| >10000 次/天 | 8+ 核 | 8GB+ | PostgreSQL + 队列模式 |
监控:
- 启用执行日志(EXECUTIONS_DATA_SAVE_*)
- 设置错误工作流(Error Trigger 节点)
- 监控数据库大小(清理执行历史记录)
- 跟踪 Webhook 响应时间
最佳实践
工作流设计
1. 模块化:
- 将可复用逻辑提取到 Execute Workflow 节点
- 将工作流限定为单一职责
- 对常见操作(验证、格式化)使用子工作流
2. 错误韧性:
- 为关键节点添加错误输出
- 实现重试逻辑(节点设置)
- 创建 Error Trigger 工作流用于告警
- 将错误记录到外部系统(Sentry、CloudWatch)
3. 性能:
- 对大型数据集(>1000 项)使用 Split In Batches
- 尽量减少循环中的 HTTP 请求(批量调用 API)
- 对高频工作流禁用执行日志记录
- 将开销较大的操作缓存到变量中
4. 安全性:
- 将密钥存储在凭据中(不要硬编码)
- 使用环境变量进行配置
- 启用 Webhook 身份验证
- 限制 Execute Command 节点的使用(或全局禁用)
- 检查代码节点是否存在注入漏洞
5. 可维护性:
- 为复杂工作流添加备注(Sticky Note 节点)
- 使用一致的命名方式(动词 + 名词:“Fetch Users”“Transform Data”)
- 在工作流设置中说明工作流用途
- 对工作流进行版本控制(导出 JSON,提交到 Git)
节点中的代码质量
1. 数据验证:
// Always validate input structure
const items = $input.all();
for (const item of items) {
if (!item.json.email || !item.json.name) {
throw new Error(`Invalid input: missing required fields at item ${item.json.id}`);
}
}
2. 错误上下文:
// Provide debugging information
try {
const result = await apiCall(item.json.id);
} catch (error) {
throw new Error(`API call failed for ID ${item.json.id}: ${error.message}`);
}
3. 幂等性:
// Check existence before creation
const exists = await checkExists(item.json.uniqueId);
if (!exists) {
await createRecord(item.json);
}
工作流模式库
模式 1:API 同步
适用场景: 在两个系统之间同步数据
Schedule Trigger (hourly) → Fetch Source Data → Transform → If (record exists) → Update Target
↓ (new)
Create in Target
复杂度: 2
模式 2:错误恢复
适用场景: 使用指数退避重试失败的操作
Main Workflow → Process → Error → Error Trigger Workflow
↓
Wait (delay) → Retry → If (max retries) → Alert
复杂度: 3
模式 3:数据丰富
适用场景: 使用外部来源扩充数据
Webhook → Split In Batches → For Each Item:
↓
API Call (enrich) → Code (merge) → Batch Results
↓
Database Insert
复杂度: 3
模式 4:事件驱动处理
适用场景: 处理来自消息队列的事件
SQS Trigger → Parse Message → Switch (event type) → [Handler A, Handler B, Handler C] → Confirm/Delete Message
复杂度: 3
模式 5:人工参与
适用场景: 审批工作流
Trigger → Generate Request → Send Email (approval link) → Webhook (approval response) → If (approved) → Execute Action
↓ (rejected)
Send Rejection Notice
复杂度: 4
模式 6:多阶段 ETL
适用场景: 复杂数据管道
Schedule → Extract (API) → Validate → Transform → Load (Database) → Success Notification
↓ ↓
Error Handler ────────────────────> Error Notification
复杂度: 3
质量关卡
完成定义:工作流
满足以下条件时,工作流即可用于生产环境:
-
功能性:
- ✓ 所有节点都能在测试数据上无错误地执行
- ✓ 使用无效输入测试错误路径
- ✓ 根据要求验证输出格式
-
错误处理:
- ✓ 为关键节点配置错误输出
- ✓ 创建 Error Trigger 工作流用于告警
- ✓ 在适用的情况下配置重试逻辑
-
安全性:
- ✓ 使用凭据(不硬编码密钥)
- ✓ 启用 Webhook 身份验证
- ✓ 实现输入验证
-
文档:
- ✓ 在设置中填写工作流说明
- ✓ 使用备注记录复杂逻辑
- ✓ 参数说明清晰
-
性能:
- ✓ 使用符合实际情况的数据量进行测试
- ✓ 执行时间可接受
- ✓ 资源使用量在限制范围内
自定义节点的完成标准
自定义节点满足以下条件即可投入生产:
-
功能:
- ✓ 所有操作均已实现并测试
- ✓ 凭据集成正常工作
- ✓ 参数已验证
-
代码质量:
- ✓ 已定义 TypeScript 类型
- ✓ 错误处理完善
- ✓ 没有硬编码值(使用参数)
-
文档:
- ✓ README 包含安装说明
- ✓ 参数说明清晰
- ✓ 提供示例工作流
-
分发:
- ✓ 已发布到 npm(如为公开版本)
- ✓ 版本号设置恰当
- ✓ 已在 package.json 中声明依赖项
错误处理指南
常见问题及解决方法
问题:工作流因“Invalid JSON”而失败
- 原因: 节点输出格式不正确
- 解决方法:
// Ensure return format return [{ json: { your: 'data' } }]; // NOT: return { your: 'data' };
问题:“Cannot read property of undefined”
- 原因: 缺少上一个节点的数据
- 解决方法:
// Check existence before access const value = $json.field?.subfield ?? 'default';
问题:Webhook 未收到数据
- 原因: Webhook URL 或身份验证不正确
- 解决方法:
- 确认 URL 与外部服务配置一致
- 检查身份验证方式是否一致(None/Header/Basic)
- 使用 curl 测试:
curl -X POST https://your-n8n.com/webhook/test \ -H "Content-Type: application/json" \ -d '{"test": "data"}'
问题:自定义节点未显示
- 原因: 未正确链接/安装
- 解决方法:
# Check installation npm list -g | grep n8n-nodes- # Reinstall if needed npm install -g n8n-nodes-your-node # Restart n8n
问题:内存占用过高
- 原因: 未分批处理大型数据集
- 解决方法:
- 使用 Split In Batches 节点(批次大小:100-1000)
- 对高频工作流,禁用执行数据保存
- 设置 EXECUTIONS_DATA_PRUNE=true
问题:凭据无法使用
- 原因: 凭据配置不正确或令牌已过期
- 解决方法:
- 重新验证 OAuth2 凭据
- 验证 API 密钥/令牌是否有效
- 检查服务中的凭据权限
调试策略
1. 检查节点输出:
- 点击节点 → 查看执行数据
- 检查 json 和 binary 选项卡
- 验证数据结构是否符合预期
2. 添加调试用 Code 节点:
// Log intermediate values
const data = $json;
console.log('Debug data:', JSON.stringify(data, null, 2));
return [{ json: data }];
3. 使用 If 节点进行验证:
// Expression to check data quality
{{ $json.email && $json.email.includes('@') }}
4. 启用执行日志记录:
- 设置 → 日志 → 将级别设为 debug
- 查看 docker 日志:
docker logs n8n -f
5. 单独测试:
- 使用 Manual Trigger 创建测试工作流
- 复制有问题的节点
- 使用静态测试数据
参考资料
官方文档
- 主文档: https://docs.n8n.io
- 节点参考: https://docs.n8n.io/integrations/builtin/
- 自定义节点开发: https://docs.n8n.io/integrations/creating-nodes/
- 表达式参考: https://docs.n8n.io/code/expressions/
代码仓库
- 核心平台: https://github.com/n8n-io/n8n
- 文档: https://github.com/n8n-io/n8n-docs
- 社区节点: https://www.npmjs.com/search?q=n8n-nodes
社区资源
- 论坛: https://community.n8n.io
- 模板: https://n8n.io/workflows(工作流库)
- YouTube: n8n 官方频道(教程)
相关技能
- 云集成:使用
cloud-devops-expert技能 - 数据库设计:使用
database-specialist技能 - API 设计:使用
api-design-architect技能 - TypeScript 开发:使用特定语言的技能
版本: 1.0.0 最后更新: 2025-11-13 复杂度评级: 3(中等——需要平台专属知识) 预计学习时间: 熟练掌握需 8-12 小时