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. :)





Comments

  1. We have to thank and share such a nice blog post and interesting information. It is helpful for develop my knowledge, people always searching for this type of posts.
    AI Chatbot
    Chatbot Development
    RPA Bot
    Bank Chatbot
    Chatbots in Banking

    ReplyDelete
  2. Someone essentially lend a hand to make severely posts I would state. That is the very first time I frequented your website page and thus far? I surprised with the analysis you made to create this particular submit incredible. Fantastic job!
    Chatbot Company in Dubai
    Chatbot Companies in Dubai
    Chatbot Development
    AI Chatbot Development
    Chatbot Companies in UAE
    Chatbot Company in Chennai
    Chatbot Company in Mumbai
    Chatbot Company in Delhi
    Chatbot Development Companies

    ReplyDelete
  3. yes. its really appealing and approaching content for reading and implementation purpose.
    Property Management Software in Dubai

    ReplyDelete

Post a Comment

Popular posts from this blog

Rich Text Editor - Oracle JET

Oracle JET has a lot of excellent UI components, but according to Murphy's law, client always comes up with something which you don't have at your disposal. So, driven by one of my client's requirements, I created a Rich Text Editor or WYSIWYG editor for Oracle JET. This is based on Quill JS and fully customizable. Github project download: https://github.com/sohamda/JET-Web-Components/tree/master/rich-text-editor I will explain in this blog, on how to integrate it in your own Oracle JET project. 1. Create and initialize your JET application and then put the downloaded web component inside "src\js\jet-composites" folder. 2. Once copied update your viewModel first. Add a snippet for passing the default content to be displayed by the editor after load. 3. Update view to load this editor Above you can see the "toolbar-options" property, that controls which options you should display to user on the editor. Those are basically the forma

Create Micro CRUD services for Oracle Database Cloud using NodeJS

I will try to explain, how you can use NodeJS to create mirco services for the tables in your Oracle Database Cloud or on-premise Database. Complete Github project : https://github.com/sohamda/LeasifyAPIs You need to do "npm install" to download the node_modules. Step by Step guide : 1. NodeJS : either 32 or 64 bit. If you already have NodeJS installed, please check whether it is 64 or 32. Use below command to figure that out : C:\>node > require('os').arch() If you get : 'ia32' , then it is 32 bit installation. 2. Install oracle-db node module .  This was a lengthy and time consuming installation for me, because for Windows, it has a lot of pre-requisites. If you are a Mac user, you are lucky. :) I followed : https://community.oracle.com/docs/DOC-931127 There is also a detailed one in github : https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 3. Config your DB Cloud Create a user and couple of tables on which we'

Layout Management & CSS Classes with Oracle JET

Oracle JET provides automatic responsive layout using CSS classes. So that, from large screens to small screens the application fits itself the best possible way. JET’s layout management are based on 2 types of CSS classes “Responsive Grid” and “Flex”. Responsive grid classes which deals with size, number of columns and functions of a particular <div>. Naming convention of these classes are oj- size - function - columns sizes can be: sm, md, lg, xl functions can be: hide, only-hide columns can be: any number between 1 to 12.   Just like Bootstrap, JET also divides the width of the available space into 12 columns, so for example, if you want a section of your page should take up atleast 5 columns if you divide the available screen into 12 columns, you need use : oj- size -5. Now comes the size part, you need to define that for each size of the screen, from hand-held mobile devices to large or extra large desktop screens. With combination with theses grid c