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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:01:06