Dynamic Menu

This is an advanced module


This module provides end users with the same options as the Menu () module, that is, a way to branch on, and collect complex input.

Dynamic menus enable users to create multiple choice questions where each choice is associated with a value, where the choices can come from a dynamic source (like a web service) and not configured explicitly in the Fuse platform like the Menu module expects.

The maximum number of options available in the module is 10.

Enabling speech recognition generates an additional column in the module called ‘Utterance.’ Each speech enabled option expects a DTMF input, a speech utterance, and a corresponding value. Please see the Enable Speech Input Setting for more information.

It is recommended to only enable speech recognition when absolutely necessary. Introducing speech recognition increases the chance of errors occurring and can detract from the end-user experience.

Variable Data Structure

For the Dynamic Menu module to function properly, a data structure needs to be provided as the Menu Variable to tell the module which options will be available to the caller.

The data can come from a webservice JSON response using the REST () module. Alternately, it can be built upon with Javascript using the Evaluate JS () module.

The menu data needs to in the following data structure:

Code Example




"dtmf": 1,

"value": "chocolate",

"prompt": { "en-US": "For Chocolate, press 1" }

}, {

"dtmf": 2,

"value": "strawberry",

"prompt": { "en-US": "For Strawberry, press 2" }

}, {

"dtmf": 3,

"value": "vanilla",

"prompt": { "en-US": "For Vanilla, press 3" }



dtmf: The touch tone value of the entry value: Result value of the menu selection prompt: The text-to-speech prompt presented to the caller. This is a name-value pair where the language is the key. For speech enabled menus, utterance is used to specify the word that is expected to be spoken by the Caller. See the Enable Speech Menu setting for more information

The variable icecream will contain the caller's selection based on the value field in the data structure. For example, if the caller presses 1 in the menu, the result will be “chocolate”, therefore, at the end the caller will hear:

You have selected chocolate

Module Settings

Barge In

This setting allows callers to interrupt a prompt before it finishes playing. When enabled, DTMF input interrupts the prompt and progresses the call forward in the call-flow. If speech recognition is enabled on the ensuing module in the call-flow, then end-users can also interrupt the prompt with a spoken utterance, too. Disabling barge-in forces callers to listen to the entire prompt. A barge-in enabled module will have a dashed line on top of the text box. See example here.

This setting enables Automatic Speech Recognition (ASR) for the menu module. A green microphone () icon appears in the module when this is enabled. This setting allows expects additional “utterance” field much like the setting in a normal Menu () module. The following code shows the expected data structure for using utterance:

[{ "dtmf": 1, "value": "red", "prompt": { "en-US": "For red, press 1 or say red", "es-US": "Para rojo, oprima 1 o diga rojo" } "utterance": { "en-US":"red","es-US": "rojo" } }, { "dtmf": 2, "value": "green", "prompt": { "en-US": "For green, press 1 or say green", "es-US": "Para verde, oprima 2 o diga verde" } "utterance": { "en-US":"green","es-US": "verde" } }, { "dtmf": 3, "value": "blue", "prompt": { "en-US": "For blue, press 1 or say blue", "es-US": "Para azul, oprima 3 o diga azul" } "utterance": { "en-US":"blue","es-US": "azul" } }];


This setting controls the logging function of a module. Enabling the 'Private' setting instructs the module to not record, report, or retain the information input to that module for reporting or any other purposes. When enabled any information entered into a module during a call will be lost immediately when the call terminates. The 'Private' setting is critical for businesses that need to maintain PCI-DSS or HIPAA compliance. The module icon, in the upper left-hand corner, becomes grayed-out when this setting is enabled. See more details here.

Enabling this setting overrides the default, global error options set in the Application Settings > User Input Settings. This allows users to establish custom error handling in order to act on errors in a specific way in that module. Instead of progressing to the next module in the call-flow, custom error handling allows users to re-prompt the same module, to provide a custom error message, to re-direct the call based on the error, or any other desired behavior. Adding multiple errors () to a module functions behave the same way as a counter. The first error follows the path for the first error listed, if a second error occurs in the same module it follows the second listed error, and so on until all errors are exhausted or an error directs the end-user away from that module. No Input occurs when the caller does not provide an input based on the timeout settings. This is based on the “Initial input timeout” in User Input Settings No Match occurs when the caller input does not match the module's criteria for the input module.

Advanced Settings

Advanced Fuse users may want to use shadow variables that are available with input modules. For more information on this functionality, please visit the Shadow Variables page.