The Microsoft Power Platform Release Wave 2 Plan was released today and while it’s jammed packed with many new features that will be released in the coming months, one of the features that I am excited about is the arrival of PowerApp Portals.
A highly requested feature from Microsoft was the ability to provide the ability for external stakeholders (partners, members, customers, etc) access to PowerApps.
Check out the official announcement here:
Note that my blog post is a bit of a repeat of the official announcement, I had it written for a few days and was waiting for NDA to be lifted.
Look’s like Colin posted a blog as well:
In many cases, an external stakeholder may not need deep application functionality but rather access to read or transact with information in the a PowerApp based system (including Dynamics 365).
A PowerApp portal provides the ability for an external stakeholder to view data from a CDS system either anonymously or by logging in as an authenticated user. Information can be filtered and security applied to the external user so that they only see or interact with data that is specific to their user or role. Think of a student accessing only their exam results tracked in a PowerApp.
The technology is adapted from the Dynamics 365 Online Portals, which of course were built from AdxStudio Portals. The same concepts apply to PowerApp portals such as Entity lists, Entity forms, Web Forms and Liquid based templates. These components are combined to create and configure PowerApp portals.
You will soon be able to deploy a portal directly from https://make.powerapps.com. Using the new portal maker experience, a citizen developer can begin to design and configure a PowerApp portal linked to a CDS database.
This is an overdue makeover for the legacy front side editing capabilities of the original Adxstudio portal. Users will be able to add the various components on a web page. There is also a Liquid code editor built directly in-line which cuts down on switching apps. The configuration data is stored in CDS records and can be transported from a development to test and production environments via existing tools such as the XrmToolBox’s Portal Records Mover.
The portal technology uses existing model-driven app forms and views as the framework for portal entity forms and entity lists.
Makers will be able to create or extend existing model-driven views and forms, and then surface them on portal pages.
External users will map directly to Contact records and their access to specific portal pages and CDS data can be controlled using web roles and entity permissions.
Simple authentication (login and password) can be setup for the stakeholders to access secured areas of the portal, however Microsoft recommends implementing AzureB2C as the preferred authentication method.
While there are new front-side editing capabilities, when a Portal is provision a Portal Management Model driven app will be deployed to the same environment. All the portal configuration is stored in CDS entities.
If you have been following this blog you know that I have written a number of posts regarding Dynamics 365 Portals. All of these existing techniques and tips will apply to the PowerApp portals. The big difference is that PowerApps Portals can be configured to run on a CDS-only system and do not have the dependencies on the Dynamics 365 1st Party Apps.
At this time, there is little information on how the PowerApp Portals will be licensed. With these features expected to become generally available in October, expect more information to be released soon. The existing licensing for Dynamics 365 is based on full user counts or flat monthly fees for portals, therefore the licensing likely will be much better aligned and scaled to thousands of external users.
PowerApps portals provide one of the last missing pieces to the Power Platform story.
What kind of PowerApp portal applications will you build?
Nick Doelman is a Microsoft Business Application MVP and teaches a Dynamics 365/PowerApps Portals class. Please reach out if you would like more information.