第 8 章

流程控制节点

Ch08 流程控制节点

真实的工作流不是线性的——数据需要根据条件走不同分支,某些操作需要等待外部事件,还有一些场景需要循环处理。n8n 提供了一套完整的流程控制节点:IF(条件分支)、Switch(多路分支)、Loop Over Items(遍历循环)、Wait(暂停等待)、Merge(流合并)。本章通过实际场景,深入讲解每个节点的配置与使用技巧。

IF 节点:条件分支

IF 节点是最基础的流程控制节点,根据条件判断将数据路由到两个不同的分支:True 输出(条件成立)或 False 输出(条件不成立)。

条件类型

IF 节点支持多种条件类型,可以用 AND/OR 逻辑组合:

实际示例:根据订单金额路由

// IF 条件配置
{
  "conditions": {
    "options": {
      "caseSensitive": false,
      "leftValue": "",
      "typeValidation": "strict"
    },
    "conditions": [
      {
        "id": "condition-1",
        "leftValue": "={{ $json.totalAmount }}",
        "rightValue": 1000,
        "operator": {
          "type": "number",
          "operation": "gte"
        }
      }
    ],
    "combinator": "and"
  }
}

Switch 节点:多路分支

当需要根据一个字段的值路由到多个不同分支时,Switch 比多个串联的 IF 节点更清晰。每个分支是一个独立的输出端口。

示例:根据订单状态分发

Switch 配置:
- 字段:{{ $json.status }}
- Output 1:equals "pending"     → 待付款处理
- Output 2:equals "paid"        → 已付款处理
- Output 3:equals "shipped"     → 已发货处理
- Output 4:equals "refunded"    → 退款处理
- Fallback(默认)              → 未知状态告警

Switch vs IF: IF 节点适合简单的二元判断(是/否)。Switch 适合"一个字段对应多个枚举值"的场景。如果分支逻辑复杂(涉及多个字段的组合判断),推荐用 Code 节点实现自定义路由逻辑。

Loop Over Items 节点:遍历循环

Loop Over Items 节点允许对 items 数组进行循环处理,每次循环传入一个 item。与 n8n 默认的"每个 item 自动分别执行"行为不同,Loop Over Items 提供了更明确的循环控制语义。

常用场景:

Wait 节点:暂停等待

Wait 节点让工作流在特定位置暂停,等待以下任意一种条件后再继续:

典型场景:人工审核流程

1. [收到新订单] → [发送审核通知到飞书,附上"批准"按钮链接]
2.  Wait 节点(Webhook 模式,超时 24 小时)
3. [审核人点击按钮] → [Wait 节点收到回调,工作流继续]
4. [根据审核结果(按钮携带的参数)执行发货或拒绝]

Wait 节点在 Webhook 模式下生成的回调 URL 格式:

https://your-n8n.com/webhook/[execution-id]/[resume-token]

这个 URL 可以嵌入飞书卡片按钮、邮件链接,或直接发给审核人,他们点击后工作流自动恢复。

示例:带审核的订单处理

// Wait 节点配置(Webhook 模式)
{
  "resume": "webhook",
  "options": {
    "webhookSuffix": "approve-order-{{ $json.orderId }}",
    "responseData": "firstEntryJson",
    "limit": {
      "unit": "hours",
      "value": 24
    }
  }
}

Merge 节点:合并多个输入流

当工作流分叉后需要重新合并时,使用 Merge 节点。它有几种合并模式:

示例:并行获取两个 API 的数据后合并

[用户基础信息 API] → \
                      Merge (By Key: userId) → [后续处理]
[用户订单数据 API] → /

最佳实践: 合理使用并行分支 + Merge 可以大幅加快工作流执行速度。将互不依赖的 API 调用并行化,然后在 Merge 节点汇合,而不是串行等待每个 API 一一返回。

综合示例:订单审核与分发工作流

结合以上节点,构建一个完整的订单处理流程:

  1. Webhook Trigger:接收新订单
  2. IF 节点:金额 ≥ 5000 需要人工审核?
    • True:发送审核通知 → Wait 节点(等待审核员点击批准/拒绝)→ Switch 节点(批准/拒绝分支处理)
    • False:直接进入自动处理流程
  3. Switch 节点(订单类型):
    • 国内订单 → 调用国内物流 API
    • 海外订单 → 调用国际物流 API
    • 虚拟商品 → 直接发送激活码
  4. Merge 节点:汇合所有分支的处理结果
  5. HTTP Request:更新订单状态 + 发送客户通知
本章评分
4.8  / 5  (40 评分)

💬 留言讨论