Recently, I took a look at StackOverflow questions on the topic of Dialogflow. A lot of them were unanswered.
Here are some stats when I last checked:
That third point is actually a pretty interesting stat, as it says that even when questions receive answers, they are not very helpful for the asker (well, plus sometimes the asker doesn’t upvote the answer)
I think there are some important reasons why these questions are going unanswered, and they may be somewhat inherently difficult problems to solve.
Recently I wrote an article about the 4 layers of a Dialogflow chatbot. It is just a useful representation to understand what is going on inside your bot.
Let us call the UI and middleware layers the “front layers” as they are closest to the user, and the conversation and fulfillment as the “back layers” as they are farther from the user.
Generally speaking, people don’t have questions about the front layers as they tend to be invisible. For example, the 1-click Dialogflow web demo integration takes care of both the front layers and you only need to worry about the back layers.
Similarly, the typical 1-click integration with Facebook, Slack, Skype etc already handles the front layers for the user.
This is quite important to note – there is a lot of interaction between the conversation (NLU) layer and the fulfillment layer, which means they are heavily intertwined. And this has some implications when you ask questions on SO.
With that background, here are the reasons why I think Dialogflow questions go unanswered on StackOverflow.
This is probably the biggest challenge when posting questions. Since the Conversation Layer and the Fulfillment layer are so heavily intertwined, you cannot describe only one layer and leave out the other.
This is usually the first reason your question goes unanswered.
As it turns out, even the Conversation layer description isn’t very simple to completely describe.
When you ask a Dialogflow question, you need to provide a complete description of your agent so people can understand what is going on. This isn’t very easy to do.
First, you probably don’t want to just share the agent’s ZIP file (which completely describes the agent) because you don’t want to reveal some private info (e.g. your webhook URL). Plus people are not always going to be downloading your agent ZIP file just to give you an answer.
So with that option ruled out, there is no simple way to convert all the information you have inside your agent (the training phrases across all your intents, mainly) into a format that can be shared easily. I tried to do something like this with my Dialogflow viewer, but it isn’t very hard to see that it is a somewhat inadequate tool.
By the way, it might be an excellent idea to create a tool which simply iterates through the intents in an agent ZIP file and outputs all the training phrases in plain Markdown format. This will be quite easy to share on StackOverflow even if it isn’t a full description of the agent. Plus it will be better than pasting enormous screenshots of intents which somehow leave out the important bits. 🙂
The difficulty of completely describing the agent is the second reason why your answer goes unanswered.
Quite often, questions on Dialogflow can be reduced to the following:
“I expected Intent A to fire. Intent B fired instead. Why?”
If you are asking this question, it is very likely you don’t understand how candidate intents work.
Not understanding how candidate intents work is the next reason your question goes unanswered.
In my view, we are only at the very beginning stages when it comes to creating and designing multi-turn chatbot conversations. For example, while I think slot filling may be a great concept, in my view it is a feature which should be avoided.
In addition, there are things like the influence of the context lifespan on your eventual conversation flow.
This is why I generally recommend an explicative approach to Dialogflow even if it means more work initially.
StackOverflow is mainly concerned with answering questions about coding. This is why questions on designing conversations are not easy to ask or answer. When questions (and answers) can be a bit opinionated, StackOverflow can be a very poor place to submit questions. Even the folks who run the site agree with this.
For example, I would think a lot of people would consider my views on Dialogflow conversation design to be opinionated. So providing these opinions on SO would be a big challenge, as I might end up spending more time defending my opinions than on actually answering the question at hand.
Free: Dialogflow ES Crash course for non-programmers I recently changed the name of my website from Mining Business Data to BotFlo. To help spread the word, and to hopefully get people to bookmark my website, I am making a set of my training courses free for a few weeks. Learn more
"The magic key I needed as a non-programmer" The custom payload generator was the magic key I needed (as a non-programmer) to build a good demo with rich responses in DialogFlow Messenger. I've only used it for 30 minutes and am thrilled. I've spent hours trying to figure out some of the intricacies of DialogFlow on my own. Over and over, I kept coming back to Aravind's tutorials available on-line. I trust the other functionalities I learn to use in the app will save me additional time and heartburn. - Kathleen R Cofounder, gathrHealth