如何使用 Automatisch 内置的 Webhooks 触发器接收外部请求并执行 Flow?
2026/9/15 16:07:51 网站建设 项目流程

如何使用 Automatisch 内置的 Webhooks 触发器接收外部请求并执行 Flow?

【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch

如果你的外部系统(表单提交、其他服务的回调等)需要在事件发生时通知 Automatisch 去跑一段自动化,可以不用任何第三方凭证:Automatisch 内置了 Webhooks 应用,它的Catch raw webhook触发器会在收到 HTTP 请求时启动 Flow。本文以"外部请求进来 → Flow 执行 → 返回响应"为一条完整路径,覆盖创建 Flow、选择同步/异步模式、获取并测试 webhook URL、发布与验证的全过程。

前提与工作方式

  • Webhooks 是随 Automatisch 内置的应用,不需要与任何外部服务认证即可运行,因此建 Flow 时无需先创建 Connection。
  • 触发器Catch raw webhook支持GET、POST、PUT、PATCH四种请求方法,webhook URL 在编辑器的测试子步骤(test substep)中给出(见 触发器文档 与 连接文档)。
  • 该触发器有一个必填参数Wait until flow is doneYes/No,定义在 catch-raw-webhook/index.js),它决定请求的返回行为:
    • Yes(同步):Automatisch 会等 Flow 执行完,用 Flow 中配置的响应状态码、请求头和 Body 直接答复外部请求;
    • No(异步):Flow 在后台执行,请求立即以204结束、不带响应体(对应 异步处理器 固定返回204的逻辑)。
  • 触发器把请求的headersbodyquery作为原始数据(raw)推入 Flow,供后续步骤引用。

第一步:创建 Flow 并配置 Webhook 触发器

  1. 进入Flows页面,点击Create flow,得到一个空的 trigger 和 action 步骤(流程创建指南)。
  2. 在触发步骤(第 1 步)的Choose an app下拉中选择Webhook
  3. 事件选择Catch raw webhook,点击Continue
  4. Wait until flow is done下拉中选择YesNo,再点击Continue。选择依据只有一条:外部请求方是否需要拿到 Flow 执行结果的响应——需要选Yes,只需要"请求到了就行"选No
  5. 完成后进入测试子步骤,页面上会出现webhookUrl输入框,里面就是当前 Flow 的 webhook URL。异步模式下该 URL 不包含sync字样,同步模式则包含(这一点在 e2e 测试夹具 中作为断言被明确区分)。

第二步:用真实请求测试触发器

在测试子步骤中,直接向拿到的 webhook URL 发一个请求即可,方法限 GET/POST/PUT/PATCH。例如:

curl -i -X POST "<你的webhookUrl>" \ -H "Content-Type: application/json" \ -d '{"event": "order.created", "orderId": 1001}'

<你的webhookUrl>替换成测试子步骤中实际显示的 URL。在 Flow 尚未发布(test run)状态下,测试请求会以204返回(见 e2e 测试 中对axios.get(webhookUrl)的断言)。

随后点击Test & Continue:测试输出区会显示本次请求进入 Flow 的数据,确认请求已被 Flow 捕获后点Continue进入 action 步骤。

第三步(可选):添加 Respond with 动作定义响应

只有在Wait until flow is done = Yes时,定义响应才有意义。在第 2 步选择Webhook应用、事件选择Respond with(动作定义),配置三个参数:

  • Status code:字符串,必填,默认值200
  • Headers:可选,按需添加Key/Value请求头,支持变量;
  • Body:必填,响应体内容,支持引用前面步骤的变量。

e2e 测试中的示例配置是statusCode = 200body = response from webhook,可照此填写自己的值。配置完成后点击Test & Continue验证,再点Continue

第四步:发布 Flow

点击Publish发布。发布后 Flow 会在触发事件发生时自动执行;已发布的 Flow 不能直接修改,需要改动时先Unpublish再编辑(见 流程创建指南 的 Publish 章节)。

验证:同步与异步的返回差异

发布后对 webhook URL 再发一次请求,两种模式的返回是可直接核对的判断标准(与 webhook.spec.js 中的断言一致):

模式请求返回
Wait until flow is done = YesGET <webhookUrl>状态码200,响应体为 Respond with 中配置的 Body(测试示例中为response from webhook
Wait until flow is done = NoGET <webhookUrl>状态码204,响应体为空

同步模式返回的内容由 同步处理器 写入:状态码、请求头和 Body 全部取自 Flow 执行结果;如果 Flow 中没有有效的 Respond with 动作,就按异步行为处理(固定204、空响应体,逻辑见 异步处理器)。

限制与边界

  • 只支持 GET、POST、PUT、PATCH;webhook URL 必须在编辑器测试子步骤中获取,不要手工拼接。
  • 触发器拿到的是原始请求数据(raw.headers/raw.body/raw.query),它本身不做业务解析;需要过滤或转换时,在后续 action 步骤中处理。
  • Flow 发布后不可编辑,改配置前必须先 Unpublish。
  • 调试请求详情时,后端会以 debug 级别记录Handling incoming webhook request at <originalUrl>及请求载荷(见两个 webhook 处理器中的logger.debug调用),可用于确认请求是否到达 Automatisch。

完成发布并通过上面的状态码核对后,这个 Flow 就可以长期作为外部系统的回调入口使用;后续要调整响应结构,只需 Unpublish 后修改 Respond with 参数再重新发布。

【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询