Website Name Change
I have changed the name of this website from Mining Business Data to BotFlo. I am offering a 60% off discount on both my Dialogflow ES and Dialogflow CX courses till April 20th 2021 for people who can help me spread the word about my new website.
In this article, I provide some tips to help you build your Dialogflow bot quickly (and as a result within budget). It is mainly intended for people who are technical but not programmers, although everyone will find something useful in these tips.
Tip #0 Time vs money tradeoff
You will either invest a fair chunk of your time (learning), or your money (finding the right person to build your bot). Expecting otherwise is never a good strategy.
Having said that, there are some obvious ways in which you can squander your resources – especially time, when it comes to building Dialogflow bots. These tips will save you a lot of time.
Tip #1 Learn the must know Dialogflow concepts
Why does this matter?
I got an email from someone who wrote (paraphrasing):
“I developed a chatbot in Chatfuel which provides resources about non-profits given the city name. I am migrating it over to Dialogflow. But there are tens of thousands of cities in the world, and Dialogflow only allows 2000 intents!”
This is a person who never invested the time to learn the must-know concepts in Dialogflow.
Otherwise they would know about entities.
You can take a look at the article on the must know Dialogflow concepts to learn more.
Tip #2 Learn about the must know Dialogflow features
Why does it matter?
It is quite common for me to get questions like these:
If you are familiar with the must know Dialogflow features, you can save yourself some time as you are building your bot.
Tip #3 Learn about the Disgraceful Default Degradation (D3) problem
Now we are getting into some really opinionated territory. 🙂
There is a concept in web programming called “graceful degradation”. It is about figuring out ways to help the user when they don’t follow expected behavior. An example: the user is using a very slow internet connection. But you use alt tags on all images so they can at least see what the image is about without having to wait for the image to fully load. So you have allowed the “degradation” of the user experience to follow a more “graceful” path.
Dialogflow has many default settings which don’t degrade that gracefully. Hence, disgraceful default degradation. 🙂 
A few examples:
- Why you should avoid slot filling
- What is the correct value to use for the lifespan of an output context?
- Followup intents aren’t always a good idea
Tip #4 Use a flowchart
You should first design a conversation flowchart when you build your Dialogflow chatbot.
- It helps you collaborate with others more easily
- It forces you to specify your bot’s behavior properly
- It is much easier to communicate requirements with your developer
In my guide to Dialogflow flowcharts, I provide some tools and some ideas to get you started.
Tip #5 Understand candidate intents
Here is a tip which will help you avoid the perpetually impatient overlords on Stack Overflow who instinctively downvote all your questions. 🙂 On the other hand, in their defense, it would also be a big help if people did more homework before asking questions. Like reading the articles listed here, for example 😉
Learn and understand how candidate intents work. It is probably the most effective way to debug your Dialogflow bot.
Tip #6 Learn the basics of webhooks
I have written a very simple guide to Dialogflow webhooks using the Python programming language.
The main idea behind the guide is that you can understand the basics of what is going on under the hood in Dialogflow webhook calls even if you are not a programmer.
Tip #7 Learn about and use tools
One of the best things about Dialogflow (in my view) is its extensibility.
For example, the Dialogflow agent ZIP file allows you to create an entire FAQ chatbot by just typing out all the intent definitions within a CSV file.
Based on the same idea (of the agent ZIP file), you can convert your entire WordPress website into an FAQ chatbot like the one I have created here.
Bonus Tip #8 Learn to code
Even though there are a lot of things you can learn in Dialogflow without writing code, you will need to hire a developer if you plan to build a non-trivial bot. But you can always learn the basics of coding.
Yes, a big reason to use Dialogflow is that you don’t want to become a programmer. Still, learning the basics of coding will actually make your life much better for the following reasons:
- you can reason about Dialogflow webhooks much more easily
- in turn, this would help you design your conversation layer in a better way. For example, you can avoid calling webhooks in each intent
- you can communicate your requirements to the developer more easily
- you will get a better picture of how the database access code works
- coding is a very useful skill, and isn’t going to become less useful anytime soon! It’s not as if the time would be wasted.
 To be honest, I think Dialogflow is beautifully designed on the whole. In my view it is the best NLU powered bot framework for people who aren’t highly technical. But using Dialogflow defaults is often a big time waster.