Twilio Studio短信发送乱序,求实现送达确认后再发下一条的方案
解决Twilio Studio短信乱序问题:确认送达后再发下一条的子流方案
现成的状态查询子流JSON
这个子流会自动查询上一条发送短信的状态,直到状态变为delivered后,才会触发后续流程。你可以直接导入到Twilio Studio中:
{ "description": "Wait for SMS to be delivered before proceeding", "states": [ { "name": "Check_SMS_Status", "type": "run-function", "parameters": { "function": "your-function-sid-here", "parameters": { "sms_sid": "{{widgets.Send_Message.sid}}" } }, "transitions": [ { "event": "success", "next": "Check_Status_Condition", "metadata": { "offset": { "x": 200, "y": 0 } } }, { "event": "fail", "next": "Wait_Before_Retry", "metadata": { "offset": { "x": 0, "y": 200 } } } ], "metadata": { "offset": { "x": 0, "y": 0 } } }, { "name": "Check_Status_Condition", "type": "split-based-on", "parameters": { "input": "{{widgets.Check_SMS_Status.parsed.status}}" }, "transitions": [ { "next": "Proceed_to_Next_Step", "condition": "{{#equals input 'delivered'}}" }, { "next": "Wait_Before_Retry", "condition": "{{#not (equals input 'delivered')}}" } ], "metadata": { "offset": { "x": 400, "y": 0 } } }, { "name": "Wait_Before_Retry", "type": "wait", "parameters": { "wait_for": "3", "wait_unit": "seconds" }, "transitions": [ { "event": "timeout", "next": "Check_SMS_Status", "metadata": { "offset": { "x": 0, "y": 400 } } } ], "metadata": { "offset": { "x": 200, "y": 200 } } }, { "name": "Proceed_to_Next_Step", "type": "send-to-flow", "parameters": { "flow_sid": "{{flow.sid}}", "transition": "next_clue" }, "transitions": [], "metadata": { "offset": { "x": 600, "y": 0 } } } ], "initial_state": "Check_SMS_Status", "flags": { "allow_concurrent_calls": true } }
注意:你需要先在Twilio Functions中创建一个简单的函数来查询SMS状态,函数代码如下:
exports.handler = async function(context, event, callback) { const client = context.getTwilioClient(); try { const message = await client.messages(event.sms_sid).fetch(); callback(null, { status: message.status }); } catch (error) { callback(error); } };
创建好函数后,把函数的SID替换到子流JSON中的your-function-sid-here位置。
子流插入指导
- 打开你的Twilio Studio主流程,找到发送线索的
Send Message组件 - 点击该组件的输出连线,选择
Add a new Widget,然后选择Redirect to Flow - 在弹出的配置窗口中,点击
Create new Flow,选择Import from JSON,粘贴上面的子流JSON并保存 - 回到主流程,将
Send Message组件的Success事件连线到这个新创建的子流 - 在子流的
Proceed_to_Next_Step组件中,配置transition为你主流程中下一个线索发送步骤的入口(比如给下一个Send Message组件设置名为next_clue的过渡)
付费编程帮助
如果你不会创建Twilio Function、配置子流过渡,或者需要针对你的寻宝游戏流程做定制调试,可以联系我提供一对一的付费支持,帮你快速解决短信乱序问题。
内容的提问来源于stack exchange,提问作者mckinney3
相关产品推荐
相关产品推荐

