Coding Recipes - How we cook chatbots

Miroslav Stojmanovski, Software Architect, Banking and Finance Unit, SEAVUS
 
The world is getting hyped with a lot of new technologies which enable a bit older ideas to become reality. Chatbot is one of those. It has been ever-present in the last decade but has never reached the peak as in the last couple of years. Till now, it was either technology issue, NLP issue or the idea how to use it.

What would chatbots be used for?

It is an old question, one started with the first chatbot and yet not fully answered.

The chatbots replace one of the humans biggest needs, the need to communicate. The world has grown int a social media space where the chat has overpassed the SMS communication (though chatbots can also work in the asymmetric non-real-time communication such as SMS) and has tendency to surpass the phone calls (people initiate more social media messages per minute than phone calls, as multitasking communication). People do like the commodity to resolve some issues without the actual communication with other humans, especially millennials and younger generations. Most of the biggest platforms for social media already have acknowledged this trend and provided platforms for chatbots (Facebook, Microsoft, Skype, WeChat, Slack and many other).

Where do businesses see the benefits? Well most of the calls and help needed for a certain domain falls under the umbrella of repetitive tasks. If it is a banking or fintech it is a certain way how to check balance and execute; or if it is telecom, it is usually a technical know-how generally question-answer, check balance, paying bills or changing tariff/package.

All the previous are repeatable tasks and take by some statistics up to 80% of the call center time. Providing the same communication without involving human, with multiple instances at once, at any given day 24/7/365 will give the business 80% more time to concentrate on the more complex problems, and thus provide more qualitative answers, while the quantity is provided by the chatbot. Overall a win-win situation.

How do we build a chatbot?

The technology world has grown, the chatbot and AI has matured, and business have learned to apply AI/ML in their respective business domains.

How do we build a chatbot, what can we use to create one, are we dependent on a specific technology or do we actually need to be technically literate to create and invest in one?

The answers are quite positive. Almost every technology can be used for creating one, in some there are NLP features which are easy to implement in others the platform and reach to social media is easier, but nevertheless almost every programming language and platform per se is a potential candidate for a chatbot. There are also platforms, which actually do the hard work for you and generate a generic chatbot for you. So there is a wide range for solutions ranging from very tech savvy solutions to ordinary person solutions.

For example Microsoft has developed a bot framework that handles and wraps the low level programming and provides you a high level decision and flow modules that one can use to create a very smart chatbot. Microsoft provides a platform thorough Azure services to connect your bot to multiple social media platforms which include Skype, Facebook, Slack or more traditional channels like SMS or email.

There are also solutions like chatfuel which provide a more user friendly SaaS solution to create a Facebook messenger bot.

At the end, the question which tools we need, depends on the complexity and the grade of the bot. Smarter enterprise grade bots need more different technologies and mix that integrates in existing enterprise solutions. Simple, form based bots can be created using online tools which are cheaper, but more ”dumb”.

Do we have a case for a bot?

There are more than one way to create a bot and there is more than one reason to create one. Should we? Well it depends if the problems at stake are worth the effort. For example, do we have a repetitive task, like scheduling, payments, form fill-ups and so on, which do require clarifications or provide a nicer user experience if resolved by a bot? If that is the case we have a possible problem that can be resolved using a chatbot. Do we have a task that requires a dialog form? Then we have a simple app that can ask the user the relevant questions and extract the information from the answers. For example, if a baker wants to register a new bakery, he has to fill up a form in the central register for companies, but is that data understandable to him? Can he fill it up if someone talks with him and provides the form fields in a clearer, not so domain specific language? Probably yes.

Do we have a knowledge base or self-service problem? People can resolve their problems but lack just one info, for example in a tech companies, there is a lot of network storage, but do we know by heart the location of a storage for a project we worked on six months ago? Probably we have one person who does, and if he is there and present will for sure use the moment to present his memory skills. If not a chatbot will do just fine for a fast response.

And we haven’t touched internal processes in bigger enterprises … like for example, it would be very easy to get number of available vacation days, contact person for a specific department, book a conference room, handle business trip expenses, approvals via group messages or proactive messages and so on.

At the end the success of a solution and possibilities depends on how we design the user experience, is the bot going to understand and answer questions, does it make sense to guide the user instead of the user typing the questions and answers, does it make sense to add voice (speech to text and vice versa), do we save user time and make the process easy and faster, or do we do the opposite. We do consider that both being technically adapt and knowing the domain and customer matter in the success of this very interesting technological solutions.

Also published on: www.startit.rs