What is slot filling?

When I first started consulting in Dialogflow, I noticed a pattern. A lot of clients who came to me had made a complete mess of their chatbots, and all of them were using the slot filling (required parameters) feature.

When you use required parameters in Dialogflow, you are telling Dialogflow – “please ensure that this parameter is actually collected from the user”. When you mark a parameter as required, it will trigger slot filling – and Dialogflow will keep prompting the user until they provide the input. As of this writing (May 2022), there isn’t any way to limit the maximum number of retries.

What about Dialogflow CX?

Dialogflow CX was introduced only in September 2020, and this article was written before that. CX introduces the concept of retry handling during slot filling, meaning you can now restrict the number of retry attempts. This guide refers ONLY to the earlier version of Dialogflow (i.e. ES), and not to Dialogflow CX.

I don’t recommend that people use slot filling in their Dialogflow chatbots. It makes your bot brittle, unpredictable and hard to reason about.

It is quite possible there is a little bit of a self-selection bias going on here. Nearly all my clients find me via my website by doing an online search for some Dialogflow related question.

This means they were already working on a chatbot which couldn’t be properly built with slot filling. Since this self-selecting group might have been a large portion of my clients, I may be biased on this topic.

Earlier, I had written many articles on my website about this topic. In this guide, I have consolidated them into a single article.

Slot filling Example Bots

If you are not familiar with how slot filling works, I recommend checking out the following articles:

How to use slot filling in Dialogflow ES

How to confirm or update user input after slot filling in Dialogflow ES

How to use webhook for slot filling in Dialogflow ES