🔒 Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided PL-900 Domain 3
Domain 3 — Module 6 of 6 100%
16 of 26 overall

PL-900 Study Guide

Domain 1: Business Value of Microsoft Power Platform

  • Welcome to Power Platform Free
  • Connectors & Dataverse: Your Data Foundation Free
  • Copilot & AI in Power Platform Free
  • Power FX: Formulas, Not Code Free
  • Power Platform + Microsoft 365: Better Together Free

Domain 2: Manage the Microsoft Power Platform Environment

  • What is Dataverse?
  • Tables, Columns, and Relationships
  • Building Tables with Copilot and Data Management
  • Environments and Security
  • Admin Centers and Governance

Domain 3: Demonstrate the Capabilities of Power Apps

  • Canvas Apps: Pixel-Perfect Apps from Scratch
  • Model-Driven Apps: Data-First Design
  • Connecting to Data Sources
  • Controls, Responsive Design, and Copilot
  • Sharing Canvas Apps
  • Building and Sharing Model-Driven Apps

Domain 4: Demonstrate the Capabilities of Power Automate

  • Cloud Flows: Automate Without Code
  • Desktop Flows and Process Mining
  • Approvals and Business Scenarios
  • Loops and Branching in Cloud Flows
  • Building a Cloud Flow
  • Testing and Sharing Cloud Flows

Domain 5: Demonstrate the Capabilities of Power Pages

  • Power Pages: External Websites Made Easy
  • Power Pages Security
  • Design Studio and Building Pages
  • Components, Themes, and Publishing

PL-900 Study Guide

Domain 1: Business Value of Microsoft Power Platform

  • Welcome to Power Platform Free
  • Connectors & Dataverse: Your Data Foundation Free
  • Copilot & AI in Power Platform Free
  • Power FX: Formulas, Not Code Free
  • Power Platform + Microsoft 365: Better Together Free

Domain 2: Manage the Microsoft Power Platform Environment

  • What is Dataverse?
  • Tables, Columns, and Relationships
  • Building Tables with Copilot and Data Management
  • Environments and Security
  • Admin Centers and Governance

Domain 3: Demonstrate the Capabilities of Power Apps

  • Canvas Apps: Pixel-Perfect Apps from Scratch
  • Model-Driven Apps: Data-First Design
  • Connecting to Data Sources
  • Controls, Responsive Design, and Copilot
  • Sharing Canvas Apps
  • Building and Sharing Model-Driven Apps

Domain 4: Demonstrate the Capabilities of Power Automate

  • Cloud Flows: Automate Without Code
  • Desktop Flows and Process Mining
  • Approvals and Business Scenarios
  • Loops and Branching in Cloud Flows
  • Building a Cloud Flow
  • Testing and Sharing Cloud Flows

Domain 5: Demonstrate the Capabilities of Power Pages

  • Power Pages: External Websites Made Easy
  • Power Pages Security
  • Design Studio and Building Pages
  • Components, Themes, and Publishing
Domain 3: Demonstrate the Capabilities of Power Apps Premium ⏱ ~16 min read

Building and Sharing Model-Driven Apps

Learn how to build a model-driven app from Dataverse tables using the modern app designer, customise forms and views, and share using security roles. Wraps up Domain 3.

Building a model-driven app

☕ Simple explanation

Building a model-driven app is like furnishing a house that is already built.

The house structure (walls, rooms, doors) comes from your data model — the tables and relationships you set up in Dataverse. You don’t draw the floor plan from scratch like you do with canvas apps.

Your job is to choose which rooms to include (which tables appear in the app), arrange the furniture in each room (customise forms), and decide what view people see when they walk in (configure views).

The modern app designer in Power Apps provides a visual interface for assembling model-driven apps from Dataverse components. You select which tables to include, configure the sitemap (navigation), choose which forms and views are active, and preview the result — all without code.

The designer generates a responsive, role-based application that inherits its data structure, business rules, and security from Dataverse. Forms, views, charts, and dashboards are configured per-table and reused across apps.

The modern app designer

Tom is building his property management app. Here is the process in the modern app designer:

Step 1 — Create the app. In make.powerapps.com, select “Model-driven app” and give it a name and description.

Step 2 — Add tables to the sitemap. The sitemap is the left navigation panel. Tom adds four tables: Properties, Tenants, Maintenance Requests, and Inspections. Each one becomes a navigation item.

Step 3 — Configure forms and views. For each table, Tom selects which form users see when they open a record and which view they see when browsing the list.

Step 4 — Preview and publish. Tom clicks Play to preview the app in the designer, then publishes to make it live.

ℹ️ What is the sitemap?

The sitemap defines the navigation structure of a model-driven app — the menu items in the left panel. You organise it into:

  • Areas — top-level sections (e.g., “Operations”, “Administration”)
  • Groups — categories within an area (e.g., “Property Management”, “Reports”)
  • Pages — individual items that link to table views, dashboards, or custom pages

Tom’s sitemap has one area called “Property Operations” with two groups: “Day to Day” (Properties, Tenants, Maintenance) and “Compliance” (Inspections).

Form types

Model-driven apps use several form types. Each serves a different purpose:

Form typeWhat it doesWhen it appears
Main formFull record view with tabs, sections, and all fieldsWhen you open a record
Quick Create formLightweight form for fast data entryWhen you click the ”+” button to add a new record
Quick View formRead-only snippet of a related recordEmbedded inside another record’s main form
Card formCompact view of a recordUsed in some views and Outlook integrations

Customising the main form

Tom’s Property main form is organised into tabs and sections:

General tab

  • Property Details section: address, city, property type, bedrooms, rent
  • Status section: availability, last inspection date

Tenant tab

  • Current Tenant section: quick view form showing tenant name, contact, lease dates
  • Lease History section: sub-grid of past tenants

Maintenance tab

  • Open Requests: sub-grid filtered to show only open maintenance requests
  • Timeline: shows all activities — notes, emails, calls related to this property
💡 Sub-grids: related records inside a form

A sub-grid is a mini-table embedded inside a form that shows related records. On Tom’s Property form, the “Open Requests” sub-grid shows all maintenance requests linked to that property.

Sub-grids are powerful because users see everything about a record in one place without navigating away. You configure which view the sub-grid uses and which columns to display.

Quick Create forms

When someone at Summit Realty needs to log a new maintenance request urgently, they don’t want to fill in a full form. The Quick Create form pops up as a small panel with just the essential fields:

  • Property (auto-filled if created from a property record)
  • Issue description
  • Priority
  • Reported by

They save it in seconds and fill in details later via the main form.

Views: different lenses on the same data

A view is a saved query that shows a filtered, sorted list of records with specific columns.

System views vs personal views

TypeCreated byVisible toExample
System viewApp maker or adminEveryone using the app”Active Properties”, “Overdue Maintenance”
Personal viewIndividual userOnly that user”My Properties in Auckland”

System views are built into the app. Personal views let users save their own filters without affecting anyone else.

Creating and modifying views

Tom created these system views for his Maintenance Requests table:

View nameFilterColumns shown
All Active RequestsStatus not equal to ClosedProperty, Issue, Priority, Created On, Assigned To
High PriorityPriority equals Urgent or HighProperty, Issue, Assigned To, Days Open
Unassigned RequestsAssigned To is emptyProperty, Issue, Priority, Created On
My RequestsAssigned To equals current userProperty, Issue, Priority, Status

Each view is configured in the table designer: pick columns, set filters, choose sort order, and save. Views appear in the app’s view selector dropdown.

ℹ️ Exam tip: views are per-table, not per-app

Views are defined at the table level in Dataverse, not at the app level. This means if Tom creates a view for the Properties table, it can be used in any model-driven app that includes that table.

If a question asks where to create views, the answer is in the table designer in Dataverse (or from the app designer which opens the table designer).

Sharing model-driven apps

Sharing model-driven apps works differently from canvas apps. Instead of sharing with individual users, you use Dataverse security roles.

How it works

  1. Create or choose a security role — defines what tables a user can read, write, create, delete
  2. Assign the security role to users — via the Power Platform admin centre or Entra groups
  3. Share the app — assign the security role to the app so users with that role can access it

Tom created two security roles:

RoleAccess level
Property ManagerFull access to all tables — create, read, update, delete
Maintenance TechnicianRead-only for Properties and Tenants, full access to Maintenance Requests

Technicians can see property details and log maintenance updates, but they cannot edit property information or tenant records.

Canvas vs model-driven sharing

Two very different sharing models
FeatureCanvas App SharingModel-Driven App Sharing
How you shareShare directly with users or groupsAssign Dataverse security roles
Roles availableUser or Co-ownerCustom security roles (granular)
Data accessSeparate — users need connector permissionsIntegrated — security roles control both app and data
GranularityApp-level only (run or edit)Table-level, row-level, column-level
Best forSimple sharing with small teamsEnterprise apps with role-based access
Managed viaPower Apps portalPower Platform admin centre
💡 Why security roles are powerful

Security roles in Dataverse offer granular control:

  • Table-level: Can this role see the Properties table at all?
  • Record-level: Can this role see all records, only their own, or only their team’s?
  • Column-level: Can this role see the rent amount column?

This means Tom can give technicians access to property addresses for navigation but hide financial details like rent and deposit amounts. All controlled by the security role, not the app.

🎬 Video walkthrough

🎬 Video coming soon

Building Model-Driven Apps — PL-900 Domain 3

Building Model-Driven Apps — PL-900 Domain 3

~14 min

Flashcards

Question

What tool do you use to build a model-driven app?

Click or press Enter to reveal answer

Answer

The modern app designer in make.powerapps.com. You add Dataverse tables to the sitemap, configure forms and views, and publish — all visually.

Click to flip back

Question

What are the four form types in model-driven apps?

Click or press Enter to reveal answer

Answer

Main form (full record view), Quick Create form (fast data entry popup), Quick View form (read-only related record snippet), and Card form (compact record view).

Click to flip back

Question

What is the difference between system views and personal views?

Click or press Enter to reveal answer

Answer

System views are created by app makers and visible to all users. Personal views are created by individual users and visible only to them. Both filter and sort records from the same table.

Click to flip back

Question

How do you share a model-driven app?

Click or press Enter to reveal answer

Answer

By assigning Dataverse security roles. Create a role that defines table-level access, assign it to users or groups, and link it to the app. Security roles control both the app and the data.

Click to flip back

Question

What is a sitemap in a model-driven app?

Click or press Enter to reveal answer

Answer

The navigation structure — the left-side menu. Organised into Areas (top-level sections), Groups (categories), and Pages (links to table views, dashboards, or custom pages).

Click to flip back

Knowledge Check

Knowledge Check

Tom wants maintenance technicians to view property details but only edit maintenance requests. What should he do?

Knowledge Check

Which form type appears as a small popup panel for quickly adding a new record?

Knowledge Check

Where are views for a model-driven app defined?


Congratulations — you have completed Domain 3: Demonstrate the Capabilities of Power Apps! You now understand canvas apps, model-driven apps, connectors, controls, responsive design, and how to share both types of apps. Next, you will explore Domain 4: Demonstrate the Capabilities of Power Automate.

← Previous

Sharing Canvas Apps

Next →

Cloud Flows: Automate Without Code

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.