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 Flow Resource

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 SID of the Account that created the FlexFlow resource and owns this Workflow.

dateCreated
date_time<iso8601> Not PII

The date and time in GMT when the resource was created specified in ISO 8601 format.

dateUpdated
date_time<iso8601> Not PII

The date and time in GMT when the resource was last updated specified in ISO 8601 format.

sid
sid<FO> Not PII

The unique string that we created to identify the FlexFlow resource.

friendlyName

The string that you assigned to describe the resource.

chatServiceSid
sid<IS> Not PII

The SID of the chat service.

channelType
enum:channel_type Not PII

The channel type. Can be: web, facebook, sms, whatsapp, line or custom.

contactIdentity
string Not PII

The channel contact's Identity.

enabled
boolean Not PII

Whether the FlexFlow is enabled.

integrationType
enum:integration_type Not PII

The integration type. Can be: studio, external, or task.

integration
object Not PII

An object that contains specific parameters for the integration.

longLived
boolean Not PII

Whether new channels are long-lived.

janitorEnabled
boolean Not PII

Boolean flag for enabling or disabling the Janitor

url
url Not PII

The absolute URL of the FlexFlow resource.

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

A descriptive string that you create to describe the FlexFlow resource.

chat_service_sid
Required
post sid<IS> Not PII

The SID of the chat service.

channel_type
Required
post enum:channel_type Not PII

The channel type. Can be: web, facebook, sms, whatsapp, line or custom.

contact_identity
Optional
post string Not PII

The channel contact's Identity.

enabled
Optional
post boolean Not PII

Whether the new FlexFlow is enabled.

integration_type
Optional
post enum:integration_type Not PII

The integration type. Can be: studio, external, or task.

integration.flow_sid
Optional
post sid<FW> Not PII

The SID of the Flow when integration_type is studio.

integration.url
Optional
post url Not PII

The External Webhook URL when integration_type is external.

integration.workspace_sid
Optional
post sid<WS> Not PII

The Workspace SID for a new task for Task integration_type.

integration.workflow_sid
Optional
post sid<WW> Not PII

The Workflow SID for a new task when integration_type is task.

integration.channel
Optional
post string Not PII

The task channel for a new task when integration_type is task. The default is default.

integration.timeout
Optional
post integer Not PII

The task timeout in seconds for a new task when integration_type is task. The default is 86,400 seconds (24 hours).

integration.priority
Optional
post integer Not PII

The task priority of a new task when integration_type is task. The default priority is 0.

integration.creation_on_message
Optional
post boolean Not PII

Whether to create a task when the first message arrives when integration_type is task. If false, the task is created with the channel.

long_lived
Optional
post boolean Not PII

Whether new channels are long-lived.

janitor_enabled
Optional
post boolean Not PII

Boolean flag for enabling or disabling the Janitor

integration.retry_count
Optional
post integer Not PII

The number of times to retry the webhook if the first attempt fails. Can be an integer between 0 and 3, inclusive, and the default is 0.

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 SID of the FlexFlow resource to fetch.

                    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

                          The friendly_name of the FlexFlow resources to read.

                          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 SID of the FlexFlow resource to delete.

                                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.