Adds a menu of choices from which the user can select while also playing a message. This action is typically used to allow the contact to provide information that directs the way in which the interaction is handled. Examples of use cases for this action include:

  • Press 1 for Sales, press 2 for Support, or press 3 for Accounting. In this case, the Menu action would lead to different branches depending on the digit pressed by the contact.
  • Enter your account number, followed by the pound sign. In this case, the Menu action might be followed by actions that retrieve the customer account page from a CRM system and send that page to the agent's screen.

Messages used in a Menu action can be pre-recorded audio files, text-to-speech (TTS) renditions of values provided in the script, or a combination of these.

Supported audio file type:

  • WAV (Uncompressed) with the following properties:
    • Bit Rate — 64 kbps
    • Audio sample size — 8 bit
    • Channels — 1 (mono)
    • Audio sample rate — 8 kHz
    • Audio format — CCITT μ-Law

Supported Script Types

The icon for a Generic script type - a rectangle with < and > symbols inside it. The icon for the Email script type - a large @ symbol in a diamond. The icon for the Chat script type - a chat bubble with an ellipsis inside (...), in a diamond shape. The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it. The icon for the Voicemail script type - a symbol that looks like a cassette tape - two circles sitting on a horizontal line. The icon for the Work Item script type-a piece of paper with one corner folded down and a bullet list on it. The icon for the SMS script type - a smart phone with a chat bubble coming out of it. The icon for the Digital script type - a computer monitor with a smartphone next to it.
Generic Email Chat Phone Voicemail Work Item SMS Digital


Property Details

Define the prompt that the action plays. Use the correct formatting for each segment of the prompt. For example, to specify an audio file, enter the name of the file in double quotes, such as "silence.wav". You can enter text that the text-to-speech service will speak. For example: "%Your account balance is". You can also include variables, such as: "${accountBalance}". If you use variables, ensure that your script passes the variable value to the action containing the prompt. You can combine multiple segments in the Sequence field. For example: 

"%Your account balance is""silence.wav" "${accountBalance}"

You can double-click the action icon to use the Prompt Manager.

TTS has a 300 character limit.


Use this to property to document the way the prompt should read. This property is not used by the script. Because some prompts can be complex and contain multiple segments, it can be helpful to include the text written without the formatting required by the Sequence field.

ClearDigits When a contact presses a key on their telephone keypad, the generated DTMF tone is stored in a buffer. When the ClearDigits property is set to True (the default value), that buffer is cleared when the action begins. Otherwise, the action would immediately detect a DTMF tone and invoke the OnDigit or OnDTMF branch even if the key press was associated with an earlier action.
MaxDigits The maximum number of digits that a user can provide for the action; for example, if the prompt requests the last four digits of a person's social security number, set this value to 4. The default value is 6. When the MaxDigits value is reached, the script continues to execute. Therefore, if the prompt calls for a terminator (such as the pound sign, or #), you must account for it in this value. For example, if the recorded menu message asks for the last 4 digits of the social security number "followed by the pound sign", set the value to 5.

A key press that indicates the caller has finished entering digits; for example, the pound sign (#) as discussed in the preceding description of MaxDigits. If you do not want this value to be included in the Variable, type a minus sign after the terminator (for example, #-).


The total number of seconds the system waits for input of any type. Time is counted beginning as soon as the Sequence message finishes playing.

InterDigitTimeout The amount of time the system will wait after a digit being entered to determine if another digit will be entered.

The name of the variable in which captured digits are saved. The default value is {MRES}, which stands for "menu response". This saved information can then be used for decision-making or other purposes in addition to triggering the appropriate branch in the menu


Branch Details


Path taken unless the script meets a condition that requires it to take one of the other branches. It is also taken if the other branches are not defined.


Path taken when the caller provides the value specified in the property.
OnMaxDigits Path taken when the caller's input reaches the MaxDigits value.
OnTimeout Path taken if there is no response for the number of seconds specified.
OnInterDigitTimeout Path taken when the time specified in the InterDigitTimeout property is exceeded during the caller's response to a prompt.
CustomCases Path(s) created and taken when the Menu action is connected to secondary actions using variable branch conditions.

Tips & Tricks

  • When the caller presses the number on their keypad, the script follows the branch based on the selected number.
  • If a caller uses a rotary phone, they will not be able to enter DTMF tones and will be stuck unless you account for this scenario in the script.
  • If your script contains multiple Menu actions, make sure you rename variables from the default value so the variables from different actions do not overwrite each other.
  • TTS has a limit of 300 characters.

Phone Script Example Using Menu

In this simple example, the script is triggered by a Begin action (not shown), after which a Menu action plays a message telling the caller to press 1 for Support, 2 for Sales, or 3 for Billing. Based on the button the caller presses on their phone keypad, the script executes a different Reqagent action that requests an agent from the skillClosed Used to automate delivery of interactions based on agent skills, abilities, and knowledge configured in that Reqagent action.

Would you like to download this script?