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 Gather Input on Call Widget allows you to gather a user's keypress or voice input while they are on a call. This Widget will collect DTMF keypresses or text from speech recognition, which you can then save for your own data purposes or send along to another Widget to send your user down the right path.
There is no required configuration for the Gather Input on Call Widget. However, to make the best use of this Widget, we recommend configuring at least a few of the available configuration options listed in the next section.
The Gather Input on Call Widget accepts a number of configuration options that you can use to customize the message your Flow says to callers and the way(s) you may wish to collect data.
|Say or Play a Message||"Say a Message" will read a message via text-to-speech. "Play a Message" will play a pre-recorded message.||Select Say a Message or Play a Message from the dropdown||Say a Message|
|Text to say||The text to say on the call if you selected "Say a Message"||Strings like "Welcome!" and templates like Hello
|Language||Language and regional dialect for the message being said if you selected "Say a Message"||Select a supported language from the dropdown, or or enter a Liquid variable for dynamic selection||en-US (U.S. English)|
|Message voice||The voice that will read your message on the call||Select a supported voice from the dropdown or enter a Liquid variable for dynamic selection. Note that the dropdown will not populate until you select a language||Alice|
|URL of audio file||The URL of media to play, if you selected "Play a Message"||
|Number of loops||The number of times your message will loop||Any positive integer between 1 and 99||1|
For a list of supported Amazon Polly and Neural voices and dialects that you can reference with Liquid variables when setting Message Language and Voice, see this list.
A number of additional options are available when configuring the Gather Input on Call Widget to accept DTMF keypresses as input.
|Stop gathering after __ seconds||Time in seconds that the Flow will wait for a caller to press a key||0 - 30 seconds||5 seconds|
|Stop gathering on keypress?||Stop gathering digits after a user presses a specific key. If "no," the Widget will gather and submit all keypresses when the Stop Gathering After timeout is reached or the expected Number of Digits are collected||Yes or No||Yes|
|Stop gathering on keypress ___||The key that triggers data submission of a user's input||Digits 0-9, #, *||#|
|Stop gathering after number of digits||The number of digits you are expecting from a caller. A caller's input will be submitted as soon as this number of keypresses has been reached.||0-30||N/A|
Note that the value set for Stop Gathering Keypress is a control key, meaning that its value is not submitted with the rest of the gathered digits. For example, if your Stop Gathering On Keypress is # and a user enters 123#, only 123 will be submitted with your data.
Consider the following options when configuring the Gather Input on Call Widget to accept a caller's speech as input:
|Speech recognition language||The language Twilio's speech engine will try to recognize||Select a supported language from the dropdown, or or enter a Liquid variable for dynamic selection||en-US (U.S. English)|
|Speech recognition hints||A list of comma-separated values that give Twilio's speech engine specific words you expect to hear from your callers||comma-separated list of words (e.g., "sales, reservations, hours")||N/A|
|Profanity filter||Redact profanity from speech results||True or False||True|
Studio does not officially support SSML, and its use in Studio widgets is not guaranteed to be reliable.
You may choose to enable a few advanced speech settings in the Gather Input on Call Widget by expanding the Advanced speech settings box in the Widget configuration panel.
The advanced speech settings of Gather should be used carefully, as certain combinations are incompatible with each other. Please consult the Voice <Gather> docs for full details of the options and how to use them.
|Speech timeout||The limit (in seconds) that Twilio will wait before it stops speech recognition.||auto, or any integer||auto|
|Speech model||Which model the recognition engine should use to interpret speech||Select None, Default, Numbers & Commands,or Phone Call from the drop-down. Alternatively, you may enter a Liquid variable for dynamic selection||N/A|
When Speech timeout is set to auto, Twilio will stop speech recognition when there is a pause in speech and return the results immediately.
The Gather Input on Call Widget has three possible transition states that can lead to any other Widget in your Flow: User pressed keys, User said something, and No input. Use these transition states to route your callers to the appropriate next step.
For more information on working with Studio transitions, see this guide.
When the Gather Input on Call Widget executes, it will have stored the following variables for use throughout your Studio Flow. When accessing these variables, make sure you replace
MY_WIDGET_NAME with the name of your Widget.
Account SID |
API Version |
Call Status |
From City |
From Country |
From State |
From ZIP |
Caller City |
Caller Country |
Caller State |
Caller ZIP |
Call SID |
Called City |
Called Country |
Called State |
Called ZIP |
To City |
To Country |
To State |
To ZIP |
Speech Result |
For more information on working with variables in Studio, see this guide.
There are many real-world applications for using the Gather Input on Call Widget. One common example is creating an IVR, or Interactive Voice Response to help route callers to the correct number or extension.
Here we can see a Studio Flow that takes an incoming call and asks the caller to press a number or say a keyword to reach either a Sales or Support department. When the caller says "sales" or presses 1, the Widget will transition to a Split Based On... Widget, passing along the number pressed or keyword spoken so that we can then route the call accordingly.
Want to go more in-depth with Gather Input on Call? Follow along with one of these step-by-step tutorials that show how to create real-world applications that leverage this Widget
We can't wait to see what you build!