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

如何在Voiceflow聊天机器人中获取并存储网站URL变量?

解决Voiceflow聊天机器人无法获取网站URL作为流程变量的问题

问题原因分析

  1. 云端沙箱限制导致window未定义
    Voiceflow内置的JavaScript模块运行在云端沙箱环境,而非用户的浏览器环境,因此无法直接访问浏览器专属的window对象,直接执行websiteURL = window.location.href必然报错。

  2. 启动代码未生效的可能诱因
    通过启动脚本的variables字段传递URL的思路是正确的,但未生效通常是以下原因:

  • 流程内变量引用语法错误:必须使用双大括号{{变量名}}的格式引用外部传入的变量,直接写变量名无法识别;
  • 代码转义字符问题:原代码中的"是HTML转义后的引号,嵌入网页时需替换为正常双引号;
  • 项目ID未正确替换:启动代码中的XXXXCURRENT_IDXXXX需要替换为你的Voiceflow项目真实ID。

修正方案

1. 正确的启动脚本

替换为以下修正后的代码(确保替换真实项目ID):

<script type="text/javascript">
  (function(d, t) {
      var v = d.createElement(t), s = d.getElementsByTagName(t)[0];
      v.onload = function() {
        window.voiceflow.chat.load({
          verify: { projectID: '你的Voiceflow项目ID' },
          url: 'https://general-runtime.voiceflow.com',
          versionID: 'production',
          variables: {
            websiteURL: window.location.href
          }
        }).then(() => {
          setTimeout(function() {
                  window.voiceflow.chat.open();
                }, 200);
        });
      }
      v.src = "https://cdn.voiceflow.com/widget/bundle.mjs"; 
      v.type = "text/javascript"; 
      s.parentNode.insertBefore(v, s);
  })(document, 'script');
</script>

2. 流程内正确引用变量

在Voiceflow流程的任意节点(如“回复”“设置变量”节点)中,使用{{websiteURL}}来调用传入的URL变量。例如在回复节点中设置内容为当前页面URL:{{websiteURL}},即可向用户展示获取到的URL。

3. 验证方法

添加一个“调试”节点,将{{websiteURL}}作为输出内容,发布流程后在网页端测试聊天机器人,确认是否能正确显示当前页面的URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:43