Chatbots — is the new big thing or not? It’s a way to make pretty good automations for routine and standardized operations in companies. There are also some fears and skepticism about AI abilities (and I agreed with most of them). But the fact is — business processes automation is the important way to improve the quality of the products. Actually, different approaches to automation were used for a long time. Maybe, today is the time for the new revolution in business processes.
In this post, I will describe a few of the problems that will come up when you decide to automate any kind of business processes with the chatbot solution.
Pay close attention to the list below. This will help you to focus on these points before the start of development. I did not sort it by importance because it depends on the situation.
When we saying bot, we mean machine with the simple intellectual abilities and we expect a kind of "live" communication. There are psychological reasons why we perceive the bot as a live person. And because of this fact, we need to make the set of models of him behavior.
I don't prefer a particular tool for this part. You can choose any mindmap tool or another graphical editor for make schemes (Google Draw, Realtimeboard, etc).
Dialog logic declaration
This part is about manipulation and tuning of the big behavior part - dialogs with users. You need to find or create an easy tool for make dialogs by non-programmers. Which way you will choose depends on your business requirements. In my practice a found 3 general types of this tools - code, visual editor and simple YAML/XML/etc-based language (yes, looks like code either). Be careful of you will decide to make a visual editor. It can be an overkill.
An obvious, but important part of the bot system. Write bot logic it is not at all — you will need to control and monitor him. It may take more time than the bot.
Decide what you want to track, how you want to do it and create your best analytics system from scratch! Really, if you going to use the bot solution in the real business, you will need the analytical system with a storage, visual reports, event bus, and so on.
User input recognition
There are a lot of SaaS AI services like LUIS, api.ai, wit.ai and a lot more. And with this rich select we can think about user input recognition like this - "Hm, it should be easy, just use the API". No, it is not. Again, this is not easy, it is even not close to being easy. Especially if you want to learn you bot speaks different languages.
You have specific context and topics. You will get unpredictable messages with mistakes and jargon. And you want to make bot humane.
Software testing is the very important part of product creation. With the bots, you will have a new type of tests - behavioral tests. And the behavior models will help to do it easily.
One sad thing is there - probably you can't automate all of these tests. Because you have to communicate through particular messenger app UI. But some have an API and you can create bot for testing other bots :)
Of course, you must not forget about unit tests, functional tests, and integration tests. Last one especially important, because often you will use a set of services.
User Experience (give links)
Chatbots are not applications and you have to make the focus on this. Chat experience is unique and needs the specific approach. The one thing you must not do - migrate web/mobile app functionality to the chatbot. It is a popular mistake that makes your bot bad. Think about user experience accurately. A lot of articles has been written about chat UX. [https://medium.muz.li/the-ultimate-guide-to-chatbots-why-theyre-disrupting-ux-and-best-practices-for-building-345e2150b682]
You may want to use not just only one messaging platform. Could be different reasons, for example, users from different countries prefer different messengers. You can use cloud connector solution, like Microsoft Bot Framework. But you should keep in mind - each platform has some abilities that another has not available. Unified API is good for simple messaging, but if you want to use extended functionality, you have to make adaptations and feature replacements for different platforms.
Of course, this part valuable only for multi-language bots. But the few points that should be important and need an attention.
The first one is language recognition. You have to make research and unique experiments for each language. A most of the available cloud AI services support just a few languages or even just one (English as usually).
The second thing is about UX - you need to decide how to detect and switch languages for the user and how it will look from his point of view.
And another one - language management on the back-end side. You will have bot answers for each language and maybe specific settings and variations of dialogs.
This problem is related to recognition. The big data set is needed to test and improve different algorithms of user input recognition. It is possible to get public databases that available for use or crawl your own (from social networks, forums, etc).
Also, you have to consider the context, your domain area. The one way, that is good in my opinion, make simple recognition algorithm without difficult machine learning algorithms and collect data directly from your first users. You can run just a few cases that support by the bot and get variations of the input data while gradually improving your solution.
This part is common for any applications. When you make the decision to develop a chatbot, probably, you will want to solve some kind of the user problems through the native, human interface, through the talk. Before start writing the code, try to define and decompose most important cases of the problem that you going to solve. This step could save a lot of your time.
Probably, this list is not completely enough. But it contains important things, that require an attention. Also, don't forget KISS(Keep It Simple, Stupid) principle. Maybe you don't need AI abilities or rich management functionality.