Twilio Studio变量清除问题:IVR开发无法重置widget.Inicio.Digits
Twilio IVR 变量重置问题解决思路
核心问题分析
Twilio Studio 中widgets命名空间下的变量(比如widgets.Inicio.Digits)属于组件内置状态变量,直接通过 Set Variables 组件修改这类变量往往不生效——它们和组件的初始化状态绑定,无法被外部直接覆盖。你的流程依赖这个变量传递输入值,导致重新输入时旧值无法被清除。
具体解决步骤
改用流程级自定义变量存储数据
放弃直接依赖widgets.Inicio.Digits,创建流程级变量(比如flow.data.document_number)来存储用户输入的文档编号:- 在初始收集组件[Inicio]之后,添加 Set Variables 组件,将
widgets.Inicio.Digits赋值给flow.data.document_number - 运行函数组件[validaCpfCnpj]的参数改为
{{flow.data.document_number}} - 语音播报组件[voceDigitou]使用
{{flow.data.document_number}}作为播报内容
- 在初始收集组件[Inicio]之后,添加 Set Variables 组件,将
重置变量的正确方式
当用户选择选项2(重新输入)时,在 Set Variables 组件中设置flow.data.document_number为null(注意不要加引号,直接输入null),而非尝试修改widgets.Inicio.Digits调整流程跳转逻辑
- 用户完成[Gather_1]的重新输入后,添加 Set Variables 组件,将
widgets.Gather_1.Digits赋值给flow.data.document_number - 直接跳转到[voceDigitou]组件播报新输入的内容,无需再经过初始的[Inicio]和[capturaCpfCnpj]分支,避免旧组件变量的干扰
- 用户完成[Gather_1]的重新输入后,添加 Set Variables 组件,将
验证 Set Variables 配置
确保 Set Variables 组件的目标变量路径是flow.data.document_number,flow.data是完全可控的流程自定义变量空间,不会受组件状态限制
内容的提问来源于stack exchange,提问作者Leonardo Rubio
相关产品推荐
相关产品推荐

