What's new (July 2019)

APPLIES TO: yesSDK v4 no SDK v3

The Bot Framework SDK v4 is an Open Source SDK that enable developers to model and build sophisticated conversation using their favorite programming language.

This article summarizes key new features and improvements in Bot Framework and Azure Bot Service.

C# JS Python
SDK 4.5 4.5 4.4.0b2 (preview)
Docs docs docs
Samples .NET Core, WebAPI Node.js , TypeScript, es6 Python

Bot Framework Channels

  • Direct Line Speech (public preview) | docs: Bot Framework and Microsoft's Speech Services provide a channel that enables streamed speech and text bi-directionally from the client to the bot application using WebSockets.

  • Direct Line App Service Extension (public preview) | docs: A version of Direct Line that allows clients to connect directly to bots using the Direct Line API. This offers many benefits, including increased performance and more isolation. Direct Line App Service Extension is available on all Azure App Services, including those hosted within an Azure App Service Environment. An Azure App Service Environment provides isolation and is ideal for working within a VNet. A VNet lets you create your own private space in Azure and is crucial to your cloud network as it offers isolation, segmentation, and other key benefits.

Bot Framework SDK

  • Adaptive Dialog (SDK v4.6 preview) | docs | C# samples: Adaptive Dialog now allow developers to dynamically update conversation flow based on context and events. This is especially useful when dealing with conversation context switches and interruptions in the middle of a conversation.

  • Bot Framework Python SDK (preview 2) | samples: The Python SDK now supports OAuth, Prompts, CosmosDB, and includes all major functionality in SDK 4.5. Plus, samples to help you learn about the new features in the SDK.

Bot Framework Testing

  • Docs | Unit testing packages (C#/ JavaScript) | C# sample | JS sample: Addressing customers’ and developers’ ask for better testing tools, the July version of the SDK introduces a new unit testing capability. The Microsoft.Bot.Builder.testing package simplifies the process of unit testing dialogs in your bot.

  • Channel Testing | docs:

Introduced at Microsoft Build 2019, the Bot Inspector is a new feature in the Bot Framework Emulator which lets you debug and test bots on channels like Microsoft Teams, Slack, Cortana, and more. As you use the bot on specific channels, messages will be mirrored to the Bot Framework Emulator where you can inspect the message data that the bot received. Additionally, a snapshot of the bot memory state for any given turn between the channel and the bot is rendered as well.

Web Chat

  • Based on enterprise customers asks, we've added a web chat sample that shows how to authorize a user to access resources on an enterprise app with a bot. Two types of resources are used to demonstrate the interoperability of OAuth with Microsoft Graph and GitHub API.


  • Virtual Assistant Solution Acclerator : Provides a set of templates, solution accelerators and skills to help build sophisticated conversational experiences. New Android app client for Virtual Assistant that integrates with Direct-Line Speech and Virtual Assistant demonstrating how a device client can interact with your Virtual Assistant and render Adaptive Cards. Updates also include support for Direct-Line Speech and Microsoft Teams.

  • Dynamics 365 Virtual Agent for Customer Service (public preview): With the public preview, you can provide exceptional customer service with intelligent, adaptable virtual agents. Customer service experts can easily create and enhance bots with AI-driven insights.

  • Chat for Dynamics 365: Chat for Dynamics 365 offers several capabilities to ensure the support agents and end users can interact effectively and remain highly productive. Live chat and track conversations from visitors on your website within Microsoft Dynamics 365.

What's new (May 2019)

C# JS Python Java
SDK 4.4.3 4.4.0 4.4.0b1 (preview) 4.0.0a6 (preview)
Docs docs docs
Samples .NET Core, WebAPI Node.js , TypeScript, es6 Python

Bot Framework SDK (New! In preview)

  • Adaptive Dialog | docs | C# samples: Adaptive Dialogs enable developers to build conversations that can be dynamically changed as the conversation progresses. Traditionally developers have mapped out the entire flow of a conversation up front, which limits the flexibility of the conversation. Adaptive dialogs allow them to be more flexible, to respond to changes in context and insert new steps or entire sub-dialogs into the conversation as it progresses.

  • Language Generation | docs | C# samples: Language Generation; which allows the developer to extract the embedded strings from their code and resource files and manage them through a Language Generation runtime and file format. Language Generation enable customers to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory, and over time will enable us to bring additional capabilities all leading to a more natural conversational experience.

  • Common Expression Language | api: Both Adaptive dialogs and Language Generation rely on and use a common expression language to power bot conversations.


Botkit is a developer tool and SDK for building chat bots, apps and custom integrations for major messaging platforms. Botkit bots hear() triggers, ask() questions and say() replies. Developers can use this syntax to build dialogs - now cross compatible with the latest version of Bot Framework SDK.

In addition, Botkit brings with it 6 platform adapters allowing Javascript bot applications to communicate directly with messaging platforms: Slack, Webex Teams, Google Hangouts, Facebook Messenger, Twilio, and Web chat.

Botkit is part of Microsoft Bot Framework and is released under the MIT Open Source license

Bot Framework Solutions (New! In preview)

The Bot Framework Solutions repository is the home for a set of templates, solution accelerators and skills to help build advanced, assistant-like conversational experiences.

Name Description
Virtual Assistant Customers have a significant need to deliver a conversational assistant tailored to their brand, personalized to their users, and made available across a broad range of canvases and devices.

The Enterprise Template greatly simplifies the creation of a new bot project including: basic conversational intents, Dispatch integration, QnA Maker, Application Insights and an automated deployment.
Skills Developers can compose conversational experiences by stitching together re-usable conversational capabilities, known as Skills. Skills are themselves Bots, invoked remotely and a Skill developer template (.NET, TS) is available to facilitate creation of new Skills.
Analytics Gain key insights into your bot’s health and behavior with the Conversational AI Analytics solutions. Review available telemetry, sample Application Insights queries, and Power BI dashboards to understand the full breadth of your bot’s conversations with users.

Azure Bot Service

Azure Bot Service enables you to host intelligent, enterprise-grade bots with complete ownership and control of your data. Developers can register and connect their bots to users on Skype, Microsoft Teams, Cortana, Web Chat, and more. Azure | docs | connect to channels

  • Direct Line JS Client: If you want to use the Direct Line channel in Azure Bot Service and are not using the WebChat client, the Direct Line JS client can be used in your custom application. Go to Github for more information.

  • New! Direct Line Speech Channel: We are bringing together the Bot Framework and Microsoft's Speech Services to provide a channel that enables streamed speech and text bi-directionally from the client to the bot application. For more information, see how to add speech channel to your bot.

Bot Framework Emulator

The Bot Framework Emulator is a cross-platform desktop application that allows bot developers to test and debug bots built using the Bot Framework SDK. You can use the Bot Framework Emulator to test bots running locally on your machine or to connect to bots running remotely.

Bot Inspector (New! In preview)

The Bot Framework Emulator has released a beta of the new Bot Inspector feature. It provides a way to debug and test your Bot Framework SDK v4 bots on channels like Microsoft Teams, Slack, Cortana, Facebook Messenger, Skype, etc. As you have the conversation, messages will be mirrored to the Bot Framework Emulator where you can inspect the message data that the bot received. Additionally, a snapshot of the bot state for any given turn between the channel and the bot is rendered as well. Read more about Bot Inspector.

Language Understanding

A machine learning-based service to build natural language experiences. Quickly create enterprise-ready, custom models that continuously improve. Language Understanding Service(LUIS) allows your application to understand what a person wants in their own words.

  • New! Roles, External Entities and Dynamic Entities: LUIS has added several features that let developers extract more detailed information from text, so users can now build more intelligent solutions with less effort. LUIS also extended roles to all entity types, which allows the same entities to be classified with different subtypes based on context. Developers now have more granular control of what they can do with LUIS, including being able to identify and update models at runtime through dynamic lists and external entities. Dynamic lists are used to append to list entities at prediction time, permitting user-specific information to get matched exactly. Separate supplementary entity extractors are run with external entities, and that information can be appended to LUIS as strong signals for other models.

  • New! Analytics dashboard: LUIS is releasing a more detailed, visually-rich comprehensive analytics dashboard. Its user-friendly design highlights common issues most users face when designing applications, by providing simple explanations on how to resolve them to help users gain more insight into their models’ quality, potential data problems, and guidance to adopt best practices.

Docs | Add language understanding to your bot

QnA Maker

QnA Maker is a cloud-based API service that creates a conversational, question-and-answer layer over your data. With QnA Maker, you can build, train and publish a simple question and answer bot based on FAQ URLs, structured documents, product manuals or editorial content in minutes.

  • New! Extraction pipeline: Now you can extract hierarchical information from URLs, files and sharepoint
  • New! Intelligence: Contextual ranking models, active learning suggestions
  • New! Conversation: Multi-turn conversations in QnA Maker.

Docs | add qnamaker to your bot

Speech Services

Speech Services convert audio to text, perform speech translation and text-to-speech with the unified Speech services. With the speech services, you can integrate speech into your bot, create custom wake words, and author in multiple languages.

Adaptive Cards

Adaptive Cards are an open standard for developers to exchange card content in a common and consistent way, and are used by Bot Framework developers to create great cross-channel conversatational experiences.

Additional information