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

如何将自定义事件设置为Dialogflow CX云函数webhook的返回响应

Dialogflow CX Webhook触发自定义事件解决方案

你的原有代码不生效的核心原因是返回的响应结构不符合Dialogflow CX的Webhook规范,自定义事件不能直接放在响应顶层的event字段中,必须按照平台要求的结构返回。

修改后的代码示例

exports.cxWhatsappAgent = (req, res) => {
  return axios
    .get(
      `$apiURL`,
      { data: {} }
    )
    .then(
      (result) => {
        if (result.data.length > 0) {
          // 符合Dialogflow CX规范的响应结构
          res.status(200).send({
            fulfillment_response: {
              // 可选:如果需要同时返回文本回复可以加上messages配置
              messages: [
                {
                  text: {
                    text: ["Hi Welcome"]
                  }
                }
              ],
              // 触发自定义事件的配置
              trigger_event: "REGISTERED-USER"
            }
          });
        }
      },
      (error) => {
        console.log(error);
        // 错误场景也建议返回符合规范的响应,避免会话异常
        res.status(200).send({
          fulfillment_response: {
            messages: [
              {
                text: {
                  text: ["服务暂时不可用,请稍后再试"]
                }
              }
            ]
          }
        });
      }
    )
    .catch((error) => {
      console.log(error);
      res.status(200).send({
        fulfillment_response: {
          messages: [
            {
              text: {
                text: ["服务暂时不可用,请稍后再试"]
              }
            }
          ]
        }
      });
    });
};

注意事项

  • 请提前在Dialogflow CX对应的流中创建好名为REGISTERED-USER的自定义事件,配置好事件触发后的路由、回复等逻辑,否则事件触发后不会有预期效果
  • 响应必须返回200状态码,不要添加平台不识别的顶层字段,避免响应解析失败
  • 如果不需要同时返回文本回复,可以删除messages字段,只保留trigger_event配置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:51:03