Enable advanced AI features in Power Virtual Agents

AI models in Power Virtual Agents – background

Power Virtual Agents hosts multiple AI models and AI capabilities on a single service, the core of which is a transformer-based natural language understanding (NLU) model.

Traditionally, intent triggering (how an AI model determines the intent of a question posed to it, by using NLU to understand what a user is asking) is formalized as a multi-class classification problem, in which the model is highly associated with known categories; any change to these categories will result in the need to build a new AI model.

Power Virtual Agents, however, employs a language understanding model that uses an example-based approach, powered by a deep neural model. This type of large-scale model only needs to be trained once with large amounts of data using AI supercomputing, and can then be used for specific tasks with few examples without further training. The use of this model is part of the AI at Scale initiative by Microsoft, and means the way AI is developed and used is changing. Specifically, for Power Virtual Agents, the use of this model allows for an intuitive way for bot makers to work on their bot content confidently, without having to involve AI experts.

The use of this type of model means that in Power Virtual Agents, when you craft trigger phrases for a topic, you only need to provide a few examples, usually in the range of five to 10 phrases for a single topic. Shorter trigger phrases are better, and you should aim for two to 10 words. You just need to make sure trigger phrases are semantically different: changing a single verb or noun could be enough to expand a topic’s coverage. Adding things like new articles (changing or adding ‘the’ or ‘a’ or ‘an’), changing capitalization, adding contractions (you’re or don’t), or adding plurals won’t improve the triggering because contractions are already accounted for in the AI model.

These tips for creating tooltips are described in the tooltip associated with the Trigger phrases section on a topic’s Details page.

There are some specific features that further improve how the AI in Power Virtual Agents understands what your bot users are asking, and how the AI provides answers.


The AI capabilities listed in this topic are in preview, available to bots created with English as the set language.

Topic overlap detection (preview)

Topic overlap detection helps improve topic triggering accuracy by finding overlaps between topics. Resolving topic overlaps can help reduce the need for the bot to ask clarifying questions before triggering a topic.

Once enabled, go to Analytics on the side navigation pane, then go to the Topic triggering (preview) tab, where a list of overlapped topics will be displayed.

The list shows each overlapping topic along with a similarity score, which represents the overall overlapped status for a topic, and the number of topics that overlap with the listed one. The similarity score is determined by the AI as it evaluates how semantically similar the overlapping trigger phrases are to each other. A higher score indicates that a particular topic has one or more trigger phrases that are close to another topic’s trigger phrases.

You can sort the list by its similarity score, topic name, or number of trigger phrase overlaps.

If you click on an item in the list, the Topic overlap details pane will open.

In this example, there’s one trigger phrase in the “Languages support in Microsoft 365?” topic (For which languages is Microsoft 365 available?) that semantically overlaps with a trigger phrase in the “Use Microsoft 365 in other languages?” topic (Can I use Microsoft 365 in languages other than the one I originally purchased?). Here, the AI has determined that both trigger phrases are semantically similar (they contain similar phrases, words, and grammar).

Using semantically similar trigger phrases for two different topics can lead to confusion as the bot may not know which topic to open, and will need to ask follow-up questions to the bot user.

Identifying semantically similar trigger phrases can also help you determine if you have topics that themselves are similar and could be consolidated to simplify the bot authoring process, or edited to make the topics more distinct.

On the Topic overlap details pane, you can select the link to go directly to the specific topic. You can also make changes to the trigger phrase (or delete it) directly on the Topic overlap details pane. Select Save to apply any changes.

After you save the changes in the Topic overlap details pane, the overlapping status will automatically be refreshed. You can always manually refresh the topic overlap status by selecting the refresh button on the topic overlap UI.

Topic suggestion from chat transcripts (preview)

This feature analyzes sessions between your bot and users and surfaces suggestions for you based on unmatched user input.

Once enabled, go to Analytics on the side navigation pane, then go to the Topic triggering (preview). A list of potential topics will be shown, with the number of times a query about this topic was made by users of the bot. The top 200 suggestions will be shown.

The topic suggestion analyser automatically runs once every one to two hours. It scans through all new queries made since the analyser last ran, groups together queries to which it couldn’t match an existing topic, and presents them in the list. Your bot will need at least 100 new conversations (from the last time any suggestion was generated) to trigger the process, and only those suggestions with more than three user sessions will be shown.

When you click on an item in the suggestion list, a topic suggestion window will appear, showing the topic with some suggested trigger phrases. The suggested trigger phrases are based on the queries made by the bot users that couldn’t be matched to an existing topic.

After reviewing the suggested trigger phrases, you can choose to delete the entire suggested topic (for example, if it’s irrelevant to the bot) or add it to your list of topics by selecting Add to topics.

Automatic triggering improvements (Preview)

Once enabled, the automatic triggering feature improves intent triggering by using AI to automatically generate new trigger phrases by analysing previous bot traffic.

With the continuous learning in Power Virtual Agents provided by this feature, each conversation will make the next one better – using reinforcement learning and signals from responses to “Did you mean” questions: when the bot is unsure of the bot user’s response it will ask a clarifying question. The bot then learns automatically from the bot user’s responses and will not have to ask again.

Over time, as users interact and talk to the bot, it will get better and better.

In the following screenshot, the first time the bot comes across a question it doesn’t understand, it asks for clarification.

On the left side of the image, a bot user asks “I’d like to purchase somethign”, to which the bot says “Sorry, I didn’t get that. Did you mean:” and then provides a few options such as “Buy items” and “Buy service”. In this case, the bot user selected “Buy items”.

The next time someone asks the same question, the bot doesn’t ask for clarification – it knows from previous interactions what the bot user is likely asking to buy items, so it goes straight into the purchasing topic, replying to the question “I’d like to purchase somethign” with “I am happy to help you place your order. To what state will you be shipping?”. In this example, it also understands the misspelling of “somethign” to mean “something”, so it’s able to carry over the improved intent triggering even though the bot user’s question is spelled differently.

Conversation personalization (Preview)

When this feature is enabled, the bot will reuse information from Microsoft Graph and Azure Active Directory (Azure AD) throughout the course of a conversation. This feature allows the bot to use already existing information to enhance and personalize future conversations. For example, if a user mentions a name, email, or zip code these properties are stored and used in later conversations without having to reprompt the user.

Specifically, with this feature enabled, when the bot asks questions such as those in the following table, the corresponding user information will be pulled from Microsoft Graph and Azure AD (for authenticated users) and provided as prompts for the user to choose as an option.

Sample bot questionsUser property automatically filled from Microsoft Graph or Azure AD

Where do you live?

For assistance with this matter you'll need to provide your address.

Thank you for that. Please give me 2-3 minutes to review your previous case. May I know your address?

OK. I'll need you to enter your annual income in order to assist.

OK. Can I get your annual income so I can help with that?
Annual income

I'll help if I can. Would you tell me when you were born please (day/month/year)?

What is your date of birth?

Could you give me your date of birth, please?
Date of birth

I can help you out with that. What's your business phone number so I can go ahead?

Will proceed if you please provide your work phone number to contact you?
Business phone number

Can you supply your city of residence?

Please provide your city of residence.

I agree. I'd like to know your city of residence to continue. Please tell me what city you're in.
City of residence

OK, no problem. Can you tell me the country where you live?

Let me assist you with your concern regarding your DVD. Before we proceed, please provide me with the country you are in.
Country of residence

For assistance with this matter you'll need to provide your email address.

Tell me the e-mail address where I can contact you.
Email address

Please tell me: what is your fax number?

Alright. Go ahead and enter your telefax number for me please.
Fax number

I'd be glad to help you with that. By the way, may I ask for your first name so that I can address you properly?

Please enter your name for me.

What's your first name?
First name

For assistance with this matter you'll need to provide your gender.

Sure, I can assist with that. What is your gender?

Please enter your gender.

What is your home phone number?

Please provide your home phone number.
Home phone number

I'll help if I can. Would you tell me your job title please?

Sure, I'd be glad to help. Please enter your career title to proceed.
Job title

Might I know your last name in order to proceed?

I see. Allow me to review this case number. Can you also tell me your last name for me to address you properly?
Last name

I'll see if I can help. Could you please enter your director's name?

I'll help you if I can. could you tell me your principal's name, please?

What is your manager's name?

Please share the name of your supervisor.
Manager’s name

Wondering if you would please provide your conjugal status?

To assist you I'll need you to enter your marital status.
Marital status

Wondering if you would please provide your middle name?

I'd be glad to help you with that. By the way, may I ask for your middle name so that I can address you properly?
Middle name

Could you please provide me with your mobile phone number?

It's not a problem. I'll just need your cell phone number please.
Mobile phone number

I'll need your nickname please?

It's my pleasure to assist. Can you inform me of your nickname?
Nick name

Sure. To help with that, I'll need you to specify how many children you have please.

Please indicate the number of children you have.
Number of children

I'll see if I can help. Will you be able to enter your partner's full name?

Please tell me your spouse's first name.

Can you give me the first name of your husband or wife, please?
Spouse/partner name

Can you please tell me what your state of residence is?

I can help you out with that. What's your state of residence so I can go ahead?
State/province of residence

Wondering if you would please provide your zip code?

I can help you out with that. What's your zip code so I can go ahead?
Zip code

Enable or disable AI capabilities

To use these advanced AI capabilities in Power Virtual Agents:

  1. Open a bot you want to enable or disable the features for.
  2. Expand Manage on the side navigation pane, then go to the AI capabilities tab.
  3. For each feature, select the checkbox to turn the feature on or off.
  4. Select Save at the top of the tab.

Share this article on

Thank you!

Here is your guide to “Azure for Retail”!

Thank you!

Here is your guide to “Azure for Manufacturing”!

Thank you!

Here is your guide to “Microsoft Dynamics 365 Business Central Capability Guide”!

Thank you!

Here is your guide to “The Developer’s 7-Step Guide to Low-Code App Development”!