Enable DTMF support for your voice-enabled agent

Instead of relying on voice responses, dual-tone multi-frequency (DTMF) allows you to ask your agent users to use their phone keypad to select options or provide information.

You can set up a global command triggered at any point in the conversation if the agent user enters a specified single-digit key. Within individual topics, you can add DTMF input recognition for the responses provided in a Question node.

You can configure what key should be pressed for each option that the user can input and how long the agent should wait before parsing the user's input.

If the key input by the agent's user isn't mapped to the node's options, the agent repeats the question or message and encourages the user to try again.

If the key input by the agent's user isn't mapped to the DTMF global triggers, the agent triggers the System topic, Unknown dialpad press trigger (voice). You can customize it for your business logic.

Screenshot of the System topic Unknown dialpad press option.

Enable DTMF support in a topic's node

  1. With the topic you want to use as the global DTMF response open for editing, select the Trigger node.

  2. Hover over or long select on the side of the Trigger node (where the current type of trigger is displayed) to see the Change trigger icon.

  3. Select the icon and then enter "DTMF" to choose DTMF global command received.

    Screenshot of the DTMF global command received icon.

  4. Select Edit and in DTMF received properties, specify the type of recognized DTMF input, along with any conditions for the trigger, and its priority.

    Screenshot of the Change trigger window with the DTMF global command received option selected.

  5. With a Question node selected, under the Identify section, select the type of entity that the agent should be identifying. Different entity types have distinct characteristics for supporting DTMF tones:

    Entity (under Identify) DTMF support Details
    Multiple choice options βœ”οΈ Manually assign a DTMF key to each option
    Options from a list variable βœ”οΈ Automatically assign DTMF keys for each option
    User's entire response πŸ”’ Can accept multi-digit DTMF input
    Age πŸ”’ Can accept multi-digit DTMF input
    Boolean βœ”οΈ Automatically assign DTMF keys for each option
    City βœ–οΈ DTMF not supported
    Color βœ–οΈ DTMF not supported
    Continent βœ–οΈ DTMF not supported
    Country or region βœ–οΈ DTMF not supported
    Date πŸ”’ Can accept multi-digit DTMF input
    Date and time βœ–οΈ DTMF not supported
    Data and time without timezone βœ–οΈ DTMF not supported
    Duration βœ–οΈ DTMF not supported
    Email βœ–οΈ DTMF not supported
    Event βœ–οΈ DTMF not supported
    Language βœ–οΈ DTMF not supported
    Money πŸ”’ Can accept multi-digit DTMF input
    Number πŸ”’ Can accept multi-digit DTMF input
    Ordinal πŸ”’ Can accept multi-digit DTMF input
    Organization βœ–οΈ DTMF not supported
    Percentage πŸ”’ Can accept multi-digit DTMF input
    Person name βœ–οΈ DTMF not supported
    Phone number πŸ”’ Can accept multi-digit DTMF input
    Point of interest βœ–οΈ DTMF not supported
    Speed πŸ”’ Can accept multi-digit DTMF input
    State βœ–οΈ DTMF not supported
    Street address βœ–οΈ DTMF not supported
    Temperature πŸ”’ Can accept multi-digit DTMF input
    URL βœ–οΈ DTMF not supported
    Weight πŸ”’ Can accept multi-digit DTMF input
    Zip code πŸ”’ Can accept multi-digit DTMF input

Assign DTMF keys

For some entity types, you can specify if the options provided by the agent to the user are mapped to a DTMF key:

  • For the Multiple choice options entity, manually assign DTMF keys to each option by selecting the Assign DTMF keys to options checkbox. When this checkbox is selected, you see an icon representing a phone's keypad next to the Options for user heading.

    For each option you add, select the - icon and specify the DTMF signal that the option should be mapped to.

    Screenshot of the entire question node.

  • For the Options from a list variable and Boolean entity types, the DTMF keys can be automatically assigned to each option.

    The agent assigns keys in the order that the options are in, from 0 to 9.

You can have the agent automatically read out the mapped options:

  1. Select the More icon (…) of the Question node you want to configure, and then select Properties. The Question properties panel appears.

  2. Select Entity recognition, and then select whether the agent should read out the options to the agent user.

Multi-digit DTMF input

For entities that support multi-digit DTMF input, you can specify if there should be a minimum or maximum number of digits in the agent user's valid response. These multi-digit DTMF input entities include most entity types that extract a number from the agent user's input. You can specify a range for the number of digits that are considered valid (such as "2-5"), or a fixed length (such as "5").

Screenshot of the number of digits (DTMF only) option shown on a question node.

If the entered response from the agent user has fewer or more digits than specified, then the agent repeats the question.

If you don't specify the number of digits, then the agent accepts any length of digits and continues the topic's flow.

You can also specify if the agent should wait for a specific "termination" key to be pressed to indicate the agent user finished entering their response. You can select no key, the asterisk key (*), or the hash key (#). The termination character is optional, and isn't included when counting the length of the input.

Agent-level DTMF recognition

You can configure what key should be pressed for each option that the user can input and how long the agent should wait before parsing the user's input.

Important

The DTMF received trigger can only accept single DTMF keys. The trigger won't be called if the agent user enters the key when responding to:

  • A Question node that accepts multi-digit DTMF
  • A Question node that accepts single-digit DTMF where one of the allowed options is mapped to the same key
  1. With the topic you want to use as the global DTMF response open for editing, select the Trigger node.

  2. Hover or long-select on the side of the Trigger node (where it shows the current type of trigger) to see the Change trigger icon.

  3. Select the icon and then choose DTMF global command received.

    Screenshot of the Change trigger panel with DTMF global command received highlighted.

  4. In the DTMF received properties panel that opens, specify the DTMF input that should be recognized along with any conditions for the trigger and its priority.

DTMF caching

DTMF caching allows an agent user to input keys without waiting for each question or prompt from the agent. For example, caching is useful for agent users who are familiar with the agent's usual conversation path, and want to go straight to a specified menu.

With DTMF caching, each key press is cached in series, and automatically input for each consecutive prompt.

For a single-digit DTMF node, all keys input after the first one are cached for the next turn.

For multi-digit DTMF nodes, the agent follows a set of rules that determine how and what to cache based on these settings:

Scenario Digit length Condition User input Outcome
Agent author didn't set a termination character so the timeout is ignored. When the user hits the max length, the key after max length (the last digit) is cached for the next turn. 3 Term time is 0 or Term key is none 1, 2, 3, 1, ... The first three digits are returned immediately, while the fourth digit is cached for the next turn.
Agent author set the termination character. The key input after timeout is cached for the next turn. 3 Term key is # 1, 2, 3, 1 The first three digits wait for the termination timeout before being returned. The fourth digit is cached for the next turn.
When the user hits the max length, the termination timeout runs. 3 Term key is # 1, 2, 3, then during the timeout window, 1 The first four digits are returned; however as this question only accepts three digits, the entire input sequence is considered to be invalid, and the agent reprompts the question.
User doesn't hit the max length (valid length). The key input after the interdigit timer is cached for the next turn. 2-5 Doesn't matter if a term key is defined 1, 2, 3, then after the timeout, 1 The first two digits wait for the interdigit timer before being returned, and the third and fourth digits are cached for the next turn.

DTMF caching is handled in the following ways:

  • If the next turn doesn't allow barge-in, the cached key is dropped.
  • If the next turn allows barge-in, the key is handled according to its flow:
    • If the flow consists of multiple message nodes, but is followed by a multi-DTMF question node, keys are cached for this multi-DTMF question only. The global DTMF topic aren't triggered.
    • If the flow consists of multiple message nodes, but is followed by a single DTMF question node, the key is cached for a single DTMF key. Also, the DTMF global topic is cached. However, if they overlap, the single DTMF question node wins.
    • If the flow consists of multiple message nodes without any question, the key is cached for the DTMF global topic.

Tip

To avoid accidental caching, do the following:

  • Place the node with the barge-in disabled message right after the question node.
  • Use a multi-DTMF question node with a longer term timer (notice this increases the latency to the end user if the user doesn’t input a termination key).