Overview: Say + Array workflow module (Console)
Console > Workflows > Workflow modules > Overview: Say + Array workflow module (Console)
This article explains the Say + Array workflow module in Console.
In this article
Overview
In Console, the Say + Array workflow module allows you to create workflows capable of reciting a list of options for your customers to select from.
In the screenshot above, the Say + Array module is used to present a list of options gathered from the Dial By Name Lookup module. We’ll cover how this works later in this article.
The Say + Array module is usually paired with its companion module - Dial By Name Lookup. The Dial By Name Lookup module allows the customer to provide a first name and last initial to search for a certain individual in your organization they’d like to speak to.
Once the Dial By Name Lookup module performs a search, it gives the results of the search to the Say + Array module, which then recites the options to the customer. Once the customer selects an option, they can be routed to their selected extension.
Tip: In this usage, an “array” is the same thing as a “list”.
The Say + Array module supports customers selecting through any of the following options:
Phone (DTMF only; voice selection is not supported)
SMS (text)
Web chat (text)
Continue reading this article to learn more about how the Say + Array module works.
How it works
Suppose that you want to create a workflow that allows customers to search for a specific person’s extension by first name and last initial.
You could accomplish this with a subroutine that contains the following two modules:
Dial By Name Lookup
Say + Array
These modules work in tandem to deliver the ability to select an extension by searching and selecting (such as through DTMF input) a specific individual to contact.
The screenshot below shows a very basic subroutine workflow that accomplishes this. Let’s break it down into steps.
Read more: Overview: Subroutine workflows (Console)
The screenshot above shows a subroutine workflow that prompts the customer to input a name to search, presents the results to the customer to choose from, and returns back to the main workflow.
Step 1: Say + Gather
The Say + Gather module is where you collect information from the caller about who they’d like to contact. In the screenshot above, we have the following text configured to be read to the caller:
Please enter the digits that match the letters of the first name and last initial of the person you are trying to call.
The value provided by the caller via DTMF is saved in a variable called customerInput. This is used by the Dial By Name Lookup module to find results matching the caller’s query.
Step 2: Dial By Name Lookup
The Dial By Name Lookup module searches for users matching the value provided to the Say + Gather module. It compiles the search results into an array, which is another word for a list.
Notice in the screenshot above that the Variable Name is customerInput, which is the same name as the variable we declared in the Say + Gather module in Step 1.
Also note that we declare a new variable called userResults. This is the compiled list of results that will be used by the Say + Array module.
Step 3: Say + Array
The Say + Array module then lists every search result compiled by the Dial By Name Lookup module in Step 2. Note the text in the prompt template field:
Press {{__index}} for {{firstName}} {{lastInitial}}
These are pre-configured variables that we suggest you use. These cycle through the list of results and name the people the caller can choose from.
Press 1 for John S.
Press 2 for Maria R.
Press 3 for Priya S.
And so on. When the customer chooses an option, the corresponding extension (gathered by the Dial By Name Lookup module in Step 2) is saved as a variable.
Step 4: Return
Finally, the subroutine workflow returns to the parent workflow that invoked it. It passes the “nameExtension” variable back to the parent workflow, where the user can be routed to the desired extension.
Visual breakdown
Basics
Label: The Label field is where you define a custom name for the workflow module. This can make it easier to see what the module is doing from the workflow editor workspace and this is how the module is referred to in reporting.
Array Variable Name: The Array Variable Name is where you define the array containing the list of options the customer can select from. The module retrieves this from a preceding Dial By Name Lookup module. We recommend writing variables in camel case (exampleVariable).
Auto Progress: The Auto Progress toggle sets whether the workflow can ask multiple questions in one prompt to fill multiple variables. For example, if Say + Array is set to auto progress while asking for a user’s choice input, the workflow will gather both pieces of information from a user’s response (if the user’s response contains both the email and phone number). This is a way of asking for more information more naturally.
Phone prompts
Allow Speech: The Allow Speech toggle is not accessible at this time. All customer inputs over the phone must be performed with DTMF.
Prompt Template (phone): The Prompt Template field is where you input the message that is recited to customers.
A common example is: Press {{__index}} for {{firstName}} {{lastInitial}}
Which would be recited as:
Press 1 for John S.
Press 2 for Maria R.
Press 3 for Priya B.
Advanced phone prompt settings
Language: The Language menu lets you select the language of the prompt text. The language should match the actual language of the recited text. For example, text written in Italian should have the Language menu set to Italian.
Voice: The Voice menu lets you select the type of voice that will recite the text. Each language has a selection of “Male” (typically masculine, lower pitch) and “Female” (typically feminine, higher pitch) voices to choose from.
Interrupt Prompt: When enabled, the Interrupt Prompt toggle lets the customer provide an answer to the prompt before the prompt has finished playing.
Only Interrupt Prompt on Match: When enabled, the Only Interrupt Prompt on Match toggle only interrupts the prompt if the customer has provided a valid response. If not, the prompt continues to play.
Allow DTMF: When enabled, the Allow DTMF toggle allows the customer to input responses with the phone’s keypad. This is the only option for data input at this time.
Timeout (seconds): The Timeout (seconds) field defines how many seconds to wait for a response from the customer.
Allow DTMF input timeout (seconds): The After DTMF input timeout (seconds) field defines how many seconds the module should wait after a DTMF input to proceed.
DTMF Capture Max Length: The DTMF Capture Max Length field defines how many DTMF key presses will be accepted and recognized. For example, if you want to capture a 10 digit account number, you could set this field to “10”. The module would then only capture the first 10 digits provided by the customer and no additional digits.
Messaging prompts
Prompt Template (messaging): The Prompt Template field is where you input the message that is recited to customers.
A common example is: Press {{__index}} for {{firstName}} {{lastInitial}}
Which would be recited as:
Press 1 for John S.
Press 2 for Maria R.
Press 3 for Priya B.
Timeout (seconds): The Timeout (seconds) field defines how many seconds to wait for a response from the customer.
Set Variable
Set Variable: The Set Variable field is where you record the customer’s selection. We recommend configuring the following:
Name: This is the name of the variable. We recommend a camelcase word like nameExtension.
Type: This is the type of value being stored in the variable. We recommend choosing “Selected Option”, which means the option the customer selected.
Value: In most circumstances, this should be “extension” exactly.
Template workflow
The system offers a template workflow that features the Dial By Name Lookup and Say + Array modules, so you don’t have to build it from scratch (though you will need to make modifications to meet your needs).
You can find it in Console in Workflows > Workflow Templates > Dial By Name Subroutine.
Prompt Template variable quick reference
When modifying the prompt template, use the variables listed below:
{{__index}}
{{firstName}} - The first name of the user.
{{lastName}} - The last name of the user.
{{firstLastName}} - The full name of the user.
{{extension}} - The extension of the user.
{{email}} - The email address of the user.
{{title}} - The title of the user.
{{namePrefix}} - The name prefix of the user.
{{nameSuffix}} - The name suffix of the user.
{{lastInitial}} - The last name initial of the user.
For example, a use case would be:
Press {{__index}} for {{firstName}} {{lastInitial}}
Which would be recited as:
Press 1 for John S.
Press 2 for Maria R.
Press 3 for Priya S.
…