AI-900Chapter 74 of 100Objective 4.6

Power Virtual Agents and Azure Bot Framework

This chapter covers Power Virtual Agents and Azure Bot Framework, two key Microsoft technologies for building conversational AI solutions. On the AI-900 exam, this topic area accounts for approximately 10-15% of questions, typically appearing in the Natural Language Processing domain (objective 4.6). You must understand the distinct roles, capabilities, and integration points of each service to answer scenario-based questions correctly. This chapter provides a deep dive into both services, their components, configuration, and how they work together.

25 min read
Intermediate
Updated May 31, 2026

The Restaurant Manager and the Chef

Imagine a restaurant with a manager (Power Virtual Agents) and a chef (Azure Bot Framework). Customers come in with questions: 'What's today's special?' or 'Can I book a table for four?' The manager handles these directly using a scripted menu of common questions and answers. If a customer asks something complex, like 'I have a nut allergy and want a customized meal,' the manager doesn't know how to cook—so they call the chef. The chef has deep culinary skills and can create custom dishes, but they speak only in cooking terms. The manager translates the customer's request into a chef-friendly order: 'Prepare a nut-free pasta with pesto, no pine nuts, add extra basil.' The chef cooks and hands back the dish; the manager plates it and serves the customer. In this analogy, Power Virtual Agents is the manager—a no-code conversational AI for common queries. Azure Bot Framework is the chef—a developer-focused framework for complex, custom logic. The two integrate seamlessly: Power Virtual Agents can hand off to an Azure Bot when needed, and the bot can return results. The customer never sees the handoff; they just get their meal.

How It Actually Works

What is Power Virtual Agents?

Power Virtual Agents (PVA) is a Microsoft low-code/no-code platform for creating conversational chatbots. It is part of the Power Platform and is designed for business users (citizen developers) who want to build bots without writing code. PVA uses a graphical interface with topics, entities, and actions. Topics represent conversation flows triggered by user utterances. Entities extract specific data like dates, names, or product IDs. Actions connect to external systems via Power Automate or connectors.

What is Azure Bot Framework?

Azure Bot Framework is a developer-oriented SDK for building sophisticated bots. It supports multiple languages: C#, JavaScript, Python, and Java. The framework provides tools for natural language processing (LUIS or QnA Maker), dialog management, and integration with channels like Microsoft Teams, Slack, and Facebook Messenger. Developers have full control over conversation logic, state management, and custom code.

How Power Virtual Agents Works

PVA bots are built in the Power Virtual Agents portal. The core components are: - Topics: Each topic has trigger phrases (e.g., 'I want to return an item') and a conversation flow defined in a visual designer. Trigger phrases are matched using NLU; they do not require exact matches. PVA uses a built-in NLU model that can recognize variations of the trigger phrases. If no topic matches, the bot uses the 'Escalate' topic or a fallback. - Entities: Pre-built and custom entities extract information. Pre-built entities include PersonName, Date, Money, etc. Custom entities can be defined with synonyms. For example, a 'Product' entity might include 'laptop', 'notebook', 'ultrabook'. - Actions: Use Power Automate flows to call APIs, send emails, or update databases. Actions can be triggered within a topic. - Authentication: PVA supports Microsoft Teams authentication, generic OAuth2, and Azure AD. Authentication is configured per bot.

How Azure Bot Framework Works

Azure Bot Framework bots are built using the Bot Framework SDK. The key concepts: - Adapter: Handles communication between the bot and the channel (e.g., Web Chat, Teams). It translates channel-specific messages into a common format. - Middleware: Software components that process all incoming and outgoing activities (messages). Middleware can log, filter, or enrich messages. - Dialogs: Manage multi-turn conversations. Dialogs can be composed into dialog sets using waterfall dialogs, which execute steps in sequence. Each step can prompt the user, call external services, or branch logic. - Language Understanding (LUIS): Often integrated for intent and entity extraction. The bot sends user utterances to a LUIS app and uses the results to route to the correct dialog. - State Management: Store conversation, user, and private state. State providers include memory (for testing), Azure Cosmos DB, Azure Blob Storage, or SQL.

Integration Between PVA and Bot Framework

Power Virtual Agents can hand off conversations to an Azure Bot Framework bot using the 'Transfer to bot' action. This is useful when a topic requires custom logic not available in PVA. The handoff sends the conversation context (including extracted entities) to the bot. The bot can then process the request and optionally return control to PVA. This integration allows organizations to use PVA for simple queries and Azure Bot for complex tasks, combining low-code agility with developer flexibility.

Key Differences at a Glance

Target Audience: PVA is for business users; Azure Bot Framework is for developers.

Development Approach: PVA uses a visual designer; Azure Bot uses code.

NLU Capabilities: PVA has built-in NLU for topic matching; Azure Bot typically integrates with LUIS for custom models.

Channels: PVA supports Teams, web, and mobile via the Power Virtual Agents app; Azure Bot supports dozens of channels via Direct Line.

State Management: PVA handles state automatically; Azure Bot requires explicit state configuration.

Scalability: Both scale on Azure, but Azure Bot offers more control over performance.

Default Values and Configuration

PVA Topics: Default trigger phrases are provided when creating a topic; you can add your own. The NLU model requires at least 5-10 trigger phrases for good accuracy.

PVA Fallback: The 'Fallback' topic triggers when no topic matches. You can customize its message.

Azure Bot Framework: The default adapter for Web Chat uses the Bot Framework Web Chat control. The SDK defaults to memory storage for state (not suitable for production).

LUIS Integration: Typically, you create a LUIS app, train it, and connect it to the bot via the LuisRecognizer class. The endpoint URL and app key are set in configuration.

Verification Commands

For Azure Bot Framework, you can test locally using the Bot Framework Emulator:

# Install Bot Framework Emulator
# Download from https://github.com/Microsoft/BotFramework-Emulator/releases
# Run your bot locally
node index.js
# Open emulator and connect to http://localhost:3978

For Power Virtual Agents, you can test in the portal using the 'Test bot' pane. No CLI commands; it is fully GUI.

Interaction with Related Technologies

Power Automate: Used by PVA for actions. Example: a flow that creates a support ticket in ServiceNow.

Azure Cognitive Services: Azure Bot commonly uses LUIS for language understanding, QnA Maker for FAQ, and Speech Services for voice.

Power Apps and Power BI: PVA bots can be embedded in Power Apps; analytics are provided in the PVA portal or exported to Power BI.

Microsoft Teams: Both PVA and Azure Bot can be deployed as Teams apps. PVA bots are easier to publish to Teams, but Azure Bot offers more customization.

Exam Relevance

The AI-900 exam focuses on understanding the capabilities and use cases of each service. You need to know:

PVA is for creating bots without code, using prebuilt templates and simple NLU.

Azure Bot Framework is for developers building complex bots with custom code.

Integration: PVA can escalate to Azure Bot when needed.

Licensing: PVA is included in some Power Platform licenses; Azure Bot Framework is free (you pay for compute and cognitive services).

Common Exam Scenarios

A business analyst wants to build a simple FAQ bot for Teams. Which service? Power Virtual Agents.

A developer needs to build a bot that integrates with a custom API and uses a custom machine learning model. Which service? Azure Bot Framework.

A bot that can handle both simple and complex queries. Solution: Use PVA for simple topics and transfer to an Azure Bot for complex ones.

Trap Patterns

Wrong answer: 'Power Virtual Agents can only be used for Teams.' Reality: It also supports web and mobile channels.

Wrong answer: 'Azure Bot Framework requires LUIS.' Reality: LUIS is optional; you can use regex, QnA Maker, or custom logic.

Wrong answer: 'PVA bots cannot be extended with code.' Reality: You can use Power Automate or transfer to Azure Bot for custom logic.

Summary of Key Points

Power Virtual Agents: Low-code, built-in NLU, visual designer, part of Power Platform.

Azure Bot Framework: Code-first, flexible, integrates with any LUIS or QnA Maker, supports many channels.

Both can be used together for a tiered bot architecture.

The exam tests your ability to choose the right tool for a given scenario.

Walk-Through

1

Create a Power Virtual Agent Bot

Navigate to the Power Virtual Agents portal (https://powervirtualagents.microsoft.com). Sign in with your work account. Click 'Create' and choose a name and language. Optionally select an environment. The bot is created with a default 'Welcome' topic and a 'Fallback' topic. The environment determines where the bot's data is stored and which connectors are available. This step takes about 2 minutes.

2

Define Topics and Trigger Phrases

In the PVA portal, go to 'Topics' and click 'New topic'. Enter a name (e.g., 'Check Order Status'). Add trigger phrases like 'Where is my order?', 'Order status', 'Track my package'. These phrases train the NLU model. The bot will match user input to the topic with the highest confidence. Add at least 5-10 trigger phrases for accuracy. You can also use entities to extract order numbers.

3

Design the Conversation Flow

Use the visual designer to add nodes: Message, Question, Condition, etc. For example, after triggering 'Check Order Status', ask 'What is your order number?' Use a 'Question' node with an entity of type 'OrderNumber' (custom entity). Then use a 'Condition' to check if the order number is valid. If valid, respond with status; if not, ask again. The flow can loop or escalate. Test the flow using the 'Test bot' pane.

4

Integrate with Power Automate

To fetch real order status, create a Power Automate flow. In the topic, add an 'Action' node and select 'Create a flow'. Design the flow to call your order API (e.g., HTTP request to a REST endpoint). Map the order number entity as input. The flow returns the status. In PVA, use the flow output in a message node. This step requires a Power Automate license.

5

Publish the Bot to a Channel

Go to 'Publish' in PVA. Select channels: Teams, Web, or Mobile. For Teams, you need to upload the bot manifest. For Web, you get an iframe snippet. For Mobile, you get a link. Publishing makes the bot available to end users. You can also add authentication (e.g., Azure AD) to identify users. After publishing, monitor analytics in the PVA portal.

What This Looks Like on the Job

Enterprise Scenario 1: Customer Service FAQ Bot

A large e-commerce company wants to reduce support ticket volume by handling common queries: order status, return policy, and store hours. They choose Power Virtual Agents because the business team can build and maintain the bot without developer involvement. The bot is published to the company's website and Microsoft Teams. The team creates topics for each FAQ, using trigger phrases from actual support transcripts. They integrate with Power Automate to pull order status from their ERP system. The bot resolves 60% of queries without escalation. When a query is too complex (e.g., a refund request), the bot transfers to a human agent via the 'Escalate' topic. Key considerations: The NLU model requires ongoing training with real user utterances to improve accuracy. The bot's fallback message should be friendly and offer alternative help (e.g., 'I couldn't find that. Would you like to speak to a human?').

Enterprise Scenario 2: Internal IT Helpdesk Bot

A multinational corporation needs an IT helpdesk bot that can reset passwords, provision software, and escalate to IT staff. They use Azure Bot Framework because it requires integration with Active Directory, ServiceNow, and a custom password reset API. Developers build the bot using C# and the Bot Framework SDK. They integrate LUIS for understanding user intents (e.g., 'Reset my password' -> intent: ResetPassword). The bot uses dialogs to handle multi-step verification: authenticate via Azure AD, then call the password reset API. The bot is deployed to Microsoft Teams and Skype for Business. Performance: The bot handles 10,000 conversations per day with sub-second response times. State is stored in Azure Cosmos DB for scalability. The team monitors using Application Insights for failures and slow responses.

What Goes Wrong When Misconfigured

PVA with too few trigger phrases: The bot fails to match user input, causing high fallback rates. Solution: Analyze conversation logs and add more phrases.

Azure Bot without proper state management: In production, using memory storage causes state loss when the bot scales out. Solution: Use Cosmos DB or Blob Storage.

LUIS model not retrained: The bot misunderstands new slang or product names. Solution: Regularly review utterances and retrain the LUIS app.

No authentication for sensitive actions: A bot that resets passwords without authentication is a security risk. Solution: Require Azure AD or OAuth for such topics.

How AI-900 Actually Tests This

What AI-900 Tests on This Topic

AI-900 objective 4.6: 'Describe capabilities of conversational AI solutions.' Specifically, you must understand:

The difference between Power Virtual Agents (no-code) and Azure Bot Framework (code-based).

Use cases: PVA for simple, business-user-led bots; Azure Bot for complex, developer-led bots.

Integration: PVA can escalate to Azure Bot.

Related services: LUIS for language understanding, QnA Maker for FAQ, Power Automate for actions.

Common Wrong Answers and Why Candidates Choose Them

1.

'Power Virtual Agents requires coding.' Wrong because PVA is explicitly no-code. Candidates confuse it with Azure Bot Framework.

2.

'Azure Bot Framework can only be used for Teams.' Wrong because it supports many channels. Candidates may associate bots only with Teams.

3.

'Power Virtual Agents cannot be extended.' Wrong because PVA can use Power Automate and transfer to Azure Bot. Candidates think no-code means limited.

4.

'LUIS is required for Azure Bot Framework.' Wrong because LUIS is optional; you can use regex or QnA Maker. Candidates may think NLU is mandatory.

Specific Numbers and Terms That Appear on the Exam

Trigger phrases: At least 5-10 recommended for a topic.

Channels: Teams, web, mobile for PVA; Direct Line, Teams, Slack, Facebook for Azure Bot.

Fallback topic: Default in PVA when no topic matches.

Power Automate: Used for actions in PVA.

Bot Framework SDK: Available in C#, JavaScript, Python, Java.

Edge Cases the Exam Loves

Mixed scenario: A bot that needs both simple FAQ and custom logic. The correct answer is to use PVA with transfer to Azure Bot, not just one service.

Licensing: PVA requires a Power Platform license; Azure Bot Framework does not (you pay for compute).

Language support: Both support multiple languages, but PVA's NLU is limited to a set of languages (e.g., English, French, German).

How to Eliminate Wrong Answers

If the scenario mentions 'no-code' or 'business user', choose Power Virtual Agents.

If the scenario mentions 'custom code', 'API integration', or 'developer', choose Azure Bot Framework.

If the scenario mentions both simple and complex needs, look for an answer that combines both services.

If the answer says 'only' or 'requires', it is likely wrong because both services are flexible.

Key Takeaways

Power Virtual Agents is a no-code platform for building simple chatbots; Azure Bot Framework is a code-based SDK for complex bots.

PVA uses topics with trigger phrases; Azure Bot uses dialogs and middleware.

PVA can escalate to Azure Bot for custom logic; this integration is a key exam scenario.

PVA requires a Power Platform license; Azure Bot Framework is free (compute costs apply).

Both services can publish to Microsoft Teams, but Azure Bot supports more channels.

LUIS is optional for Azure Bot; you can use regex or QnA Maker instead.

PVA's built-in NLU is limited to certain languages; Azure Bot can use any LUIS-supported language.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Power Virtual Agents

Target audience: Business users (citizen developers)

Development: No-code visual designer

NLU: Built-in for topic matching

Channels: Teams, web, mobile (limited)

State management: Automatic, no configuration

Azure Bot Framework

Target audience: Professional developers

Development: Code-based (C#, JS, Python, Java)

NLU: Integrates with LUIS or other services

Channels: 20+ including Teams, Slack, Facebook

State management: Manual, requires configuration (Cosmos DB, etc.)

Watch Out for These

Mistake

Power Virtual Agents requires coding skills to build a bot.

Correct

PVA is a no-code platform with a visual designer. You can build a fully functional bot without writing any code. Extensions via Power Automate may require minimal configuration but no programming.

Mistake

Azure Bot Framework can only be used for Microsoft Teams.

Correct

Azure Bot Framework supports over 20 channels including Teams, Slack, Facebook Messenger, Telegram, and custom Direct Line clients. Teams is just one option.

Mistake

Power Virtual Agents cannot handle complex conversations.

Correct

PVA can handle multi-turn conversations with branching, conditions, and loops. For extremely complex logic, it can transfer to an Azure Bot or use Power Automate for custom actions.

Mistake

Azure Bot Framework includes built-in natural language understanding.

Correct

The Bot Framework SDK does not include NLU. You must integrate external services like LUIS, QnA Maker, or custom models. The SDK provides middleware for these integrations.

Mistake

Power Virtual Agents bots cannot be published to websites.

Correct

PVA supports publishing to websites via an iframe snippet, as well as to Teams and mobile apps. The web channel is standard.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

What is the main difference between Power Virtual Agents and Azure Bot Framework?

Power Virtual Agents is a low-code/no-code platform for building chatbots quickly without programming. Azure Bot Framework is a developer SDK for building sophisticated, custom bots with full code control. The exam tests your ability to choose based on the scenario: business user vs developer, simple vs complex.

Can Power Virtual Agents and Azure Bot Framework work together?

Yes. Power Virtual Agents can transfer a conversation to an Azure Bot using the 'Transfer to bot' action. This allows a PVA bot to handle simple queries and escalate complex ones to a custom Azure Bot. The integration passes context like entities and user details.

Do I need to know how to code to use Power Virtual Agents?

No. Power Virtual Agents is designed for citizen developers with no coding experience. You build bots using a graphical interface with drag-and-drop nodes. For advanced actions, you can use Power Automate flows which may require some configuration but no traditional programming.

What channels does Power Virtual Agents support?

Power Virtual Agents supports Microsoft Teams, web (via iframe), and mobile (via the Power Virtual Agents mobile app). For Azure Bot Framework, channels include Teams, Slack, Facebook Messenger, Telegram, Twilio, and custom Direct Line clients.

Is LUIS required for Azure Bot Framework?

No. LUIS is optional. You can use other NLP services like QnA Maker, regular expressions, or custom logic. The Bot Framework SDK provides middleware to integrate any language understanding service.

How do I test a Power Virtual Agents bot?

In the Power Virtual Agents portal, open the 'Test bot' pane from the menu. You can type messages and see the bot's responses. You can also test different topics and trigger phrases. For Azure Bot, use the Bot Framework Emulator locally or the Web Chat control in Azure.

What is a topic in Power Virtual Agents?

A topic is a conversation flow that handles a specific user intent. Each topic has trigger phrases that activate it. For example, a 'Greeting' topic might have trigger phrases like 'Hello', 'Hi', 'Good morning'. The topic then defines the bot's responses and actions.

Terms Worth Knowing

Ready to put this to the test?

You've just covered Power Virtual Agents and Azure Bot Framework — now see how well it sticks with free AI-900 practice questions. Full explanations included, no account needed.

Done with this chapter?