Twilio Studio Flow因incomingRequest事件卡在Split Based On组件无法跳转
Twilio Studio外呼流程Split组件卡滞、触发incomingRequest事件解决方案
Split Based On组件卡停且出现未见过的incomingRequest事件,核心原因是组件配置的判断字段引用了不存在的上下文变量。这个事件本身不是系统报错,是Split组件内置的等待外部传参的触发点,一旦组件拿不到判断逻辑需要的参数值,就会自动进入挂起状态,不会走任何预先连接好的分支,和分支连线是否正确没有关系。外呼场景下这个问题90%以上是错用了呼入场景的专属变量导致的,按以下步骤排查修复即可:
- 打开出问题的Split Based On组件配置面板,逐个核对所有分支条件引用的变量路径:外呼执行流程里不存在呼入触发的request上下文,所有引用
{{trigger.event.request.xxx}}路径下的字段都会拿不到有效值,直接触发组件挂起等待incomingRequest事件。 - 把判断条件里的无效变量替换成对应场景的正确取值路径:如果是判断用户按键输入,替换为对应Gather/Record按键组件的Digits输出字段;如果是判断前置HTTP请求的返回结果,替换为对应HTTP组件的parsed输出字段;如果是判断主被叫号码,外呼场景下要引用
{{trigger.call.From}}/{{trigger.call.To}}路径,不要取request域下的号码字段。 - 所有字符串、数值类判断条件记得加空值兜底,用Twilio自带的模板过滤器给可能为空的字段设默认值,比如判断用户按键的逻辑写成
{{widgets.gather_user_key.Digits | default: "0"}},避免字段为空时组件无法完成判断,直接进入挂起等待状态。 - 修复后可以用控制台的测试触发功能跑一遍全流程,如果组件不再停在incomingRequest事件状态、能正常按条件走分支,就说明配置已经修复完成。
临时救急方案:如果已经有正在运行的流程卡在这个节点,不用重新发起外呼,找到对应执行实例手动触发一次incomingRequest事件,传入判断逻辑需要的参数值,就能让流程继续往下执行。
内容的提问来源于stack exchange,提问作者Harry Craven
相关产品推荐
相关产品推荐

