Adopting a consistent set of global navigation commands

Selecting the command list

The basic commands recommended for any speech application are listed in Table 1; commands shown in bold in the table are the minimum recommended set.

Table 1. Recommended list of global command types
Global commands Description
Go Back Backs up to the previous prompt. See Go back.
Exit Exits the application. See Exit.
Help Provides help. See Help.
Note: For language versions other than US English, see the appropriate appendixes.
List Commands Lists global commands. See List commands.
Transfer to Agent Transfer to a human call center agent. See Transfer to agent.
Quiet/Cancel Stops playback of the current prompt. See Quiet/cancel.
Note: For language versions other than US English, see the appropriate appendixes.
Repeat Repeats the last prompt. See Repeat.
Start Over Returns to the beginning of the interaction. See Start over.
What Can I Say Now Lists all available commands.

Constructing global commands

While the specific implementation of each command depends on the requirements of your application, the general function is described here.

Built-in commands:

The VoiceXML browser includes simple grammars for Help and Quiet/Cancel. Depending on the grammar style (simple or natural command grammar) of the rest of your application, you might want to add alternative ways of saying these commands by creating additional, auxiliary global grammars.

Application-specific commands:

You should define application-specific commands in grammars that are always active (by specifying them in the application root document with <form scope=“document”>), so users can access them throughout your application. However, there is a trade-off to having a large and robust set of global commands: the potential for misrecognition increases. You should therefore exercise due care when constructing these grammars.

Go back

This command lets users back up to the previous prompt.

In any reasonably complex application, users (especially first-time users) might need to explore the interface; while exploring, they might go down an unintended path, and will need a command to back up through the menu (dialog) structure. For example:

System: Select Leave message, Camp, or Forward call
User Forward call
System: Forward to which 4-digit extension?
User Go back.
System: Select Leave message, Camp, or Forward call

Exit

This command lets users exit the system.

Most users will probably just hang up when they have finished using the system; some users, however, might feel more comfortable if they can say “Exit” and hear the system confirm task completion with a closing message.

When this command is used, the application can also alert the user if a task has been left incomplete, and can prompt the user to complete the task. For example:

User

Exit.

System: You haven't specified an appointment date. Do you want to cancel this appointment?
User Yes.
System:

Goodbye. Thank you for using our automated appointment system.

Note: If you find that users frequently trigger the Exit command accidentally due to acoustic confusability with other active commands, you may need to reword the other commands or less preferably, use a different command for the exit function. Also, it’s a good idea to include confirmation for the exit action. For example:
User Exit.
System: Are you sure you want to end this call?
User Yes.
System: Goodbye. Thank you for using our automated appointment system.

The Exit command also provides an opportunity to engage users in post-usage satisfaction surveys.

It is common to include the word “Goodbye” as a synonym for “Exit.”

Help

This command starts a help mode or causes the application to play the next prompt in a sequence of self-revealing help prompts. See Choosing help mode or self-revealing help for more information.

List commands

If your application has a large number of global commands, consider offering users a “List Commands” command.

Transfer to agent

Note: This command is only applicable in a deployed (telephony) environment, not on a desktop system.

This command transfers the call to a human call center agent, when available. Typically, the Transfer to Agent grammar should also support the DTMF key 0 as a command for transferring to an agent. See Deciding whether to use human agents in the deployed system for more information.

In some systems, the phrase “Operator” might be preferable to “Transfer to Agent”.

Quiet/cancel

This command stops playback of the current prompt (unless you have disabled barge-in).

Repeat

This command repeats the last prompt. (Refer to the description of the <reprompt> element in VoiceXML 2.0 for implementation details.) For example:

System:

The conversion rate from Australian dollars to euros is 0.548 euros per dollar.
Would you like to do another conversion?

User

Repeat.

System:

The conversion rate from Australian dollars to euros is 0.548 euros per dollar.
Would you like to do another conversion?

Note that in this example, the application has provided some information, then asked a question. In cases like this, the Repeat command should repeat the information and the question. The most likely scenario is that the user needs to hear the information again, not that the user has failed to understand or remember the question.

Start over

This command lets users start over when they want to abandon the path they are on and return to the beginning of the interaction. For example:

System:

Which option?
Phone
Fax

User

Phone.

System:

Which phone action?
Leave message
Camp
Forward call

User

Forward call.

System:

Forward to which 4-digit extension

User

Start over.

System:

Which option?
Phone
Fax

If your application contains multiple modules, it might not be clear at which point the system will restart. In this case, you might want to code a set of commands in global grammars to allow users to jump to the different modules or back to the main menu. For example, the commands LIBRARY, BANKING, CALENDAR, and MAIN MENU might be in global grammars for a voice portal application with library, banking, and calendar modules. If you have explicitly labeled the starting point of your application “Main Menu,” then you should accept the command MAIN MENU as well as START OVER.

Using the global commands

Simply having these commands in the system is not sufficient to make them usable; you may need to let users know that they exist. You can accomplish this in three ways:

  1. Make sure that the application's introductory message tells users about the two or three most important global commands.

    It is not always necessary or even desirable to list all of the global commands; remember that if the user accidentally or naturally speaks one that was not mentioned, it will still have the desired effect. First time users will rarely remember the commands, but this presentation can be helpful for repeat users. For example:

    System:

    Welcome to the automated monetary conversion system. The commands “Repeat” and
    “Start Over” are always available.

  2. At some point in the sequence of help prompts, inform the user about the other global commands.
  3. List key global commands at task terminal points, either as the last choices in a short menu or following a 1500 to 2500 ms pause after the last option in a longer menu. A user is most likely to want to navigate away at the end of a task so provide information about global commands the user might need when the user most needs it. For example:
    System:

    You have transferred one thousand dollars from
    savings to checking. The confirmation number is
    6 5 4 3 2 1. Select Repeat, Perform Another Transaction,
    Go Back, Main Menu, Exit or Transfer to Agent.

    System:

    You have received one new message from David Jones.
    Select Play Message, Reply, Reply to All or Delete Message.
    <2000 ms pause>
    At any time you can say Help, Repeat, Go Back, Main Menu,
    Exit or Transfer to Agent.