How to move bot from Dialogflow CX to Dialogflow ES?
I got this question in a YouTube comment.
Unfortunately, this viewer has it completely inverted.
Consider these things:
- Dialogflow CX has no free tier (update: there is now a free trial)
- CX has a much steeper learning curve
In fact, here is a Twitter exchange I had with a CX developer advocate. It is a good idea to read it carefully one more time.
Especially this response:
So the more practical approach would be to begin building your bot in Dialogflow ES. If and when it becomes too complex for ES, you should consider moving it to CX.
A systematic process for migrating to Dialogflow CX
So how to do this systematically?
Learn Dialogflow ES thoroughly, and move to Dialogflow CX when your bot becomes too complex for ES.
How to learn Dialogflow ES thoroughly?
I am obviously biased in favor of my own course material. 😉 But it would be a systematic process.
- Learn Dialogflow basics well using the step by step Dialogflow guide
- Learn about the must know features
- Learn about ES features you should avoid from my Dialogflow Blackholes course
- Understand how to design more complex Dialogflow conversational flows using the Dialogflow Conversation Design course
- Most important: Understand the flowcharting process I recommend and actually use it.
The quickest (and probably most efficient) way to do this would be to get my Core Dialogflow course bundle.
When to start using Dialogflow CX
So when should you start using Dialogflow CX?
Here is my rule of thumb: if you find that the flowchart you have created using my process is too complex, then I would recommend moving to CX at that time.
This has some obvious benefits:
- You can use the free tier of ES initially
- You will get the benefit of using all the existing Dialogflow ES integrations
- You will already have a working proof-of-concept Dialogflow bot. This completely de-risks your CX bot. Otherwise you will start paying before you even know if your bot will work as expected.
Import agent from from Dialogflow ES to Dialogflow CX directly?
Here is a question I received on my YouTube channel:
Is it possible to import the agent from Dialogflow ES to Dialogflow CX directly?
The short answer is No.
Remember: you can also completely ignore your existing ES bot and just start from scratch with CX – probably a good idea at the moment.
But if you are absolutely determined to migrate your ES bot to CX, this article gives you an important tip which will probably make the process smoother.
The primitives used in Dialogflow CX are very different from ES
I mentioned this in my previous article – a method to evaluate multiple bot frameworks.
Essentially, Dialogflow CX uses entirely different primitives compared to ES, so it is more of a “rewrite” than a mere “redesign”. This makes it much harder to directly import an ES agent to CX.
Having a flowchart for your ES bot will help
If you used the flowchart system I have described in my free “flowchart to Dialogflow chatbot” course, the migration process will definitely be much easier. On the other hand, if you didn’t start with the flowchart process I have described, you probably shouldn’t waste your time and just create the CX bot from scratch.
So why does the flowchart help?
For one thing, my flowcharting system forces you to make your ES bot’s conversation state machine more explicit – and remember you need to first design the state machine if you are building a reasonably complex CX bot.
I created an example of migrating from ES bot to CX in my Dialogflow CX course (see below).
It starts with getting user’s first and last name using ES first, and then shows you how you can do the same thing using a CX bot. On the one hand, that’s a fairly simple example. On the other hand, it is a pretty good introduction to the migration process.
Don’t migrate non-contextual FAQ Bots
If you are building a non-contextual chatbot – basically a one-and-done chatbot which just answers FAQ questions without any follow up answers – you probably don’t even need a CX bot.
By the way, I have created a tool which can help you create such an FAQ bot with a single click. So another way of looking at the same thing: if your ES bot can benefit from BotFlo’s FAQ Bot generator, it probably isn’t a good candidate for migration.
CX is primarily meant for the use case where your Dialogflow ES bot’s flowchart gets fairly complex – I also mention this in my article about when to migrate from ES to CX.
For some additional explanation about when CX is necessary, also read my article on Dialogflow CX vs ES where I talk about the Twitter conversation I had with a Google developer advocate.
Understanding Dialogflow CX parameters
I got this comment on YouTube recently:
please make a tutorial about parameters on dialog flow cx. its really confusing compare to dialogflow ES.
While the comment is true, there are three things you can do to make it easier to learn how CX parameters work.
Learn the basics of ES first
I have already mentioned this before, but I think people should first learn ES before learning CX. Jumping right into CX is quite similar to trying to run before learning how to walk. Plus, ES is practically free, so you can do all the mistakes you want while learning.
Understand ES limitations
The design of Dialogflow CX is intended to rectify the problems you face in ES when building complex conversation flows. And you don’t have to take my word for it. That’s what a Google employee pointed out on Twitter.
Ask if you really need a Dialogflow CX bot
Some people want to learn CX just to put it on some kind of checklist on their list of skills. Let us suppose you are not that person.
In that case, you should first build your bot in ES and see how far you can get. Then you can decide whether you need to use CX.
In my Dialogflow CX Beginner Tutorial, I explain the criteria for deciding if you need a Dialogflow CX bot.
Tips to learn how to use parameters in CX
Once you do these three things, you can actually understand CX parameters much more easily.
For example, obviously Dialogflow ES slot filling is a mess, so the form parameters introduced in CX provides a nice way to fix the issues while keeping the core functionality working well. If you never understood why I asked my clients to stay away from slot filling in ES, the way form parameters work in CX will probably make very little sense.
You can use input and output contexts to retain information provided by the user. But these contexts also made it hard to create fine grained conversations (such as a Quiz bot) because you always had to be mindful of the problems caused by a large lifespan. CX has completely eliminated this problem by getting rid of contexts and using session parameters which can “store” input from practically any point in the conversation.
I am not saying it is impossible to make beginner level tutorials for this topic. I am just saying that it will take a lot of time and effort to produce them if they actually need to be at the beginner level. Instead of waiting for these tutorials to show up, you would probably be better off following these steps:
1 Learn why slot filling is a problem in ES, and think of ways to design your conversation to avoid it. This will give you a LOT of insight into how ES contexts work.
2 Understand the challenges of using a large context lifespan, and think of ways to design your conversation using a context lifespan of 1. Again, this will give you a lot of insights into how you can store information provided by the user throughout the whole conversation.
4 By now, you are already very clear on what is “missing” in ES. Now import all the prebuilt agents in Dialogflow CX and start testing them one by one, and CX parameters will start to make a lot more sense.
Or, skip all these steps and just go through my Dialogflow CX course (preview at the bottom of this page). I go over the different kinds of parameters, how they compare to Dialogflow ES, why they are better in Dialogflow CX and more.
Learn Dialogflow CX systematically
You can learn Dialogflow CX systematically using my course. Get 20% off the Dialogflow CX course till end of Jan 2021 using this link.
While I have lots of Dialogflow ES courses, all the material for learning Dialogflow CX will be consolidated into this one course. I might make an exception for some tangential material, but all the core concepts will be presented in this one course.
And as I keep adding new material, I will also be increasing the price. So by buying in Jan 2021, you will be getting the course at the lowest (i.e. launch) price.
Understanding the state machine
Building the Vendee Bot
CX vs ES Bot: Get user first and last names
Flowcharts and Test Cases
Entities and Parameters
CX Webhooks using Python
Dialogflow CX Slot Filling
Conditional routes with expressions
- Actions Builder vs Dialogflow CX
- 5+ ways Dialogflow CX is better than Dialogflow ES
- How to bulk upload training phrases for Dialogflow Messenger
- Dialogflow CX vs ES: First look
- How to send rich responses from webhook to Dialogflow Messenger
- Dialogflow CX now generally available
- Dialogflow CX Missing Features
- Dialogflow Messenger integration for CX: First look
- Dialogflow Conversation Analytics Tips
- A simple method to evaluate multiple bot frameworks