If you are creating a large FAQ chatbot in Dialogflow, typing out all the intentsBoth Dialogflow ES and Dialogflow CX have the concept of int... More one by one can be a slow and painful process.
5 Click on Download button to download the agent ZIP file
6 Use the Restore Agent ZIP file feature in Dialogflow ES and your bot will be ready!
7 Now modify the CSV file based on your own data
The tool above is a demo, and allows you to convert a CSV file with two columns: Query and Response into a Dialogflow agent ZIP file. This allows a single training phrase and a single response per intent, and autogenerates a slug derived from the training phrase as the intent name.
If you want to use custom intent names and multiple training phrases and multiple responses per intent, check out the 4 column FAQ Bot Generator demo
Note: This is my old website and is in maintenance mode. I am publishing new articles only on my new website.
If you are not sure where to start on my new website, I recommend the following article:
This article is about using a spreadsheet software like a CMS for creating your Dialogflow FAQ chatbot. That is, you will be manually assigning the Intent ID which groups all information for a single intent. Its goal is to speed up input for large-ish Dialogflow FAQ bots.
I don’t think that is what you are talking about. If you tell me your end goal, maybe I can give some suggestions.
>> Do the intent IDs need to be in sequential order, or can they be any random number?
They can be any random number, but you do need to use a unique number per intent obviously.
I think it is fair to say the rest of your questions boil down to whether or not my app can help with two way updates. Before I answer that question, can you tell me a little bit more about your use case
a) what kind of bot are you creating?
b) what kind of training will you be doing? (i.e. using system entities, or developer entities)?
Also, is there any reason you cannot use a single entity to represent all your products, and use a webhook to fetch the answer? That might make your life much simpler.
Hello Aravind,
I have a question about your application. I would like to be able to update the intents that I have on a regular basis. Is it possible to update the intents and integrate new intents into existing hierarchies and contexts with your app?
1 If you mean update the intents from the CSV file, then yes.
2 You cannot, however, update the intents in Dialogflow and convert the ZIP file in Dialogflow into a CSV format, because of the inherently flat structure of the CSV file.
3 As for hierarchies, the CSV format cannot naturally support hierarchical intents (i.e. followup intents) again because of its flat structure.
4 While in theory it is possible to modify the app to support followup intents, it will also make the UX a lot more confusing.
5 My app does support contexts though, and you can update the contexts (and their lifespans) in the CSV and recreate the ZIP file.
In theory, this could happen if the language of your agent isn’t actually English, and you use the _en suffix for the user says JSON files. If you use a non-English language you should look up the corresponding language code and use it in the usersays file names.
Excellent tool! I had to wait 2 days before the app was unlocked on your free course, but was worth the wait. You should note: DialogFlow will not accept ZIPs with any intent names greater than 100 characters.
A note for those reading this comment: the app is now a paid app (with a very tiny, token payment). This stops the spammers who are using disposable email addresses to sign up.
Another update. I don’t offer the limited app anymore as it confused people a lot. If you want to see a demo of the app, you can check out the link mentioned in this post.
Hi Aravind.
Your tool is awesome, but it doesn’t work with more than one response. I think that it should be possible if you find a way to make a comma in between responses (this should still just be in one column). For example:
IntentID=1; IntentName=Hello; Query=Hello; Response=Hi, Hello;
Hi Ame,
I have tested that it works with multiple responses, but only if you split the multiple responses into multiple lines in the original CSV file. Also the purpose of putting it into two different lines is that otherwise you will need to deal with the exact same issue you are talking about here – you need a separator to indicate the multiple lines (for example a comma like you have used here), and a) it is hard for people to write such text compared to simply putting it into multiple lines and b) you can run into parsing issues.
Hi Filip,
This means you need to specify the custom payload JSON inside the CSV file, which I think is very hard to do. Do you mind posting your sample CSV file online where I could take a look at the custom payload’s format?
Hi is there a way to explore or extract just the Intent IDs?
This article is about using a spreadsheet software like a CMS for creating your Dialogflow FAQ chatbot. That is, you will be manually assigning the Intent ID which groups all information for a single intent. Its goal is to speed up input for large-ish Dialogflow FAQ bots.
I don’t think that is what you are talking about. If you tell me your end goal, maybe I can give some suggestions.
Is there any place that I could find more pre-built agents than what exist in Dialogflow?
Not that I know of, unfortunately.
Hi, is there a way I can download all my intents along with all the training utterances?
Yes, you can use the Export Agent feature and download the whole thing as a ZIP file.
Great tutorials!
Do the intent IDs need to be in sequential order, or can they be any random number?
Can I use your tool to upload new intents? Where I select the “Import from zip” option?
I am looking to train the agent, by uploading new intents, or even new training phrases.
In order to train the agents, I would need to reupload a new zipfile and restore agent?
Or would I need to:
1- export the agent,
2-convert the Json file back to csv (in order to get the list of intents)
3. then add in my new intents,
4. then convert back to the zip file using your tool?
>> Do the intent IDs need to be in sequential order, or can they be any random number?
They can be any random number, but you do need to use a unique number per intent obviously.
I think it is fair to say the rest of your questions boil down to whether or not my app can help with two way updates. Before I answer that question, can you tell me a little bit more about your use case
a) what kind of bot are you creating?
b) what kind of training will you be doing? (i.e. using system entities, or developer entities)?
Cool thanks for your reply!!
a) I will be creating an FAQ bot in a sense. That explains which products are needed based on the user input.
So I would need to update the bot with new intents (new products).
b) for the training, I will be using Developer entities. Each new product is an entity.
I would need to train the bot in various ways, the user will ask for this product.
I wrote a reply to your question.
Also, is there any reason you cannot use a single entity to represent all your products, and use a webhook to fetch the answer? That might make your life much simpler.
Hello Aravind,
I have a question about your application. I would like to be able to update the intents that I have on a regular basis. Is it possible to update the intents and integrate new intents into existing hierarchies and contexts with your app?
Manuel
1 If you mean update the intents from the CSV file, then yes.
2 You cannot, however, update the intents in Dialogflow and convert the ZIP file in Dialogflow into a CSV format, because of the inherently flat structure of the CSV file.
3 As for hierarchies, the CSV format cannot naturally support hierarchical intents (i.e. followup intents) again because of its flat structure.
4 While in theory it is possible to modify the app to support followup intents, it will also make the UX a lot more confusing.
5 My app does support contexts though, and you can update the contexts (and their lifespans) in the CSV and recreate the ZIP file.
i followed the procedure that you mentioned and my new intents got added but the training phrases were not there
In theory, this could happen if the language of your agent isn’t actually English, and you use the _en suffix for the user says JSON files. If you use a non-English language you should look up the corresponding language code and use it in the usersays file names.
Hi Aravindmic, where can I find the upload csv file in the paid course? The link is leading me around a loop.
Sent a reply via email
Excellent tool! I had to wait 2 days before the app was unlocked on your free course, but was worth the wait. You should note: DialogFlow will not accept ZIPs with any intent names greater than 100 characters.
A note for those reading this comment: the app is now a paid app (with a very tiny, token payment). This stops the spammers who are using disposable email addresses to sign up.
Another update. I don’t offer the limited app anymore as it confused people a lot. If you want to see a demo of the app, you can check out the link mentioned in this post.
Please support Korean language.
– https://botflo.com/csvupload/
I doubt I will be able to do that. If it is something you need very badly, you can purchase the product and modify the source code to support Korean. https://courses.miningbusinessdata.com/courses/dialogflow-bot-generators
Hi Aravind.
Your tool is awesome, but it doesn’t work with more than one response. I think that it should be possible if you find a way to make a comma in between responses (this should still just be in one column). For example:
IntentID=1; IntentName=Hello; Query=Hello; Response=Hi, Hello;
Hi Ame,
I have tested that it works with multiple responses, but only if you split the multiple responses into multiple lines in the original CSV file. Also the purpose of putting it into two different lines is that otherwise you will need to deal with the exact same issue you are talking about here – you need a separator to indicate the multiple lines (for example a comma like you have used here), and a) it is hard for people to write such text compared to simply putting it into multiple lines and b) you can run into parsing issues.
Thanks for a great documentation Aravind!
I have a question though. Do you know if it’s possible to return with a custom payload instead of the text?
Hi Filip,
This means you need to specify the custom payload JSON inside the CSV file, which I think is very hard to do. Do you mind posting your sample CSV file online where I could take a look at the custom payload’s format?
I have this request too! Would love an answer! Thanks in advance. I bought your tool and it is great. can it also build actions?
Ben, thanks for the feedback. The tool already supports actions. Will reply to your other questions in the course.
Both the article, and the tool, are very helpful. Thanks Aravind.
Nice, thanks very much Aravind, it is very helpful.
Hey Deborah, just a heads up: I am working on a tool to help with this.