Webhook 节点#
使用 Webhook 节点创建 webhooks,当事件发生时可以从应用程序和服务接收数据。它是一个触发器节点,这意味着它可以启动 n8n 工作流。这允许服务连接到 n8n 并运行工作流。
当你想要接收数据并基于数据运行工作流时,可以使用 Webhook 节点作为工作流的触发器。Webhook 节点还支持返回工作流结束时生成的数据。这使其对于构建处理数据并返回结果的工作流非常有用,就像 API 端点一样。
webhook 允许你从没有专用应用程序触发器节点的服务触发工作流。
工作流开发过程#
n8n 为测试和生产提供不同的 Webhook URL。测试 URL 包含监听测试事件选项。有关构建、测试和将 Webhook 节点转移到生产的更多信息,请参阅工作流开发。
节点参数#
使用这些参数配置你的节点。
Webhook URL#
Webhook 节点有两个 Webhook URL:测试和生产。n8n 在节点面板顶部显示 URL。
选择 Test URL 或 Production URL 以切换 n8n 显示的 URL。

Webhook 节点参数选项卡中的示例 Webhook URL
- 测试:当你选择监听测试事件或执行工作流时,如果工作流未激活,n8n 会注册一个测试 webhook。当你调用 webhook URL 时,n8n 会在工作流中显示数据。
- 生产:当你激活工作流时,n8n 会注册一个生产 webhook。使用生产 URL 时,n8n 不会在工作流中显示数据。你仍然可以查看生产执行的工作流数据:在工作流中选择执行选项卡,然后选择你想要查看的工作流执行。
HTTP 方法#
Webhook 节点支持标准的 HTTP 请求方法:
-
DELETE
-
GET
-
HEAD
-
PATCH
-
POST
-
PUT
Webhook 最大负载
webhook 最大负载大小为 16MB。 如果你自托管 n8n,可以使用端点环境变量
N8N_PAYLOAD_SIZE_MAX更改此设置。
路径#
默认情况下,此字段包含随机生成的 webhook URL 路径,以避免与其他 webhook 节点冲突。
你可以手动指定 URL 路径,包括添加路由参数。例如,如果你使用 n8n 原型化 API 并希望端点 URL 保持一致,则可能需要这样做。
路径字段可以采用以下格式:
/:variable/path/:variable/:variable/path/:variable1/path/:variable2/:variable1/:variable2
支持的身份验证方法#
你可以要求调用 webhook URL 的任何服务进行身份验证。从以下身份验证方法中选择:
- Basic auth
- Header auth
- JWT auth
- None
有关设置每种凭据类型的更多信息,请参阅 Webhook 凭据。
响应#
- 立即:Webhook 节点返回响应代码和消息 Workflow got started。
- 当最后一个节点完成时:Webhook 节点返回响应代码和工作流中执行的最后一个节点的数据输出。
- 使用 'Respond to Webhook' 节点:Webhook 节点按照 Respond to Webhook 节点中定义的方式响应。
- 流式响应:在工作流处理时启用实时数据流回用户。需要工作流中具有流式支持的节点(例如,AI agent 节点)。
响应代码#
自定义 Webhook 节点在成功执行时返回的 HTTP 响应代码。从常见响应代码中选择或创建自定义代码。
响应数据#
选择要在响应正文中包含的数据:
- 所有条目:Webhook 在数组中返回最后一个节点的所有条目。
- 第一个条目 JSON:Webhook 在 JSON 对象中返回最后一个节点的第一个条目的 JSON 数据。
- 第一个条目二进制:Webhook 在二进制文件中返回最后一个节点的第一个条目的二进制数据。
- 无响应正文:Webhook 返回时不带正文。
仅适用于响应 > 当最后一个节点完成时。
节点选项#
选择添加选项以查看更多配置选项。可用选项取决于你的节点参数。有关选项可用性,请参阅表格。
- 允许的来源 (CORS):设置允许的跨域域。输入允许跨域非预检请求的 URL 的逗号分隔列表。使用
*(默认)允许所有来源。 - 二进制属性:启用此设置允许 Webhook 节点接收二进制数据,例如图像或音频文件。输入二进制属性的名称以将接收文件的数据写入其中。
- 忽略机器人:忽略来自机器人的请求,例如链接预览器和网络爬虫。
- IP 白名单:启用此 选项以限制谁(或什么)可以调用 Webhook 触发器 URL。输入允许的 IP 地址的逗号分隔列表。来自白名单之外的 IP 地址的访问会抛出 403 错误。如果留空,所有 IP 地址都可以调用 webhook 触发器 URL。
- 无响应正文:启用此选项以防止 n8n 在响应中发送正文。
- 原始正文:指定 Webhook 节点将以原始格式接收数据,例如 JSON 或 XML。
- 响应 Content-Type:选择 webhook 正文的格式。
- 响应数据:使用响应发送自定义数据。
- 响应标头:在 Webhook 响应中发送额外的标头。有关响应标头的更多信息,请参阅 MDN Web Docs | 响应标头。
- 属性名称:默认情况下,n8n 返回所有可用数据。你可以选择返回特定的 JSON 键,以便 n8n 返回该值。
| 选项 | 所需节点配置 |
|---|---|
| 允许的来源 (CORS) | 任意 |
| 二进制属性 | 以下之一:HTTP 方法 > POST HTTP 方法 > PATCH HTTP 方法 > PUT |
| 忽略机器人 | 任意 |
| IP 白名单 | 任意 |
| 属性名称 | 两者:响应 > 当最后一个节点完成时 响应数据 > 第一个条目 JSON |
| 无响应正文 | 响应 > 立即 |
| 原始正文 | 任意 |
| 响应代码 | 除响应 > 使用 'Respond to Webhook' 节点之外的任意 |
| 响应 Content-Type | 两者:响应 > 当最后一个节点完成时 响应数据 > 第一个条目 JSON |
| 响应数据 | 响应 > 立即 |
| 响应标头 | 任意 |
n8n 如何保护 HTML 响应#
从 n8n 版本 1.103.0 开始,n8n 自动将 webhook 的 HTML 响应包装在 <iframe> 标签中。这是一种保护实例用户的安全机制。
这具有以下影响:
- HTML 在沙盒 iframe 中渲染,而不是直接在父文档中渲染。
- 尝试访问顶级窗口或本地存储的 JavaScript 代码将失败。
- 身份验证标头在沙盒 iframe 中不可用(例如,基本身份验证)。你需要使用替代方法,例如在 HTML 中嵌入短期访问令牌。
- 相对 URL(例如,
<form action="/">)将不起作用。请改用绝对 URL。
模板和示例#
📚 使用 GPT 和 Docsify 自动生成 n8n 工作流文档
作者:Eduard
使用 Mintlify 文档和 Zendesk AI 代理自动化客户支持
作者:Alex Gurinovich
使用 OpenAI 和 GDrive 将云文档转换为安全基线
作者:Raphael De Carvalho Florencio
常见问题#
有关常见问题或疑问以及建议的解决方案,请参阅常见问题。