The Center of Excellence (CoE), also known as the Microsoft Power Platform CoE Starter Kit, is a toolkit to gain insights into the use of the Microsoft Power Platform in an Microsoft 365 organization. While the installation has recently become a bit technically easier, a corresponding Power Platform license is also required for operation. Well, not every company owns or acquires the required license. We show how these license requirements can be solved with Azure temporary - for special use cases - and what are the benefits and the disadvantages of the PAYG billing.
To be clear: This article describes how to configure Azure Billing for Power Platform use cases. However, depending on the workload, that means the bill in Azure can get huge, since each individual flow and each call to a Power App is calculated individually. We therefore recommend this method only for very special - mostly temporary - use cases.
Setup the CoE Starter Kit
It is recommended to create a separate environment and service account for the CoE, see What identity should I install the CoE Starter Kit with?. So, usually, the account is named similar like service.coe, and the enviroment is named CoE. The installation goes smoothly, just follow the steps at Before setting up the CoE Starter Kit.
The CoE is a set of tools combined into solutions including Power Apps, Flows, Dataverse, and requires a service account for all operations. This means, the service.coe account must be active, permanently available, and have the appropriate Power Platform licenses. Note: All services work with Modern Authentication, so MFA should be used for the service account (and all accounts in the tenant).
Here comes the problem: Assigning the Microsoft E5 (license which most organizations have bought in their M365 tenant) Power* licenses to the service.coe account is NOT sufficient for running the CoE!
Ok, so when we have installed the CoE Core solution, we have to create connections, and then to activate a bunch of flows within the solution, as described at Turn on child flows.
When we do that with the service.coe account, the second helper flow (and all the following flows) cannot be turned on, because an error says:
Turn on failed. Flow client error returned with status code "Forbidden" …
"message":"The user '<userid>' does not have a service plan adequate for the non-Standard connection 'Microsoft Dataverse'.
Missing license Power Automate Per User plan
Kindly, the link User doesn't have a service plan adequate for the non-Standard connection error informs about the issue:
Cause: "You may receive this error when doing any of these actions on a flow that uses premium connectors: Importing the flow, Enabling/disabling the flow, Saving/Save as on the flow, Any other permanent modification to the flow. The user does not have a service plan adequate for the non-Standard connection. … This error means a Power Automate license is required for the current user to do the action (a Power Apps, Dynamics 365, or Office 365 license isn't sufficient)."
The resolution says: "Purchase a Per User plan or Per Flow plan for Power Automate. Instead, you can start a trial for the Per User plan lasting 90 days after which you'll require a paid plan to run/edit flows using premium connectors." Well, a trial does not help us for continuous operation. The Pricing page shows the subscription plans, which are $15 per user/month if you license by user.
This means the service.coe account requires a Power Automate Per User Plan. This must be obtained in order to continue. Well, obtaining additional licenses can be time-consuming. Fortunately, there is a quick alternative that we think makes a lot of sense and we describe it here.
Add billing per Azure as a solution
I got a tip of my colleague Peter Hödl to use PAYG Azure billing and found an article describing that: Stephen Siciliano announced the "Preview of Pay-as-you-go for Power Automate" feature in late July on the Microsoft Power Platform Blog.
If you have an Azure subscription, the Pay-as-you-go for Power Automate is giving you more flexibility but higher costs to get started with Power Automate and features. This is, what we are using for our CoE environment temporary: We need the extra license for the service.coe account - now. Set up pay-as-you-go is easy, when you know how to. So, here we go.
- We need to have an active Azure subscription under our control that is assigned to the current M365 tenant.
- We navigate to https://admin.powerplatform.microsoft.com/azurebilling (as a Global Admin).
- We create a "New billing policy" as described here.
- In step "Bill to Azure", we select an Azure subscription, a (new) resource group, and the region for the billing policy, as here.
Note: Create the RG in Azure before this step. The Power Platform account resource that will be associated with this billing policy will be created in this resource group. Any environments you add to the billing policy can only be in this region.
- In the next step, we select the environment (depending on what environments are available in the tenant and for the user). Here, we select the CoE environment.
Only production or sandbox environments can be added to billing policies currently. Trial environments, developer environments, Dataverse for Teams environments, and default environments cannot be added.
Note: I experienced issues when selecting the environment in this step. So my tip is: if selecting the environment does not work at creation time, create the billing policy, and edit the assigned environment afterwards. This worked well for me.
- Click "Create billing policy" button in the Review step to save it. The creation can take a couple of minutes - it´s the Power Platform…
This is it.
- Note: Connecting an Azure subscription to an environment turns on pay-as-you-go billing for all apps within that environment(s)!
- After some minutes, we can check an app in that environment. In the App settings, we see the Pay-as-you-go billing turned on, as here.
Note: Apps in other environments have this setting inactive (without the switch).
- What does this mean for our CoE solution? Well, the service.coe account can now turn on the flows without error.
Billing for required features now happens in the Azure subscription. This was the purpose (and the quick solution).
- Note: To turn off pay-as-you-go, remove the environment from the billing policy, or delete the billing policy. The environment will go back to functioning as a regular environment.
We learned how to work around the missing license issue when setting up the CoE with Azure and pay-as-you-go for Power Automate. Billing of the assigned environments can happen in Azure, as the other Azure resources. See the article Announcing the preview of pay-as-you-go for Power Automate and Set up pay-as-you-go for more information. But read on.
Update: This is a workaround to run the CoE without the additional effort of procuring and managing the required licenses. As we found out, and we got some feedback - thanks for that -, we learned this billing method produces high costs in Azure, since each individual flow and each call to a Power App is calculated individually. Therefore, this billing method is NOT recommend for running the whole CoE environment (or maybe just as a quick temporary workaround until the licenses are in place).
Use cases for the PAYG billing method are for organizations that are just starting to test Power Apps and flows and don't yet know what apps and flows and what licenses they will be using. Once usage trends are established, such apps and flows can be converted to the per user and per flow license.
Another scenario is sharing e.g. a CoE app like the Developer Compliance Center app with users who do not have a premium license but are not supposed to use the app very regularly.
Note: Per user and per flow licenses can co-exist with Pay-as-you-go, depending on the requirements and usage.
If you want Power Platform Governance easier, without the license requirements, and ready to use, check out our Governance Toolkit 365! This not only includes Power Platform data, but also Power BI, apps and the entire M365 Tenant. Try it for free!