Modern chatbots are frequently used in situations in which simple interactions with only a limited range of responses are needed. This can include customer service and marketing applications, where the chatbots can provide answers to questions on topics such as products, services or company policies. If a customer's questions exceed the abilities of the chatbot, that customer is usually escalated to a human operator.
Cheyer explains Viv like this. Imagine you need to pick up a bottle of wine that goes well with lasagna on the way to your brother's house. If you wanted to do that yourself, you'd need to determine which wine goes well with lasagna (search #1) then find a wine store that carries it (search #2) that is on the way to your brother's house (search #3). Once you have that figured out, you have to calculate what time you need to leave to stop at the wine store on the way (search #4) and still make it to his house on time.
Dan uses an example of a text to speech bot that a user might operate within a car to turn windscreen wipers on and off, and lights on and off. The users’ natural language query is processed by the conversation service to work out the intent and the entity, and then using the context, replies through the dialog in a way that the user can understand.
Before you even write a single line of code, it's important to write a functional specification so the development team has a clear idea of what the bot is expected to do. The specification should include a reasonably comprehensive list of user inputs and expected bot responses in various knowledge domains. This living document will be an invaluable guide for developing and testing your bot.
“I believe the dreamers come first, and the builders come second. A lot of the dreamers are science fiction authors, they’re artists…They invent these ideas, and they get catalogued as impossible. And we find out later, well, maybe it’s not impossible. Things that seem impossible if we work them the right way for long enough, sometimes for multiple generations, they become possible.”
Logging. Log user conversations with the bot, including the underlying performance metrics and any errors. These logs will prove invaluable for debugging issues, understanding user interactions, and improving the system. Different data stores might be appropriate for different types of logs. For example, consider Application Insights for web logs, Cosmos DB for conversations, and Azure Storage for large payloads. See Write directly to Azure Storage.
Utility bots solve a user's problem, whatever that may be, via a user-prompted transaction. The most obvious example is a shopping bot, such as one that helps you order flowers or buy a new jacket. According to a recent HubSpot Research study, 47% of shoppers are open to buying items from a bot. But utility bots are not limited to making purchases. A utility bot could automatically book meetings by scanning your emails or notify you of the payment subscriptions you forgot you were signed up for.
Lack contextual awareness. Not everyone has all of the data that Google has – but chatbots today lack the awareness that we expect them to have. We assume that chatbot technology will know our IP address, browsing history, previous purchases, but that is just not the case today. I would argue that many chatbots even lack basic connection to other data silos to improve their ability to answer questions.
ALICE – which stands for Artificial Linguistic Internet Computer Entity, an acronym that could have been lifted straight out of an episode of The X-Files – was developed and launched by creator Dr. Richard Wallace way back in the dark days of the early Internet in 1995. (As you can see in the image above, the website’s aesthetic remains virtually unchanged since that time, a powerful reminder of how far web design has come.) 
However, as irresistible as this story was to news outlets, Facebook’s engineers didn’t pull the plug on the experiment out of fear the bots were somehow secretly colluding to usurp their meatbag overlords and usher in a new age of machine dominance. They ended the experiment due to the fact that, once the bots had deviated far enough from acceptable English language parameters, the data gleaned by the conversational aspects of the test was of limited value.
For each kind of question, a unique pattern must be available in the database to provide a suitable response. With lots of combination on patterns, it creates a hierarchical structure. We use algorithms to reduce the classifiers and generate the more manageable structure. Computer scientists call it a “Reductionist” approach- in order to give a simplified solution, it reduces the problem.
Beyond users, bots must also please the messaging apps themselves. Take Facebook Messenger. Executives have confirmed that advertisements within Discover — their hub for finding new bots to engage with — will be the main way Messenger monetizes its 1.3 billion monthly active users. If standing out among the 100,000 other bots on the platform wasn't difficult enough, we can assume Messenger will only feature bots that don't detract people from the platform.
When considering potential uses, first assess the impact on resources. There are two options here: replacement or empowerment. Replacement is clearly easier as you don’t need to consider integration with existing processes and you can build from scratch. Empowerment enhances an existing process by making it more flexible, accommodating, accessible and simple for users.
[In] artificial intelligence ... machines are made to behave in wondrous ways, often sufficient to dazzle even the most experienced observer. But once a particular program is unmasked, once its inner workings are explained ... its magic crumbles away; it stands revealed as a mere collection of procedures ... The observer says to himself "I could have written that". With that thought he moves the program in question from the shelf marked "intelligent", to that reserved for curios ... The object of this paper is to cause just such a re-evaluation of the program about to be "explained". Few programs ever needed it more.[8]