4.1 Model-Driven App Design, Site Map Navigation & Modern App Designer

Key Takeaways

  • Model-driven apps are data-first, responsive business applications generated automatically from Dataverse data models, business logic, and security roles without requiring manual pixel layout.
  • The Modern App Designer provides a unified WYSIWYG authoring canvas with real-time live preview, multi-device responsiveness testing (desktop, tablet, mobile), and integrated page management.
  • The Site Map navigation architecture enforces a strict three-tier structural hierarchy: Area (top-level functional domain), Group (visual section heading), and Subarea (actionable clickable leaf node).
  • Site Map Subareas support four distinct content types: Table (Entity list/forms), Dashboard (classic or Power BI embedded), URL (external web page or intranet), and Web Resource (HTML/JavaScript component).
  • Model-driven app security operates on a dual-tier authorization model: users require Read privilege on the Model-driven App table (appmodule) via assigned Security Roles AND underlying table-level data privileges.
Last updated: August 2026

4.1 Model-Driven App Design, Site Map Navigation & Modern App Designer

In the Microsoft Power Platform ecosystem, Model-Driven Applications represent the enterprise standard for data-dense, process-centric business solutions. Unlike Canvas Apps—which start from a blank visual canvas and require makers to manually bind controls, write expressions, and design responsive layouts—Model-Driven Apps are data-first and component-driven. The user interface is dynamically rendered by the Unified Interface framework based entirely on the underlying Microsoft Dataverse schema, forms, views, business processes, and security architecture.

For a Power Platform Functional Consultant preparing for the PL-200 certification, mastering the Modern App Designer, understanding the mechanics of Site Map navigation hierarchies, configuring subarea content types, and implementing robust role-based app security are core competencies.


1. The Model-Driven Component Paradigm & Modern App Designer

Model-driven app development separates data architecture and business logic from visual presentation. When you build a model-driven app, you assemble modular components into a cohesive solution. The Unified Interface automatically handles responsive rendering across desktop displays, tablets, and mobile devices without custom CSS or viewport media queries.

+-----------------------------------------------------------------------------------+
|                 MODEL-DRIVEN APP COMPONENT-DRIVEN ARCHITECTURE                    |
|                                                                                   |
|  +-----------------------------------------------------------------------------+  |
|  | 1. DATA LAYER (Dataverse Engine)                                            |  |
|  |    - Standard & Custom Tables (Entities)                                    |  |
|  |    - Columns (Attributes), Data Types, Choices & Formulas                   |  |
|  |    - Relationships (1:N, N:1, N:N) & Cascading Rules                        |  |
|  +-----------------------------------------------------------------------------+  |
|  | 2. UI & NAVIGATION LAYER (Unified Interface)                                 |  |
|  |    - Model-Driven Apps (`appmodule`) & App-Level Security Roles              |  |
|  |    - Navigation Site Map: Area -> Group -> Subarea                          |  |
|  |    - Forms (Main, Quick Create, Quick View, Card) & Views (Public, System)   |  |
|  |    - Dashboards, Power BI Embeds & Custom Pages                             |  |
|  +-----------------------------------------------------------------------------+  |
|  | 3. LOGIC & AUTOMATION LAYER                                                 |  |
|  |    - Business Process Flows (BPFs) & Task Flows                             |  |
|  |    - Business Rules (Client-Side & Server-Side Validation)                  |  |
|  |    - Automated & Instant Power Automate Cloud Flows                         |  |
|  |    - Classic Workflows & Custom Dataverse Plugins                           |  |
|  +-----------------------------------------------------------------------------+  |
+-----------------------------------------------------------------------------------+

Modern App Designer vs. Classic App Designer

Historically, model-driven apps were authored using the Classic Solution Explorer and Classic App Designer. Microsoft has superseded this with the Modern App Designer inside the Power Apps Maker Portal (make.powerapps.com).

Capability / FeatureModern App Designer (make.powerapps.com)Classic App Designer (Legacy)
Authoring CanvasLive interactive WYSIWYG preview with live dataStatic artifact matrix and component tile grid
Page ManagementAdd Dataverse tables, custom pages, dashboards, URLs via unified left railSeparate XML Site Map designer and component checklist
Multi-Device SimulationOne-click real-time preview for Desktop, Tablet, and Mobile viewportsRequires launching published app in separate browser tabs
Custom Page IntegrationNative inline authoring of converging Canvas Custom PagesNot natively supported; required custom iframe/web resource
Navigation EditingDrag-and-drop Site Map reordering directly in left paneExternal visual Site Map editor requiring separate publish steps
App-Level SettingsModern panel for App Name, Description, Unique URL suffix, and IconClassic properties dialog requiring hex color and 32x32 web resources

[!NOTE] The Modern App Designer introduces Custom Pages, which bridge the gap between Model-Driven and Canvas apps. Custom Pages bring the pixel-perfect flexibility and custom connectors of Canvas apps directly into model-driven navigation panes, dialogs, or full-page views.


2. Navigation Architecture: The Area -> Group -> Subarea Hierarchy

The backbone of every model-driven app is its Site Map. The site map defines the navigation pane displayed on the left side of the Unified Interface. Dataverse enforces a strict three-level hierarchical structure for site maps:

+-----------------------------------------------------------------------------------+
|                         SITE MAP HIERARCHICAL TOPOLOGY                            |
|                                                                                   |
|   [AREA: Sales] (Top-Level Functional Domain Switcher)                           |
|      |                                                                            |
|      +---> [GROUP: My Work] (Collapsible Visual Section Heading)                   |
|      |        |                                                                   |
|      |        +---> [SUBAREA: Dashboards]  (Content Type: Dashboard)              |
|      |        +---> [SUBAREA: Activities]  (Content Type: Table -> Activity)      |
|      |                                                                            |
|      +---> [GROUP: Customers] (Collapsible Visual Section Heading)                |
|      |        |                                                                   |
|      |        +---> [SUBAREA: Accounts]    (Content Type: Table -> Account)       |
|      |        +---> [SUBAREA: Contacts]    (Content Type: Table -> Contact)       |
|                                                                                   |
|   [AREA: Settings] (Secondary Functional Domain Switcher)                         |
|      |                                                                            |
|      +---> [GROUP: Configuration]                                                 |
|               +---> [SUBAREA: Product Catalog] (Content Type: Table -> Product)   |
|               +---> [SUBAREA: Training Portal] (Content Type: URL -> External)    |
+-----------------------------------------------------------------------------------+

The Three Hierarchical Levels

  1. Area (<Area>):

    • The top-level functional domain container. Areas partition large enterprise applications into distinct operational zones (such as Sales, Service, Marketing, or Administration).
    • Display Behavior: In the Unified Interface, when an app contains two or more Areas, Dataverse renders an Area Switcher dropdown at the bottom of the left navigation pane. If an app contains only one Area, the area switcher is automatically suppressed to conserve screen space.
    • Properties: ID, Title (localized display string), Icon, and Security Role / SKU privileges.
  2. Group (<Group>):

    • A logical category header within an Area that organizes related subareas. For example, within the Sales Area, you might define Groups named My Work, Customers, and Collateral.
    • Display Behavior: Groups render as non-clickable bold section headings in the navigation rail. Users can expand or collapse groups to manage screen clutter.
    • Properties: ID, Title, and localized display names.
  3. Subarea (<SubArea>):

    • The actionable, clickable leaf node within a Group. Clicking a Subarea navigates the user to a specific record grid, dashboard, external URL, or custom component in the primary application viewport.
    • Properties: ID, Content Type, Target Entity/Dashboard/URL/Resource, Icon, Title, Default Vector Icon, and Client availability flags.

3. Subarea Content Types & Configuration Properties

When configuring a Subarea in the Modern App Designer, you must select one of four fundamental Content Types:

+-----------------------------------------------------------------------------------+
|                         SUBAREA CONTENT TYPES MATRIX                              |
|                                                                                   |
|   1. TABLE (Entity)        2. DASHBOARD             3. URL              4. WEB RESOURCE   |
|   +-----------------+      +-----------------+      +-----------------+ +-----------------+|
|   | Account         |      | Sales Hub Dash  |      | https://corp... | | custom_view.html||
|   | Contact         |      | Power BI Embed  |      | SharePoint Lib  | | React Web Control||
|   | Opportunity     |      | Tier 1 Service  |      | Help Wiki Portal| | Silverlight/SVG ||
|   +-----------------+      +-----------------+      +-----------------+ +-----------------+|
|   Loads Entity Grid        Loads Interactive        Loads External     Loads Solution-aware|
|   & Entity Forms           Data Visualizations      Webpage / Intranet Custom HTML/JS code|
+-----------------------------------------------------------------------------------+

In-Depth Content Type Comparison

Content TypePrimary Usage ScenarioRequired ParametersBehavioral Characteristics
Table (Entity)Primary data management for standard or custom Dataverse tablesTarget Table Name (e.g., account, opportunity)Automatically loads the entity's Default Public View grid. Automatically exposes entity forms, ribbon commands, and subgrids.
DashboardExecutive overviews, operational monitoring, and real-time KPI metricsDefault Dashboard Name (Classic or Power BI Embedded)Displays interactive charts, multi-entity streams, or embedded Power BI reports. Allows users to switch dashboards via the dashboard selector.
URLIntegrating corporate intranets, SharePoint document libraries, training portals, or external SaaS toolsAbsolute URL (https://...) or relative web addressLoads web destinations directly inside the main app viewport or in a new browser tab. Can pass parameter context (org name, user ID).
Web ResourceBespoke solution-aware UI components, custom HTML forms, SVG visualizations, or JavaScript extensionsSolution Web Resource Name (e.g., new_inventory_map.html)Executes client-side web components packaged within Dataverse solutions. Supports REST API interaction with Dataverse.

Advanced Subarea Configuration Options

  • Client Availability: You can configure whether a subarea is accessible on Web (Browser), Outlook (Dynamics 365 App for Outlook), and Mobile (Power Apps Mobile Client).
  • Check Privileges (Security Trimming): By default, Dataverse applies automatic security trimming. If a subarea points to a Table for which the logged-in user has zero Read permissions, Dataverse automatically hides that subarea from the navigation pane.
  • Explicit Parameter Passing: For URL and Web Resource subareas, you can enable "Pass record object-type code and unique identifier as parameters" to transmit runtime context.

4. App Access Security, Role Assignment & Sharing Mechanics

Deploying a model-driven application into an enterprise environment requires a clear understanding of the Two-Tier Security Model. Access to a model-driven app is governed by two separate authorization layers:

+-----------------------------------------------------------------------------------+
|                 TWO-TIER MODEL-DRIVEN APP SECURITY EVALUATION                     |
|                                                                                   |
|   USER ATTEMPTS ACCESS: https://org.crm.dynamics.com/main.aspx?appid=abc-123      |
|                                                                                   |
|   [TIER 1: APP MODULE ACCESS] ------------------------------------------------+   |
|   Does the user's Security Role grant access to this specific Model-Driven App?|   |
|        |                                                                      |   |
|        +---> NO  ===> [HTTP 403 / Access Denied: App Not Assigned]           |   |
|        |                                                                      |   |
|        +---> YES ===> Proceed to Tier 2 Evaluation                            |   |
|                                                                               |   |
|   [TIER 2: DATAVERSE DATA PRIVILEGES] ----------------------------------------+   |
|   Does the user hold Read/Write privileges for the tables in the Site Map?    |   |
|        |                                                                      |   |
|        +---> NO  ===> Navigation Subareas trimmed / Data fields hidden        |   |
|        |                                                                      |   |
|        +---> YES ===> Full access to entity grids, forms, and command bars    |   |
+-----------------------------------------------------------------------------------+

Tier 1: App Module Privilege & Role Assignment

  • In Dataverse, every model-driven app is cataloged as a record in the App Module (appmodule) system table.
  • To open an app, a user must hold at least one Security Role that has been explicitly assigned to the app in the App Sharing panel or Power Platform Admin Center.
  • System Administrators and System Customizers have access to all model-driven apps by default.
  • If a user has valid table privileges across the database but is not assigned an app's security role, the app tile will not appear in their Office 365 app launcher or Power Apps portal, and direct URL access will fail with an authorization error.

Tier 2: Underlying Dataverse Table Privileges

  • App role assignment grants access only to the shell and navigation container of the application.
  • It does not grant automatic data permissions. If User A has access to the "Sales App" (Tier 1) but their assigned Security Role has Read = None on the Opportunity table, Dataverse security will either hide the Opportunity subarea entirely or display an "Insufficient Permissions" banner upon navigation.

URL-Based App Sharing & Distribution

Model-driven apps can be shared directly using their unique web address. The Unified Interface uses a deterministic URL structure:

App URL=https://environment-name.crm.dynamics.com/main.aspx?appid=app-guid\text{App URL} = \text{https://}\langle\text{environment-name}\rangle\text{.crm.dynamics.com/main.aspx?appid=}\langle\text{app-guid}\rangle

  • Unique App Name / URL Suffix: Makers can define a human-friendly URL suffix (e.g., https://contoso.crm.dynamics.com/apps/fieldservice) in app properties to simplify bookmarking and corporate distribution.
  • Direct Deep Linking: Functional consultants can construct deep links directly to specific forms, entity records, or views by appending parameters such as &pagetype=entityrecord&etn=account&id=<record-guid>.
Loading diagram...
Model-Driven App Navigation Hierarchy & Security Evaluation
Test Your Knowledge

A functional consultant is designing a Model-Driven App for an enterprise customer service team. The app currently contains a single Area named 'Service Operations'. The business stakeholder requests that an 'Area Switcher' dropdown appear at the bottom of the navigation pane so users can easily toggle between operational modes. How should the consultant configure the Site Map?

A
B
C
D
Test Your Knowledge

A business analyst creates a new Model-Driven App containing an Account subarea and shares the app with the 'Field Sales Representative' security role. A sales rep attempts to open the app via direct URL but receives an error stating 'Access Denied: You do not have permission to access this application.' What is the root cause of this issue?

A
B
C
D
Test Your Knowledge

A Power Platform customizer needs to embed an external compliance policy website hosted on the corporate intranet directly into the left navigation pane of a Model-Driven App. Which Subarea Content Type should be selected in the Modern App Designer?

A
B
C
D
Test Your Knowledge

An organization requires that frontline technicians only see the 'Work Orders' and 'Customer Assets' subareas when opening a model-driven app on the Power Apps Mobile Client, while dispatchers using desktop web browsers should see additional reporting subareas. How can this requirement be achieved within the Site Map configuration?

A
B
C
D