Did you know that Dialogflow will allow an intent to be mapped even if the entity you specify is missing? For example, suppose you create an agent with a single intent with exactly one userSays:
"I want to book a ticket to @sys.geo-city"
Even if you added the geo-city entity in template mode, there will be occasions when Dialogflow will map a phrase such as
"I want to book a ticket to Kovai"
As it happens, Kovai is a proper city in south India but it usually goes by the name Coimbatore. However, the name Kovai is very common in colloquial use. Notice what happens inside the Dialogflow console:
You can notice three things:
- The intent did get mapped
- The geo-city param is empty
- The Default Response crashed (that is, we have added a response in the Text response section but since Dialogflow is unable to extract the entity value, it doesn't display anything)
Expect these errors
So the tip is to
a) be aware of this issue and
b) to plan for suitable ways of mitigation
Obviously, you would need to use a webhook to validate the input, but this is a very good example of a scenario where you can send slot filling into a proper loop. While the user can recover in this case by using the alternate name (Coimbatore) in a slot filling intent, the problem can become a lot harder if you were to use it to collect, for example, someone's first name.
- Reader Question: What if a specific system entity isn’t available in all languages in a multi-lingual bot?
- How much can Machine Learning ACTUALLY help with answering free-form questions?
- Dialogflow Toolkit vs MBD Membership
- Dialogflow Knowledge Connector : Pros and Cons
- How to integrate Telegram with Dialogflow
- Why I avoid using slot filling (required parameters) in Dialogflow
- Free Tool: Convert your WordPress website into a Dialogflow FAQ chatbot
- Dialogflow Mega Agent Tutorial
- Reader Question: Will followup events work when an intent has an input context?
- How to learn Dialogflow in a week