In this article, I talk about the list of features a tool/service should have to be able to create Dialogflow conversation flowcharts quickly and easily.
I will specifically review three tools for their suitability for this purpose: XMind, Mindomo and draw.io.
1 Multiline nodes
I recommend that you use a single node to capture/represent an entire intent. That means you should have both userSays and the bot's response inside the single node. It makes your flowchart a lot more readable.
2 Format different lines inside a single node with different styles
Let us say I add the intent name into the node in the flowchart above. It would be helpful if I have a way to visually distinguish the intent name from the rest of the text inside the box, by using bold, italics, colors etc.
3 Support different shapes for different nodes
I recommend using different shapes to signify/represent different things in your Dialogflow flowchart: rectangle is an intent, ellipse is a context, and a circle is the alias for an output context. This means the tool should provide a way to use different shapes for different flowchart nodes. This is quite a common feature nowadays, although I have seen some free mindmapping tools (desktop apps) which don't provide this feature.
4 Automatically reformat layout to org-tree structure
This is actually a really important feature. And unfortunately it is something which is missing in nearly all the tools I have reviewed. In fact, this was the single biggest reason why I originally selected XMind as my recommended tool.
It is pretty obvious that the layout should auto-reformat when you are creating conversation flowcharts, unless you want to spend all your time manually moving nodes around to fit a certain structure.
The org-tree structure is important (compared to the usual hub-and-spoke radial arrangement) because you want a visual depiction of the "flow" of the conversation. In other words, if you were to print the text inside a series of nodes in top to bottom order, you should actually produce a conversation transcript.
For example, if you were to do this for the flow diagram from section 1, you would get the following:
5 Support drill down into individual branches
When the mindmap gets larger, it would be very helpful to focus on specific branches of the "conversation tree" without being distracted by other branches. If the tool supported a drill-down feature, that would be very helpful.
Here is the before drill-down and after drill-down for the flowchart:
You can now focus completely on the flowchart for just the Python branch.
6 Node labels
I recommend using node labels (which are outside the node boundary but attached to it) to simplify naming the nodes.
As you can see in the image above, it is easier to label (and name) the intent and the context in the image if the tool supports node labels.
Now, the other option is to add this "meta" information into the node itself (similar to how I named the intent in section 3). It is a little more clunky, but the lack of this feature is not a major problem.
7 Support adding notes to individual nodes
This is also a very important feature. Everything that you cannot capture within the individual node, should be captured in a note associated with that particular node.
drawIO: No (to the best of my knowledge)
8 Easy to share
This doesn't need an explanation. You want to be able to easily share your mindmap with others.
Mindomo: The PDF export option is paid. You can publish your map as a public map and share the link, but that is probably not something you would want to do. For private maps, you can also share links with specific email addresses, if the other users have Mindomo accounts.
XMind: Since XMind is a desktop app, you can only share the XMind file itself. If you update the map, you need to send it again. 🙁
drawIO: Similar to Mindomo since it is a web based tool.
9 Easy to collaborate
Depending on how many people are working on the project, this can be a nice-to-have or a need-to-have tool.
Obviously, it helps if the tool is a web based one and not a desktop app.
If you are the kind who also wants visually/aesthetically pleasing mind maps, this might matter to you.
drawIO: You need to work very hard to get it to look nice
Finally, we come to the important question of price.
Nothing can beat draw.io, because you can do everything for free. 🙂
But your time is not free (usually)! So unless you want to spend all your time manually reformatting nodes, you probably want to use the appropriate tool for the purpose.
Mindomo gives you three free maps, but some features (such as export to PDF) are not available until you upgrade to the paid service.
Here is Mindomo's pricing:
That's about $40 for 6 months.
Initially, I used to think the trial version of XMind was free. But apparently, it is not free for commercial use. If you are only learning, you can use the free version of XMind. But if you use it for creating a commercial bot, you need to pay for the tool.
The subscription version of XMind is $34 for 6 months (you can only see the price after you register, so you can check it out for yourself). You get a further discount if you go for the yearly plan (~$54 a year).
Note: Steven has pointed out in the comments that you can also buy XMind 8 desktop license for $129. This means you can make a one time payment and own the software forever, as long as you do all the work on the same machine. It can be used on up to 2 computers, according to their product description page.
If you just want to own a product and not worry about remembering all your monthly payment subscriptions, purchasing XMind 8 might be a good choice.
Mindomo is a bit more expensive than the subscription option for XMind, but the difference in price is quite small. Plus, Mindomo is probably the better option when you are working as a team as it is actually a web-based tool.
Learn how to create Dialogflow flowcharts
In my Dialogflow Flowcharts course, I explain how you can design conversation flowcharts for Dialogflow quickly and easily. If you follow my system, you can go from flowchart to a working chatbot very quickly. (And this is especially true if you have very simple webhook logic).
There are also other tools you can use for this purpose: FreeMind, MindNode, Visio, Coggle etc.
My suggestion is to turn this article into a checklist and see how many of these your chosen tool can support. Then ask yourself if you are willing to spend the time figuring out workarounds for the unsupported features. And also ask yourself how much your time itself is worth.
It is likely you will just go with XMind or Mindomo.
- Using Collect.chat for preNLU bots
- Reader Question: How to get some sample training data for Dialogflow?
- Getting the top 3 (or top N) intents in Dialogflow: An experiment
- Dialogflow Regexp (regular expression) entity
- Using Dialogflow for educational bots
- Chatbot makes $3 million in sales in 1 hour
- Reader Question: Intent based FAQ bots vs knowledge based FAQ bots
- Should you use Dialogflow from scratch?
- 3 ways Airtable can speed up your Dialogflow prototype development
- Automatically generating a rich Dialogflow website chatbot