2026年【n8n教程】:掌握n8n流程逻辑,构建复杂自动化工作流

【n8n教程】:掌握n8n流程逻辑,构建复杂自动化工作流在 n8n 中构建自动化工作流时 你不仅需要连接不同的应用程序 还需要根据不同的条件做出决策 处理多个数据流 循环处理数据以及处理可能出现的错误 这正是流程逻辑 Flow Logic 的用武之地 流程逻辑是 n8n 中表示复杂业务规则的核心能力 它让你能够构建真实世界的自动化流程 而不仅仅是简单的线性工作流 本教程将帮你快速理解和掌握 n8n 中的所有流程逻辑概念 点击获取最新 AI 资讯

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在n8n中构建自动化工作流时,你不仅需要连接不同的应用程序,还需要根据不同的条件做出决策、处理多个数据流、循环处理数据以及处理可能出现的错误。这正是流程逻辑(Flow Logic)的用武之地。

流程逻辑是n8n中表示复杂业务规则的核心能力。它让你能够构建真实世界的自动化流程,而不仅仅是简单的线性工作流。本教程将帮你快速理解和掌握n8n中的所有流程逻辑概念。

点击获取最新AI资讯、n8n工作流、开发经验分享

什么是条件分支?

条件分支允许你根据特定条件将单分支工作流转变为多分支工作流。当数据流经过IF或Switch节点时,系统会根据条件判断,将数据路由到不同的分支进行处理。

核心概念

  • IF节点:最常用的条件节点,支持简单的真/假(True/False)条件判断
  • Switch节点:支持多个条件分支,适合复杂的多路选择场景

实战例子:使用IF节点处理订单

假设你有一个订单管理系统,需要根据订单金额是否超过100来决定是否需要特殊审批:

  1. 添加IF节点,设置条件:{{ $json.orderAmount > 100 }}
  2. 在"True"分支:将订单发送给审批部门
  3. 在"False"分支:直接发送确认邮件

Switch节点的优势

当你有多个条件需要判断时,Switch节点比多个IF节点更简洁。例如,根据订单状态(待处理、已发货、已完成)执行不同的操作。

关键点:条件分支是构建复杂工作流的第一步,让系统能够"思考"和做出决策。


为什么需要合并数据?

当工作流分支后,最终需要将来自不同分支的数据流合并成一个统一的输出。n8n提供了多种方法来实现这一点。

合并数据的三种方法

方法1:使用Merge节点

Merge节点是合并不同数据流的标准工具。它支持多种合并操作:

  • Combine:将所有项目从两个流合并为一个数组
  • Only New:只保留第一个流中有、第二个流中没有的项目
  • Only Existing:只保留两个流中都存在的项目
  • Except:保留第一个流中有、第二个流中没有的项目

使用场景:合并来自两个不同来源的数据,如从数据库查询的用户列表和从API获取的活跃用户列表。

方法2:使用Code节点进行复杂合并

对于复杂的数据合并逻辑,Code节点提供了更大的灵活性。它允许你编写自定义的JavaScript或Python代码来合并多个节点的执行结果。

// 从多个节点执行结果中提取数据 const userData = $input.all()[0].json; const activityData = $input.all()[1].json; // 合并两个数据对象 return { user: userData, activity: activityData, mergedAt: new Date().toISOString() }; 
方法3:Compare Datasets节点进行对比合并

Compare Datasets节点不仅合并数据,还能对比两个数据流。它输出四个不同的流:只在流1中、只在流2中、两者都有、差异数据。

关键点:选择合适的合并方法取决于你的数据结构和业务需求。Merge节点适合简单场景,Code节点适合复杂逻辑,Compare Datasets适合需要数据对比的场景。


n8n中的循环机制

n8n自动处理数据循环。当一个节点接收多个数据项时,它会自动为每个项目执行一次。这意味着你通常不需要显式地编写循环代码。

自动循环示例

假设你需要发送邮件给客户列表中的每个客户:

  1. 连接客户列表节点到邮件发送节点
  2. 配置邮件节点
  3. n8n会自动为列表中的每个客户发送一封邮件

显式循环:Loop Over Items节点

某些情况下,你需要精细控制循环行为:

使用Loop Over Items节点的场景:

  • 批量处理:设置Batch Size为特定数值,分组处理数据
  • 避免API速率限制:通过设置小的批量大小,缓解对外部API的压力
  • 处理需要特殊逻辑的数据:与IF节点组合,创建条件循环

与条件结合:创建条件循环

Manual Trigger → Loop Over Items → IF Node ├─ True → Process Data └─ FalseSkip 

在这个流程中,Loop Over Items会继续迭代直到所有项都被处理,IF节点决定如何处理每个项。

关键点:n8n的循环是自动的,但你可以通过Loop Over Items节点获得更多控制。这让你可以处理复杂的批处理和条件循环场景。


Wait节点的作用

Wait节点允许工作流在执行过程中暂停,然后在满足条件时恢复。这对以下场景非常有用:

  • 速率限制:等待一定时间后再调用API,避免超过速率限制
  • 异步操作:等待外部事件完成(如Webhook回调)
  • 时间触发:在特定时间执行操作

两种等待方式

1. 固定时间等待

工作流暂停特定的时间长度。例如,等待5分钟后继续:

Trigger Node → API Call → Wait 5 minutes → Send Email 
2. 等待Webhook事件

工作流保持暂停状态,直到接收到预期的Webhook请求。这对处理异步操作非常有用:

Trigger → Send Approval Request → Wait for Webhook → Process Approval 

实际应用

场景:速率限制

假设你需要调用一个API,但它限制每秒最多调用1次。使用Wait节点可以在调用之间插入1秒的延迟:

  1. 使用Loop Over Items分批处理数据
  2. 在每次API调用后添加Wait节点,延迟1秒
  3. 这样可以避免超过API速率限制

关键点:Wait节点是处理时间相关逻辑的关键,使你能够创建智能的、符合外部系统限制的自动化工作流。


什么是子工作流?

子工作流是从另一个工作流(父工作流)中调用的独立工作流。这种模块化方法让你能够:

  • 复用逻辑:在多个工作流中重用相同的业务逻辑
  • 简化复杂工作流:将大型工作流分解为更小、更易管理的部分
  • 改进可维护性:更改一次,所有调用它的工作流都会受益

设置子工作流的步骤

第一步:创建子工作流
  1. 创建一个新工作流
  2. 添加Execute Sub-workflow Trigger节点(搜索时也会显示为"When Executed by Another Workflow")
  3. 配置输入数据模式:
    • Define using fields below:定义个别输入字段
    • Define using JSON example:提供JSON示例
    • Accept all data:接受所有数据
第二步:在父工作流中调用
  1. 在父工作流中添加Execute Sub-workflow节点
  2. 选择要调用的子工作流
  3. 映射输入参数
  4. 子工作流的最后节点将其输出发送回父工作流

数据流向

Parent Workflow ↓ [Execute Sub-workflow Node] ← 发送数据 ↓ Sub-workflow ↓ [Execute Sub-workflow Trigger] ← 接收数据 ↓ [Process Nodes] ↓ [Last Node] ← 返回数据 ↓ Parent Workflow [Execute Sub-workflow Node] ← 接收结果 ↓ Continue execution 

子工作流的优势

  • 降低执行成本:子工作流执行不计入你的月度执行限额
  • 更好的组织:大型自动化系统可以分解为逻辑单元
  • 团队协作:不同团队可以维护不同的子工作流

关键点:子工作流是构建可扩展、可维护的n8n自动化系统的关键。使用它们来模块化你的业务逻辑。


错误处理的重要性

即使设计精良的工作流也可能出错。错误处理确保你的自动化系统能够:

  • 优雅地处理异常情况
  • 通知相关人员问题的发生
  • 防止数据丢失或不一致
  • 自动恢复或手动干预

创建错误工作流

错误工作流是一个特殊的工作流,当主工作流执行失败时自动触发。

步骤1:创建错误处理工作流
  1. 创建新工作流,命名为"Error Handler"
  2. 添加Error Trigger节点作为第一个节点
  3. 配置错误处理逻辑(如发送Slack通知或Email警报)
  4. 保存工作流
步骤2:在主工作流中关联错误工作流
  1. 打开需要错误处理的工作流
  2. 点击OptionsSettings
  3. Error workflow下拉菜单中选择你创建的错误处理工作流
  4. 保存
Error Trigger接收的数据

Error Trigger节点接收以下错误信息:

{ "execution": { "id": "执行ID", "url": "执行的URL", "retryOf": "重试的执行ID(如果是重试)" }, "trigger": { "error": { "message": "错误消息", "description": "错误描述" } }, "workflow": { "id": "工作流ID", "name": "工作流名称" } } 

主动触发错误:Stop And Error节点

你也可以使用Stop And Error节点在特定条件下强制触发错误:

Check Data → IF Node ├─ Valid → Continue Processing └─ Invalid → Stop And ErrorError Workflow Triggered 

错误处理**实践

  1. 记录错误:将错误信息发送到日志服务或数据库
  2. 及时通知:通过Slack、Email等渠道通知运维团队
  3. 自动重试:对于临时错误,配置自动重试机制
  4. 可追溯性:保留完整的错误追踪信息,便于调试

关键点:好的错误处理是专业工作流的标志。它保证即使发生意外,你也能快速知道并做出响应。


n8n中的执行顺序

n8n执行多分支工作流的方式取决于工作流的创建版本:

对于1.0之前创建的工作流

层级执行

  • 执行第一个分支的所有节点
  • 然后执行第二个分支的所有节点
  • 依此类推
对于1.0及以后创建的工作流

分支顺序执行

  • 按画布上从上到下、从左到右的位置顺序执行各分支
  • 完全执行一个分支后,才开始执行下一个分支

控制执行顺序

虽然n8n有默认的执行顺序,但你可以在工作流设置中修改它。这对特定的业务需求很有帮助。

执行顺序示例

 ┌─ Branch A ─┐ Start ──┤ ├─ Merge ─ End └─ Branch B ─┘  执行顺序: 1. Start节点 2. Branch A的所有节点(按顺序) 3. Branch B的所有节点(按顺序) 4. Merge节点 5. End节点 

关键点:了解执行顺序对预测工作流行为至关重要。在某些情况下,你可能需要显式地控制执行顺序来实现特定的业务逻辑。


现在让我们把所学的所有概念整合在一起,构建一个完整的订单处理工作流。这个工作流展示了条件分支、循环、合并和错误处理的实际应用。

工作流场景

一个电商平台需要自动处理订单:

  • 接收订单
  • 根据订单金额判断是否需要审批
  • 批量发送确认邮件
  • 合并处理结果
  • 处理任何出现的错误

工作流JSON代码

复制以下JSON代码到n8n中导入(使用菜单中的Import from File或创建新工作流后选择Import from URL):

{ "name": "订单处理工作流", "nodes": [ { "parameters": { "triggerType": "on", "unit": "minutes", "value": 5 }, "id": "trigger-node", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1, "position": [250, 300] }, { "parameters": { "jsonData": "{ "orders": [ {"id": "ORD001", "amount": 50, "customer": "Alice", "email": ""}, {"id": "ORD002", "amount": 150, "customer": "Bob", "email": ""}, {"id": "ORD003", "amount": 75, "customer": "Charlie", "email": ""} ] }" }, "id": "code-input", "name": "Mock Order Data", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [450, 300] }, { "parameters": { "mode": "runOnceForEachItem", "jsCode": "return item.json.orders;" }, "id": "loop-orders", "name": "Loop Over Items", "type": "n8n-nodes-base.splitInBatches", "typeVersion": 1, "position": [650, 300] }, { "parameters": { "conditions": { "boolean": [ { "value1": "{{ $json.amount }}", "operation": ">", "value2": 100 } ] } }, "id": "check-amount", "name": "Check Order Amount", "type": "n8n-nodes-base.if", "typeVersion": 1, "position": [850, 300] }, { "parameters": { "content": "订单 {{ $json.id }} 金额为 {{ $json.amount }},需要审批" }, "id": "approval-note", "name": "Approval Needed", "type": "n8n-nodes-base.noOpNode", "typeVersion": 1, "position": [1050, 150] }, { "parameters": { "content": "订单 {{ $json.id }} 金额为 {{ $json.amount }},可以直接处理" }, "id": "direct-process", "name": "Direct Process", "type": "n8n-nodes-base.noOpNode", "typeVersion": 1, "position": [1050, 450] }, { "parameters": { "content": "订单处理完成" }, "id": "merge-results", "name": "Merge Results", "type": "n8n-nodes-base.merge", "typeVersion": 2, "position": [1250, 300] } ], "connections": { "Schedule Trigger": [ { "node": "Mock Order Data", "type": "main", "index": 0 } ], "Mock Order Data": [ { "node": "Loop Over Items", "type": "main", "index": 0 } ], "Loop Over Items": [ { "node": "Check Order Amount", "type": "main", "index": 0 } ], "Check Order Amount": [ { "node": "Approval Needed", "type": "main", "index": 0 }, { "node": "Direct Process", "type": "main", "index": 0 } ], "Approval Needed": [ { "node": "Merge Results", "type": "main", "index": 0 } ], "Direct Process": [ { "node": "Merge Results", "type": "main", "index": 1 } ] }, "active": false, "settings": { "executionOrder": "v1" } } 

如何使用这个工作流

  1. 在n8n中创建新工作流
  2. 点击菜单图标(三个点) → Import from File
  3. 选择包含上述JSON的文件,或复制JSON内容后使用Import
  4. 配置各节点参数(如实际的邮件服务凭证)
  5. 点击Execute Workflow测试

工作流说明

节点名称 功能 关键参数 Schedule Trigger 定时触发,每5分钟执行一次 触发间隔 Mock Order Data 模拟订单数据 JSON数据 Loop Over Items 循环处理每个订单 批处理大小 Check Order Amount 根据金额判断是否需要审批 条件:amount > 100 Approval Needed 处理需要审批的订单 审批逻辑 Direct Process 直接处理不需要审批的订单 处理逻辑 Merge Results 合并两个分支的结果 合并方式

  1. 条件分支:使用IF和Switch节点根据条件路由数据
  2. 数据合并:使用Merge节点或Code节点合并多个数据流
  3. 循环处理:利用n8n的自动循环机制或Loop Over Items节点
  4. 等待操作:使用Wait节点处理时间相关的业务逻辑
  5. 子工作流:通过模块化提高代码复用性和可维护性
  6. 错误处理:创建错误工作流捕获和处理异常
  7. 执行顺序:理解多分支工作流的执行流程

官方文档

n8n系列教程

小讯
上一篇 2026-04-25 17:07
下一篇 2026-04-25 17:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/273542.html