什么是 n8n 以及它的重要性
n8n 是一款开源的工作流自动化工具,可通过可视化的节点式界面连接各类 API 和服务。与 Zapier 等完全托管的平台不同,n8n 允许你选择自托管、在节点内编写自定义 JavaScript,并调用任意 HTTP 端点——这使得它在需要自动化能力又不想失去控制权的开发者中非常实用。
其核心思想很直接:不再需要编写一个脚本来从 A 服务获取数据、转换后推送到 B 服务,而是搭建一个工作流,让每一步都成为一个可见且可配置的节点。最终结果相同,但工作流更易于调试、交接和修改,无需每次都去动代码。
你需要优先掌握的核心概念
n8n 中的每个工作流都由三种原语构成:节点、连接和执行。
节点是单一的工作单元。它可以基于某个事件触发、从 API 获取数据、转换某个值,或发送通知。连接就是节点之间的箭头——它们定义了操作的顺序,并将数据向下游传递。执行则是工作流的一次完整运行,从触发节点一直走到最后一个节点。
n8n 内部的数据以 item 数组的形式流转。每个 item 都是一个 JSON 对象。当某个节点从数据库查询中接收到五条记录时,下游节点默认会处理全部五条——无需显式编写循环。这是需要尽早内化的最重要行为之一,因为它会影响你设计每一个工作流的方式。
下面展示的是单个 item 在节点之间传递时的样子:
当某个节点输出多个 item 时,n8n 会将它们包裹在一个数组中,下一个节点会自动接收全部数据。
执行模式与触发器类型
n8n 工作流从一个触发节点启动。以下是三种你经常会用到的触发模式。
第一种是 webhook 触发器。外部服务向 n8n 提供的 URL 发送 HTTP POST 请求,工作流会立即触发运行。当你需要实时响应时——比如一次新支付、一份表单提交、一个 GitHub 推送事件——这是正确的选择。
第二种是定时触发器。工作流按照你定义的 cron 表达式定时运行。适用于轮询任务、每日报表,或任何不要求实时性的任务。
第三种是手动触发器,需要你在编辑器中手动点击。它仅用于测试和开发——不要上线依赖该触发器的工作流。
生产模式下运行的 n8n 实例会自动执行处于激活状态的工作流。在开发模式下,你需要在编辑器内将工作流从“未激活”切换为“激活”。
何时使用 n8n,何时使用自定义代码
这是开发者们经常问的集成思维问题:为什么不直接自己写脚本?
当逻辑真正复杂时——多步骤条件分支、有状态的操作,或对性能敏感的数据处理——自定义代码更胜一筹。用 NumPy 处理 50 万行数据的 Python 脚本才是这类工作的正确工具。
当工作主要是编排时,n8n 更合适:调用这个 API、整形响应数据、发送到别处、出问题时通知一个人。编写、部署、监控和维护一个自定义集成脚本的开销是真实存在的。而 n8n 开箱即用地提供了重试机制、执行日志、错误工作流和凭证管理功能。
一个实用的判断启发式:如果某个集成用代码写需要一天以上,但用 n8n 可以在两小时内完成,且逻辑并不依赖 n8n 无法表达的能力,那就用 n8n。当你触碰到可视化配置的边界时,随时可以切入 Code 节点——这部分将在后面的课程中讲解。
小结
理解 n8n 的最佳方式是把它看作一个“可编程的集成层”,而不是一个无代码玩具。节点、连接和执行是三大构建块。数据以 JSON item 数组的形式在节点之间流转。触发器类型——webhook、定时和手动——决定了工作流何时运行。集成思维意味着为每项任务选择合适的工具:把 n8n 用于能减少运维负担的编排工作,而把自定义代码留给真正需要它的复杂逻辑。