This chapter covers Microsoft Power Virtual Agents (PVA), a no-code chatbot building platform integrated with Microsoft 365 and Dynamics 365. For the MS-900 exam, understanding PVA is part of Objective 2.4: Describe the productivity solutions of Microsoft 365. Approximately 5-10% of exam questions touch on chatbots, Power Platform components, and their integration with Microsoft 365. We will explore PVA's architecture, capabilities, licensing, and how it fits into the broader Power Platform ecosystem, with a focus on what the exam tests.
Jump to a section
Imagine a large company with a busy front desk receptionist named 'Receptionist AI.' The receptionist handles incoming calls, walk-ins, and emails. The company has a directory of employees and their departments. When a visitor or caller asks a question, the receptionist first determines the intent: 'Are you looking for a person, a department, or general information?' If the question is simple, like 'What are your business hours?' the receptionist answers directly from a script. If the question is complex, like 'I need to speak to someone about my invoice,' the receptionist looks up the billing department and transfers the call, providing context: 'This is about invoice #12345.' The receptionist doesn't know the answer to everything but knows exactly who to connect to. Over time, the receptionist learns new scripts and can handle more questions without transferring. This is exactly how Power Virtual Agents works: a bot (receptionist) uses natural language understanding to identify the user's intent, either answers from a knowledge base (script) or escalates to a human agent (transfer) via Omnichannel. The bot can be extended with Power Automate to perform actions like looking up order status. The key is that the bot is no-code, built by business analysts, just like training a receptionist without needing to write code.
What is Power Virtual Agents?
Power Virtual Agents (PVA) is a no-code, low-code platform for building intelligent chatbots that can interact with users across multiple channels, including websites, Microsoft Teams, Facebook, and custom apps. It is part of the Microsoft Power Platform and integrates seamlessly with Power Automate, Power Apps, and Dynamics 365. PVA allows business analysts (not just developers) to create conversational AI agents using a graphical interface, without writing code. The bots use natural language understanding (NLU) to interpret user intents and trigger appropriate responses or actions.
Why Power Virtual Agents Exists
Traditional chatbot development requires programming skills (e.g., using Bot Framework SDK) and deep knowledge of natural language processing. PVA democratizes chatbot creation by providing a drag-and-drop authoring canvas, pre-built templates, and integration with Microsoft's AI capabilities. The goal is to enable organizations to automate common customer service and internal support tasks, reducing the load on human agents and improving response times. For example, an HR bot can answer employee questions about benefits, or a sales bot can qualify leads.
Core Components
Topics: The building blocks of a bot. Each topic represents a conversation flow around a specific user intent (e.g., 'Check order status'). Topics consist of trigger phrases, conversation nodes, and actions.
Trigger Phrases: Phrases that activate a topic. Users input these phrases, and PVA uses NLU to match them to the most relevant topic. You can add multiple trigger phrases to improve matching.
Entities: Extract specific pieces of information from user input, like dates, product names, or order numbers. PVA includes pre-built entities (e.g., Money, Number, Date) and supports custom entities.
Actions: Steps within a topic that can send messages, ask questions, redirect to another topic, call Power Automate flows, or transfer to a human agent.
Power Automate Integration: Allows bots to perform actions in external systems, such as looking up data in a SharePoint list or creating a ticket in ServiceNow.
Omnichannel for Customer Service: An add-on that enables the bot to escalate to a live human agent across channels like chat, SMS, and social media.
Analytics: Dashboards showing bot performance, customer satisfaction, and topic usage.
How It Works Internally
When a user sends a message to a PVA bot, the following happens:
NLU Processing: The message is sent to Azure Language Understanding (LUIS) or the built-in NLU model, which identifies the user's intent by matching trigger phrases. PVA uses a pre-trained model that can be further refined with custom trigger phrases.
Entity Extraction: If the intent is matched, PVA extracts relevant entities from the message. For example, if the user says 'My order number is 12345,' the bot extracts '12345' as an order number entity.
Topic Execution: The bot enters the corresponding topic and follows the conversation flow defined in the authoring canvas. It might ask clarifying questions, display options, or call an action.
Action Execution: If the topic includes a Power Automate flow, the bot triggers the flow, which can read/write data from hundreds of connectors (e.g., SQL Server, Office 365, Salesforce). The flow returns data to the bot, which then displays it to the user.
Escalation: If the bot cannot resolve the issue or the user requests a human, the bot transfers the conversation to a live agent via Omnichannel. The bot passes context (conversation history, extracted entities) to the agent.
Key Values, Defaults, and Limits
Session Timeout: Default 30 minutes of inactivity. After that, the conversation ends.
Message Limit: A bot can send up to 50 messages per topic (configurable).
Concurrent Conversations: Depends on the license. For a standalone PVA license, up to 100 concurrent sessions per bot. For Dynamics 365 Enterprise, higher limits.
Trigger Phrases: Maximum 50 per topic (recommended 5-15 for optimal NLU).
Custom Entities: Up to 50 per bot.
Power Automate Flows: Can be called from topics, but each flow execution consumes API calls and may have throttling limits.
Configuration and Verification
Creating a bot in PVA:
Go to https://web.powervirtualagents.com and sign in with a Microsoft 365 account.
Click 'Create a bot' and choose a name and language (e.g., English).
Author topics using the graphical canvas. Add trigger phrases, message nodes, question nodes, and action nodes.
Test the bot in the built-in 'Test bot' pane.
Publish the bot to a channel (e.g., Teams, website, Facebook).
Verification: Use the 'Test bot' pane to simulate conversations. Check the analytics dashboard for usage metrics and customer satisfaction scores.
Integration with Related Technologies
Power Apps: A PVA bot can be embedded in a Power Apps canvas app to provide conversational assistance.
Power Automate: Enables complex workflows, such as creating a ticket in a third-party system when the bot cannot resolve an issue.
Dynamics 365 Customer Service: PVA bots can be integrated with Dynamics 365 to provide AI-powered customer service, including automatic case creation and agent handoff.
Microsoft Teams: Bots can be published to Teams as a personal or team app, allowing employees to interact with the bot within Teams.
Azure Bot Service: Advanced developers can extend PVA bots using Bot Framework SDK or integrate with Azure Cognitive Services for custom NLU.
Licensing and Pricing
Standalone PVA: Included in some Microsoft 365 E3/E5 plans? No, PVA is not included in standard Microsoft 365 subscriptions. It requires a separate license: Power Virtual Agents license (approx $1,000/month for 2,000 sessions/month) or is included in Dynamics 365 Customer Service Enterprise license.
Capacity Add-ons: Additional sessions can be purchased.
Free Trial: Available with limited capacity.
Exam Relevance
For MS-900, know that PVA is a low-code chatbot builder part of the Power Platform. Understand its use cases: automating customer service, HR support, IT helpdesk. Know that it integrates with Power Automate and Dynamics 365. Be aware of licensing: PVA is not included in Microsoft 365 E3/E5; it requires a separate license or a Dynamics 365 license. The exam may ask about the difference between PVA and Azure Bot Service (PVA is no-code, Azure Bot Service requires coding).
Create a New Bot
Navigate to the Power Virtual Agents portal (https://web.powervirtualagents.com) and sign in with your Microsoft 365 credentials. Click 'Create a bot' and provide a name (e.g., 'SupportBot') and select the language (e.g., English). The system provisions a new bot environment, including a Dataverse database to store bot configuration, topics, and analytics. This step creates the underlying Azure resources (Bot Service, Language Understanding, etc.) but you don't need to manage them. The bot is initially empty with a default 'Greeting' topic and a 'Escalate' topic.
Author Topics Using Canvas
In the authoring canvas, topics are the core conversation flows. Click 'Topics' and then 'New topic'. Enter a name (e.g., 'Check Order Status') and add trigger phrases like 'Where is my order?', 'Track order', 'Order status'. Then design the conversation: add a 'Message' node to ask for order number, a 'Question' node to capture the order number entity, and an 'Action' node to call a Power Automate flow that queries the order database. You can add conditions, redirects, and fallback messages. The canvas is drag-and-drop; no code is required.
Test the Bot
Use the 'Test bot' pane on the right side of the authoring canvas. Type a trigger phrase like 'Where is my order?' and observe the bot's response. The bot uses NLU to match the phrase to the 'Check Order Status' topic. You can see the conversation flow step by step, including which nodes are executed. This allows you to debug and refine topics before publishing. The test pane simulates a real user session, respecting timeouts and entity extraction.
Publish to a Channel
Once topics are complete and tested, click 'Publish' to make the bot available. Then go to 'Channels' and select a channel (e.g., Microsoft Teams). For Teams, you can add the bot as a personal app or to a team. The bot appears as a contact in Teams. You can also publish to a demo website, Facebook, or custom channels using the Bot Framework. Publishing deploys the bot to the target channel's endpoints.
Monitor Performance
After publishing, use the 'Analytics' section to monitor bot usage. Key metrics include: total sessions, engaged sessions (where the user interacts beyond the greeting), resolution rate (percentage of sessions that end without escalation), abandonment rate, and customer satisfaction (CSAT) scores. You can drill down into specific topics to see which ones are most used or have high escalation rates. This data helps you improve the bot over time.
Enterprise Scenario 1: IT Helpdesk Automation
A multinational company deploys a PVA bot in Microsoft Teams to handle Level 1 IT support. The bot is configured with topics for password reset, software installation requests, and network access issues. When an employee types 'I forgot my password,' the bot triggers a topic that verifies identity via Azure AD and then initiates a password reset using Power Automate. If the issue is complex, the bot transfers to a live IT agent with full conversation history. The bot handles 70% of requests autonomously, reducing ticket volume. Performance considerations: The bot must handle peak loads during morning hours. The standalone PVA license supports up to 100 concurrent sessions, which is sufficient for 10,000 employees. Misconfiguration: If trigger phrases are too narrow, the bot fails to recognize common variations, leading to fallback and escalation. Solution: Add multiple trigger phrases and review analytics to refine.
Enterprise Scenario 2: Customer Service for E-commerce
An online retailer uses PVA integrated with Dynamics 365 Customer Service. The bot handles order status, returns, and FAQs. Using Omnichannel, when the bot cannot resolve a complaint, it escalates to a human agent who sees the entire conversation and customer data. The bot also uses Power Automate to check inventory levels and provide estimated delivery dates. Scale: The bot handles 500 concurrent sessions during Black Friday. The Dynamics 365 license provides higher capacity. Misconfiguration: Without proper entity extraction for order numbers, the bot asks for the order number repeatedly, causing frustration. Solution: Use pre-built entities and train the bot with sample utterances.
Performance and Misconfiguration
Common issues: (1) Poor NLU performance due to insufficient trigger phrases – add at least 10 per topic. (2) Bot loops when the user says 'I don't know' – add fallback topics. (3) Escalation not working because Omnichannel is not configured – ensure proper routing to agent queues. (4) Power Automate flows fail due to throttling – design flows to handle rate limits.
Best Practices
Use a consistent tone and language.
Provide clear options (e.g., buttons) to guide users.
Always include an escalation path.
Test with real users and iterate based on analytics.
Exactly What MS-900 Tests
MS-900 Objective 2.4: 'Describe the productivity solutions of Microsoft 365.' Within this, PVA is part of the Power Platform. Exam questions focus on: - Identifying PVA as a low-code/no-code chatbot builder (not a developer tool). - Knowing that PVA is part of the Power Platform (not Azure Bot Service, which is for developers). - Understanding use cases: customer service, HR, IT support automation. - Integration: with Power Automate (for workflows), Dynamics 365 (for customer service), and Teams. - Licensing: PVA is NOT included in Microsoft 365 E3/E5; requires a separate license or Dynamics 365 license.
Common Wrong Answers
'Power Virtual Agents is included in Microsoft 365 E5.' This is false. PVA requires an add-on license. Candidates confuse it with other Power Platform tools that are partially included (Power Apps, Power Automate).
'Power Virtual Agents requires coding in C#.' False. PVA is no-code. The wrong answer confuses it with Azure Bot Service.
'Power Virtual Agents is only for external customer-facing bots.' False. It can be used internally (e.g., HR bot in Teams).
'Power Virtual Agents can be used without any Microsoft 365 subscription.' False. It requires a Microsoft 365 or Dynamics 365 tenant.
Specific Exam Terms
'Trigger phrases' – the phrases that activate a topic.
'Topics' – conversation flows.
'Omnichannel for Customer Service' – the add-on for human agent handoff.
'Power Automate' – for actions like data lookup.
'No-code' or 'low-code' – key description.
Edge Cases
The exam may ask: 'Which license is required to use Power Virtual Agents?' Answer: A standalone Power Virtual Agents license or a Dynamics 365 Customer Service license.
The exam may ask: 'Can Power Virtual Agents be used in Microsoft Teams?' Yes, it can be published as a Teams app.
The exam may ask: 'What is the difference between Power Virtual Agents and Azure Bot Service?' PVA is no-code; Azure Bot Service is for developers.
Eliminating Wrong Answers
If a question mentions 'custom code' or 'SDK', it is likely referring to Azure Bot Service, not PVA. If a question mentions 'included in Microsoft 365 E3', it is wrong because PVA is not included. Focus on the 'no-code' and 'Power Platform' keywords.
Power Virtual Agents is a no-code chatbot builder part of the Microsoft Power Platform.
It uses topics and trigger phrases to define conversation flows.
It integrates with Power Automate for workflows and Dynamics 365 for customer service.
PVA is NOT included in Microsoft 365 E3/E5; requires a separate license (standalone or Dynamics 365).
Bots can be published to multiple channels: Teams, web, Facebook, etc.
PVA supports escalation to human agents via Omnichannel for Customer Service.
The exam tests the difference between PVA (no-code) and Azure Bot Service (code).
These come up on the exam all the time. Here's how to tell them apart.
Power Virtual Agents
No-code/low-code authoring using graphical canvas.
Built-in NLU with trigger phrases; no AI expertise needed.
Integrated with Power Platform (Power Automate, Power Apps).
Licensed separately or via Dynamics 365.
Best for business analysts and citizen developers.
Azure Bot Service
Requires coding (C#, Node.js, Python) using Bot Framework SDK.
Full control over NLU using LUIS or custom models.
Can be integrated with any service via code.
Included with Azure subscription; pay per use.
Best for professional developers needing custom bots.
Mistake
Power Virtual Agents is the same as Azure Bot Service.
Correct
PVA is a no-code platform built on top of Azure Bot Service. Azure Bot Service requires coding (C#, Node.js) and is for developers. PVA is for business users.
Mistake
Power Virtual Agents is included free with Microsoft 365 E5.
Correct
PVA is not included in any Microsoft 365 plan. It requires a separate paid license or a Dynamics 365 Customer Service license.
Mistake
Power Virtual Agents can only be used for external customer service.
Correct
PVA can be used for internal scenarios like HR support, IT helpdesk, and employee onboarding, especially when published to Microsoft Teams.
Mistake
Power Virtual Agents requires a developer to set up.
Correct
PVA is designed for non-developers (e.g., business analysts) with a drag-and-drop interface. No coding is required.
Mistake
Power Virtual Agents cannot integrate with third-party systems.
Correct
PVA integrates with hundreds of connectors via Power Automate, including Salesforce, ServiceNow, and SQL Server.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
No, Power Virtual Agents is not included in any Microsoft 365 plan. It requires a standalone Power Virtual Agents license or a Dynamics 365 Customer Service license. However, you can get a free trial to evaluate it.
Yes, absolutely. You can publish the bot to Microsoft Teams, SharePoint, or an internal website. It can handle common HR queries like leave balance, policy questions, and benefits enrollment.
Power Virtual Agents is a no-code platform for building chatbots quickly without programming. Azure Bot Service is a developer platform that requires coding using the Bot Framework SDK. PVA is built on top of Azure Bot Service but abstracts the complexity.
In a topic, you can add an 'Action' node that calls a Power Automate flow. The flow can perform tasks like querying a database, sending an email, or updating a record. The bot can pass entities (e.g., order number) to the flow and display the result.
Yes, by using the 'Escalate' topic and Omnichannel for Customer Service. When the bot cannot resolve the issue, it transfers the conversation to a live agent along with context (conversation history, extracted data). This requires a Dynamics 365 Customer Service license.
Trigger phrases are phrases that users might type to start a specific topic. For example, for a topic about order status, trigger phrases could be 'Where is my order?', 'Track my order', 'Order status'. The bot uses NLU to match user input to the best topic.
The default session timeout is 30 minutes of inactivity. If the user does not respond for 30 minutes, the conversation ends. This is configurable in the bot settings.
You've just covered Power Virtual Agents and Chatbots — now see how well it sticks with free MS-900 practice questions. Full explanations included, no account needed.
Done with this chapter?