Chatbots are the latest craze in the market. They are fascinating and it seems that everyone wants one for their enterprise. Since I started working with bots a mere year and a half ago, many new tools, platforms, and technological innovations have been released – Chatfuel, DialogFlow, Botsify, Motion.ai, Wit.ai, and countless chatbot development platforms to name a few. But it’s not all just small startups. Giants such as Microsoft and Oracle have come up with their own cloud-based bot development platforms too. In a short time, the number of innovations this area has seen is truly amazing.
So, as a chatbot developer and promoter I have a lot of choice. But at the same time, choosing the best platform to propose to a client is a big question. Which one would best fit the needs of my customer?
It is very challenging to judge these platforms and tools. So, my advice to you is to start out with a few simple questions and always check use cases, requirements, and needs before you choose. Almost all bot development frameworks have a combination of the features I’ve mentioned below, but some are must-haves. Let’s take a look at these in detail:
The platform should feature basic support for natural language processing (NLP). You don’t need to build your own APIs to understand incoming user inputs. What you should look for is language support, and how many different languages the platform can support.
These are basic requirements of the bot platform. One needs to define custom intents to design the bot dialog flow, and entities to uniquely identify important information coming from incoming user inputs. What you should look for is the entity list (address, date, currency, etc.) provided by the platform.
Dialog Flow Design
A bot development platform should allow you to design the dialog flow (i.e., the conversation model). You should be able to define different conversation paths, and most importantly, it should have exception handling capability. You should be looking for a dialog flow design that is specific to each platform and check for:
- How much effort does your team have to put in to learn this?
- How much programming knowledge does your team need to have?
- Is it easy to change a complex dialog flow, for say, a banking bot?
- Does the platform provide a visual editor?
It is also important to build a bot that can be exposed to multiple platforms, such as Facebook, Slack, or even Alexa. Even though this feature is more dependent on your actual bot design than platform, you wouldn’t want to be limited by a platform. Check if you are able to develop a bot that can be exposed to multiple channels.
Platforms should provide a way to integrate existing backend (i.e., database, content management system, etc.). They should either provide a way to invoke APIs or provide easy integration in combination with SDK and platform configuration. You need to check:
- If it is easy to invoke APIs or connect to different backends from dialog flow
- The kind of programming knowledge your team needs to achieve this.
- Platform Test Support
It is important that you can test your bot at each step of your development cycle. Platforms should provide a test console or simulation to test your bot. Check if the platform:
- Lets you integrate with a channel (Facebook, Slack) in order to unit test your bot
- Has an in-built bot testing console.
- Is it possible to configure automated testing via webhook or API endpoint? Analytics**
Besides testing, gathering analytics on your bot’s performance in production is also important. Your business model on cost reduction is pointless if, most of the time, the bot is running into “error-handling” scenarios (i.e., not able to answer the user properly, or not engaging well with the user). You need regular analytics on your bot for future improvements and updates. You should be checking if the platform provides automatic gathering of analytics data, whether you can run different reports on these data, and whether it is possible to see where in the dialog flow the bot is going wrong.
Easy to update/Easy to learn
Next, check how easy is it to introduce new flows in your conversation model or if you can integrate a new backend or update utterances to existing intents. I believe that bot development is not a one-time thing, and you need to keep improving your bot. In order to do that, you need to have a platform that is user-friendly.
Faster to Production
The whole idea behind bringing AI into your enterprise is to make things easier and faster. With that in mind, I’d recommend a platform that allows you to go to production within a few months. Of course, you’d need to keep on improving your bot either by adding features or fine tuning the existing ones.
The next time someone introduces a new bot platform, you will have a matrix to judge it by. Look for these “must-haves” and, hopefully, you will be able to quantify the bot platform perfectly.
You can read the full article on the author’s personal blog.