Say/Play Widget

Studio uses Widgets to represent various parts of Twilio's functionality that can then be stitched together in your Studio Flow to build out robust applications that require no coding on your part.

New to Twilio Studio? Check out our Getting Started guide!

The Say/Play Widget allows you to play a recorded message, dictate text to a user, or play DTMF tones on a call. Use this Widget to say or play information to the user before any subsequent action. If you want to request a user’s input after a message, use the Gather Input on Call Widget instead.

Say / Play Widget

Required Configuration for Say/Play

The Say/Play Widget requires the following information to function properly. Say or Play Message or Digits is used to determine what action will be performed when the widget executes. Playing a message will require a URL that references the audio file. Saying a message can be configured further with the desired language and actual message contents. Playing digits will require the digits to be played as DTMF tones.

Name Description Default
Say or Play Message or Digits A choice indicating whether to play a pre-recorded message, say text, or play a series of digits as DTMF tones. Say a Message
Loops The number of times to repeat the message. The minimum value is 1, and the maximum is 99. 1

Say a Message Configuration

Select Say a Message to say text to the caller using text-to-speech. After selecting Say a Message, you will be able to configure the following values:

Name Description Example
Text to Say The text to say to the caller. This can include Liquid template variables and SSML tags. Hello {{flow.variables.first_name}}
Language The language the message is in. Select the language from the drop down menu, or use Liquid template variables. {{widgets.say_play_1.language}}
Voice The voice to use when speaking the message. Select the voice from the drop down menu, or use Liquid template variables. {{widgets.say_play_1.voice}}

Alternatively, instead of specifying voice and language, you can select “Default” from the dropdown to use the default TTS configuration. See Text To Speech Settings to learn how to test voices, update your default configuration, and define a Language Mapping.

SSML Support

SSML enables customization in the audio generated using Text To Speech by providing details on pauses, and audio formatting for acronyms, dates, times, abbreviations, etc. To enable SSML in your Studio Flow, you must use a Standard or Premium voice with support for SSML. See complete list of languages and available voices.

Once you select a compatible voice, add the SSML tags you wish to use directly in the Text to Say field:

<emphasis level="strong">Thanks for calling!</emphasis>

SSML also works together with Liquid, so you can reference Liquid variables in and around your SSML tags:

<emphasis level="{{flow.variables.level}}">{{flow.variables.text}}</emphasis>

See Text-to-Speech for more details of using SSML.

Play a Message Configuration

Use this option to play a recorded audio message to the caller. You can see the list of supported audio file formats in the <Play> TwiML documentation. Once you select Play a Message, you will be able to configure the following value:

Name Description Example
URL of Audio File The URL of media to play

Twilio offers a static hosting service, Twilio Assets, which you can use to upload and store audio files.

Play Digits Configuration

Selecting Digits allows you to play DTMF tones during a call. For example, if you need to test an IVR system, you can use this feature to simulate digits being pressed to navigate through the menu options.

Include w to introduce a 0.5 second pause between DTMF tones. For example, 1w2 will tell Twilio to pause 0.5 seconds after the first DTMF tone before playing the next DTMF tone. To include a one-second pause, add ww.

Once you select Digits, you will be able to configure the following value:

Name Description Example
Digits The sequence of digits to play as DTMF tones. Digits can be 0-9, #, and *. Use w in between digits to add a .5 second pause between tones. Do not include any spaces between digits. 12ww#

Say/Play Transitions

These events trigger transitions from this Widget to another Widget in your Flow. For more information on working with Studio Transitions, see the Getting Started Guide.

Name Description
Audio Complete The message finished playing

Say/Play Variables

When the Say/Play Widget executes, it will have stored the following variables for use throughout your Studio Flow. For more information on working with variables in Studio, see the Getting Started Guide.

Find definitions and examples for these variables at the Twilio Voice: <Say> documentation.

Name Liquid Template Language
Language {{widgets.MY_WIDGET_NAME.language}}
Voice {{widgets.MY_WIDGET_NAME.voice}}

Example: Business Hours

In the following example a user will be told that the business is open if within business hours, or if closed the information about hours of operation. You can find more information on date variables in the Liquid Template Language tutorial.

Twilio Studio Play/Say Widget Example Updated

If you would like to gather input from the user after the message is sent, you can use the Gather Input on Call Widget.

Learn More

Now that you know the basics of the Say/Play Widget, you may want to dig into tutorials using it:

We can't wait to see what you build!

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 by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!