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

如何在Flask应用中分离Twilio Studio流程与API逻辑?

分离Twilio Studio调查流程与Flask WhatsApp机器人逻辑的方案

方案一:新增独立发送者(最直接)

  • 进入Twilio控制台的WhatsApp Senders页面,为调查流程单独申请一个WhatsApp发送号码/发送者。
  • 将这个新发送者的Webhook设置指向你的Studio流程,原发送者的Webhook继续保留为Flask应用地址。
  • 触发调查时,用这个新发送者的号码调用Twilio API发送消息,用户的回复会自动进入Studio流程,和原机器人的发送通道完全隔离,互不干扰。

方案二:在Flask Webhook里做分流

如果不想新增发送者,就在Flask的Webhook处理函数中添加判断逻辑,将调查相关对话转交给Studio:

  1. 先在Studio流程的触发设置里,复制该流程的Webhook URL。
  2. 修改Flask的Webhook代码,加入分流判断:
    • 可以通过触发调查时给消息附加的Attributes字段标记(调用Twilio API发调查消息时,添加Attributes: {"conversation_type": "survey"}),或者直接识别用户回复里的调查相关关键词。
    • 一旦判定是调查对话,就把Twilio的请求原封不动转发到Studio的Webhook,由Studio处理后续逻辑;否则走原机器人的处理流程。
    • 示例代码片段:
      from flask import request, Response
      import json
      import requests
      
      @app.route("/twilio-webhook", methods=["POST"])
      def handle_incoming_message():
          # 提取Twilio传来的参数
          msg_body = request.form.get("Body", "")
          msg_attributes = request.form.get("Attributes", "{}")
          attr_data = json.loads(msg_attributes)
      
          # 判断是否为调查对话
          if attr_data.get("conversation_type") == "survey" or "survey" in msg_body.lower():
              # 转发请求到Studio流程的Webhook
              studio_url = "你的Studio流程Webhook地址"
              resp = requests.post(studio_url, data=request.form)
              return Response(resp.text, content_type="application/xml")
          else:
              # 原Flask机器人的处理逻辑
              bot_response = generate_your_bot_reply(msg_body)
              return f"<Response><Message>{bot_response}</Message></Response>"
      

方案三:用Twilio Conversations API管理会话

  • 创建两个独立的会话:一个用于日常机器人交互,一个专门承载调查流程。
  • 触发调查时,将用户加入调查会话,并把该会话的Webhook设置为Studio流程;日常会话继续关联Flask应用。
  • 这种方式适合需要多会话并行的复杂场景,能更精准地管控不同类型的对话流。

内容的提问来源于stack exchange,提问作者Martin Smuts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:40:09