As we are seeing that emerging trends suggest total new channels and new ways of user experience which mainly point to the technologies .
- Conversational Platforms
- Immersive Experience
These trends make several customer facing organizations to adapt them to make a difference for themselves. However some of these efforts like introducing automated BOTS or Cortana based applications as part of your customer interactions needs to be planned carefully.
Lot of us would have seen the epic fail of Cortana in a large conference, while that is a smaller issue may be due to crowds clapping and laughing in the back ground and the Cortana would not have understood the voice fully. But the bigger issue is that the customer is not there to experiment on voice conversations or chat conversations unless they are so natural and fully understand customer intent and help him.
Most of the time we hear customers saying that, "I could have typed or clicked the screens faster" than going through a so called intelligent or smart application which still has not understood what I really want.
So the bottom line is that your Voice Based Applications as well as Chat based BOT applications should include within them lot of intelligence, so that they really help the customers in what they are looking for and not serve the function of a experimentation tool where the customer has to really talk or type only a few exact sentences and then the system does the work.
Microsoft BOT Framework : BOT is basically an intelligent application hosted on Azure that will let it's consumer interact with it in a conversational way, mainly using chat based interface, however it will also support voice and form based inputs also. BOTS guide the user towards a solution and typically are useful when we don't know the user intent and let him to choose from a free form of ideas.
There are multiple ways we can build BOTS using Microsoft framework.
- Using Azure BOT Service which provides an end to end integrated environment for building, testing and deploying BOTS. Lot of the BOT Management activities are automated in this option and makes it easier for building less complex BOTS
- BOT Builder is an Open Source framework and uses traditional Visual Studio IDE to develop BOTS using standard programming approach. BOT Builder SDK is available for both .net and Node Js.
Using Industry Standard Design Principles : As always in the design of any "user interface related" computer program lot of common sense is needed in building BOTS also. BOTS are not meant to show cause a technological feature but more about ensuring that user is able to finish their work easily and able to get best out of the interaction.
Also Microsoft has provided guidelines on wrong usage of conversations using BOT Technology, some of the guidelines are below.
- First Interaction with the customer is important and it should not provide an unlimited and open ended options such that customers may get lost in the conversation. Most times as an organization we know our list of services and let the user to narrow down what he/she requires will be an better usage.
- Guidelines warn against building what is known as "Stubborn Bot" which does not let user to change the track during the course of transaction and makes the user frustrated. For example in a BOT for booking airline tickets, if the BOT keeps asking about your destination without even letting the user to understand various discounts and offers available in your site.
- Guidelines warn against building "cludless Bot" which are unintelligent and does not understand the context. For example your user is already logged in and you know his name and other details, there is no point for Bot to ask the details again. We will talk more about how to fix the problem of "clueless Bot" in the below sections.
- While Unintelligent BOTs are not unwelcome, it is also true that some times BOTS exhibiting too much of intelligent beyond what is required for the conversation. Suppose assuming that user is trying to book a hotel room for his business travel to attend a conference, the BOT should not use the Social Media profile of the user and assume and ask questions about User's family or hobbies. Like the BOT should not offer some services for user's kids during the stay.
While these guidelines are just indicative, there is not a single useful navigational flow that will provide a blueprint of a perfect customer centric BOT. It will differ from case to case. However applying common sense and utilizing the appropriate intelligence as part of the solution is key to its success. The following are some of Azure AI & Cognitive Services that will assist in BOT development and make them more useful for customers.
Understand Customer Language (Basic Level): Understanding the natural language is fundamental to the success of this new user experience interfaces. The best thing with a human interaction is that however differently asked humans will understand the intent most of the times. However BOTS unless given the intelligence, they may just act like dump machines which merely replays what is pre programmed. LUIS (Language Understanding Intelligent Service) is one important Azure cognitive Service that will provide the much needed intelligence to BOT interfaces. LUIS understand the intent from User's input which is the Verb which is the action user wanted to perform. For example Intent could be like, Register for a Event, or Book a flight. LUIS also extracts entities that is of interest from a textual conversation, which is very important, because when some one wanted to book a ticket to Paris, "Paris" is about the destination that needs to be understood and BOT services tailors it's response accordingly.
Analyze Customer Language (Deeper Level) : While LUIS will help you with basic understanding and the direction with which the customer wanted to take the conversation you need to make further analysis much like human do in a conversation. That is where the Linguistic Analysis comes into picture. One important aspect is to understand the Phrases within the conversation. Because some times individual words will convey a different meaning where as the phrases will convey totally different meaning. For example some one say to a BOT that " I wanted to book a luxury hotel in New York". In this case "luxury hotel" is a phrase that we need to respond rather than just any other hotel. Similarly there are other techniques like , "part of speech tagging", "sentence separation" all are important while conversing naturally with the user. Most of these APIs are available as part of Azure "Linguistics Analysis API".
Understand the Mood Of Customer : If you happen to see a call center conversation, some times calls may show customer's anger, dejection, frustration and other sentiments. And most times human adjust their conversation with respect to the tone of the customer. For example if the customer is extremely unhappy with the service, the call center person will first ask for excuses before proceeding. BOTS are expected to behave the same way. That is why Sentiment Analysis of each part of conversation is important and once the BOT determines that the customer is unhappy the direction of the conversation should be different. Azure "Text Analysis API" will help with understanding the sentiments.
Guide The ConversationWith Corrections To Language: Spelling makes a huge portion of language understanding. Also the world of social media like twitter have created a huge set of slang language that the BOT may have to understand. While there is no exhaustive method which can correct all the spelling issues possible in a language, integrating with Azure Spell Check API mitigates most of the problems. This API recognizes common name errors, corrects word breaking issues and recognizes slang and informal language. Especially for US-English is the language of communication then this API provides more advanced functionality. When ever the BOT finds a conversation with a wrong spelling it is better to suggest to user and progress as per the correction.
Make Best Utilization Of Your Existing Support Channels: Most organizations have existing options to get support for their customers which are proven and working already. For example most organizations in their web site generally have a FAQ (Frequently Asked Questions) section which are trained over a period and normally reflect the best issues that their customers face. When we build a new automated BOT to respond to users, we should not start fresh, rather best utilize the existing FAQ. Azure Q&A Maker is one such cognitive service which is meant to extract best possible conversations from a existing Q&A content. Q&A maker service accepts the existing Q&A in the form of TXT,DOC,PDF,HTML files and uses Artificial Intelligence and Natural Language processing to match these questions against user's queries and match them appropriately. This service provides option to train the Q&A sequences as well as constantly update the knowledge base which makes the service more dynamic in nature.
The above are only a indicative set of services that can enrich the customer experience, however as we involve with users we should keep on improving the intelligence behind the BOTs and other Automated Assistants and should not only depend on the past training data. Because the training data may not be available or may be obsolete. One such option is also to use the "Reinforcement Learning" which keep learning and adapts itself.
Finally all of the Automated Assistants should at some point have to hand over the humans to ensure that the situations which beyond their ability are still handled. Without Human intervention these Automated Agents may frustrate users and make them not interested in your site or app.
Using the newer channels provide lot of options for the organization to serve more people with less resources because humans have limitations and resources are limited. However immersive and conversational agents should be planned carefully and not just be viewed as a nice technology add on, but rather human centric usage has to be understood and designed for. May be these interface require Manual Testing than Automated testing to ensure that whether Users are indeed like the flow and gets satisfied from the service.
Analyze Customer Language (Deeper Level) : While LUIS will help you with basic understanding and the direction with which the customer wanted to take the conversation you need to make further analysis much like human do in a conversation. That is where the Linguistic Analysis comes into picture. One important aspect is to understand the Phrases within the conversation. Because some times individual words will convey a different meaning where as the phrases will convey totally different meaning. For example some one say to a BOT that " I wanted to book a luxury hotel in New York". In this case "luxury hotel" is a phrase that we need to respond rather than just any other hotel. Similarly there are other techniques like , "part of speech tagging", "sentence separation" all are important while conversing naturally with the user. Most of these APIs are available as part of Azure "Linguistics Analysis API".
Understand the Mood Of Customer : If you happen to see a call center conversation, some times calls may show customer's anger, dejection, frustration and other sentiments. And most times human adjust their conversation with respect to the tone of the customer. For example if the customer is extremely unhappy with the service, the call center person will first ask for excuses before proceeding. BOTS are expected to behave the same way. That is why Sentiment Analysis of each part of conversation is important and once the BOT determines that the customer is unhappy the direction of the conversation should be different. Azure "Text Analysis API" will help with understanding the sentiments.
Guide The ConversationWith Corrections To Language: Spelling makes a huge portion of language understanding. Also the world of social media like twitter have created a huge set of slang language that the BOT may have to understand. While there is no exhaustive method which can correct all the spelling issues possible in a language, integrating with Azure Spell Check API mitigates most of the problems. This API recognizes common name errors, corrects word breaking issues and recognizes slang and informal language. Especially for US-English is the language of communication then this API provides more advanced functionality. When ever the BOT finds a conversation with a wrong spelling it is better to suggest to user and progress as per the correction.
Make Best Utilization Of Your Existing Support Channels: Most organizations have existing options to get support for their customers which are proven and working already. For example most organizations in their web site generally have a FAQ (Frequently Asked Questions) section which are trained over a period and normally reflect the best issues that their customers face. When we build a new automated BOT to respond to users, we should not start fresh, rather best utilize the existing FAQ. Azure Q&A Maker is one such cognitive service which is meant to extract best possible conversations from a existing Q&A content. Q&A maker service accepts the existing Q&A in the form of TXT,DOC,PDF,HTML files and uses Artificial Intelligence and Natural Language processing to match these questions against user's queries and match them appropriately. This service provides option to train the Q&A sequences as well as constantly update the knowledge base which makes the service more dynamic in nature.
The above are only a indicative set of services that can enrich the customer experience, however as we involve with users we should keep on improving the intelligence behind the BOTs and other Automated Assistants and should not only depend on the past training data. Because the training data may not be available or may be obsolete. One such option is also to use the "Reinforcement Learning" which keep learning and adapts itself.
Finally all of the Automated Assistants should at some point have to hand over the humans to ensure that the situations which beyond their ability are still handled. Without Human intervention these Automated Agents may frustrate users and make them not interested in your site or app.
Using the newer channels provide lot of options for the organization to serve more people with less resources because humans have limitations and resources are limited. However immersive and conversational agents should be planned carefully and not just be viewed as a nice technology add on, but rather human centric usage has to be understood and designed for. May be these interface require Manual Testing than Automated testing to ensure that whether Users are indeed like the flow and gets satisfied from the service.