Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

Menu

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Flex Flows

A Flex Flow is the logic linking a Messaging Channel, like SMS, to Flex.

The Flex Flow also describes the way Flex should handle inbound messages on this channel.

Supported Integration Types

  • Studio (default)
    • Incoming messages are routed to a specific configured Twilio Studio flow. Studio allows you to build chatbots, IVRs and similar functionality. Studio can connect to Twilio Functions or make HTTP Requests to 3rd party services for additional functionality. Studio flows are generally invoked before the task is routed to an Agent. Tasks are passed to Agents via Studio’s Send to Flex widget (this creates a task and removes Studio/bot from this engagement)

  • TaskRouter
    • Incoming messages immediately generate a Task and get routed to an Agent. No additional orchestration or chat bot flows are needed.

  • External Webhook
    • Incoming messages are routed to a Webhook of your choosing. Twilio will send incoming messages to you, and you can use the information and metadata to create a custom integration with Flex. For example, you could use the incoming message payload to power an in-house bot flow.

If you are planning to use a different integration type for your inbound and your outbound messages (e.g., inbound messages will be routed through Studio but Outbound messages create a task that's auto-assigned to the agent) then create two Flex Flow Message Handlers. The Outbound handler can be set to Enabled=false. Outbound channels will always be created with the Handler specified by the developer, however inbound flows must adhere to strict non-conflict checks across contact identity and integration type.

By default, Flex has Flex Flows for SMS and Web chat messaging already.

If the default Flex Flows work for you, you don’t need to create a new message handler.

FlexFlow properties

Names in PHP format
accountSid
sid<AC> Not PII

The ID of the account that owns this Workflow

dateCreated
date_time<iso8601> Not PII

The time the FlexFlow was created, given as GMT in ISO 8601 format.

dateUpdated
date_time<iso8601> Not PII

The time the FlexFlow was last updated, given as GMT in ISO 8601 format.

sid
sid<FO> Not PII

The unique ID of the FlexFlow

friendlyName

Human readable description of this FlexFlow

chatServiceSid
sid<IS> Not PII

The unique SID identifier of the chat service

channelType
enum:channel_type Not PII

Channel type (web | facebook | sms)

contactIdentity
string Not PII

Channel contact Identity (number / contact)

enabled
boolean Not PII

Boolean flag for enabling or disabling the FlexFlow

integrationType
enum:integration_type Not PII

Integration type (studio | external | task)

integration
object Not PII

Integration block defining specific parameters for this type of integration

longLived
boolean Not PII

Default Flag defining whether the new channels created are long lived or not

url
url Not PII

Create a Flex Flow with Studio

post
https://flex-api.twilio.com/v1/FlexFlows
Parameters
Names in None format
friendly_name
Required
post string PII MTL: 30 DAYS

Human readable description of this FlexFlow

chat_service_sid
Required
post sid<IS> Not PII

The unique SID identifier of the chat service

channel_type
Required
post enum:channel_type Not PII

Channel type (web | facebook | sms)

contact_identity
Optional
post string Not PII

Channel contact Identity (number / contact)

enabled
Optional
post boolean Not PII

Boolean flag for enabling or disabling the FlexFlow

integration_type
Optional
post enum:integration_type Not PII

Integration type (studio | external | task)

integration.flow_sid
Optional
post sid<FW> Not PII

The unique SID identifier of the Flow for Studio integration type

integration.url
Optional
post url Not PII

External Webhook Url for External integration type

integration.workspace_sid
Optional
post sid<WS> Not PII

Workspace Sid for a new task for Task integration type

integration.workflow_sid
Optional
post sid<WW> Not PII

Workflow Sid for a new task for Task integration type

integration.channel
Optional
post string Not PII

Task Channel for a new task for Task integration type (default is 'default')

integration.timeout
Optional
post integer Not PII

Task timeout in seconds for a new task for Task integration type (default 86400)

integration.priority
Optional
post integer Not PII

Task priority for a new task for Task integration type (default 0)

integration.creation_on_message
Optional
post boolean Not PII

Flag for task creation, either creating task with the channel, or if true create task whwn first message arrives (for Task integration type)

long_lived
Optional
post boolean Not PII

Default Flag defining whether the new channels created are long lived or not

Example 1
        
        
        
        
        Example 2
              
              
              
              

              When you receive an inbound message, the Flex Flow will make a POST request containing the message body and some metadata to your chosen webhook.

                    
                    
                    
                    

                    Fetch a FlexFlow resource

                    get
                    https://flex-api.twilio.com/v1/FlexFlows/{Sid}
                    Parameters
                    Names in None format
                    sid
                    Required
                    get sid<FO> Not PII

                    The unique ID of the FlexFlow

                    Example 1
                          
                          
                          
                          

                          Read multiple FlexFlow resources

                          get
                          https://flex-api.twilio.com/v1/FlexFlows
                          Parameters
                          Names in None format
                          friendly_name
                          Optional
                          get string PII MTL: 30 DAYS

                          Human readable description of this FlexFlow

                          Example 1
                                
                                
                                
                                

                                Delete a FlexFlow resource

                                delete
                                https://flex-api.twilio.com/v1/FlexFlows/{Sid}
                                Parameters
                                Names in None format
                                sid
                                Required
                                delete sid<FO> Not PII

                                The unique ID of the FlexFlow

                                Example 1
                                      
                                      
                                      
                                      
                                      Rate this page:

                                      Need some help?

                                      We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.