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:
Add a new output
Let's first expand the current prompt to offer the user several possibilities.
- Open the flow 'Partial understanding: Coffee' in edit mode.
- Select the Plus icon under 'Respond to single synonym: Coffee', followed by 'Continue with' transaction element' and 'output'.
- Select the new transition and make sure the Get input before continuing checkbox are unchecked and the User Intent is removed.
- 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?
.
Add the first flow link
Now it's time to add a flow link if the user wants to order a coffee.
- Select the Plus icon below the output 'Ask user what was meant', hover over 'Continue with' and select Flow link.
- Select the transition and name it
Order
. - Make sure 'Get input before continuing' is selected.
- Add the positive intent
Order
and generate a 'Match'. - Navigate to the new flow node and name it
User wants to order a coffee
. - Add the User wants to order a coffee flow via the Flow Link panel using the Browse button in the Target section.
Add the second flow link
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.
- Select the Plus icon below the 'Ask user what was meant', followed up with 'Split path' and Flow link.
- Name the new flow node
User wants to see the selection
. - Add the User asks about coffees we offer flow via the Flow Link panel using the Browse button in the Target section.
- Navigate to the transition above name it
Selection
. - Make sure 'Get input before continuing' is selected.
- Add the positive intent
Selection
and generate a Match. - 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?