One of the key strengths of Power Pages is its deep integration with Microsoft Dataverse—the cloud-based data platform that stores and manages business data used by Power Platform apps. Displaying data from Dataverse allows you to build dynamic, interactive websites that serve data in real-time to users based on roles, permissions, and business rules.
This guide will walk you through everything you need to know about displaying data from Dataverse in Power Pages, including:
- What is Dataverse?
- Why use Dataverse with Power Pages?
- Methods of displaying data from Dataverse
- Creating and configuring Entity Lists
- Adding Entity Lists to Web Pages
- Displaying related records
- Securing your data with Web Roles and Permissions
- Enhancing user experience
- Best practices
- Troubleshooting
1. What is Dataverse?
Microsoft Dataverse is a cloud-based storage platform that standardizes data across Microsoft Power Apps, Power Pages, Dynamics 365, and other Microsoft 365 services. It supports structured data storage, business logic, security, and integrations with low-code apps.
Dataverse data is stored in tables (entities) which contain columns (fields). You can relate tables through relationships, apply role-based security, and define business logic via Power Automate, plugins, or JavaScript.
2. Why Use Dataverse with Power Pages?
Using Dataverse in Power Pages offers:
- Real-time data visibility: Users can view up-to-date information.
- Security: Role-based access through Web Roles and Table Permissions.
- Standardization: Data remains consistent across your business systems.
- Low-code customization: Easily create and publish lists, forms, and dashboards.
3. Ways to Display Data from Dataverse in Power Pages
There are three main ways:
- Entity Lists – Best for displaying tabular data (like a product catalog or case list).
- Liquid Templates – Best for advanced customization and conditional rendering.
- JavaScript & Web APIs – Best for interactive or dynamic applications needing fine-grained control.
This guide focuses on Entity Lists, the most common and user-friendly method.
4. Creating and Configuring an Entity List
Step-by-Step:
Step 1: Go to Power Pages Admin Center
- Navigate to your Power Pages site
- Open the Portal Management App
Step 2: Create a View in Dataverse
- Go to Power Apps > Tables
- Choose a table (e.g.,
Cases
) - Select Views > + New View
- Define which columns to show and apply filters
- Save and publish
Step 3: Create an Entity List
- In Portal Management App, go to Entity Lists > + New
- Name it appropriately (e.g.,
Open Cases List
) - Select the target Table (e.g.,
Case
) - Under View, select the one you created earlier
- Set Website to your current Power Pages site
Optional Settings:
- Enable actions like Create, Update, Delete, Download
- Enable Search, Paging, Sorting
- Filter by relationships or user
Save and close.
5. Displaying Entity List on a Web Page
Step 1: Create a Web Page
- In Power Pages Design Studio or Portal Management, create a new Web Page
- Set Partial URL, Parent Page, and Page Template
Step 2: Add Entity List to Web Page
- Go to Web Page > Localized Content
- Under Entity List, choose the one you just created
- Save and publish
Once published, your site visitors will see a dynamic table with data pulled directly from Dataverse.
6. Displaying Related Records
To display related records (e.g., Contacts under an Account), you can:
- Use Filter by Parent in Entity List settings
- Set relationships in the view
- Use Liquid Templates to pull related tables using lookup fields
Example with Liquid:
{% fetchxml contact_list %}
<fetch top="10">
<entity name="contact">
<attribute name="fullname" />
<attribute name="emailaddress1" />
<filter>
<condition attribute="accountid" operator="eq" value="{{ user.accountid }}" />
</filter>
</entity>
</fetch>
{% endfetchxml %}
<ul>
{% for contact in contact_list.results.entities %}
<li>{{ contact.fullname }} - {{ contact.emailaddress1 }}</li>
{% endfor %}
</ul>
7. Securing Data Access
Web Roles
Assign Web Roles (Admin, Authenticated User, etc.) to control who can view, add, or update records.
Table Permissions
- Go to Portal Management App > Table Permissions
- Create a new permission set
- Define:
- Table
- Privileges (Read, Write, etc.)
- Relationship (Global, Contact-based, Account-based)
- Web Role association
Make sure each Entity List or Form is protected with relevant Table Permissions.
8. Enhancing Display and UX
- Enable Filters – Add quick filters to help users narrow down results.
- Enable Paging – Prevents performance issues with large datasets.
- Add Actions – Allow users to click rows to view, edit, or delete.
- Conditional Formatting – Use Liquid or JavaScript for color coding or flags.
- Search Box – Improve accessibility by adding a keyword search option.
9. Best Practices
Practice | Benefit |
---|---|
Use well-structured Views | Controls the data and improves performance |
Limit columns and records | Faster loading, better UX |
Enable paging and search | Supports large datasets |
Secure with Web Roles | Prevents data leakage |
Use custom messages | Inform users of data load, empty lists |
Test roles and permissions | Ensure proper access control |
10. Troubleshooting Tips
Problem | Fix |
---|---|
Entity List not showing | Check if it’s assigned to the Web Page |
Data not visible | Ensure correct Table Permissions and View filters |
“Access Denied” error | Verify user’s Web Role and Table Permission settings |
Wrong columns shown | Edit and publish the correct View |
Search not working | Ensure you’ve enabled Search and added searchable columns |