This site is obsolete and should be used for reference only. The information in this documentation is not guaranteed to work for Bot Framework SDK versions past 4.9.1.

What is a Virtual Assistant?

Virtual Assistant diagram

Customers and partners have increasing need to deliver advanced conversational assistant experiences tailored to their brand, personalized to their users, and made available across a broad range of canvases and devices. Continuing Microsoft’s open-sourced approach towards the Bot Framework SDK, the open-source Virtual Assistant solution provides you with a set of core foundational capabilities and full control over the end user experience and data.

At its core, the Virtual Assistant (available in C# and TypeScript) is a project template with the best practices for developing a bot on the Microsoft Azure platform.

Common assistant scenarios are provided as reusable conversational skills, increasing developer productivity and enabling a vibrant ecosystem of reusable components. Individual skills can be added to an assistant to enable new scenarios, extending the Virtual Assistant experience with reusable Bot Framework Skills, for example: finding a point of interest, checking off an item on a to-do list, or replying to an email. Skills are fully customizable and consist of language models and responses for multiple languages, dialogs, and code.

Owning and enriching customer relationships and providing insights is vital to the goals of the Virtual Assistant. This contrasts with established in-market assistants that do not enable white-labelling, customization or privacy placed in control of the customer.

Further skills can be created and made available either through your own assistant or made available through a broader ecosystem enabling assistant owners to curate the capabilities that make sense for their scenario and work across industries.

Review analytics captured from the out-of-the-box Application Insights telemetry using the Virtual Assistant Analytics Power BI template.

Key Principles

Your data, brand, and experience

All aspects of the end user experience are owned and controlled by you. This includes the branding, name, voice, personality, responses, and avatar. The source code to the Virtual Assistant and supporting Skills are provided as samples for you to customize.

Your Virtual Assistant will be deployed within your Azure subscription. Therefore all data generated by your assistant (questions asked, user behavior, etc.) is entirely contained within your Azure subscription. See Cognitive Services Azure Trusted Cloud and the Azure section of the Trust Center more specifically for more information.

Write once, embed anywhere

The Virtual Assistant Solution Accelerator leverages Azure Cognitive Services and can be embedded on any Bot Framework channel such as Web Chat, Facebook Messenger, or Microsoft Teams. You can use the Direct Line channel to integrate a Virtual Assistant into your mobile app, webpage, or device. Focus on voice-first experiences using the Direct Line Speech channel.

Enterprise-grade solutions

The Virtual Assistant Solution Accelerator is built with the Azure Bot Service, Language Understanding Cognitive Service, Unified Speech along with a broad set of supporting Azure components meaning that you benefit from the Azure global infrastructure including ISO 27018, HIPAA, PCI DSS, SOC 1, 2 and 3 certification.

In addition, Language Understanding support is provided by the LUIS Cognitive Service which supports a broad set of languages. The Translator Cognitive Service provides machine translation capabilities to extend your Virtual Assistant to additional locales.

Flexible integration and contextually aware

The Virtual Assistant Solution Accelerator architecture is flexible and can be integrated with existing investments made into device-based conversational AI experiences. You can integrate into existing backend systems and APIs. Your users’ Virtual Assistant can be integrated into your device and ecosystem to enable a truly intelligent experience. Through this contextual awareness your Virtual Assistant can deliver a further personalized conversation than otherwise possible.

Extend with Bot Framework Skills

A Virtual Assistant often needs to extend its capabilities with specialized Skills. Typically, an organization needs to manage their own language models, dialogs, API integration, and generated responses. This is further complicated should you require your Virtual Assistant to support multiple languages. The Solution Accelerator includes a Skill capability that enables external bots to be plugged into an existing Virtual Assistant.

Virtual Assistant components

There are four major components within Virtual Assistant:

Virtual Assistant core

The Virtual Assistant core template is the basic building blocks that bring together the virtual assistant capabilities and the Microsoft technologies required to build a Virtual Assistant including Bot Framework SDK, LUIS, QnA Maker, Skills registration, Linked Accounts, etc.


Bot Framework Skills leverage the new Bot Framework SDK capabilities and provide re-usable conversational skill building-blocks covering conversational use-cases enabling you to add extensive functionality to a Bot within minutes. Skills include LUIS models, Dialogs and Integration code and delivered in source code form enabling you to customize and extend as required. Provided are Calendar, Email, To Do, Point of Interest skills and a number of other experimental skills. You can find more details in the Skills section of this site.

Assistant Solution Accelerators

Microsoft has assembled these samples to allow for acceleration of customers in building a Virtual Assistant for specific Industries or scenarios. These samples have pre-packaged skill configurations, additional capabilities and suggested channels that are leveraged in typical scenarios.

Clients and Channels

Clients and Channels are the ways that users can interact with the Virtual Assistant.

Microsoft offers a variety of channels such as Facebook Messenger, Teams, Slack, WeChat, and many others. You can find many details around available channels in the Bot Framework Channels documentation.

Sample client applications are implementations of clients that will integrate seamlessly with your Assistant and enable Speech scenarios.

Next steps