learning
用 n8n 搭建工作流
当前阅读:进阶视角
本单元目标
学完本单元后,你将能够使用 n8n 的可视化画布,独立搭建一个包含触发器、数据处理节点和 HTTP 请求节点的多步骤自动化工作流,并成功执行与调试。
概念讲解
n8n 的核心思想是"节点即函数"。每个节点接收上游数据、执行一项特定操作、再将结果传递给下游节点,节点之间的连线构成了数据流动的管道。与写代码不同,你通过拖拽和配置表单来定义逻辑,但背后依然是确定性的数据流执行模型。
理解两个关键概念即可上手:触发器(Trigger) 与数据路径(Data Path)。触发器是工作流的起点,比如"Webhook 收到请求"或"定时器触发";数据路径则指每个节点输出的 JSON 结构,下游节点通过表达式(如 `{{ $json.field }}`)引用上游字段。一个常见误区是认为节点自动共享所有数据——实际上你必须显式指定引用哪个节点的输出。
举例:你想实现"收到表单提交后,在 Notion 创建一条记录"。表单触发器的输出是 `{name: "张三", email: "..."}`,Notion 节点需要映射 `{{ $json.name }}` 到数据库字段。中间若需清洗数据(如去掉空格),可插入一个"Code"节点用 JS 处理。这种模块化设计让每个环节可单独测试,这正是 n8n 相对传统脚本的优势。
实操演练
- 在 n8n 中新建工作流,从左侧节点面板拖入一个 Schedule Trigger 节点,设置"Trigger Interval"为 `Minutes`、`1`,作为每分钟执行的触发器。
- 接着拖入一个 HTTP Request 节点,连接到触发器,方法选 `GET`,URL 填入 `https://api.github.com/repos/n8n-io/n8n`,点击"Execute node"测试获取 GitHub 仓库信息。
- 再拖入一个 Code 节点连接 HTTP 节点,在 JavaScript 编辑框中输入 `return [{ starCount: $input.first().json.stargazers_count }];`,执行后确认输出为包含 `starCount` 的对象数组。
- 最后拖入 Set 节点(或 Set Multiple Fields),连接 Code 节点,添加字段 `message`,值设为 `= "当前星标: " + $json.starCount`,点击"Execute node"验证数据。
- 点击画布右上角"Active"开关激活工作流,等待 1 分钟,在"Executions"面板查看每次运行的状态与数据流日志。
练习任务
- 基于上述流程,将 HTTP Request 节点改为请求 `https://api.github.com/repos/n8n-io/n8n/commits`,并用 Code 节点提取第一条提交的 `commit.message` 和 `sha`,最终通过 Set 节点输出为 `{latest_commit: "...", sha: "..."}` 格式,激活后观察执行日志。
- 为工作流添加一个 IF 条件节点,判断 Code 节点输出的 `starCount` 是否大于 50000,若为真则连接一个 Telegram 节点(或 Slack 节点)发送通知,若为假则连接到 NoOp 节点结束;激活并手动触发一次,验证条件分支是否正确执行。