Getting the remaining values (information that user would have provided to bot’s previous questions, bot’s previous action, results of the API call etc.,) is little bit tricky and here is where the dialogue manager component takes over. These feature values will need to be extracted from the training data that the user will define in the form of sample conversations between the user and the bot. These sample conversations should be prepared in such a fashion that they capture most of the possible conversational flows while pretending to be both an user and a bot.

Rather than having the campaign speak for Einstein, we wanted Einstein to speak for himself, Layne Harris, 360i’s VP, Head of Innovation Technology, said to GeoMarketing. "We decided to pursue a conversational chatbot that would feel natural and speak as Einstein would. This provides a more intimate and immersive experience for users to really connect with him one on one and organically discover more content from the show."
A chatbot (sometimes referred to as a chatterbot) is programming that simulates the conversation or "chatter" of a human being through text or voice interactions. Chatbot virtual assistants are increasingly being used to handle simple, look-up tasks in both business-to-consumer (B2C) and business-to-business (B2B) environments. The addition of chatbot assistants not only reduces overhead costs by making better use of support staff time, it also allows companies to provide a level of customer service during hours when live agents aren't available.
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.
Chatbots can have varying levels of complexity and can be stateless or stateful. A stateless chatbot approaches each conversation as if it was interacting with a new user. In contrast, a stateful chatbot is able to review past interactions and frame new responses in context. Adding a chatbot to a company's service or sales department requires low or no coding; today, a number of chatbot service providers that allow developers to build conversational user interfaces for third-party business applications.
As retrieved from Forbes, Salesforce’s chief scientist, Richard Socher talked in a conference about his revelations of NLP and machine translation: “I can’t speak for all chatbot deployments in the world – there are some that aren’t done very well…but in our case we’ve heard very positive feedback because when a bot correctly answers questions or fills your requirements it does it very, very fast.
The market shapes customer behavior. Gartner predicts that “40% of mobile interactions will be managed by smart agents by 2020.” Every single business out there today either has a chatbot already or is considering one. 30% of customers expect to see a live chat option on your website. Three out of 10 consumers would give up phone calls to use messaging. As more and more customers begin expecting your company to have a direct way to contact you, it makes sense to have a touch point on a messenger.
You can structure these modules to flow in any way you like, ranging from free form to sequential. The Bot Framework SDK provides several libraries that allows you to construct any conversational flow your bot needs. For example, the prompts library allows you to ask users for input, the waterfall library allows you to define a sequence of question/answer pair, the dialog control library allows you to modularized your conversational flow logic, etc. All of these libraries are tied together through a dialogs object. Let's take a closer look at how modules are implemented as dialogs to design and manage conversation flows and see how that flow is similar to the traditional application flow.
In 1950, Alan Turing's famous article "Computing Machinery and Intelligence" was published,[7] which proposed what is now called the Turing test as a criterion of intelligence. This criterion depends on the ability of a computer program to impersonate a human in a real-time written conversation with a human judge, sufficiently well that the judge is unable to distinguish reliably—on the basis of the conversational content alone—between the program and a real human. The notoriety of Turing's proposed test stimulated great interest in Joseph Weizenbaum's program ELIZA, published in 1966, which seemed to be able to fool users into believing that they were conversing with a real human. However Weizenbaum himself did not claim that ELIZA was genuinely intelligent, and the introduction to his paper presented it more as a debunking exercise: