What is powerapps-modals?
Overview
powerapps-modals gives you the tool to build attractive modals in Model-driven apps fast & easy. You just need to configure the modal configuration and start calling it from your client code.
Why?

Roadmap
Click here to see the roadmap of powerapps-modals
Installation
Go to this link and download the latest release managed zip file, and then install it in your environment
How to use?
- Install the zip files in your environment
- Prepare your Json
{
"icon": "success",//warning //error
"labels": [
{ "text": "Activation Succeeded", "type": "h1" },
{
"text": "Enter customer name and email to submit the request to the next stage",
"type": "h2",
},
],
"inputs": [
{
"id": "customername", //used to get the value when the modal object is returned
"label": "Customer Name",
},
{
"id": "customeremail",
"label": "Customer Email",
},
],
"buttons": [
{
"id": "button-cancel", //used to know what button was clicked, retunred with modal return object
"label": "Cancel",
"type": "white", //blue //red
},
{
"id": "button-submit",
"label": "Submit",
"type": "blue",
},
],
}
- Call it from your script
let pageInput: Xrm.Navigation.PageInputHtmlWebResource = {
pageType: "webresource",
webresourceName: "vite_/viteapps/pages/modals.html",
data: JSON.stringify(modalJsonObject), //modalJsonObject, pass your json object here
};
let navigationOptions: Xrm.Navigation.NavigationOptions = {
target: 2, // 2 is for opening the page as a dialog.
width: 400, // default is px. can be specified in % as well.
height: 500, // default is px. can be specified in % as well.
position: 1, // Specify 1 to open the dialog in center; 2 to open the dialog on the side. Default is 1 (center).
title: "Record activation modal", //recommended to enter title here
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(returnedValues) {
console.log(returnedValues);
/*
Return values object comes in the below format
{
inputs:object //holds the inputs and what the user filled them in with, you can get them by using the input id as the identifier
clickedButton:string // the id of the button the user clicked
}
for the above example you can get your inputs like the below
*/
let clickedButton = returnedValues.clickedButton; //if the user clicked on submit button it will return "button-submit"
let customerName = returnedValues.inputs["customername"]; //returns what user filled in the customer name input
let customerEmail = returnedValues.inputs["customeremail"]; //returns what user filled in the customer email input
},
function error(e) {
// Handle errors
}
);
That's it :)
Published on:
Learn moreRelated posts
Power Platform Fundamentals #4: Understanding Power Fx in Power Apps: Core Functions, Formula Patterns, and Real-Time Business Scenarios: Quick Read Series
1. Business Scenario In modern enterprise applications, business logic is deeply embedded across user interfaces and data processes. This incl...
Decode & Fix : Shared App host initialization has timed out in Microsoft Power Apps
Issue :While working with apps in the Microsoft Power Platform, we encountered a critical issue where the application failed to load pro...
How to patch images from Power Apps to Dataverse
Patching images is a very common use case for Power Apps. Learn how to patch images from an app to Dataverse! The post How to patch images fro...
How to patch images from Power Apps to D365 F&SCM
Patching images is a very common use case for Power Apps. Learn how to patch images from an app to D365 Finance & Supply Chain Management...
Power Apps Code App | Connecting to a Copilot Studio Agent
In this article, let’s explore how to use a Power Apps Code App to connect and chat with a Microsoft Copilot Studio agent — directly fro...
Power Apps Code App | Querying data Across Environments
In this article, let’s explore how to use a Power Apps Code App to fetch Dataverse data from a different Power Platform environment. Thi...
Power Apps Code App | Images blocked by Content Security Policy (CSP)
Recently I was working on a Power Apps Code App and rendering images using <img> tags with external URLs inside a grid. But the images...
Power Apps – Use Microsoft 365 Copilot in model-driven apps
We are announcing the ability to use Microsoft 365 Copilot in model-driven apps in Power Apps. This feature will reach general availability on...