【n8n教程】:掌握节点类型,上手工作流自动化
如果说 n8n 是一个自动化的积木系统,那么**节点(Node)**就是这些积木的基本单元。这篇教程将帮你快速理解 n8n 中的各种节点类型,让你从初学者晋升为自动化高手!
一、什么是节点?为什么要理解节点?
想象你要从家里寄送一个包裹到另一个城市。这个过程包括多个步骤:
- 触发:你决定要寄包裹(这是你的触发器)
- 打包:准备包裹的内容(数据处理)
- 选择物流:选择快递公司(外部服务集成)
- 检查:确认包裹内容和地址(逻辑判断)
- 发送:交给快递员(执行操作)
在 n8n 中,每一个步骤都对应一个节点,而整个寄包过程就是一个工作流(Workflow)。
节点的本质:每个节点都是一个独立的功能单元,接收来自上一个节点的数据,进行处理,然后传递给下一个节点。节点之间的连接形成了数据流。

二、节点的两大基础分类
2.1 触发器节点(Trigger Nodes)⚡
触发器是工作流的起点,它决定了工作流何时开始运行。
常见触发器类型:
| 触发器类型 | 功能 | 使用场景 |
|---|---|---|
| Webhook | 通过 HTTP 请求触发 | 接收第三方应用的数据,如表单提交、用户请求 |
| Cron(定时器) | 按照时间表自动触发 | 定时任务,如每天凌晨 2 点执行备份 |
| 手动触发(Manual Trigger) | 点击按钮手动执行 | 测试工作流、调试功能 |
| 应用事件(On app event) | 监听第三方应用的事件 | 当 Slack 收到消息、Google Sheet 被编辑时 |
实际例子:
- 当有人提交联系表单时,用 Webhook 触发工作流
- 每个工作日早上 9 点自动发送日报,用 Cron 触发
- 调试新功能时,用手动触发测试
2.2 动作节点(Action Nodes)✅
动作是工作流的执行部分,它们代表具体的任务操作。
常见动作类型:
| 动作类型 | 功能 | 示例 |
|---|---|---|
| HTTP Request | 调用外部 API | 从天气 API 获取数据 |
| 发送邮件 | 发送电子邮件 | 发送通知邮件 |
| 数据库操作 | 读写数据库 | 从 MySQL 读取用户数据 |
| Set/Edit Field | 设置或修改数据字段 | 将接收到的数据添加新字段 |
| Function(函数) | 运行自定义 JavaScript 代码 | 复杂数据转换 |
三、核心节点详解
3.1 核心节点的定义
核心节点(Core Nodes) 是 n8n 内置的基础节点,不依赖第三方服务,提供通用的数据处理和逻辑控制能力。这些节点是搭建任何工作流的基础。
3.2 最常用的核心节点
Webhook 节点 🔗
作用:为工作流开放一个"入口",接收来自外部的 HTTP 请求
配置关键项:
- HTTP Method:选择 GET 或 POST
- Authentication:是否需要身份验证
- 自动生成的 URL:用于接收请求
实际应用:
- 接收来自 Typeform 表单的数据
- 从 GitHub Webhook 接收代码提交通知
- 接收来自自己网站的用户反馈
Set/Edit Field 节点 📝
作用:创建、修改或删除数据字段
使用场景:清洗数据、添加新字段、数据转换
例子:
输入数据:
{
"name": "张三",
"email": "zhangsan@example.com"
}
使用 Set 节点添加字段:
{
"name": "张三",
"email": "zhangsan@example.com",
"timestamp": "2025-11-29",
"processed": true
}
IF 节点 🔀
作用:根据条件分支处理,类似编程中的 if-else
用法:设置条件,满足条件执行一个分支,不满足执行另一个分支
例子:
IF: email 包含 "@vip.com"
THEN: 发送 VIP 欢迎邮件
ELSE: 发送普通欢迎邮件
Merge 节点 🔗
作用:合并来自多个分支的数据
用法:当工作流从一个点分成多个分支后,用 Merge 重新汇合
Loop Over Items 节点 🔄
作用:对数组中的每个元素重复执行相同操作
用法:处理多条数据时必用
例子:
输入:[用户1, 用户2, 用户3]
处理:对每个用户都发送一封邮件
Function 节点 🧠
作用:编写自定义 JavaScript 代码
用法:处理复杂的数据转换、自定义逻辑
简单例子:
// 将收入的数据转换为大写
return items.map(item => {
item.json.name = item.json.name.toUpperCase();
return item;
});
3.3 集群节点(Cluster Nodes)
集群节点是多个节点的组合,作为一个整体提供功能。
例子:
- Datatable 节点:提供表格数据编辑和展示功能
- 一个根节点 + 多个子节点协同工作
四、理解数据流和表达式
4.1 数据如何在节点间流动
Webhook 节点 (收取数据)
↓
Set 节点 (处理数据)
↓
IF 节点 (判断)
↙ ↖
[是] [否]
↓ ↓
发邮件 记录日志
4.2 使用表达式引用上游数据
在任何节点的配置中,你可以使用表达式来引用前面节点的输出:
{{ $json.fieldName }} # 引用当前节点的字段
{{ $node["节点名称"].json.field }} # 引用其他节点的数据
{{ $now }} # 获取当前时间
{{ $randomString }} # 生成随机字符串
五、凭证与安全(Credentials)
在 n8n 中,连接外部服务需要凭证信息。
常见凭证类型:
- API Key(API 密钥)
- 用户名 + 密码
- OAuth 2.0 授权
- 私钥(用于数据库连接)
安全特性:
- 所有凭证都被加密存储
- n8n 使用自动生成的加密密钥
- 敏感信息不会在日志中暴露
六、完整案例:构建你的第一个工作流
案例描述
构建一个简单的自动邮件欢迎系统:
- 通过 Webhook 接收新用户注册数据
- 根据用户类型(普通/VIP)发送不同的欢迎邮件
工作流步骤
步骤 1:添加 Webhook 节点
- 在 n8n 界面点击"+"号添加节点
- 搜索"Webhook"并选择
- 配置为接收 POST 请求
- 复制生成的 Webhook URL
步骤 2:添加 Set 节点(数据处理)
- 点击 Webhook 节点的输出端,拖到空白处
- 搜索"Set"并添加
- 配置:添加字段"userType"来标记用户类型
步骤 3:添加 IF 节点(逻辑判断)
- 连接 Set 节点到 IF 节点
- 配置条件:IF userType = “VIP”
步骤 4:添加发邮件节点
- 在 IF 节点的"真"分支添加 Gmail 节点
- 在"假"分支添加另一个 Gmail 节点
- 分别配置 VIP 和普通用户的邮件内容
步骤 5:合并分支(可选)
- 使用 Merge 节点将两个分支的结果合并
- 用于后续的统一处理或日志记录
完整工作流 JSON(可直接导入 n8n)
{
"nodes": [
{
"parameters": {
"path": "user-signup",
"responseMode": "onReceived",
"options": {}
},
"id": "webhook-node",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [0, 0]
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "{\"userType\": \"VIP\",\"receivedAt\": \"{{ $now }}\"}"
},
"id": "set-node",
"name": "Set Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [220, 0]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "{{ $json.userType }}",
"value2": "VIP",
"operation": "equals"
}
]
}
},
"id": "if-node",
"name": "Check User Type",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [440, 0]
},
{
"parameters": {
"respondWith": "text",
"responseBody": "{{ $json.userType }} 用户已处理"
},
"id": "respond-node",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.2,
"position": [660, 0]
}
],
"connections": {
"Webhook": {
"main": [
[{ "node": "Set Fields", "type": "main", "index": 0 }]
]
},
"Set Fields": {
"main": [
[{ "node": "Check User Type", "type": "main", "index": 0 }]
]
},
"Check User Type": {
"main": [
[{ "node": "Respond to Webhook", "type": "main", "index": 0 }],
[{ "node": "Respond to Webhook", "type": "main", "index": 0 }]
]
}
}
}
如何导入工作流
- 在 n8n 主页,点击菜单 → “Import workflow”
- 选择上面的 JSON 内容
- 点击"导入"即可自动生成整个工作流
- 根据你的需求修改节点配置(如添加实际的邮箱服务)
七、初学者常见问题
Q1:什么时候用 If 节点,什么时候用 Switch 节点?
- If:只有两种情况(是/否)
- Switch:多种情况(可以有 3 个或更多分支)
Q2:Function 节点和 Set 节点有什么区别?
- Set:图形界面配置,适合简单操作
- Function:写代码,适合复杂转换
Q3:如何调试工作流?
- 点击节点的"执行"按钮逐个测试
- 查看每个节点的输出数据(右侧面板)
- 使用 Webhook 测试 URL 模拟真实请求
Q4:工作流执行失败了怎么办?
- 检查凭证是否正确配置
- 查看错误日志(底部面板)
- 确保节点间的数据格式匹配
- 使用表达式时检查字段名是否存在
总结要点
| 要点 | 说明 |
|---|---|
| 节点 | 工作流的基本构件,每个节点完成一个任务 |
| 触发器 | 决定工作流何时启动(Webhook、Cron、Manual) |
| 动作 | 具体的操作(发邮件、调用 API、数据处理) |
| 核心节点 | 内置的通用节点(Set、If、Function、Loop) |
| 数据流 | 数据从一个节点流向下一个节点的过程 |
| 表达式 | 使用 {{ }} 语法引用和转换数据 |
| 凭证 | 安全存储的身份认证信息 |
祝你使用 n8n 愉快!从今天开始,让重复的工作自动化,把时间投入到更有创意的事情上吧! 🚀

1332

被折叠的 条评论
为什么被折叠?



