Modern businesses need secure websites where customers, partners, or employees can interact with company data and services. Microsoft Power Pages, previously called Power Apps Portals (Power Portal), helps organizations build these websites easily and connect them with their internal systems.
Built on the Microsoft Power Platform, Power Pages allows organizations to create external-facing websites that connect directly to business data stored in Microsoft Dataverse.
In this guide, you’ll learn:
- What Power Pages is
- How Dataverse works
- How Power Pages connects to Dataverse
- How developers can use APIs and custom pages to extend functionality
This article is beginner-friendly while also providing practical developer insights and examples.
Introduction to Power Pages (Formerly Power Apps Portals)
What Is Power Pages?
Microsoft Power Pages is a low-code platform for building secure, external websites that connect directly to your business data.
It enables organizations to create portals where:
- Customers can submit support requests
- Partners can access shared data
- Employees can interact with company resources
Unlike traditional website development, Power Pages allows developers and non-developers to build websites using low-code tools integrated with Microsoft services.
Key Features and Benefits
1. Low-Code Development
Power Pages provides visual tools for creating pages, forms, and data views without heavy coding.
2. Built-In Security
The platform includes role-based access control and table permissions, ensuring users only see allowed data.
3. Direct Dataverse Integration
Power Pages is tightly integrated with Microsoft Dataverse, allowing portal pages to display and update business data easily.
4. Developer Extensibility
Developers can extend functionality with:
- JavaScript
- Web APIs
- Custom APIs
- Liquid templates
How Power Pages Fits into the Microsoft Power Platform
Power Pages is part of the Microsoft Power Platform, which includes:
- Microsoft Power Apps – Build internal business apps
- Microsoft Power Automate – Automate workflows
- Microsoft Power BI – Data analytics and dashboards
- Microsoft Power Pages – External-facing websites
All these tools share a common data platform: Microsoft Dataverse.
Overview of Microsoft Dataverse
What Is Dataverse?
Microsoft Dataverse is a cloud-based data platform that securely stores business data used by Power Platform applications.
It acts as the central database for apps, automation, analytics, and portals.
Why Dataverse Is Used?
Dataverse provides several advantages:
- Structured data storage
- Built-in relationships between tables
- Enterprise-grade security
- API access for developers
- Seamless integration with Microsoft services
How Dataverse Stores and Manages Data?
Dataverse stores data in tables (similar to database tables).
Example:
| Table | Description |
|---|---|
| Accounts | Stores customer organizations |
| Contacts | Stores individual users |
| Cases | Customer support requests |
Each table contains:
- Columns (fields)
- Records (rows)
- Relationships with other tables
Power Pages can directly interact with these tables.
How Power Pages Connects with Dataverse?
Built-in Integration
Power Pages is natively connected to Dataverse.
This means:
- Portal data automatically comes from Dataverse tables
- Forms and lists update Dataverse records
- Security is enforced through Dataverse permissions
How Tables Are Exposed in Portals?
Dataverse tables can be displayed in Power Pages using:
- Lists – Display records in a table/grid
- Forms – Create or update records
- Liquid templates – Dynamically render data
Example:
A Support Portal may show:
- Customer cases
- Order history
- Knowledge base articles
All of this data comes directly from Dataverse tables.
Role of Permissions and Security
Security is managed using Table Permissions.
These permissions control:
- Who can read data
- Who can create records
- Who can update or delete records
Example:
Customers should only see their own support tickets, not other customers’ data.
Using Dataverse Data in Power Pages
Displaying Data in Portal Pages
The easiest way to display data is by using Lists.
Example:
Display a list of customer orders.
Steps:
- Create a List component
- Select the Dataverse table
- Configure columns and filters
- Publish the portal
Visitors can now see records directly from Dataverse.
Using Forms Connected to Dataverse
Forms allow users to:
- Create records
- Update data
- Submit requests
Example:
A Contact Us form can create a record in the Cases table.
Benefits:
- No backend coding required
- Automatic data storage in Dataverse
- Built-in validation
Using Dataverse APIs in Power Pages
Interacting with Dataverse Using Web API
Developers can interact with Dataverse using the Web API, which is based on REST.
Common operations include:
- Retrieve records
- Create records
- Update data
- Delete records
Authentication and Permissions
Power Pages uses portal authentication and table permissions.
Important considerations:
- Users must have access to the table
- API calls respect security roles
- Anonymous users have limited access
Example: Retrieve Data from Dataverse
Example JavaScript call to fetch accounts:
fetch("/_api/accounts?$select=name,accountnumber", {
method: "GET",
headers: {
"Accept": "application/json"
}
})
.then(response => response.json())
.then(data => {
console.log(data.value);
});
This request retrieves Account records from Dataverse.
Using Custom APIs with Power Pages
What Are Custom APIs in Dataverse?
Custom APIs allow developers to create custom server-side operations inside Dataverse.
These APIs can:
- Execute business logic
- Call external services
- Process complex operations
When Should You Use Custom APIs?
Use Custom APIs when:
- Business logic is complex
- Multiple operations must be executed
- External services must be called
- Security must be enforced server-side
Example:
- Creating a custom order validation service
Calling Custom APIs from Power Pages
Example request:
fetch("/_api/new_GetCustomerOrders", {
method: "POST",
headers: {
"Content-Type": "application/json"
}
})
.then(res => res.json())
.then(data => console.log(data));
This triggers a Custom API inside Dataverse.
Using Custom Pages in Power Pages for API Integration
What Are Custom Pages?
Custom pages allow developers to add JavaScript-based logic and UI customization to Power Pages.
They provide flexibility beyond built-in components.
Calling APIs from Custom Pages
Developers can use:
- JavaScript
- AJAX
- Fetch API
to communicate with Dataverse APIs.
Example Workflow
Step 1: Create a Custom API in Dataverse
Example:
GetCustomerOrders
Returns all orders for a logged-in customer.
Step 2: Create a Custom Page in Power Pages
Add:
- HTML layout
- JavaScript script
Step 3: Call the API
async function loadOrders() {
const response = await fetch("/_api/new_GetCustomerOrders");
const data = await response.json();
displayOrders(data);
}
Step 4: Display the Response
function displayOrders(data) {
const container = document.getElementById("orders");
data.forEach(order => {
const div = document.createElement("div");
div.innerText = order.name;
container.appendChild(div);
});
}
Practical Example: Fetch Customer Records from Dataverse
Scenario:
You want to display customer accounts on a portal page.
Step 1: Create a Portal Page
Add an empty HTML container.
<div id="customers"></div>
Step 2: Call the Dataverse API
fetch("/_api/accounts?$select=name")
.then(res => res.json())
.then(data => {
const container = document.getElementById("customers");
data.value.forEach(account => {
const p = document.createElement("p");
p.textContent = account.name;
container.appendChild(p);
});
});
Result
The portal will dynamically display customer names stored in Dataverse.
Best Practices
1. Use Table Permissions Carefully
Always configure table permissions to protect sensitive data.
Never expose tables publicly without restrictions.
2. Optimize API Performance
Best practices include:
- Use
$selectto retrieve only required fields - Use pagination for large datasets
- Cache results when possible
3. Use Built-in Components When Possible
Prefer:
- Lists
- Forms
- Liquid templates
These are optimized for Power Pages.
Use APIs only when custom behavior is required.
4. Secure Custom APIs
Ensure that:
- Only authorized users can call them
- Inputs are validated
- Sensitive operations run server-side
Real-World Use Cases
Organizations use Microsoft Power Pages with Microsoft Dataverse for:
- Customer self-service portals
- Partner collaboration portals
- Supplier onboarding portals
- Government service portals
- Case management portals
These portals allow external users to interact securely with internal business systems.
References:
