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

如何在Zapier的Run Javascript中输出BMI计算结果并传递至Manychat

解决Zapier中BMI计算的JS输出问题

我明白你的困扰——刚接触Zapier的JS动作确实容易踩坑,尤其是把网页端的代码直接搬过来用的时候。你的核心问题是原代码依赖浏览器DOM环境,不适合Zapier的Node.js运行环境,而且输出方式不对,导致Manychat收到异常内容。下面是修改后的完整代码,以及关键修改点的解释:

修改后的代码

// 保留你原本的BMI提示信息逻辑(无需修改)
function getBMImsg(bmi) {
  var bmiTable = [{bmi: 10, msg: "você deve esta com inanição"}, {bmi: 15, msg: "você está muito abaixo do peso"}, {bmi: 18.5, msg: "você está um pouco abaixo do peso ideal"}, {bmi: 25, msg: "você está saudável!"}, {bmi: 30, msg: "você está acima do peso ideal"}, {bmi: 40, msg: "você está obeso!"}, {bmi: 50, msg: "você está com obesidade mórbida!"}];
  var i;
  var text = bmiTable[0].msg;
  for (i = 0; i < bmiTable.length; i++) {
    if (bmi < bmiTable[i].bmi) {
      text = bmiTable[i].msg;
      break;
    }
  }
  return text;
}

// 保留BMI计算逻辑(无需修改)
function calcBMI(height, weight) {
  var bmi = 0;
  if (height > 0 && weight > 0) {
    bmi = Math.round((weight / Math.pow(height/100, 2)) * 10) / 10;
  }
  return bmi;
}

// 核心修改:适配Zapier环境的执行逻辑
// 1. 从Zapier的inputData中获取Manychat传递的身高和体重(注意转成数字)
const height = Number(inputData.height);
const weight = Number(inputData.weight);

// 2. 计算BMI和对应提示信息
const bmiValue = calcBMI(height, weight);
const bmiMessage = getBMImsg(bmiValue);

// 3. 正确返回输出对象——Zapier会把这些字段传递给下一个动作
return {
  bmi: bmiValue,
  result_message: bmiMessage
};

关键修改点解释

  • 移除DOM相关代码:原代码里的document.getElementById、addEventListener都是浏览器网页端的API,Zapier的JS运行环境是Node.js,没有这些对象,所以必须删掉。
  • 获取输入参数:Zapier会把上游(Manychat)传递的参数放在inputData对象里,你只需要通过inputData.height、inputData.weight获取,记得转成数字(因为默认是字符串)。
  • 正确返回输出:Zapier的Run Javascript动作要求你return一个对象,而不是像你之前那样把函数赋值给output。返回的对象里的字段(比如这里的bmi和result_message)会自动出现在下一个动作的可用变量列表里,你在Manychat里直接引用这些变量就行。

测试一下这个代码:用你提供的测试值(身高175,体重81),计算出来的BMI是26.4,对应的提示信息是você está acima do peso ideal,Zapier会把这两个值正确传递给Manychat。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:27:29