N8N中文教程
集成节点/Built in_nodes/Core_nodes/Webhook

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 节点文档集成模板,或搜索所有模板

常见问题#

关于常见问题及其建议解决方案,请参阅常见问题。