Teneo Developers

Handle ambiguous inputs

A good dialogue system is able to get the conversation back on track if the user makes an ambiguous request. On this page we'll look at the flow we built in create a custom order group and expand it to help users find the correct answer to their question. We'll do this using flow links, which allow us to send the user to a flow meant to answer the question. In the Partial understanding: Coffee flow we'll first present users with likely options of what the question might have been, and allow users to give a clarifying response.

Before our changes we would have a conversation like this:

User: coffees
Bot: I'm not sure what you wanted to ask about coffee. Could you please help clarify?

User: your selection
Bot: I'm sorry but I didn't get that.

After our modifications, it will look like this:

User: coffees
Bot: I understand you would like to talk about coffee. Can you be more specific? Did you want to order a coffee or see our selection of coffees?

User: your selection
Bot: We offer a variety of handcrafted coffee drinks - from espressos to macchiatos to flat whites and more.

User: espresso
Bot: You're talking about coffee. Would you please tell me what you wanted exactly? Did you want to order a coffee or see our selection coffees?

User: order
Bot: Ok, what coffee would you like?

To achieve this, we'll enhance the Partial understanding: coffee flow by following these steps:

  • Add an additional output to ask if the user wants to order a coffee or see the selection.
  • Add links to flows User wants to order a coffee and User asks about coffees we offer
  • Make sure we send the user to the correct flow depending on the user's response (order or selection)

When we're finished, our flow will look like this:

final flow

Add a new output

Let's first expand the current prompt to offer the user several possibilities.

  1. Open the flow 'Partial understanding: Coffee' in edit mode.
  2. Select the Plus icon under 'Respond to single synonym: Coffee', followed by 'Continue with' transaction element' and 'output'.
  3. Select the new transition and make sure the Get input before continuing checkbox are unchecked and the User Intent is removed.
  4. Select the Output below, name it Ask user what was meant and add the following answer text: Did you want to order a coffee or see our selection of coffees?.

Now it's time to add a flow link if the user wants to order a coffee.

  1. Select the Plus icon below the output 'Ask user what was meant', hover over 'Continue with' and select Flow link.
  2. Select the transition and name it Order.
  3. Make sure 'Get input before continuing' is selected.
  4. Add the positive intent Order and generate a 'Match'.
  5. Navigate to the new flow node and name it User wants to order a coffee.
  6. Add the User wants to order a coffee flow via the Flow Link panel using the Browse button in the Target section.

Now that we've covered the order flow link. It's time to add one more if the user wants to see the coffee selection.

  1. Select the Plus icon below the 'Ask user what was meant', followed up with 'Split path' and Flow link.
  2. Name the new flow node User wants to see the selection.
  3. Add the User asks about coffees we offer flow via the Flow Link panel using the Browse button in the Target section.
  4. Navigate to the transition above name it Selection.
  5. Make sure 'Get input before continuing' is selected.
  6. Add the positive intent Selection and generate a Match.
  7. Hit the 'Save' button.

Test in Tryout

User: coffees
Bot: I understand you would like to talk about coffee. Can you be more specific? Did you want to order a coffee or see our selection of coffees?

User: your selection
Bot: We offer a variety of handcrafted coffee drinks - from espressos to macchiatos to flat whites and more.

User: espresso
Bot: You're talking about coffee. Would you please tell me what you wanted exactly? Did you want to order a coffee or see our selection coffees?

User: order
Bot: Ok, what coffee would you like?