You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zapier JavaScript代码步骤发送Webhook失败求助

解决Zapier JavaScript步骤发送Webhook失败的问题

我帮你排查下代码里的几个关键问题,以及对应的修复方案:

问题分析

你的代码主要有3个问题导致Webhook发送失败:

  • 请求体格式不合法:你写的'a=1, another: textfield'既不是标准的表单编码格式,也不是JSON格式,Zapier无法正确解析。
  • 缺少Content-Type请求头:没有告诉Zapier你发送的是什么格式的数据,服务器无法正确处理请求体。
  • Callback使用不正确:Zapier的JS步骤中,callback需要按规范传递参数(成功时第一个参数为null,失败时传递错误对象)。

修复方案

根据你需要传递的可变信息类型,推荐两种常见的修复方式:

方式1:发送JSON格式数据(推荐)

JSON格式更适合传递复杂结构的可变数据,代码如下:

fetch('https://hooks.zapier.com/hooks/catch/974762/krbqch/', {
  method: 'POST',
  // 明确告诉服务器请求体是JSON格式
  headers: {
    'Content-Type': 'application/json',
  },
  // 用JSON.stringify把对象转成JSON字符串
  body: JSON.stringify({ 
    a: 1, 
    another: 'textfield' 
    // 如果是Zapier前面步骤的变量,直接替换成inputData.xxx,比如inputData.myVariable
  })
})
.then(function(res) {
  return res.json();
})
.then(function(json) {
  console.log('Webhook响应:', json);
  // 成功时调用callback,第一个参数为null,第二个是返回结果
  callback(null, json);
})
.catch(function(error) {
  console.error('发送失败:', error);
  // 失败时把错误传递给callback
  callback(error);
});

方式2:发送表单编码数据

如果你的数据是简单的键值对,也可以用表单格式:

fetch('https://hooks.zapier.com/hooks/catch/974762/krbqch/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  // 用URLSearchParams生成标准的表单编码字符串
  body: new URLSearchParams({ 
    a: 1, 
    another: 'textfield' 
  })
})
.then(function(res) {
  return res.json();
})
.then(function(json) {
  console.log('Webhook响应:', json);
  callback(null, json);
})
.catch(function(error) {
  console.error('发送失败:', error);
  callback(error);
});

额外提示

如果需要使用Zapier前面步骤的动态数据,直接通过inputData对象获取即可,比如你前面步骤有一个名为userName的字段,就可以写成another: inputData.userName。

内容的提问来源于stack exchange,提问作者Anthony Trischitti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:02:37