【n8n教程】:掌握工作流组件的核心用法

欢迎来到n8n的世界!如果你刚开始接触工作流自动化,这份教程会让你快速上手。n8n的核心就是工作流组件——包括节点(Nodes)、连接(Connections)和便签(Sticky Notes)。掌握这些基础要素,你就能构建任何自动化流程。


🎯 核心概念

什么是节点(Nodes)?

节点是工作流的砖块。 每个节点执行一个具体的任务:

什么是连接(Connections)?

连接是节点之间的数据通道。 它决定了数据从哪里来、流向哪里。一个连接连接两个节点,实现数据的流动。

什么是便签(Sticky Notes)?

便签是工作流的文档工具。 用Markdown记录说明文档,帮助你和他人理解工作流的逻辑。


🚀 快速上手:添加第一个节点

步骤1:创建新工作流

在n8n界面,选择 创建工作流(Create Workflow)或点击 从头开始(Start from Scratch)。

步骤2:添加第一个节点

  1. 1. 点击 "Add first step" 按钮
  2. 2. n8n会打开节点面板,展示所有可用的触发节点
  3. 3. 搜索 "Schedule"(定时任务)
  4. 4. 选择 Schedule Trigger,这是最常用的触发节点

小贴士:触发节点(带有⚡图标)总是工作流的第一个节点,其他节点则使用灰色的 "Add node" 连接器添加。

步骤3:配置节点

每个节点都有自己的配置参数。以Schedule Trigger为例:

配置项说明示例
Trigger Interval触发间隔单位Days(每天)
Trigger at Hour触发时间(小时)9(上午9点)
Trigger at Minute触发时间(分钟)0(整点)

配置好后,该节点每天上午9点会触发一次。


🔗 理解节点连接

创建连接的三步法

连接是让数据流动的关键。以下是创建连接的方法:

第1步:选择上一个节点右侧的 灰色圆点(或"Add node"按钮)

第2步:拖拽箭头到下一个节点左侧的 灰色矩形框

第3步:松开鼠标完成连接

重要:节点必须按照逻辑顺序连接。数据从一个节点流向另一个节点,后续节点可以使用前面节点的数据。

删除连接

如果需要删除已有的连接:

  1. 1. 将鼠标悬停在连接线上
  2. 2. 点击 "Delete" 按钮

📝 使用便签注释你的工作流

为什么需要便签?

想象你3个月后回到一个复杂的工作流,却不记得每个节点的用途。便签能帮你快速理解整个流程!

添加便签的步骤

  1. 1. 打开节点面板,搜索 "note"
  2. 2. 选择 Sticky Note 节点
  3. 3. 双击便签编辑内容
  4. 4. 支持Markdown语法:
    • # 标题 - 大标题
    • **粗体** - 强调
    • - 列表 - 项目列表
    • [链接](URL) - 超链接

便签美化技巧

改变颜色

调整大小和位置

嵌入媒体


    
    
    
  # 数据处理流程

## 第一步:获取数据

通过HTTP Request节点从API获取用户信息

## 第二步:转换数据

使用Set节点重新映射字段

## 第三步:保存到数据库

Insert节点将数据存储到PostgreSQL

⚙️ 节点控制和设置

当你把鼠标悬停在节点上时,会看到以下控制按钮:

按钮功能用途
▶️Execute Step单独测试该节点
🚫Deactivate临时禁用节点
🗑️Delete删除节点
Context Menu更多操作

节点设置标签(Settings Tab)

点击节点右侧的 Settings 标签,可以配置:


💡 实战案例:构建你的第一个工作流

现在让我们构建一个实际可用的工作流:每天上午9点定时检查数据并发送通知

工作流逻辑

  1. 1. Schedule Trigger:每天上午9点触发
  2. 2. Set节点:准备要发送的数据
  3. 3. HTTP Request:调用外部API(如发送消息)

完整工作流JSON代码

将以下JSON导入到n8n(文件菜单 → 从文件导入),即可快速创建这个工作流:


    
    
    
  {
  "name"
: "Daily Data Check Workflow",
  "nodes"
: [
    {

      "parameters"
: {
        "triggerTimes"
: [
          {

            "hour"
: 9,
            "minute"
: 0
          }

        ]

      }
,
      "id"
: "schedule",
      "name"
: "Schedule Trigger",
      "type"
: "n8n-nodes-base.scheduleTrigger",
      "typeVersion"
: 1,
      "position"
: [
        250
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "assignments"
: {
          "assignments"
: [
            {

              "id"
: "a1",
              "name"
: "message",
              "value"
: "Good morning! Time to check daily data.",
              "type"
: "string"
            }
,
            {

              "id"
: "a2",
              "name"
: "timestamp",
              "value"
: "={{ new Date().toISOString() }}",
              "type"
: "string"
            }
,
            {

              "id"
: "a3",
              "name"
: "status",
              "value"
: "active",
              "type"
: "string"
            }

          ]

        }

      }
,
      "id"
: "set-data",
      "name"
: "Set Node",
      "type"
: "n8n-nodes-base.set",
      "typeVersion"
: 3.4,
      "position"
: [
        500
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "method"
: "POST",
        "url"
: "https://webhook.site/your-webhook-id",
        "sendHeaders"
: true,
        "headerParameters"
: {
          "parameters"
: [
            {

              "name"
: "Content-Type",
              "value"
: "application/json"
            }

          ]

        }
,
        "bodyParametersJson"
: "={{ {message: $json.message, timestamp: $json.timestamp, status: $json.status} }}"
      }
,
      "id"
: "http-request",
      "name"
: "HTTP Request",
      "type"
: "n8n-nodes-base.httpRequest",
      "typeVersion"
: 4.1,
      "position"
: [
        750
,
        300

      ]

    }

  ]
,
  "connections"
: {
    "schedule"
: {
      "main"
: [
        [

          {

            "node"
: "set-data",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "set-data"
: {
      "main"
: [
        [

          {

            "node"
: "http-request",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }

  }
,
  "active"
: false,
  "settings"
: {}
}

导入步骤

  1. 1. 复制上面的JSON代码
  2. 2. 在n8n中,点击顶部菜单 ⋯(三个点)Import from URLImport from File
  3. 3. 粘贴JSON代码
  4. 4. 点击 Import
  5. 5. n8n会自动生成整个工作流,包括所有节点和连接

自定义工作流

导入后,你需要自定义:


🎓 进阶技巧

1. 使用表达式传递数据

在n8n中,可以使用表达式访问前面节点的数据:


    
    
    
  {{ $json.fieldName }}              // 当前节点数据
{{ $node["NodeName"].json.field }} // 其他节点数据
{{ new Date().toISOString() }}     // 使用JavaScript函数

2. 错误处理最佳实践

在关键节点上启用 Retry On Fail,在 On Error 设置为 Continue,让工作流更稳定。

3. 测试单个节点

点击节点上的 Execute Step 按钮,可以单独测试该节点,快速调试问题。

4. 使用便签组织复杂工作流

为不同功能区块添加不同颜色的便签,让工作流结构一目了然。


📋 常见问题解答

Q: 如何在节点间传递数据?
A: 通过连接!连接会自动将上一个节点的输出作为下一个节点的输入。使用表达式 {{ $json.field }} 访问数据。

Q: 可以连接多个节点到同一个节点吗?
A: 可以!这样你可以聚合来自多个源的数据,或实现分支-合并的逻辑。

Q: 如何调试工作流?
A: 使用 Execute Step 逐个测试节点,查看每个节点的输出数据,快速定位问题。

Q: 能保存工作流为备份吗?
A: 能!点击 Download 将工作流导出为JSON文件,随时可以导入使用。


总结

现在你已经掌握了n8n工作流的三个核心要素:

节点:工作流的砖块,每个执行一个任务
连接:数据通道,让节点之间交流
便签:文档工具,记录工作流逻辑


引用链接

[1] 官方文档: https://docs.n8n.io/workflows/components/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#