When one dialog invokes another, the Bot Builder adds the new dialog to the top of the dialog stack. The dialog that is on top of the stack is in control of the conversation. Every new message sent by the user will be subject to processing by that dialog until it either closes or redirects to another dialog. When a dialog closes, it's removed from the stack, and the previous dialog in the stack assumes control of the conversation.
WeChat was created by Chinese holding company Tencent three years ago. The product was created by a special projects team within Tencent (who also owns the dominant desktop messaging software in China, QQ) under the mandate of creating a completely new mobile-first messaging experience for the Chinese market. In three short years, WeChat has exploded in popularity and has become the dominant mobile messaging platform in China, with approximately 700M monthly active users (MAUs).
Last, but not least coming in with the bot platform for business is FlowXO, which creates bots for Messenger, Slack, SMS, Telegraph and the web. This platform allows for creating various flexibility in bots by giving you the option to create a fully automated bot, human, or a hybrid of both. ChatBot expert Murray Newlands commented that "Where 10 years ago every company needed a website and five years ago every company needed an app, now every company needs to embrace messaging with AI and chatbots."
Another option is to integrate your own custom AI service. This approach is more complex, but gives you complete flexibility in terms of the machine learning algorithm, training, and model. For example, you could implement your own topic modeling and use algorithm such as LDA to find similar or relevant documents. A good approach is to expose your custom AI solution as a web service endpoint, and call the endpoint from the core bot logic. The web service could be hosted in App Service or in a cluster of VMs. Azure Machine Learning provides a number of services and libraries to assist you in training and deploying your models.
The goal of intent-based bots is to solve user queries on a one to one basis. With each question answered it can adapt to the user behavior. The more data the bots receive, the more intelligent they become. Great examples of intent-based bots are Siri, Google Assistant, and Amazon Alexa. The bot has the ability to extract contextual information such as location, and state information like chat history, to suggest appropriate solutions in a specific situation.