Model-Driven Apps: Data-First Design
Model-driven apps generate their layout from your data model in Dataverse. Learn how Tom built a property management system and when to pick model-driven over canvas.
What are model-driven apps?
Think of a model-driven app like a house built from blueprints.
You design the blueprints first β your tables, columns, and relationships in Dataverse. Then the app builds itself around that design.
You donβt place every button pixel by pixel. Instead, you say βI have properties, tenants, and maintenance requestsβ and the app automatically creates forms, views, and navigation for those things.
The data model drives the app. Change the model, and the app updates to match.
Meet Tom: the property manager
Tom Chen is operations director at Summit Realty, a property management company with 120 staff. They manage 400 rental properties across three cities.
Tomβs team was drowning in spreadsheets β one for properties, one for tenants, one for maintenance requests, and another for lease renewals. Nothing was connected.
Tom built a model-driven app in Dataverse with four related tables:
- Properties β address, type, bedrooms, monthly rent
- Tenants β name, contact details, lease start, lease end
- Maintenance Requests β issue, priority, status, assigned technician
- Inspections β date, property, findings, photos
Because these tables are related (each tenant links to a property, each request links to a property), the app automatically shows Tom the full picture. Open a property record and you see its tenant, all maintenance requests, and upcoming inspections β all in one place.
Key features of model-driven apps
Views β different ways to see your data
Views are saved lists of records with specific filters and columns. Tom created several views:
| View name | What it shows |
|---|---|
| Active Properties | All properties with current tenants |
| Vacant Properties | Properties without a tenant assigned |
| Overdue Maintenance | Requests older than 7 days and still open |
| Expiring Leases | Tenants with leases ending in 30 days |
Views let different team members see the data they care about without building separate apps.
Forms β structured data entry
Forms control what users see when they open a record. Tomβs property form shows address and rent at the top, tenant information in the middle, and a timeline of activities at the bottom.
Forms can include:
- Sections and tabs to organise fields
- Business rules that show or hide fields based on conditions
- Quick view forms that show related record data inline
- Timelines that display notes, emails, and activities
Charts and dashboards
Model-driven apps include built-in data visualisation. Tom created a dashboard with:
- A pie chart showing properties by city
- A bar chart of maintenance requests by status
- A list of overdue tasks
Dashboards update in real time as data changes.
Business process flows
A business process flow is a visual guide that walks users through a multi-step process. Tom created one for tenant onboarding:
Lead β Application Review β Background Check β Lease Signing β Move-In
Each stage has required fields. Staff cannot advance to the next stage until they complete the current one. This ensures every tenant goes through the same process.
Business process flows vs Power Automate flows
These are different things with similar names:
- Business process flow β a visual stage bar inside a model-driven app that guides a user through steps. It is interactive and user-driven.
- Power Automate flow β an automated workflow that runs in the background when triggered. It does not require user interaction.
The exam may test whether you know the difference. Business process flows guide people. Power Automate flows automate tasks.
When to use model-driven apps
| Use case | Why model-driven apps fit |
|---|---|
| Complex data relationships | Tables with lookups, one-to-many, many-to-many |
| Role-based access | Different teams see different views and forms |
| Business process enforcement | Guided stages ensure consistent processes |
| Dataverse-centric solutions | When your data already lives in (or should live in) Dataverse |
| Enterprise applications | CRM, case management, asset tracking, HR systems |
| Reporting and dashboards | Built-in charts and dashboards update in real time |
The detailed comparison: canvas vs model-driven
| Feature | Canvas Apps | Model-Driven Apps |
|---|---|---|
| Design philosophy | You design every screen | App generated from data model |
| Starting point | Blank canvas or template | Dataverse tables and relationships |
| Data source | Any connector β SharePoint, SQL, Excel, APIs | Dataverse only |
| Layout control | Full pixel-level control | Standardised layout, limited customisation |
| Responsive design | Manual with containers | Automatic β built in |
| Mobile experience | Excellent β designed mobile-first | Good β responsive but not customisable |
| Business process flows | Not available | Built-in visual stage guides |
| Views and dashboards | Build your own with galleries and charts | Built-in, configurable |
| Complexity | Simple to moderate tasks | Moderate to complex enterprise apps |
| Learning curve | Lower β PowerPoint-like | Moderate β need data modelling knowledge |
| Best for | Mobile, field, task-specific, branded | CRM, case management, process-heavy |
| Offline support | Yes β built in | Limited β requires configuration |
Can you combine both in one solution?
Yes. Many organisations embed a canvas app inside a model-driven app. For example, Tom could embed a canvas app on his property form that uses the device camera to capture inspection photos.
This gives you the structured data management of model-driven apps with the design flexibility of canvas apps where you need it.
π¬ Video walkthrough
π¬ Video coming soon
Model-Driven Apps Explained β PL-900 Domain 3
Model-Driven Apps Explained β PL-900 Domain 3
~12 minFlashcards
Knowledge Check
Tom needs an app to manage 400 properties with related tenants and maintenance requests. He needs role-based views and a guided onboarding process. Which type of app is best?
What is the primary data source for model-driven apps?
Which feature guides users through a multi-step process with stages inside a model-driven app?
Next up: Connecting to data sources β how connectors bring your data into Power Apps.