Webhook 节点#
Webhook 节点用于创建 Webhook,当事件发生时可以从应用程序和服务接收数据。它是一个触发器节点,这意味着它可以启动 n8n 工作流。这允许服务连接到 n8n 并运行工作流。
当您希望接收数据并根据数据运行工作流时,可以将 Webhook 节点用作工作流的触发器。Webhook 节点还支持返回工作流结束时生成的数据。这使得它在构建用于处理数据并返回结果的工作流时非常有用,就像 API 端点一样。
通过 Webhook,您可以从没有专用应用程序触发器节点的服务中触发工作流。
工作流开发流程#
n8n 为测试和生产环境提供不同的 Webhook URL。测试 URL 包含 监听测试事件 的选项。有关构建、测试 Webhook 节点并将其迁移到生产环境的更多信息,请参阅 工作流开发。
节点参数#
使用以下参数配置您的节点。
Webhook URL#
Webhook 节点有两个 Webhook URL:测试 URL 和生产 URL。n8n 在节点面板顶部显示这些 URL。
选择 测试 URL 或 生产 URL 可切换 n8n 显示的 URL。
Webhook 节点参数选项卡中的示例 Webhook URL 显示测试 URL 和生产 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 认证(JWT auth)
- 无需认证(None)
有关设置各凭据类型的更多信息,请参阅 Webhook 凭据文档。
响应方式#
- 立即响应:Webhook 节点将返回响应代码和消息 工作流已启动。
- 末节点完成后响应:Webhook 节点将返回响应代码和工作流中最后执行节点的数据输出。
- 使用 '响应 Webhook' 节点:Webhook 节点将按照响应 Webhook 节点中的定义进行响应。
- 流式响应:在工作流处理过程中实时向用户返回数据流。要求工作流中包含支持流式处理的节点(例如 AI 代理节点)。
响应代码#
自定义 Webhook 节点成功执行后返回的 HTTP 响应代码。可从常见响应代码中选择或创建自定义代码。
响应数据#
选择响应体中包含的数据类型:
- 所有条目:Webhook 以数组形式返回最后一个节点的全部条目。
- 首个条目 JSON:Webhook 以 JSON 对象形式返回最后一个节点的首个条目数据。
- 首个条目二进制:Webhook 以二进制文件形式返回最后一个节点的首个条目数据。
- 无响应体:Webhook 返回时不携带响应体。
仅适用于响应时机 > 当最后节点完成时。
节点选项#
选择添加选项可查看更多配置选项。可用选项取决于节点参数,具体可用性请参考选项表。
- 允许来源(CORS):设置允许的跨源域名。输入逗号分隔的 URL 列表,允许这些来源发起跨源非预检请求。使用
*(默认值)允许所有来源。 - 二进制属性:启用此设置后,Webhook 节点可接收二进制数据(如图片或音频文件)。输入二进制属性名称以写入接收文件的数据。
- 忽略机器人:忽略来自链接预览器和网络爬虫等机器人的请求。
- IP 白名单:启用后可限制能够触发 Webhook 的 IP 地址。输入逗号分隔的允许 IP 地址列表。非白名单 IP 访问将返回 403 错误。留空时允许所有 IP 触发 Webhook。
- 无响应体:启用后可阻止 n8n 在响应中返回数据体。
- 原始数据体:指定 Webhook 节点以原始格式(如 JSON 或 XML)接收数据。
- 响应内容类型:选择 Webhook 数据体的格式。
- 响应数据:在响应中发送自定义数据。
- 响应头:在 Webhook 响应中发送额外头部信息。参阅 MDN Web 文档 | 响应头了解详情。
- 属性名称:默认情况下 n8n 返回所有可用数据。可选择返回特定 JSON 键,使 n8n 仅返回该键对应的值。
| 选项 | 必需节点配置 |
|---|---|
| 允许来源 (CORS) | 任意 |
| 二进制属性 | 满足以下任一条件: |
HTTP 方法 > POST HTTP 方法 > PATCH HTTP 方法 > PUT 忽略机器人 | 任意 IP 白名单 | 任意 属性名称 | 需同时满足: 响应 > 当最后节点完成时 响应数据 > 首条条目 JSON 无响应体 | 响应 > 立即响应 原始请求体 | 任意 响应代码 | 除以下情况外任意: 响应 > 使用"响应 Webhook"节点 响应内容类型 | 需同时满足: 响应 > 当最后节点完成时 响应数据 > 首条条目 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 查看模板详情
浏览 Webhook 节点文档集成模板,或搜索所有模板
常见问题#
关于常见问题及其建议解决方案,请参阅常见问题。