什么是触发器?
每个 n8n 工作流都必须有一个起点。这个起点被称为触发器节点——它是任何工作流中的第一个节点,也是唯一决定工作流何时运行的节点。没有触发器,工作流就会一直处于空闲状态。
触发器大致可以分为两类:手动触发器(由你自己启动)和自动触发器(由外部事件或定时计划启动)。理解应该使用哪种触发器,是你在设计工作流时所做的最重要决策之一。
三种最常见的触发器
n8n 自带多种触发器节点。以下三种你会经常遇到。
手动触发器是最简单的。你在编辑器中点击「Test workflow」(测试工作流),工作流就会运行一次。它本身不产生任何数据——只是发出一个「开始」的信号。开发期间,或者对于那些你只在需要时才运行的工作流,可以使用这种触发器。
定时触发器会按固定间隔自动运行你的工作流——每小时一次、每周一上午 9 点,或者你定义的任何 cron 表达式。它同样不产生输入数据;定时计划只是一个时钟信号。
Webhook 触发器功能最为强大。n8n 会暴露一个唯一的 URL,每当有 HTTP 请求命中该 URL,工作流就会立即运行。传入请求的 body、headers 和 query parameters 都将成为在工作流中流动的第一份数据。这就是你将 n8n 连接到 GitHub、Stripe 或任何支持 webhook 的外部系统的方式。
当你添加一个 Webhook 节点时,n8n 会为你提供两个 URL:一个测试 URL(仅在你打开编辑器并点击「Listen for Test Event」时才有效)和一个生产 URL(仅在工作流已保存并切换为激活状态时才有效)。
n8n 如何处理数据:执行模型
一旦触发器被触发,n8n 就会创建一个 execution(执行)——也就是工作流的一次运行。每个节点按顺序、从左到右依次执行,并将数据传递给下一个节点。
n8n 使用的数据模型是一个 item 数组。每个节点接收一个 item 数组,并输出一个 item 数组。每个 item 都是一个 JSON 对象,其结构大致如下:
当一个节点接收到两个 item 时,它通常会逐个处理每个 item,并输出两个 item。也就是说,如果你的 webhook 发送一个用户,下一个节点就处理一条记录。如果上游节点对数据进行了拆分或倍增,下游节点就会看到更多的 item。
这种「一行一个 item」的思维方式,是理解节点行为方式的关键。例如 HTTP Request 节点默认情况下对每个 item 运行一次;而 Merge 节点则可以将来自两个分支的 item 合并为一个数组。在每一步都留意你有多少个 item,可以避免大多数初学者常见的困惑。
你可以在测试运行后点击任意节点来查看该步骤的情况——n8n 会向你展示该次执行中该节点精确的输入和输出数据。
已激活与未激活的工作流
一个带有 Webhook 或定时触发器的工作流,只有在被激活时才会对真实事件作出响应。将工作流切换为激活状态会保存它,并向 n8n 的内部调度器或 webhook 注册中心注册该触发器。将其关闭则会注销该触发器——不再有自动运行。
在开发过程中,你几乎总是会让工作流处于未激活状态,使用手动触发器或测试版 webhook URL 来发送示例数据。切换到激活状态就是部署的步骤。
一个重要的副作用:你不能让两个已激活的工作流共享同一个 webhook 路径。n8n 会发出警告,并拒绝激活第二个工作流。
小结
每个工作流都以一个触发器节点开始。手动触发器用于开发以及按需运行的场景;定时触发器按固定时钟运行;Webhook 触发器则实时响应外部 HTTP 调用。触发器一旦触发,n8n 就会创建一个 execution,并将数据以 item 数组的形式从左到右逐节点传递。带有自动触发器的工作流,只有在切换为激活状态后才会运行。熟练掌握这些基础概念,能让你今后构建的每一个工作流都更容易理解和推理。
课程检查点
巩固所学知识,获取作业反馈。