Killing Several Birds with One Bot Framework

botframework

The day has come: real-time text communication invaded our lives in a way to the point where people prefer chatting via various messengers instead of phone calling (not to mention fact-to-face talks). Texting became so inevitable and widely used that it even rises safety concern reverberated in preventive Stop Texting signs along the roads.

Of course, the popularity of this communication type is not groundless, and here are some reasons why.

Reachability control. Text based chat offers the privilege of generally accepted asynchronous communication providing more time: to finish an ongoing task and then reply, to re-read chat history, to ponder over it and tailor your answer accordingly. This feature has also changed the way we talk, giving us more control of the way we arrange our communication, letting us stay in touch with a person throughout the day without being interrupted or obliged to reply right away, or vice versa. It allows us to request and provide necessary information without figures of politeness, long intros or small talk.

Walls don’t have ears anymore (but may have eyes, instead). Holding a (text) conversation while being in a public place or transport doesn’t disturb people around or prevent you from discussing private issues, eliminating the risk of being listened to.

The advantage of time saving. More and more businesses agree that it’s enough for a customer to visit their office just once: to identify themselves and sign related papers. Further communication tends to be conducted over the phone or online, be it email, internal communications or teamwork messengers like Slack or HipChat. To reduce call-centre load, many companies started using voice user interfaces. Instead of hiring numerous operators, they use robots to answer customer questions chosen from a selection menu. However, this approach works well when a client has clear pronunciation: voice commands with a heavy accent might not be recognised by a machine (the good old Eleven video is a great example showing imperfection of such a robotic system).

Constant information flow. Living in the connected world and almost always being online leads to a non-stop necessity of being notified and informed about occurring events, no matter how small or big they are.

These (and many other) reasons have transformed messenger applications. If initially messengers were just a way to chat, they're now platforms that integrate chat with different applications. Here are some common usage scenarios:

  • Notifications. An update failed to be installed, a new article has been published, a bus is about to arrive – a message is being sent to the chat.
  • Chat commands and bots. You may send a command to a bot who “listens” to messages. The bot then handles commands and performs actions based on the request. For example, you may ask a bot to check the weather, to place an online order or to create a reminder in your calendar.

In today’s text messenging market, all popular platforms (such as Skype, Slack, Telegram, etc.) offer their own API, authentication and authorisation mechanisms. This creates a challenge for developers implementing an integration or bot that need to work with several services at a time. Another challenge is localisation, i.e. creating a multilingual bot capable of talking with customers in different languages.

In March 2016, Microsoft released its Bot Framework that provides a unified way to write bots for multiple messenger platforms such as e-mail, Skype, Slack, Facebook Messenger, SMS and more. The framework significantly reduces the effort needed for bot development. Out of the box, this framework provides an SDK for C# and Node.js (it also works with other programming languages since the bot framework needs a single REST API service). REST API handles specific messages within the bot framework, while a developer implements handlers for bot conversation. For example, if a user sends a “Hello” message, your bot needs to respond with a message: “Hello %User%, what can I do for you?”. Since conversation between a human and a bot may be long and include various command options, the Bot Framework tracks the conversation for you to better recognise the context of a message (e.g. if it was sent as part of the current conversation or if a user has initiated a new one). This feature accommodates keeping a conversation when there are several options or workflows available depending on provided answers.

This is a very promising solution that facilitates writing universal bots for various messaging platforms and communication channels. From a business perspective, it's an opportunity to integrate your services with popular communication channels, opening your doors to more people via multiple communication channels. At the same time, these communication platforms attract more new users due to the framework letting customers use text-based interfaces to connect with specific services and get real-time information. It looks like Microsoft Bot Framework is killing several birds with one stone, opening up new opportunities to businesses, developers, communication platforms and customers.