Using Chatbots for IoT. From buzz to practice.

By: Tudor Bugnar, Software Architect, iQuest Group

‘Hi, I’m Luis, your Virtual Assistant. Did you notice that your equipment has a value that is above the normal equipment parameters?’

This is not spam, nor somebody trying to sell you something. It’s a chatbot, an AI-enabled application that can distinguish between closing a production line or reacting very fast to a problem and solving it.

By 2021, more than 50% of enterprises will spend more per annum on bots and chatbot creation than on traditional mobile app development says a Gartner report with predictions for 2018. This is a clear indication of how chatbots can change the way organisations interact with their customers.

What are chatbots and how do they work?

Chatbots are artificial intelligence systems that interact with humans through chat interfaces via messaging, text, or speech. A chatbot can respond to certain questions or give recommendations on different topics in a real-time manner.

“By 2020, the average person will have more conversations with bots than with their spouse, in fact, it is estimated that 85% of interactions will be with chatbots.” (Gartner)

Chatbots have a predefined workflow and help drive engagement and facilitate faster conversions by answering questions or even offering suggestions. Usually, we find chatbots in the following user scenarios to improve customer support:

  • To book a flight or even a railway ticket — the chatbot can offer you the best options available and guide you through the entire process.
  • To search and book flights and hotels for your perfect vacation — chatbots are meant to become complete travel assistants.
  • To order food — when you don’t want to search through all the menu or manage your reservation, chatbots are “trained” to friendly answer 24/7 to all questions concerning the restaurant.
  • To buy clothes — customers can easily ask for what they want and the chatbot will assist them until the purchase is done. Customers don’t need to go and search for the products on the website, which makes their online shopping experience more convenient.

Lately, these chatbots have been making their way into other domains as well, where they’ve proven to be useful, such as Industrial IoT and Software Development. These domains came into play because the chatbot engines can now be integrated into different communication channels such as Facebook Messenger, Skype, Slack, Skype for Business, Telegram, Bing, Kik, but they can also be easily integrated into your website.

A chatbot usually has the following sequence:

  • Greeting part — asks information about you (name, email)
  • Discovery part — the user requests a service to the bot
  • Interaction Part — using pre-configured flows and natural language processors, the bot delivers the required service to the user
  • Ending part — Goodbye, and perhaps some feedback gathering from the user, so that the bot administrator can know exactly the areas which require improvement

Our experience with Chatbots

We have created a chatbot using the Microsoft Bot framework and Microsoft Cognitive Services. The reason for choosing this frameworks is that it provides a unified set of tools to easily construct a bot in a couple of hours. More details regarding the tools provided by Microsoft to construct a bot are listed below.

There are also other alternatives on the market which you are more than welcome to try:

  • NLP platform (free to use)
  • IBM Watson (allows you to visually model the interaction between the bot and a human individual)

Below is the architecture of Microsoft Bot Ecosystem. It has the following components:

  • Bot Framework — the framework provided by Microsoft to develop chatbots. It consists of SDK for developing the bot conversation flow in C# and JavaScript.
  • Bot Connector — a middleware provided by Microsoft to allow the bot to integrate with different communication channels like Skype, Facebook, Cortana, Bing or Slack. It also provides an API to be able to interact with the bot from different applications that may be written in different technologies (e.g. Java, Python).
  • Microsoft Cognitive Services — a set of services offered by Microsoft that use artificial intelligence to process the input data (more details here). We use Microsoft Language Understanding Services (LUIS) to map the user input to the flows of the robot. Also, for voice interaction with the robot, Microsoft Speech API is used.
  • Channels — Chatbot communication channels whose the integration is out of the box; the only things that need to be configured are the security keys for authentication in the platform.

As mentioned earlier, bots are becoming very useful in our everyday life. The example below shows a bot that acts as a DevOps engineer and which is integrated in the dev team Slack channel.

Any team member can ask the bot about the status of the tickets in JIRA and initiate a deployment. The bot is trained to “wake up” when some specific text is sent in the channel and can start an interaction with that user.

The cool thing is that the deployment doesn’t require a DevOps engineer to be carried out. Even a project manager or business analyst can do this. Since it integrates with Jenkins, you, as a BA (business analyst) for example, can deploy for an alpha version to do a pre-verification with your customer.

A real-life scenario using Chatbot

At iQuest, we’ve created a bot that works together with a solution that monitors equipment in a ceramic factory. The bot is trained to guide the user in case any problems with the equipment appear.

Microsoft Bot framework enables a pretty sophisticated interaction with the user, allowing the bot’s response to be in HTML format, using their implemented technology named Adaptive Cards. This way, it is much easier for the user to interact with the bot, and for the bot to answer more precisely to the user’s needs.

Below is an example of interaction with our bot, in the case of an operator who has a problem with a robot battery:

  1. The greeting part: The bot greets the user and asks for introductory information (name, company)

2. Receiving information regarding the problem (in our case a robot battery). The bot offers alternatives for selecting different actions (in our case a robot manufacturer) to direct the user to the right flow.

3. Offering Support to the user (by giving advice, links to relevant cases in the knowledge database or links to internet search results).

4. Seeking feedback for improving its service. The feedback is collected and the team responsible for maintaining the chatbot adjusts different flows and the NLP (Natural Language Processing) algorithm behind.

5. Other bot usage — You can also use the bot to interact with external systems from your enterprise. Looking at the robot battery case above, the bot can help you to place the correct order for a new part in the company’s ERP (enterprise resource planning) to trigger the replacement process. Also, the bot can check the status of the order submitted.

To sum up, we can safely say that chatbots are slowly entering our daily processes because the AI algorithms are becoming accessible to anyone and the costs are decreasing. Also, the process of developing bots is becoming faster with the introduction of visual tools for modeling the flows.

So, are you looking closely enough at the next big customer interface? And the most important question, what role will you play in the next messaging chapter?