跳转至

Webhook 节点#

使用 Webhook 节点创建 webhooks,可以在事件发生时从应用程序和服务接收数据。它是一个触发器节点,这意味着它可以启动 n8n 工作流。这允许服务连接到 n8n 并运行工作流。

当您想要接收数据并基于数据运行工作流时,可以使用 Webhook 节点作为工作流的触发器。Webhook 节点还支持返回在工作流结束时生成的数据。这使它适用于构建处理数据并返回结果的工作流,就像 API 端点一样。

webhook 允许您从没有专用应用触发器节点的服务触发工作流。

工作流开发过程#

n8n 为测试和生产提供了不同的 Webhook URL。测试 URL 包含一个监听测试事件的选项。有关构建、测试和将您的 Webhook 节点转移到生产的更多信息,请参阅工作流开发

节点参数#

使用这些参数来配置您的节点。

Webhook URL#

Webhook 节点有两个 Webhook 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 的任何服务进行身份验证。从这些身份验证方法中选择:

  • 基本身份验证
  • 标头身份验证
  • JWT 身份验证

有关设置每种凭证类型的更多信息,请参阅 Webhook 凭证

响应#

  • 立即:Webhook 节点返回响应代码和消息 Workflow got started
  • 当最后一个节点完成时:Webhook 节点返回响应代码和工作流中最后一个执行节点的数据输出。
  • 使用 'Respond to Webhook' 节点:Webhook 节点按照 Respond to Webhook 节点中定义的方式响应。

响应代码#

自定义 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)接收数据。
  • 响应内容类型:选择 webhook 主体的格式。
  • 响应数据:在响应中发送自定义数据。
  • 响应标头:在 Webhook 响应中发送额外标头。参考MDN Web Docs | 响应标头了解更多关于响应标头的信息。
  • 属性名称:默认情况下,n8n 返回所有可用数据。您可以选择返回特定的 JSON 键,以便 n8n 返回该值。
选项 必需的节点配置
允许的来源 (CORS) 任何
二进制属性 以下任一:
HTTP 方法 > POST
HTTP 方法 > PATCH
HTTP 方法 > PUT
忽略机器人 任何
IP 白名单 任何
属性名称 两者都需要:
响应 > 当最后一个节点完成时
响应数据 > 第一个条目 JSON
无响应主体 响应 > 立即
原始主体 任何
响应代码 除了响应 > 使用 'Respond to Webhook' 节点外的任何
响应内容类型 两者都需要:
响应 > 当最后一个节点完成时
响应数据 > 第一个条目 JSON
响应数据 响应 > 立即
响应标头 任何

n8n 如何保护 HTML 响应#

n8n 版本 1.103.0 开始,n8n 会自动将 webhook 的 HTML 响应包装在 <iframe> 标签中。这是保护实例用户的安全机制。

这具有以下影响:

  • HTML 在沙盒 iframe 中渲染,而不是直接在父文档中渲染。
  • 尝试访问顶级窗口或本地存储的 JavaScript 代码将失败。
  • 认证标头在沙盒 iframe 中不可用(例如基本认证)。您需要使用替代方法,如在 HTML 中嵌入短期访问令牌。
  • 相对 URL(例如 <form action="/">)不起作用。请改用绝对 URL。

模板和示例#

Creating an API endpoint

by Jonathan

View template details
Create a Branded AI-Powered Website Chatbot

by Wayne Simpson

View template details
⚡AI-Powered YouTube Video Summarization & Analysis

by Joseph LePage

View template details
Browse Webhook 触发器 integration templates, or search all templates

常见问题#

对于常见问题或问题和建议的解决方案,请参阅常见问题

此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持