Home / Dialogflow CX / ES2CX Migration Part 7: Migrating an existing Dialogflow ES bot to Dialogflow CX
Dialogflow CX

ES2CX Migration Part 7: Migrating an existing Dialogflow ES bot to Dialogflow CX

The easiest way to migrate a Dialogflow ES chatbot to CX would be to use the Mindomo flowchart, as I described before.

But what if you have an existing ES agent and you haven’t created a flowchart for it?

One option is to construct a Mindomo flowchart for your ES agent. This can be time consuming and also quite error prone.

Another option would be to export the ES agent ZIP file into a CSV format.

In that case, you can use Airtable to help out with this process.

I will take the example of my followup intent bot – it is not a complex bot, but it is quite suitable for this particular example.

Here are the steps:

Convert your agent ZIP file into a tabular format

Go to the Search tool in my BotFlo app.

Upload your Dialogflow ES agent ZIP file.

Your agent ZIP file will be converted into a tabular CSV structure.

Download this CSV file to your local machine.

Upload the CSV file to Airtable

Inside Airtable, create a new base.

Then click on Import table.

Click on the File attachment icon in the popup dialog box

Upload the CSV file you just downloaded from my Search tool.

Select Create a new table in the next window

You will see a preview of the data during the import process.

During the import process, select the data type of InputContext column as Single Select.

Do the same for OutputContext column.

After making these changes, click on the Import button.

Rename the table name to something which is more descriptive (I use followup).

Migration

Now we are ready to do the actual migration.

First, group the table by intent name.

There are four cases you need to consider.

Input context is empty, output context is empty

Next, filter by intents where the input context and the output context are both empty.

There are only two such intents – the default ones. Both of them are already present in the CX bot when you create a new agent, so you don’t have to do anything in this case.

If there are other such intents in your ES agent, you need to add a transition route in your Start page which does not have a target page. In other words, you just remain in the start page if that intent fires.

Input context is empty, output context is non-empty

Next, filter intents where the input context is empty and the output context is non-empty.

Create (or reuse) an intent with the same training phrases. Add a new intent transition route to the Start page using the intent. Create a new target page which has the same name as the output context.

Input context is non-empty, output context is non-empty

Now filter to get the intents where both the input and the output context is non-empty.

In this case, you will add a transition route in the page represented by the input context. The target page will be a page which represents the output context.

So we will add an intent transition route from the await_name page and the target page will be await_email_address

Similarly, we will add an intent transition route from the await_email_address page and the target page will be await_website_url

Input context is non-empty, output context is empty

Finally we will filter the intents where the input context is non-empty and the output context is empty. Usually these intents mark the end of the conversation.

As before, we will add an intent transition route in the await_website_url page, but we don’t need a target page for this route.

Keeping track of your migration process

Create a new “Checkbox” column called Completed in your table.

After you translate each intent, mark it as Completed. This way you can easily keep track of your progress.

Demo

Here is a quick demo of the bot using the Dialogflow Messenger integration

<— End of article —>


This website contains affiliate links. See the disclosure page for more details. 
Check out the Learn Dialogflow ES and Learn Dialogflow CX courses if you would like to learn Dialogflow in depth.
"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

Similar Posts