{"id":3190,"date":"2017-12-13T00:00:00","date_gmt":"2017-12-13T00:00:00","guid":{"rendered":"https:\/\/azure.microsoft.com\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding"},"modified":"2025-06-27T03:15:01","modified_gmt":"2025-06-27T10:15:01","slug":"conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/","title":{"rendered":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>This post was authored by the Azure Bot Service and Language Understanding Team.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft brings the latest advanced chatbot capabilities to developers\u2019 fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs \u2014 using natural communication styles and methods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today, we\u2019re excited to&nbsp;<a href=\"https:\/\/aka.ms\/ltbotluis\" target=\"_blank\" rel=\"noreferrer noopener\">announce<\/a>&nbsp;we\u2019re making generally available Microsoft Cognitive Services&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/cognitive-services\/language-understanding-intelligent-service\/\" target=\"_blank\" rel=\"noreferrer noopener\">Language Understanding service (LUIS)<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/bot-service\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Bot Service<\/a>, two top notch AI services to create digital agents that interact in natural ways and make sense of the surrounding environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Think about the possibilities: all developers regardless of expertise in data science able to build conversational AI that can enrich and expand the reach of applications to audiences across a myriad of conversational channels. The app will be able to understand natural language, reason about content and take intelligent actions. Bringing intelligent agents to developers and organizations that do not have expertise in data science is disruptive to the way humans interact with computers in their daily life and the way enterprises run their businesses with their customers and employees.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Through our preview journey in the past two years, we have learned a lot from interacting with thousands of customers undergoing digital transformation. We highlighted some of our customer stories (such as&nbsp;<a href=\"https:\/\/customers.microsoft.com\/en-us\/story\/ups\" target=\"_blank\" rel=\"noreferrer noopener\">UPS<\/a>,&nbsp;<a href=\"https:\/\/aka.ms\/csequadex\">Equadex<\/a>, and more) in our general availability&nbsp;<a href=\"https:\/\/aka.ms\/ltbotluis\" target=\"_blank\" rel=\"noreferrer noopener\">announcement<\/a>. This post covers conversational AI in a nutshell using Azure Bot Service and LUIS, what we\u2019ve learned so far, and dive into the new capabilities. We will also show how easy it is to get started in building a conversational bot with natural language.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conversational-ai-with-azure-bot-service-and-luis\">Conversational AI with Azure Bot Service and LUIS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Bot Service provides a scalable, integrated bot development and hosting environment for conversational bots that can reach customers across multiple channels on any device. Bots provide the conversational interface that accepts user input in different modalities including text, speech, cards, or images. The Azure Bot Service offers a set of fourteen channels to interact with users including Cortana, Facebook Messenger, Skype, etc. Intelligence is enabled in the Azure Bot Service through the cloud AI services forming the bot brain that understands and reasons about the user input. Based on understanding the input, the bot can help the user complete some tasks, answer questions, or even chit chat through action handlers. The following diagram summarizes how conversational AI applications are enabled through the Azure Bot Service and the Cloud AI services including language understanding, speech recognition, Q&amp;A Maker, etc.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp\" alt=\"chart\" class=\"wp-image-11474 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Language Understanding (LUIS)<\/strong>&nbsp;is the key part of the bot brain that allows the bot to understand natural language input and reason about it to take the appropriate action. As customization is critical for every business scenario, Language Understanding helps build custom models for your business vertical with little effort and without prior expertise in data science. Designed to identify valuable information in conversations, it interprets user goals (intents) and distills valuable information from sentences (entities), for a high quality, nuanced language model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the General Availability of&nbsp;<strong>Language Understanding<\/strong>&nbsp;and&nbsp;<strong>Azure Bot Service<\/strong>, we\u2019re also introducing new capabilities to help you achieve more and delight your users<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Language Understanding:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">With an updated user interface, we\u2019re providing\u00a0<strong>Language Understanding service (LUIS)<\/strong>\u00a0users more intents and entities than ever: expanding up to\u00a0<strong>500 intents<\/strong>\u00a0(task or action identified in the sentence) and 100 entities (relevant information extracted, from the sentence, to complete the task or action associated to the intent) per application.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Language Understanding is now available in\u00a0<strong>7 new regions<\/strong>\u00a0(South Central US, East US, West US 2, East Asia, North Europe, Brazil South, Australia East) on top of\u00a0<strong>the 5 existing regions<\/strong>\u00a0(West Europe, West US, East US2, West central US, South east Asia). This will help customers to improve network latency and bandwidth.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">The Language Understanding service is also supporting more languages for its various features, in addition to English.\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">The prebuilt entities (representing common concepts like numbers, date, time) previously available in English are now available in\u00a0<strong>French and Spanish<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Prebuilt domains (off-the-shelf collections of intents and entities grouped by domain that you can directly add and use in your application) are now also available in\u00a0<strong>Chinese<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Phrase suggestions that help the developer customize your LUIS domain vocabulary are available in\u00a0<strong>7 new languages Chinese, Spanish, Japanese, French, Portuguese, German, and Italian<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Bot Service:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Speed bot development by providing an integrated environment with the Microsoft Bot Framework channels, development tools and hosting solutions.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Connect with your audience with no code modifications via our supported channels on the Bot Service; Office 365 Email, GroupMe, Facebook Messenger, Kik, Skype, Slack, Microsoft Teams, Telegram, text\/SMS, Twilio, Cortana, Skype for Business \u2013 or provide a custom experience in your app or website.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Bot Service is now\u00a0<strong>integrated into the Azure portal<\/strong>; easy access to 24\u00d77 support, monitoring capabilities, integrated billing and more in the trusted Azure ecosystem.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Now generally available in 9 different regions namely West US, East US, West Europe, and Southeast Asia including new deployments in\u00a0<strong>North Europe, Australia Southeast, Australia East, Brazil South, and East Asia regions<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">We are also announcing\u00a0<strong>Premium Channels<\/strong>\u00a0including webchat and directline.\u00a0 Premium channels offer unique capabilities over the standard channels:\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Communicate with your users on your website or in your application instead of sharing that data with public chat services.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Open Source webchat and directline clients enabling advanced customization opportunities.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">99.9% availability guarantees for premium channels<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Developers can connect to other Azure services to enrich their bots as well as add Cognitive Services to enable your bots to see, hear, interpret, and interact in more human ways. For example, on top of language, the Computer Vision and Face APIs can enable bots to understand images and faces passed to the bot.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"learning-through-our-customer-s-experiences\">Learning through our customer\u2019s experiences<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For several years now, Microsoft has been leading the charge into the application of AI to build new intelligent conversational experiences\u2026everything from proprietary solutions built to target a specific audience on a specific chat service to general purpose API\u2019s that expect the developer to create the rest of the custom solution themselves.&nbsp; We are still at the beginning of this evolution of the conversational application model; but already we have takeaways that are guiding how we think about the future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Bots are changing how we do business.<\/strong>&nbsp;We are constantly having great discussions with customers who see bots as a key part of their digital transformation as a business. They see the opportunity to enhance their customer support experiences, provide easy access to information, or even expose their business to an audience that might not otherwise visit their website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Developers need to have choice in technologies.<\/strong>&nbsp;With the growth in popularity of open source technologies, developers want choice of the technology components they use to build solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Great conversational applications are multi-modal.<\/strong>&nbsp;Our customers are building conversational experiences which accomplish multiple tasks. For example, a customer support bot may have a Q&amp;A search function, a support ticket entry function, a guided dialog to diagnose a problem, and an appointment scheduling function that hands off to a human for final confirmation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AI platforms must scale to the needs of business.&nbsp;<\/strong>Often as not, business scenarios are based on sets of concepts that are being codified into the bot. Developers require the technologies they depend on to scale to the complexity of their business without arbitrary limits getting in the way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conversational app platforms need to be reliable and compliant.<\/strong>&nbsp;In the same way that mobile app platforms have needed to provide robust and secure platforms to enable great productivity scenarios, so too will conversational application platforms; they must be certifiably secure, reliable, compliant and privacy aware. In addition, the platform should to make it easy for developers building to it to build compliant solutions as well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Businesses are global and multi-lingual.&nbsp;<\/strong>Businesses need to talk to customers world-wide 24\/7 in their language of choice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>There is art in building a great conversational application.<\/strong>&nbsp;Much in the same way the 80\u2019s and 90\u2019s cemented what we now think of as common controls for native apps, and the 2000\u2019s for web and mobile, the industry is still defining what it means to be a great conversational application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"key-design-considerations\">Key design considerations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Given the learnings we\u2019ve had, we\u2019ve anchored our design on the following six points to shape the Azure Bot Service and Language Understanding (LUIS) capabilities:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Code-first approach:<\/strong>&nbsp;Azure Bot Service is built on top of the BotBuilder SDK V3 (in Node.js) that takes a code-first approach to enable developers to have full control over their bots\u2019 conversational capabilities. Available for both Node.JS and C#, the open source SDK\u2019s provides multiple dialog types and conversational orchestration tools to help the developer with various tasks like slot filling, dialog management and card representation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Different dialog management flavors:<\/strong>&nbsp;developers build bots that range from simple question answer bots to multi-turn solutions that span ten or fifteen turns to complete a task. We provide a rich set of dialog management flavors to cover the different task types a bot developer might wish to expose. You can create bots that utilize a mix of prompts, form filling, natural language, and your own dialog management system with the ability to reuse some of the components like prompts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Open bot platform:<\/strong>&nbsp;Building on Azure\u2019s commitment to open source technologies, applications using our SDK and LUIS can be deployed on any connected infrastructure and consumed from any device anywhere targeting your audience on multiple chat channels. This open design allows the offering to be integrated with different deployment platforms including public cloud or on-premise infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Global and multi-lingual: We have put considerable effort into making our services highly available and as close to customers as possible as part of the Azure cloud.&nbsp; Azure Bot Service and Language Understanding support a growing list of languages for understanding conversations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Getting started quickly:<\/strong>&nbsp;While bots can be deployed anywhere, with Azure we provide rich connected cloud services for hosting your bot and AI applications with a single click.&nbsp; The Azure Bot Service and LUIS get you a running bot that can converse with users in a natural way in minutes. Azure Bot Service takes care of provisioning all of the Azure resources you need so that developers can focus on their business logic. LUIS provides customizable pre-built apps and entity dictionaries, such as Calendar, Music, and Devices, so you can build and deploy a solution more quickly. Dictionaries are mined from the collective knowledge of the web and supply billions of entries, helping your model to correctly identify valuable information from user conversations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Custom models with little effort:<\/strong>&nbsp;as customization is critical for every business scenario, LUIS capitalizes on the philosophy of machine teaching to help non-expert machine learning developers build effective custom language understanding models. While machine learning focuses on creating new algorithms and improving the accuracy of \u201clearners\u201d, the machine teaching discipline focuses on the e\u00ef\u00ac\u0192cacy of the \u201cteachers\u201d. Machine teaching as a discipline is a paradigm shift that follows and extends principles of software engineering and programming languages. It provides the developer with a set of tools to build machine learning models by transferring the developer domain knowledge to the machine learning algorithms. This contrasts with Machine Learning which is about creating useful models from this knowledge. Developer knowledge is expressed in LUIS through schema (what intents and entities are in the LUIS application) and labeled examples.&nbsp; It supports a wide variety of techniques for reliably recognizing entities with normalization to allow them to be easily consumed in a program.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Always monitor, learn and improve:<\/strong>&nbsp;Azure Bot Service and LUIS use Azure monitoring tools to help developers monitor the performance of their bots including the quality of the language understanding models and the bot usage. Once the model starts processing input, LUIS begins active learning, allowing you to constantly update and improve the model. It helps you pick the most informative utterances from your real bot traffic to add to your model and continuously improve. This intelligent selection of examples to add to the training data of the LUIS model helps developers build cost effective models that don\u2019t require a lot of data and yet perform with high accuracy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"getting-started-with-the-bot-service-and-language-understanding\">Getting started with the Bot Service and Language Understanding<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this section, we\u2019ll create a bot using the Azure Bot Service that uses Language Understanding (LUIS) to understand the user. When creating a bot using natural language, the bot determines what a user wants to do by identifying their intent. This intent is determined from spoken or textual input, or utterances, which in turn can be mapped to actions that Bot developers has coded. For example, a note-taking bot recognizes a Notes. Create intent to invoke the functionality for creating a note. A bot may also need to extract entities, which are important words in utterances. In the example of a note-taking bot, the Notes. Title entity identifies the title of each note.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-a-language-understanding-bot-with-bot-service\">Create a Language Understanding bot with Bot Service<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To create your bot; log in the\u00a0<a href=\"https:\/\/portal.azure.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure portal<\/a>, select Create new resource in the menu blade and select<strong>\u00a0AI + Cognitive Services<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/2847e8f3-06f5-4612-9acf-6a7080b7ac57.webp\" alt=\"graphical user interface, application\" class=\"wp-image-11476 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/2847e8f3-06f5-4612-9acf-6a7080b7ac57.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can browse through the suggestions, or search for\u00a0<strong>Web App Bot<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/f1d486c6-9e8e-4c60-ae1b-35b1ddff62ca.webp\" alt=\"graphical user interface, application\" class=\"wp-image-11478 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/f1d486c6-9e8e-4c60-ae1b-35b1ddff62ca.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once selected, the Bot Service blade should appear; which will be familiar to users of Azure services. For those that aren\u2019t, here you can specify information about your service for the Bot Service to use in creating your bot such as where it will live, what subscription in and so forth. In the&nbsp;<strong>Bot Service<\/strong>&nbsp;blade, provide the required information, and click Create. This creates and deploys the bot service and LUIS app to Azure. Some interesting fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Set\u00a0<strong>App name<\/strong>\u00a0to your bot\u2019s name. The name is used as the subdomain when your bot is deployed to the cloud (for example, mynotesbot.azurewebsites.net). This name is also used as the name of the LUIS app associated with your bot. Copy it to use later, to find the LUIS app associated with the bot.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Select the subscription, resource group, hosting plan, and location.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">For pricing, you can choose the free\u00a0<strong>pricing tier<\/strong>. You can go back and change that at any time if you need more.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">For this sample, select the<strong>\u00a0Language understanding (C#)<\/strong>\u00a0template for the\u00a0<strong>Bot template<\/strong>\u00a0field.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">For the final required field, choose the\u00a0<strong>Azure Storage<\/strong>\u00a0where you wish to store your bot\u2019s conversation state. Think of this as where the bot keeps track of where each user is in the conversation.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/82551100-22f6-46c9-99de-7e7f38c4c530.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-11480 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/82551100-22f6-46c9-99de-7e7f38c4c530.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now that you\u2019re complete, you can click&nbsp;<strong>Create<\/strong>. Azure will set about creating your bot including the resources it needs to operate your bot and a LUIS account to host your natural language model. Once complete, you\u2019ll receive a notification via the bell in the top right corner of the Azure portal.<br>Next up, lets confirm that the bot service has been deployed.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click Notifications (the bell icon that is located along the top edge of the Azure portal). The notification will change from\u00a0<strong>Deployment started<\/strong>\u00a0to\u00a0<strong>Deployment succeeded<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">After the notification changes to\u00a0<strong>Deployment succeeded<\/strong>, click<strong>\u00a0Go to resource<\/strong>\u00a0on that notification.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"try-the-bot\">Try the bot<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">So now you should have a working bot. Let\u2019s try it out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the bot is registered, click&nbsp;<strong>Test in Web Chat<\/strong>&nbsp;to open the Web Chat pane. Type \u201chello\u201d in Web Chat.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/ed004da1-a3c1-496d-b335-924e37b5c637.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-11482 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/ed004da1-a3c1-496d-b335-924e37b5c637.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The bot responds by saying \u201cYou have reached Greeting. You said: hello\u201d. This confirms that the bot has received your message and passed it to a default LUIS app that it created. This default LUIS app detected a Greeting intent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong>&nbsp;Occasionally, the first message or two after startup may need to be retried before the bot will answer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Viola! You have a working bot! The default bot only knows a few things; it recognizes some greetings, as well as help and cancel. In the next section we\u2019ll modify the LUIS app for our bot to add some new intents for our Note taking bot.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"modify-the-luis-app\">Modify the LUIS app<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to&nbsp;<a href=\"https:\/\/www.luis.ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">www.luis.ai<\/a>&nbsp;using the same account you use to log in to Azure. Click on&nbsp;<strong>My apps<\/strong>. If all has gone well, in the list of apps, you\u2019ll find the app with the same name as the&nbsp;<strong>App name<\/strong>&nbsp;from the&nbsp;<strong>Bot Service<\/strong>&nbsp;blade when you created the Bot Service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After opening the app, you should see it has four intents: Cancel, Greeting, Help, and None. The first three we already mentioned.&nbsp;<strong>None<\/strong>&nbsp;is a special intent in LUIS that captures \u201ceverything else\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For our sample, we\u2019re going to add three intents for the user:&nbsp;<strong>Note.Create<\/strong>&nbsp;and&nbsp;<strong>Note.ReadAloud<\/strong>. Conveniently, one of the great features about LUIS are the pre-built domains that can be used to bootstrap your application, of which Note is one.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click on\u00a0<strong>Pre-built Domains<\/strong>\u00a0in the lower left of the page. Find the\u00a0<strong>Note\u00a0<\/strong>domain and click\u00a0<strong>Add domain<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">This tutorial doesn\u2019t use all the intents included in the\u00a0<strong>Note<\/strong>\u00a0prebuilt domain. In the\u00a0<strong>Intents<\/strong>\u00a0page, click on each of the following intent names and then click the\u00a0<strong>Delete Intent<\/strong>\u00a0button to remove them from your app.\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Note.ShowNext<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.DeleteNoteItem<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.Confirm<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.Clear<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.CheckOffItem<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.AddToNote<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Note.Delete<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>IMPORTANT:<\/strong>\u00a0The only intents that should remain in the LUIS app are the Note.ReadAloud, Note.Create, None, Help, Greeting, and Cancel intents.\u00a0 If they\u2019re still there, your app will still work, but may more often behave inconsistently.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">As mentioned earlier, the Intents that we\u2019ve now added represent the types of things we expect the user to want the bot to do.&nbsp; Since these are pre-defined, we don\u2019t have to do any further tuning to the model, so let\u2019s jump right to training and publishing your model.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click the\u00a0<strong>Train<\/strong>\u00a0button in the upper right to train your app.\u00a0 Training takes everything you\u2019ve entered into the model by creating intents and entities, entering utterances and labeling them and generates a machine learned model, all with one click.\u00a0 You can test your app here in the LUIS portal, or move on to publishing so that it\u2019s available to your bot.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Click\u00a0<strong>PUBLISH<\/strong>\u00a0in the top navigation bar to open the\u00a0<strong>Publish<\/strong>\u00a0page. Click the\u00a0<strong>Publish<\/strong>\u00a0<strong>to production slot<\/strong>\u00a0button. After successful publish, copy the URL displayed in the\u00a0<strong>Endpoint<\/strong>\u00a0column the\u00a0<strong>Publish App<\/strong>\u00a0page, in the row that starts with the Resource Name Starter_Key. Save this URL to use later in your bot\u2019s code. The URL has a format similar to this example:\u00a0<a href=\"https:\/\/westus.api.cognitive.microsoft.com\/luis\/v2.0\/apps\/xxxxxxxxxxxxxxxxx?subscription-key=xxxxxxxxxxxxxx3&amp;timezoneOffset=0&amp;verbose=true&amp;q=\">https:\/\/westus.api.cognitive.microsoft.com\/luis\/v2.0\/apps\/xxxxxxxxxxxxxxxxx?subscription-key=xxxxxxxxxxxxxx3&amp;timezoneOffset=0&amp;verbose=true&amp;q=<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Your Language Understanding Application is now ready for your Bot. If the user asks to create, delete, or read back a note, Language Understanding will identify that and return the correct intent to the Bot to be acted on. In the next section we\u2019ll add logic to the bot to handle these Intents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"modify-the-bot-code\">Modify the bot code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Bot Service is set up to work in a traditional development environment; sync your source code with GIT and work in your favorite dev environment. That said, Azure Bot Service also offers the ability to edit right in the portal; which is great for our experiment. Click\u00a0<strong>Build<\/strong>\u00a0and then click\u00a0<strong>Open online code editor<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/94cb0679-6430-4b0d-ae98-fcb0ebc820a9.webp\" alt=\"graphical user interface, application\" class=\"wp-image-11484 webp-format\" style=\"object-fit:cover;width:344px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/94cb0679-6430-4b0d-ae98-fcb0ebc820a9.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">First, some preamble. In the code editor, open BasicLuisDialog.cs. It contains the code for handling Cancel, Greeting, Help, and None intents from the LUIS app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following statement:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">using System.Collections.Generic;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-a-class-for-storing-notes\">Create a class for storing notes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following after the BasicLuisDialog constructor:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\nprivate readonly Dictionary noteByTitle = new Dictionary();\n\nprivate Note noteToCreate;\n\nprivate string currentTitle;\n\n\/\/ CONSTANTS\n\n\/\/ Name of note title entity\n\npublic const string Entity_Note_Title = \"Note.Title\";\n\n\/\/ Default note title\n\npublic const string DefaultNoteTitle = \"default\";\n\n[Serializable]\n\npublic sealed class Note : IEquatable\n\n{\n\npublic string Title { get; set; }\n\npublic string Text { get; set; }\n\npublic override string ToString()\n\n{\n\nreturn $\"[{this.Title} : {this.Text}]\";\n\n}\n\npublic bool Equals(Note other)\n\n{\n\nreturn other != null\n\n&& this.Text == other.Text\n\n&& this.Title == other.Title;\n\n}\n\npublic override bool Equals(object other)\n\n{\n\nreturn Equals(other as Note);\n\n}\n\npublic override int GetHashCode()\n\n{\n\nreturn this.Title.GetHashCode();\n\n}\n\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"handle-the-note-create-intent\">Handle the Note.Create intent<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Note.Create intent, add the following code to the BasicLuisDialog class.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\n[LuisIntent(\"Note.Create\")]\n\npublic Task NoteCreateIntent(IDialogContext context, LuisResult result)\n\n{\n\nEntityRecommendation title;\n\nif (!result.TryFindEntity(Entity_Note_Title, out title))\n\n{\n\n\/\/ Prompt the user for a note title\n\nPromptDialog.Text(context, After_TitlePrompt, \"What is the title of the note you want to create?\");\n\n}\n\nelse\n\n{\n\nvar note = new Note() { Title = title.Entity };\n\nnoteToCreate = this.noteByTitle[note.Title] = note;\n\n\/\/ Prompt the user for what they want to say in the note\n\nPromptDialog.Text(context, After_TextPrompt, \"What do you want to say in your note?\");\n\n}\n\nreturn Task.CompletedTask;\n\n}\n\nprivate async Task After_TitlePrompt(IDialogContext context, IAwaitable result)\n\n{\n\nEntityRecommendation title;\n\n\/\/ Set the title (used for creation, deletion, and reading)\n\ncurrentTitle = await result;\n\nif (currentTitle != null)\n\n{\n\ntitle = new EntityRecommendation(type: Entity_Note_Title) { Entity = currentTitle };\n\n}\n\nelse\n\n{\n\n\/\/ Use the default note title\n\ntitle = new EntityRecommendation(type: Entity_Note_Title) { Entity = DefaultNoteTitle };\n\n}\n\n\/\/ Create a new note object\n\nvar note = new Note() { Title = title.Entity };\n\n\/\/ Add the new note to the list of notes and also save it in order to add text to it later\n\nnoteToCreate = this.noteByTitle[note.Title] = note;\n\n\/\/ Prompt the user for what they want to say in the note\n\nPromptDialog.Text(context, After_TextPrompt, \"What do you want to say in your note?\");\n\n}\n\nprivate async Task After_TextPrompt(IDialogContext context, IAwaitable result)\n\n{\n\n\/\/ Set the text of the note\n\nnoteToCreate.Text = await result;\n\nawait context.PostAsync($\"Created note **{this.noteToCreate.Title}** that says \"{this.noteToCreate.Text}\".\");\n\ncontext.Wait(MessageReceived);\n\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"handle-the-note-readaloud-intent\">Handle the Note.ReadAloud Intent<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The bot can use the Note.ReadAloud intent to show the contents of a note, or of all the notes if the note title isn\u2019t detected. Paste the following code into the BasicLuisDialog class.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\n[LuisIntent(\"Note.ReadAloud\")]\n\npublic async Task NoteReadAloudIntent(IDialogContext context, LuisResult result)\n\n{\n\nNote note;\n\nif (TryFindNote(result, out note))\n\n{\n\nawait context.PostAsync($\"**{note.Title}**: {note.Text}.\");\n\n}\n\nelse\n\n{\n\n\/\/ Print out all the notes if no specific note name was detected\n\nstring NoteList = \"Here's the list of all notes: nn\";\n\nforeach (KeyValuePair entry in noteByTitle)\n\n{\n\nNote noteInList = entry.Value;\n\nNoteList += $\"**{noteInList.Title}**: {noteInList.Text}.nn\";\n\n}\n\nawait context.PostAsync(NoteList);\n\n}\n\ncontext.Wait(MessageReceived);\n\n}\n\npublic bool TryFindNote(string noteTitle, out Note note)\n\n{\n\n\/\/ TryGetValue returns false if no match is found.\n\nbool foundNote = this.noteByTitle.TryGetValue(noteTitle, out note);\n\nreturn foundNote;\n\n}\n\npublic bool TryFindNote(LuisResult result, out Note note)\n\n{\n\nnote = null;\n\nstring titleToFind;\n\nEntityRecommendation title;\n\nif (result.TryFindEntity(Entity_Note_Title, out title))\n\n{\n\ntitleToFind = title.Entity;\n\n}\n\nelse\n\n{\n\ntitleToFind = DefaultNoteTitle;\n\n}\n\n\/\/ TryGetValue returns false if no match is found.\n\nreturn this.noteByTitle.TryGetValue(titleToFind, out note);\n\n}\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"build-the-bot\">Build the bot<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now that the cut and paste part is done, you can right-click on\u00a0<strong>build.cmd<\/strong>\u00a0in the code editor and choose\u00a0<strong>Run from Console<\/strong>. Your bot will be built and deployed from within the online code editor environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"test-the-bot\">Test the bot<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the Azure Portal, click on\u00a0<strong>Test in Web Chat<\/strong>\u00a0to test the bot. Try type messages like \u201cCreate a note\u201d, \u201cread my notes\u201d, and \u201cdelete notes\u201d.\u00a0 Because you\u2019re using natural language you have more flexibility on how you state your request, and in turn, Language Understanding\u2019s Active Learning feature can be used such that you can open your Language Understanding application and it can make suggestions about things you said which it didn\u2019t understand and might make your app more effective.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5c6a1ce6-f390-43d3-99ca-a4ca9121aa17.webp\" alt=\"graphical user interface, application\" class=\"wp-image-11486 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5c6a1ce6-f390-43d3-99ca-a4ca9121aa17.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tip: If you find that your bot doesn\u2019t always recognize the correct intent or entities, improve your Language Understanding app\u2019s performance by giving it more example utterances to train it. You can retrain your Language Understanding app without any modification to your bot\u2019s code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"that-s-it-for-now\">That\u2019s It (For Now)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From here you\u2019re just getting started.&nbsp; You can go back to the bot service and connect your bot to various conversation channels.&nbsp; You can remove the pre-built intents and start creating your own custom intents for your application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s a world to discover in creating conversational applications and it\u2019s easy to get started.&nbsp; We look forward to seeing what you create and your feedback. For more information, please visit the following sites:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Azure Bot Service:\u00a0<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/bot-service\/\" target=\"_blank\" rel=\"noreferrer noopener\">website<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\">Language Understanding service (LUIS):\u00a0<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/cognitive-services\/language-understanding-intelligent-service\/\" target=\"_blank\" rel=\"noreferrer noopener\">website<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.luis.ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">portal<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\">Reference architectures, please refer to\u00a0<a href=\"https:\/\/aka.ms\/scenarios-abs\">https:\/\/aka.ms\/scenarios-abs<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Happy coding!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Azure Bot Service and Language Understanding Team<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft brings the latest advanced chatbot capabilities to developers&#8217; fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs &#8212; using natural\u2026.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1454],"tags":[],"audience":[3057,3055,3056],"content-type":[],"product":[1631],"tech-community":[],"topic":[],"coauthors":[97],"class_list":["post-3190","post","type-post","status-publish","format-standard","hentry","category-ai-machine-learning","audience-data-professionals","audience-developers","audience-it-implementors","product-azure-ai-bot-service","review-flag-1680286581-295","review-flag-1680286581-56","review-flag-1680286581-364","review-flag-1680286584-658","review-flag-2-1680286581-601","review-flag-24-7-1680286585-656","review-flag-5-1680286581-950","review-flag-7-1680286581-146","review-flag-9-1680286581-259","review-flag-alway-1680286580-106","review-flag-anywh-1680286580-635","review-flag-free-1680286579-836","review-flag-gener-1680286584-335","review-flag-machi-1680286585-314","review-flag-new-1680286579-546","review-flag-on-pr-1680286585-498"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"Microsoft brings the latest advanced chatbot capabilities to developers&#039; fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"Microsoft brings the latest advanced chatbot capabilities to developers&#039; fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-13T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T10:15:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png\" \/>\n<meta name=\"author\" content=\"Microsoft Azure\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Azure\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/\",\"@type\":\"Person\",\"@name\":\"Microsoft Azure\"}],\"headline\":\"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding\",\"datePublished\":\"2017-12-13T00:00:00+00:00\",\"dateModified\":\"2025-06-27T10:15:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\"},\"wordCount\":3679,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png\",\"articleSection\":[\"AI + machine learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\",\"name\":\"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png\",\"datePublished\":\"2017-12-13T00:00:00+00:00\",\"dateModified\":\"2025-06-27T10:15:01+00:00\",\"description\":\"Microsoft brings the latest advanced chatbot capabilities to developers' fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp\",\"width\":1575,\"height\":847,\"caption\":\"chart\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI + machine learning\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/ai-machine-learning\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog","description":"Microsoft brings the latest advanced chatbot capabilities to developers' fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/","og_locale":"en_US","og_type":"article","og_title":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog","og_description":"Microsoft brings the latest advanced chatbot capabilities to developers' fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2017-12-13T00:00:00+00:00","article_modified_time":"2025-06-27T10:15:01+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png","type":"","width":"","height":""}],"author":"Microsoft Azure","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Microsoft Azure","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/","@type":"Person","@name":"Microsoft Azure"}],"headline":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding","datePublished":"2017-12-13T00:00:00+00:00","dateModified":"2025-06-27T10:15:01+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/"},"wordCount":3679,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png","articleSection":["AI + machine learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/","name":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.png","datePublished":"2017-12-13T00:00:00+00:00","dateModified":"2025-06-27T10:15:01+00:00","description":"Microsoft brings the latest advanced chatbot capabilities to developers' fingertips, allowing them to create apps that see, hear, speak, understand, and interpret users\u2019 needs -- using natural\u2026","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/12\/5588dd73-2c97-4efb-9a8e-e24ff0f31806.webp","width":1575,"height":847,"caption":"chart"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/conversational-bots-deep-dive-what-s-new-with-the-general-availability-of-azure-bot-service-and-language-understanding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"AI + machine learning","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/ai-machine-learning\/"},{"@type":"ListItem","position":3,"name":"Conversational Bots Deep Dive \u2013 What\u2019s new with the General Availability of Azure Bot Service and Language Understanding"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=3190"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3190\/revisions"}],"predecessor-version":[{"id":44025,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3190\/revisions\/44025"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=3190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=3190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=3190"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=3190"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=3190"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=3190"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=3190"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=3190"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=3190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}