Machine Learning in Customer Service – Rise of the Chatbots

A chatbot is a computer program you can talk to through messaging apps or a website.  You can interact with them by typing text or talking to them.  Most consumers are familiar with the populate chatbots like Google Assistant or Siri.  In this article, we will discuss how similar chatbots that offer rich functionality by understanding user queries and responding with relevant information can be built for enterprise organizations.  Such chatbots have the power to transform customer service – they offer various advantages:

  1. They are always on and there’s no wait time for consumers to start interacting with them
  2. They are intelligent and can tackle some of the common queries but also advanced ones that may require integrations to backend systems e.g. a question like “when will my order arrive” will need lookup to a company’s order management system
  3. Interactions can be automatically logged making it possible to run analytics on it to understand what common customer pain points are


Here are a few things to keep in mind when getting started with a chatbot implementation.  SpringML is a partner of Google’s Dialogflow.  Dialogflow is a powerful chatbot framework and we’ll use it as a reference when describing some of these implementation pointers.

  1. Designing Interactions.  What are the questions you want the chatbot to answer and how will you design the initial as well as follow up questions?  Dialogflow allows users to create and maintain intents.  Business users can review which queries were not understood and can update intents in real time.  Dialogflow uses Machine Learning to  learn from examples that are provided so that it can understand the user’s intent and respond in the most useful way.
  2. User channels.  You may want to make the chatbot available to users through various channels.  Example of such channels include website chat app, native mobile apps or other chat applications such as whatsapp, facebook messenger, etc.  
  3. Integrations.  Chatbots may need to connect to your enterprise systems to gather additional information.  This could be to answer questions or to post a response or an update back.  You will need to determine what types of systems the chatbot needs to connect to and what are the options for integration.  If your enterprise systems offer a web based API (REST or SOAP) then ensure proper authentication and network access is available.
  4. Security.  This is a big topic for most enterprises.  This can be further divided into topics such as user authentication, redacting sensitive information.  User authentication deals with how you ensure the user asking the question is who they say they are.  Techniques such as two factor authentication can be employed where the chatbot sends a one time token to the user’s phone.  Sometimes users may inadvertently type sensitive information such as date of birth or social security numbers.  You may want to detect such sensitive information on the client side (browser or mobile) before sending the request to your servers.  This ensures that such PII data never reaches your servers.  Google provides DLP (Data Loss Prevention) api that can help identify PII data.
  5. Language and Input.  How many languages do you want to support?  Also do you want users to enable voice input?  These could be considerations to make a user’s experience more positive.
  6. Escalation.  Finally how do you handle any escalation or conversations where the bot is unable to handle requests?  You could call Google’s NLP api to retrieve the sentiment of the conversation and if the sentiment is negative you can transfer the chat to a human.  This will allow a human to look at the transcript history and engage with the user in real time to help them out.

The above is a summary of what we have seen enterprises ask for when implementing a Chatbot.  Dialogflow provides a framework where these can be implemented in a rapid fashion allowing enterprises to quickly deploy a chatbot.