Maker Certification Gate Enforcer
When a maker submits a new app or flow to a production environment, checks a Dataverse certification registry. If the maker has not completed required training (tracked via Forms quiz results), blocks promotion via an Approvals denial and emails the maker with training links.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow enforces a certification gate for Power Platform makers before they can promote apps or flows to a production environment. When an admin triggers the flow with a maker's email and the app/flow name, it checks whether the maker has completed required training by looking up a Dataverse certification registry and verifying Microsoft Forms quiz results. Certified makers proceed to an approval workflow; uncertified makers receive an email with training links and their promotion request is blocked.
Use Case
Organizations adopting Power Platform at scale need governance controls to ensure makers have baseline competency before deploying to production. This flow acts as a gating mechanism in the ALM pipeline, requiring makers to pass a certification quiz before their solutions can be promoted. It prevents untrained makers from deploying potentially non-compliant or poorly-architected solutions to production while providing a clear path to certification.
Flow Architecture
Manually trigger a flow
Manual triggerAdmin provides MakerEmail (text) and AppOrFlowName (text) as inputs.
Initialize Variables (parallel)
Initialize variableFive env-var-backed variables initialized in parallel: varCertFormId (Forms quiz ID), varCertRegistryTable (Dataverse table name for certified makers), varTrainingUrl (link to training materials), varCertGateAdminEmail (admin notification email), varCertPassingScore (minimum passing score threshold).
Check Certification Registry
Dataverse - List rowsQueries the certified makers Dataverse table, filtering by the maker's email address.
Check If Maker Is Certified
If conditionEvaluates whether any matching records were returned from the certification registry.
- Notify Admin Already Certified — Sends an Outlook email to the admin confirming the maker is certified and the promotion is approved.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_CertFormId | String | <configure> | Microsoft Forms ID for the certification quiz. Set to the ID of your published Forms quiz. |
| flowlibs_CertRegistryTable | String | flowlibs_certifiedmakers | Dataverse table logical name for certified makers. |
| flowlibs_TrainingUrl | String | https://learn.microsoft.com/en-us/training/paths/power-plat-fundamentals/ | Link to required training materials sent to uncertified makers. |
| flowlibs_CertGateAdminEmail | String | admin@yourcompany.com | Admin who receives notifications and approval requests. |
| flowlibs_CertPassingScore | String | 80 | Minimum score (%) required to pass the certification quiz. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords (Query certification registry) |
| Microsoft Forms | shared_microsoftforms | GetFormResponses (Retrieve quiz responses) |
| Approvals | shared_approvals | StartAndWaitForAnApproval (Production promotion approval workflow) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (Email notifications to admin and maker) |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Create the Dataverse certification registry table
- Create a table matching flowlibs_certifiedmakers with at minimum a flowlibs_makeremail column (String) to store certified maker emails. Populate the table as makers complete certification.
- Build and publish the Forms certification quiz
- Build a Microsoft Forms quiz for Power Platform certification, enable scoring, and note the Form ID. Set flowlibs_CertFormId to that ID.
- Set environment variables for your tenant
- Set flowlibs_CertFormId to your Forms quiz ID, flowlibs_CertRegistryTable to your certification table logical name, flowlibs_TrainingUrl to your organization's training link, flowlibs_CertGateAdminEmail to the CoE lead or admin email, and flowlibs_CertPassingScore to your desired minimum score.
- Authorize connections and turn on the flow
- Sign in to each connector (Dataverse, Forms, Approvals, Outlook) using a service account with appropriate permissions, then switch the flow state from Off to On.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Certification registry filter
Builds an OData filter for the Dataverse List rows action to find certified maker records by email.
EXPR.02Registry check condition
Compared against 0 in the Check If Maker Is Certified condition; greater than 0 means the maker already has a certification record.
EXPR.03Quiz pass condition (AND)
Compound condition that requires at least one matching response AND a totalScore at or above the configured passing threshold.
EXPR.04Approval outcome check
Compared against 'Approve' in the Check Approval Outcome condition to decide which email to send the maker.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.