How to improve the accuracy of Dialogflow ES

In this article, I will provide some tips on how you can improve the accuracy of your Dialogflow ES bot.

Use the explicative approach

You should avoid some features in Dialogflow ES, like slot filling and using the default context lifespan (usually set at 5).

I have explained this approach in my article on using the explicative approach, which suggests that users should design their conversation flow in such a way that it is easy to maintain.

Increase cohesion and separation

In my article about Dialogflow training phrase quality, I explain the concepts of cohesion and separation.

Loosely defined, the cohesion represents the intra-intent similarity of training phrases and the separation represents the inter-intent non-similarity of training phrases.

Using the verb.noun method to auto-generate intents from chat logs is a good example of this. (Can you explain why?)

Autogenerate test scripts for training phrases

If you add automated conversation tests to your chatbot, you will be able to maintain the accuracy of your bot more easily.

And an easy way to add automated conversation tests is to use the training phrases in your intents and add a filler word at the end of the sentence.

Avoid adding user utterances from the Training module into your intent

One of the easiest ways to destroy the accuracy of your bot is to move your user utterances from your Training module into your intent.

Instead, give some thought to what you are adding. Do you really need to add the entire user utterance? Can you copy paste a part of the user utterance into the intent training phrase, for example by omitting superfluous parts? At best, this will allow you to increase the cohesion of the intent. At worst, it will make sure you do not decrease it.

Add true positives and true negatives into your test script

One of the easiest ways to manage the accuracy of your chatbot is to add the true positives and true negatives into the test script.

This helps in two ways.

Adding true positives into your test script helps maintain consistent behavior for users. That is quite obvious.

Adding true negatives (these are almost always swear words and people trying to mock your bot) into your test script also helps your bot because it gives you real world data that will make sure your bot doesn’t answer questions which don’t have to be answered.

I explain how to do all this systematically (including sample Python code) in my “Improving Dialogflow ES accuracy” course.


✅ = Sample Lesson 

Basic Terminology

Don’t set up your bot to fail ✅

Regular vs fallback intents ✅

Deflection rate definition ✅

Accuracy definition ✅

Deflection rate vs accuracy ✅

Step by step process to improve Dialogflow ES accuracy

Why chatbots are so brittle ✅

Auto Analyze chat logs ✅

Understand the shape of your bot ✅

Increase quantity and quality of training phrases

Quickly debug your bot

Fail gracefully

Update your bot without breaking it

Measure and improve accuracy

Fix false negatives

Fix false positives


Don’t delete the Default Fallback Intent

Understand Candidate Intents

Avoid the slot filling feature

Simulate follow up intents

Understand cohesion and separation

Context Lifespan

Training phrase quality

Regression testing


Training module

Wildcard entities

Short utterances

Knowledge Base

Mega Agents

Voice bot accuracy

Managing large Dialogflow ES FAQ Bots

Three must know concepts

Small talk

Conversation Testing

Avoid 1-click training

False positives and false negatives

Test coverage

Quantifiable metrics


Automated Testing Basics

The two steps you need to do ✅

Test coverage

Slot filling

Context lifespan

The problem with using exact training phrases

Utilizing true positives and true negatives

A neat trick: filler words

Automated Testing Implementation using Python

Why pytest and PyCharm ✅

Project directory structure

CSV Test Script

Service account JSON file

pytest setup

Code walkthrough

Need some help?

Sample Code

<— End of article —>

This website contains affiliate links. See the disclosure page for more details. 
"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
"Much clearer than the official documentation to be honest"

Thanks a lot for the advice (of buying and following your videos)! They helped a lot indeed. Everything is very clear when you explain, much clearer than the official documentation to be honest 🙂

Neuraz T
Review for Learn Dialogflow CX
"I will strongly recommend this course because even I can learn how to design chatbot (no programming background)"

I think Aravind really did a great job to introduce dialogflow to people like me, without programming background. He organizes his course in very clear manner since I have been a college professor for 20 years. It is very easy for me to recognize how great Aravind’s course is! Very use-friend and very easy to follow. He doesn’t have any strong accent when he gives the lectures. It is so easy for me to understand. Really appreciate it.

Yes, I will strongly recommend this course because even I can learn how to design chatbot (no programming background) after studying Avarind’s course, you definitely can!

Ann Cai
Review for Learn Dialogflow ES