User input properties

Choose the type of information to collect: either an NLU intent, or an entity. For an entity, determine whether value-specific actions are required.

In projects meant to support a VoiceXML application, if a question and answer node is meant to collect an entity whose values are determined by a speech grammar (as opposed to being subject to NLU), you can specify the required speech grammar for the appropriate channels. The ability to reference speech grammar files in question and answer nodes must be enabled in your project settings, for the appropriate channels.

For channels that support DTMF interaction, you can map DTMF keys to entity values, or specify DTMF grammars. The ability to reference DTMF grammar files in question and answer nodes is enabled by default, for channels that support DTMF. You can turn it off in your project settings.

You can configure interactive elements for values of a yes/no, Boolean or custom entity. Only available in projects with channels that have interactivity enabled.

It is possible to disable input modalities for some channels at a specific question and answer node. For example, in an IVR application likely to be used in a public space, you might want to force users to enter sensitive information such as their PIN via the keypad rather than saying it out loud.

Allow a question and answer node to recognize more values than those available for the intent or entity it is meant to collect, by defining command overrides, which extend the global command entity for your project. Command overrides also let you configure local node-specific handling for any values of the global command entity.

Choose the type of information to collect

Question and answer nodes support collecting intents and entities defined in your Mix project. The primary focus of a specific question and answer node is either collecting intents, or collecting a specific entity.

A question and answer node meant to collect the user intent usually works with a companion intent mapper node, which is responsible for directing the dialog flow to the intent component or generic component meant to handle the intent.

Collect intents and use Answers in case of nomatch

  1. Expand User input and click Collect.
  2. Expand the selector, point to Collect Intent and Mix Answers with Copilot, and choose NLU for your project.
  3. Read the message that appears about the limitations for this preview feature and click Do it to dismiss the message.
  4. If Answers is not yet enabled for this project, click Configure Answers settings.

    This opens the Project Settings panel, with the Answers with Copilot category in focus. Follow the instructions in Add support for Answers in an existing project.
    The URL you specified appears in the Collect section of the user input properties for the question and answer node.
  5. Click Add intent mapper node.
    This automatically connects the question and answer node to an intent mapper node.
    Notice the intent mapper node, on the canvas, indicates the number of intents that have a global mapping from the NLU resource panel.
  6. If you are ready to set up the intent mapper node, click its name next to Connected to.

Collect intents

  1. Expand User input and click Collect.
  2. Expand the selector, point to Collect Intent, and choose NLU for your project.
  3. Click Add intent mapper node.

    This automatically connects the question and answer node to an intent mapper node.
    Notice the intent mapper node, on the canvas, indicates the number of intents that have a global mapping from the NLU resource panel.
  4. If you are ready to set up the intent mapper node, click its name next to Connected to.

Collect an entity

A question and answer node meant to collect an entity can work with a companion question router node, which is responsible for handling the collection of all entities required to fulfill a specific intent and also for switching the dialog flow to another intent component or generic component when required.

  1. Expand User input and click Collect.
  2. Expand the selector, point to Collect Entity, and choose the entity to collect.
    Tip: If your project does not yet have the entity you want to collect, you can create it on the fly.

    The selected entity is now the primary focus of this question and answer node.
  3. Expand Advanced settings.
  4. If the current collection method is not List, turn on Edit collection method.
  5. If desired, you can use the list under How you are collecting from the user to change the collection method for this entity.
  6. If this node is meant to collect a list entity whose values are all meant to be handled the same way, turn off all Show in Actions switches.
  7. Otherwise, if the list entity to collect requires value-specific behaviors, turn on the Show in Actions switches for the desired values.
  8. If this node is meant to collect a list entity for which the set of values can only be fully determined at runtime, click the Dynamic check box if it isn’t already selected (see Dynamic list entities for more information).
  9. If this node is meant to collect an entity that will hold sensitive information that must be masked in application logs, click the Sensitive check box if it isn’t already selected.
  10. If this is an entity for which you want to be able to recognize anaphoras, choose the appropriate anaphora type from the list next to Referenced as.
  11. Optionally, if this node is in an intent component (or in a generic component meant to fulfill an intent) but wasn’t created directly from the question router node, choose a question router node to handle any captured entity or intent that is not the entity in focus at this point in the dialog flow.

Create an entity on the fly

When setting up a question and answer node, you can create an entity directly from the entity selector. This scenario shows how to add a Yes/No entity with its default isA relationship to the dialog predefined entity YES_NO. See Manage entities for more information.

  1. In the search field, type a name for the new entity (see Naming guidelines)—for example, myYES_NO.
  2. Click the Add icon .
  3. Select the desired data type for this entity (in this case, Yes/No), from the list that appears in the upper-right area of the Node properties pane.
  4. Click Add.

    The new entity is now the primary focus of this question and answer node.

Specify grammars

Mix supports external GrXML grammars. The options available for a specific channel depend on the input modalities it supports. Unless you have specified one or more base URLs for external grammars in your project configuration, grammar files must be placed in specific directories, relative to the client application, that is basePath/language/grammars/channel/, where basePath is the path to where the client application expects to find all required language-specific material (audio files and grammars), language is a directory named after the appropriate language code (for example, en-US, fr-CA), and channel is the name of the channel using the grammar files (or “default” for grammar files that apply to all channels).

Grammar references set in Project Settings for your global command entity apply to all question and answer nodes.

The Grammars tab of the NLU resource panel allows you to export a grammar specification document, to help design and manage external grammars referenced by a VoiceXML application.

At a specific question and answer node, you can:

  • Specify local speech and DTMF grammar references for all channels, which take precedence over any corresponding global grammar references
  • Specify channel-specific grammar references, which take precedence over any local grammar reference
  • Disable a global grammar reference locally for all channels
  • Disable a grammar reference locally for a specific channel
  • Reset a local grammar reference
  Example of grammar settings, at a question and answer node  

Add a local grammar reference

  1. Expand User input, then expand Optional, and click Grammars.
    If you added command overrides at this node, a separate section appears for your global command entity, and it shows the global command grammar references from your project settings, if any.
    Note that, if you prefer to use a single grammar to support both the entity in focus and the command overrides, you can disable the global command grammar.
  2. If the grammar is for a specific channel, choose the desired channel.
  3. Turn on the switch for the grammar reference you want to specify, if it is not on already.
  4. Click Override, if a grammar reference was already specified globally (or locally for all channels, and you are now setting a reference for a specific channel).
  5. Use the appropriate field to either:
    • Enter the name of the desired grammar file, including the extension (for example, my-entity-grammar.grxml).
    • Expand the variable selector, and choose the variable that is meant to hold a dynamic grammar reference at runtime.

      Tip: Use the search field to narrow down the list if needed. If the variable you want to use is missing, you can create it on the fly, and then use it immediately. (To remove a dynamic reference, click the Remove icon next to the variable’s name.)

Disable a grammar reference

  1. Choose the channel for which you want to disable the grammar, if it isn’t already selected.
  2. Turn off the switch for the grammar reference you want to disable.

Reset a local grammar reference

Click the Reset icon .

This restores the applicable grammar reference, if any, that was set at the nearest higher level.

Set DTMF mappings

Setting DTMF mappings for entity values to be collected at question and answer nodes allows you to generate DTMF grammar specifications, to be used by a VoiceXML application. Use the Grammars tab of the NLU resource panel to export the DTMF grammar specification for your project.

  Example of DTMF mappings at a question and answer node, including one for a command override  

To specify DTMF mappings:

  1. Expand User input, then expand Optional, and click DTMF.
  2. If the entity for which you want to specify DTMF mappings has not yet been selected for collection at this node, use the list to select it.
    If the entity does not yet exist, you can create it on the fly.
  3. Choose the channel to which the DTMF mappings will apply, if it isn’t already selected.
    Only channels that support DTMF are available for selection.
  4. If this node is collecting a list entity, you can quickly add entity values on the fly, directly in the DTMF section, as needed.
  5. Turn on the switch next to a value you want to map to a DTMF key.
  6. Choose the desired DTMF key for this entity value.
  7. Proceed in the same fashion until you have completed the mappings for all applicable channels.
  8. (Optional) Export the grammar specification document, to be used by a VoiceXML application, if desired.

Create an entity on the fly in the DTMF section

When setting up a question and answer node, you can create the entity to collect directly in the DTMF section.

  1. Expand the list, under What entity/intent are you collecting from the user.
  2. Click the Add icon next to Collect Entity.
  3. Type a name for the new entity (see Naming guidelines)—for example, CALL_DESTINATION.
  4. Press Enter.
    The new entity is now selected for collection at this node.
  5. If this node is meant to collect a Boolean, or a yes/no entity, navigate to the Collect section to set the required data type.

Add entity values on the fly in the DTMF section

  1. Type one or more comma-separated values, in the field under the entity name, and press Enter.

    This creates the new values, and automatically maps them to DTMF keys.
  2. Turn off any mappings you wish to disable.

Define interactive elements

In a project with channels that support interactivity, question and answer nodes that collect Boolean, yes/no, or custom entities let you configure interactive elements such as buttons.

  Question and answer node interactivity properties example  

To define interactive elements:

  1. Expand User input, then expand Optional, and click Interactivity.
  2. In a multichannel project, if interactive elements must be limited to a specific channel, undock the desired channel (if it isn’t already undocked) and select it.
  3. (Optional) In the upper fields, enter the type of your interactive elements, such as Buttons, List, or Carousel, and the name of a class or inline CSS code to format them, if desired.
    Your dialog application will pass this information on to the client application.
  4. Turn on the switches for the values for which you want to create interactive elements.
  5. For each interactive element, enter:
    1. A label, such as the text to show on a button—optional if a link is specified.
    2. A link (URL or relative path) for the image to use on a button—optional if a label is specified.
    3. A description—optional.
  6. (Optional) Change the order of the elements, if needed.
  7. If your project supports multiple languages, use the menu near the name of the project to switch to another language, and proceed in the same fashion until you have configured every interactive element required for your application.

Set local input modalities

Self-hosted environments: This feature requires engine pack 2.4 (or later) for Speech Suite deployments; engine pack 3.11 (or later) for self-hosted Mix deployments.

To disable input modalities at this node:

  1. Expand User input, then expand Optional, and click Input modes.
    Input modalities for all enabled channels appear.
  2. Turn off the switches for any modalities you want to disable.
    For example, turn off the Voice switch for the IVR channel, to force users to use DTMF at a question and answer node that collects sensitive information such as a PIN.

Configure command overrides

If you want a question and answer node to be able to recognize more values than those available for the intent or entity it is meant to collect, or to handle specific commands locally, configure command overrides. This allows you to set up specific actions (including interactive elements and DTMF mappings, as required) for values of your project’s global command entity. In projects meant to support a VoiceXML application, this also allows you to specify local GrXML grammar references for your command entity to support speech and DTMF interaction at this question and answer node.

For example, at a node collecting a yes/no answer, you might want to allow users to respond: I don’t know, which the predefined YES_NO entity does not directly support. Another example: at a node collecting a library card number (digits), you could allow users to say I don’t have it, and let the application fall back to asking for a phone number.

Add command overrides

To override the global handling for an existing command, support a new command locally, or supplement the intent or entity in focus at this node:

  1. Expand User input, then expand Optional, and click Command overrides.
  2. If the value you want to use does not yet exist, you can add it directly in the field above the table.
    You can enter multiple values at once, if desired.
    Remember to add literals for the new values, and train your NLU model to support the new values. Note that, in a multilingual project, you must add each desired value separately, for each language, with the exact same spelling.
    Tip: Click the Library icon, next to the name of your command entity to open the Entity tab of the NLU resource panel.
  3. Click the Override button, next to each global command you want to handle locally, at this node, if any.
  4. Turn on the switch for any command entity values you want to use to extend the focus of this node.
  5. Set the desired system actions for the specified command entity values.
  6. Define interactive elements for the specified command entity values, if desired.
  7. Set DTMF mappings for the specified command entity values, if desired.
  8. If your dialog design is meant to support a VoiceXML application, specify local speech and DTMF grammar references for your command entity, as needed.

Remove a command override

  1. Click the Reset icon next to the override you want to remove.
  2. Click Yes to dismiss the message that prompts you to confirm your intention.

This deletes all system actions, any interactive element, and any DTMF mapping defined in this node for this entity value. Removing the last command override at this node removes any local grammar references specified for the command entity as well.

If there is a global command configured for this entity value, removing the override restores the global handling for the command at this node; otherwise, if the value is not configured as command, this node will no longer recognize it.

Disable a globally-enabled command at this node

Turn off the switch for the value associated with the command.

Enable a globally-disabled command at this node

Turn on the switch for the value associated with the command (or click Override).