Managing Entity Forms and Lists in Power Pages – Complete Guide (1000+ Words)
In Power Pages, Entity Forms and Entity Lists play a central role in enabling user interaction with Dataverse data (formerly known as Common Data Service). Whether you want to build a form for user registration, feedback submission, data viewing, or an interactive list of records, these components allow you to create powerful, data-driven experiences directly within your portal.
This in-depth guide will walk you through the following:
- What Entity Forms and Lists are
- How to create and manage them
- Security considerations
- Customizations using JavaScript, CSS, and Liquid
- Real-world use cases and best practices
1. What Are Entity Forms and Entity Lists?
Entity Forms:
An Entity Form renders a Dataverse form on a Power Pages site. It allows users to:
- Create new records (Create Mode)
- View existing records (Read-Only Mode)
- Update existing records (Edit Mode)
It is based on the form defined in Dataverse (via the Power Apps maker portal), and can include validations, lookups, and business rules.
Entity Lists:
An Entity List displays a list of records from a Dataverse table in a grid or table format. It supports:
- Sorting, filtering, and searching
- Inline editing or redirects to Entity Forms
- Actions such as Create, Edit, Delete
- Export to Excel or Print
2. Where Are Entity Forms and Lists Managed?
You manage them using the Power Pages Design Studio or the Portals Management App (more advanced).
Design Studio (for simplified configuration):
- Navigate to your Power Pages site
- Open the Pages section
- Click a web page > Select Form or List component
Portals Management App (for advanced setup):
- Go to https://make.powerapps.com
- Open Apps > Portals Management
- Go to Entity Forms or Entity Lists
3. Creating an Entity Form – Step-by-Step
Step 1: Create the Form in Dataverse
- Open Tables in the Power Apps Maker Portal
- Choose a table (e.g.,
Feedback
) - Create a Main Form with the fields you want to display
Step 2: Create the Entity Form
- Open Portals Management
- Go to Entity Forms > + New
- Fill the following:
Field | Description |
---|---|
Name | Name of the form (e.g., “Feedback Form”) |
Entity Name | Select the table (e.g., Feedback ) |
Form Name | Choose the form created in Dataverse |
Mode | Create, Edit, or Read Only |
Web Page | Link this form to a Power Pages page |
Step 3: Add Metadata (Optional but Powerful)
You can use Form Metadata to:
- Add instructions or labels
- Include custom JavaScript
- Redirect after submission
- Show/hide specific fields conditionally
4. Creating an Entity List – Step-by-Step
Step 1: Enable the View in Dataverse
- Open a table (e.g.,
Feedback
) - Create a Public View (e.g., “Open Feedback”)
Step 2: Create the Entity List
- Open Portals Management > Entity Lists > + New
- Fill in details:
Field | Description |
---|---|
Name | E.g., “Feedback List” |
Entity Name | E.g., Feedback |
Views | Select the view(s) you want to show |
Web Page | Link it to a page |
Enable Create/Edit/Delete | Optional actions for end-users |
Display Settings | Grid, Table, Pagination, Search |
Step 3: Configure Additional Settings
- Enable filters, export, and column visibility
- Add custom JavaScript or use FetchXML filter for dynamic content
5. Embedding Forms and Lists in Web Pages
You can connect an Entity Form or List directly to a Web Page by:
- Assigning the form/list to the web page through Portals Management
- Using Web Page Content to insert a Liquid snippet:
{% entityform name: "Feedback Form" %}
{% entitylist name: "Feedback List" %}
Alternatively, in Design Studio, use the Form or List component.
6. Security and Permissions
Web Roles
Entity Forms and Lists require users to have appropriate Web Roles with assigned Table Permissions.
Entity/Table Permissions
- Go to Table Permissions
- Define scope:
- Global – access to all records
- Contact – user-owned records
- Account – records owned by user’s account
- Assign Web Roles to the permission
- Define actions: Create, Read, Update, Delete, Append, Append To
Without the correct permissions, users will see access denied errors or won’t be able to submit forms.
7. Customizing Forms and Lists
JavaScript Enhancements
Add interactivity or dynamic behaviors:
document.getElementById("name").addEventListener("change", function() {
alert("Name changed!");
});
You can inject this via the Form Metadata > Custom JavaScript section.
CSS Styling
Override styles:
.entitylist {
background-color: #f8f8f8;
border: 1px solid #ddd;
}
Use Web Files or embed in the theme.
Liquid Templating
Control content display based on roles or form values:
{% if user.roles contains 'Admin' %}
<p>Welcome, Admin!</p>
{% endif %}
8. Real-World Use Cases
Scenario | Entity Form | Entity List |
---|---|---|
Job application form | Allows users to submit details | Admins view applications |
Support ticket submission | Users submit new tickets | Users track their ticket status |
Course registration | Learners register for classes | Admins view registrations |
Feedback collection | Visitors submit feedback | Moderators review submissions |
Internal data submission | Employees fill reports | Managers view submitted data |
9. Best Practices
Best Practice | Description |
---|---|
Use Main Forms | Always build and manage forms inside Dataverse |
Minimal Required Fields | Only ask for necessary data to improve user experience |
Secure with Table Permissions | Don’t rely solely on Web Role access |
Customize for Roles | Create separate views and forms for different user types |
Test with Dummy Accounts | Use test logins with different roles to validate UX and permissions |
Use Metadata | Customize success messages, error handling, and redirection easily |
10. Common Issues and Troubleshooting
Issue | Cause | Fix |
---|---|---|
Form does not load | Missing permissions | Check Table Permissions and Web Role assignment |
Submit button disabled | Validation or lookup failure | Check field requirements in Dataverse |
Access denied to form or list | Web Role misconfiguration | Ensure user is linked to Contact and assigned role |
Unable to delete record | Delete not enabled | Enable delete in Entity List config and table permissions |