简介
到目前为止,你已经探索了 n8n 的界面,了解了各个节点,并单独尝试了触发器和动作。本课就是让所有内容融会贯通的地方。你将从零开始构建一个完整、可运行的工作流——它有一个真实的触发器,通过多个步骤处理数据,并产生一个具体的输出。目标不仅仅是让它运行一次,而是激活它,让它在没有你操作的情况下自动运行。
本课中你要构建的工作流:当表单提交了新条目(或通过 webhook 到达)时,数据被转换,应用一个条件检查,然后向 Slack 频道发送一条通知。这个模式——接收、处理、决策、执行——出现在大约 80% 的真实自动化用例中,因此一旦掌握它,你就拥有了一个可复用的思维模型。

设置触发器
在 n8n 中新建一个工作流。点击画布,添加一个 Webhook 节点作为触发器。将 HTTP 方法设置为 POST,并记下生成的 webhook URL——你将用它来发送测试数据。
在 Webhook 节点设置中,将 "Response Mode"(响应模式)设置为 "Last Node"(最后一个节点),这样 n8n 会等待整个工作流完成后再响应调用方。当 webhook 调用方期望收到确认时,这一点很重要。
要发送测试负载,可以使用 curl 或任何 HTTP 客户端等工具:
在运行 curl 命令之前,先在 n8n 中点击 "Listen for Test Event"(监听测试事件)。一旦负载到达,n8n 会将数据固定到该节点——在构建会话期间,每个下游节点现在都可以引用它。
使用 Set 节点转换数据
原始的 webhook 数据通常不是下游所需的确切格式。在 Webhook 节点之后添加一个 Set 节点,以重新塑形或丰富传入的数据。
在本例中,你希望将姓名规范化为大写,并添加一个计算字段,将分数标记为等级:
配置 Set 节点,仅保留你需要的字段(name、email、score、grade),方法是将 "Keep Only Set"(仅保留已设置的字段)切换为开启。这能保持数据在流向下一个节点时整洁,避免意外地将未预期的字段传递给外部 API。
保存后,使用 "Execute Node"(执行节点)验证输出。你应该能看到转换后的条目,其中 grade 字段已被填充。
使用 IF 节点添加条件逻辑
并非每次提交都应触发相同的动作。高分者可能收到祝贺消息,而其他人则收到鼓励消息。IF 节点负责处理这种分支逻辑。
在 Set 节点之后添加一个 IF 节点。将条件设置为检查 grade 字段:
IF 节点输出两个分支:"true"(grade 为 A)和 "false"(其他所有情况)。将一个 Slack 节点连接到 true 分支,将第二个 Slack 节点(或一个 Email 节点)连接到 false 分支。这就是 n8n 处理条件路径的方式:你显式地连接两个输出,而不是编写 if/else 代码。
连接输出动作
在 true 分支上添加一个 Slack 节点。你需要在 n8n 中配置一个 Slack 凭据(Settings → Credentials → New → Slack OAuth2)。连接完成后,配置该节点:
对于 false 分支,复制 Slack 节点并更改消息内容:
使用 "Execute Workflow"(执行工作流)按钮运行整个工作流。检查你的 Slack 频道,确认消息以正确的内容出现。如果你看到 Slack API 错误,最常见的原因是 OAuth 应用中缺少频道作用域,或者机器人未被邀请加入该频道。
测试、修复与激活
在激活之前,使用不同的负载至少运行两次工作流——一次触发 true 分支,一次触发 false 分支:
执行后,通过点击每个节点来检查其输出。底部的执行日志面板会显示走了哪条路径以及每一步的数据。这是你主要的调试工具。
一旦两个路径都正常工作,给你的工作流起一个描述性的名称(左上角标题字段),然后翻转右上角的 Active(激活)开关。webhook URL 现在已生效——对于每一个传入的 POST 请求,n8n 都会自动执行该工作流,无需你点击任何东西。
在宣布完成之前,有几件事需要再次确认:确认 webhook URL 是 "production"(生产)URL(而非测试 URL);如果外部服务需要调用你的 n8n 实例,请确认该实例可从互联网访问;并检查你的凭据在连接真实服务时没有使用 test/sandbox(测试/沙箱)令牌。
总结
你刚刚构建了一个完整的四节点工作流:一个 Webhook 触发器、一个用于数据转换的 Set 节点、一个用于分支逻辑的 IF 节点,以及用于输出的 Slack 节点。更重要的是,你激活了它——它现在可以自主运行。你在这里练习的"接收—处理—决策—执行"模式,几乎是你今后构建的每一种自动化的主干。从这里开始,替换不同的触发器(定时、邮件、数据库事件)或不同的输出动作(Google Sheets、HTTP 请求、内部 API)都很简单,因为结构保持不变。
课程检查点
巩固所学知识,获取作业反馈。