Skip to main content

Bots : What do YOU need to look for when choosing one

Chatbots are now the new craze in the market. Almost everyone is fascinated by them and everyone is trying to have one for their enterprise.





Since the day I started working with Bots, which is merely 1.5 years ago, there has been a lot of different tools, platforms, technology released to the market. Chatfuel, DialogFlow, Botsify, Motion.ai, Wit.ai etc, the list goes on and on. Not only small startups but even Microsoft and Oracle has come up with their own cloud based Bot development platform. In only this limited amount of time, the number of innovation in this area is truly amazing.

So as a Chatbot developer and promoter, I have a lot of choice, but at the same time, which one is the best? Which platform I should propose to my client? Which is the best fit to the needs my customer has?
It is not only difficult, but very challenging to judge these platform and/or tools.

So, my advice, to you, would be ask a few simple questions about the platform/tool. Check with you use-cases, requirements, needs. Before you choose one.
Almost all and every bot development framework has a combination of the below features.



Let me elaborate the features in detail and point out which ones you "must-have", which ones are "nice-to-have". and also what you should be looking for in these features.
** - must-have
* - nice-to-have

Built-in NLP**

Platform should have basic support for Natural Language Processing. You should not need to build your own APIs to understand incoming user inputs.



What you should be looking for: Language support. How many different languages the platform can support. 

Intent, Entity**

These are basic requirements of the bot platform. One need to define custom intents to design the bot dialog flow and entities to uniquely identify important information from incoming user inputs.

Dialogflow - Intents Oracle Bots - Entities

What you should be looking for: Platform provided entity list (address, date, currency etc.).

Dialog Flow Design**

A bot development platform should be able to allow you to design the dialog flow, i.e., the conversation model. You should be able define different conversation paths, and most importantly exception handling.

Oracle Bots - Dialog flow designer

What you should be looking for: Dialog flow design is specific to each and every platform. So you need to see
1. How much effort your team members have to put in to learn this.
2. How much of programming knowledge your team members need to have?
3. How easy to change a complex dialog flow, for example a banking bot?
4. Does the platform provides a visual editor?

Channel Agnostic**

It is very important to build a bot which you can expose to multiple platforms, such as Facebook, Slack or even Alexa. Even though this feature is more dependent on your actual bot design than platform, but you definitely don't want to be limited by a platform.

Dialogflow - Integrations

What you should be looking for: You should be able to write ONE bot, which can exposed to multiple channels.
1. Platform provided out-of-the-box integration. Many bot platform provided easy configuration with Facebook, Slack, and your team don't need to write any NodeJS module in order to integrate with different channels.
2. If  the platform doesn't provide any out-of-the-box integration, then atleast it should provide Webhook configuration options to connect to different channels.

Backend Integration/API driven**

Platform should provide a way to integrate existing backends, i.e., database, content management system etc. Either it should provide a way to invoke APIs or it should provide easy integration in combination with SDK and platform configuration.

Oracle Bots - custom components integration

What you should be looking for:
1. Is it easy to invoke APIs or connect to different backends from dialog flow?
2. What kind of programming knowledge you need to have in your team to achieve this?

Platform Test Support**

It is very important that you can test your bot each and every step of your development cycle. Platform should provide you a test console or simulation to test your bot.

Dialogflow - test console

What you should be looking for:
1. You should not need to integrate with a channel (Facebook, Slack) in order to unit test your bot.
2. Platform has an in-built bot testing console.
3. 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 very 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 bot's engagement with the user is not good enough. You do need regular analytics on your bot, for future improvements and updates.

Oracle Bots - quality reporting

What you should be looking for: Does the platform provides automatic gathering of analytics data? Whether you can run different reports on these data? Is it possible to see where in the dialog flow it is going wrong?

Easy to update/Easy to learn**

How easy to introduce new flows in your conversation model or to integrate a new backend or to update utterances to existing intents.

What you should be looking for: Platform is easy to learn and update. I believe, a bot development is not a one-time thing, you should always keep on improving your bot. In order to do that you need to have a platform which is easy to use and learn.

Faster to Production**

The whole idea behind bringing AI into your enterprise is to make things easy and faster. So with that concept, I highly recommend a platform which allows you to go to Production in a few months. Of course you keep on improving your bot either by adding features or fine tuning the existing ones.

What you should be looking for: It depends on the things I have mentioned earlier, easy to learn/update, test support, intents/entity and built-in NLP features. So look for the "must-have"s and it is highly likely that you have faster to production line.

SDK for developers*

Software development toolkit, another nice-to-have features, which the bot developers can use to customize the bot or write APIs around the bot.

What you should be looking for: If the platform provides a piece of SDK easily customizable to write APIs around your bot for various purposes, connecting to backend, connecting to different channels or building your own testing framework around the bot.

Internationalization*

This feature of the platform should allow you to easily expose the same bot in different languages. Though a fare share of the responsibilities lies on actual bot design, but if tomorrow your want to have your bot which is running on production to also answer in Swedish alongside English, you should not need to rebuild everything from scratch.
Even though I ranked this as "nice-to-have" but for some use-cases this can be a "must-have" feature, for example an Airport Bot, it would be preferable, that it can answer in atleast 2-3 languages.


What you should be looking for: 
1. Resource bundling features within bot.
2. With zero to none effort you can configure this in the platform.
3. Support to configure external translation services (Google or Microsoft).
4. Platform allows you to reuse the same bot for different languages.

FYI : I wrote a blog on similar lines for Oracle Intelligent Bot framework.

Machine learning*

Platform can provide learning feature to the bot automatically. But though I strongly think that this feature is a "nice-to-have", with a proper dialog-flow design and error handling in combination with analytics you should be able to build and run a bot without ML.

What you should be looking for: Whether the platform provides a proper ML for your bot. But be careful with this feature, because it will be hard to test and maintain.

Bot-to-Human Handover*

This is also one of the "nice-to-have" features, when this can a real handy feature, but also always comes with a tightly-couple integration with a specific backend, for example Oracle's bot platform is coupled with Oracle Service Cloud, if you want to use this feature.
But of course you can also build your own solution to achieve this.

What you should be looking for: Costs involved in using this.

Module Support*

Many of the platform provides out-of-box modules which you can use within your bot or use as a template to start developing your bot on top of it, for example, small talk etc. This is a "nice-to-have" because most of the time you need to customize the responses from the bot anyway. 



What you should be looking for: Does your use-cases requires some pre-built templates? Also might be helpful for the developers in their learning phase.


So next time someone introduce a new bot platform to you, you have a matrix to judge it. Look for the "must-haves" and check the coverage on the "nice-to-haves" and hopefully you can quantify the bot platform yourself.

Happy bot-ing. :)