Maker Mentorship Matching Flow
Monthly flow queries the Dataverse maker inventory and Office 365 Users for department info. Pairs new makers (<30 days active) with experienced makers (10+ published apps) in the same or adjacent departments. Posts introductions via Teams DM and logs pairings to a Dataverse mentorship table.
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
FlowLibs - Maker Mentorship Matching is a monthly scheduled Power Automate Cloud Flow that automatically pairs new Power Platform makers with experienced mentors in the same or adjacent departments. It queries a Dataverse maker inventory table, identifies new makers (active less than a configurable threshold), matches them with experienced makers (based on a minimum published app count), logs pairings to a Dataverse mentorship table, and posts introductions to a Teams channel.
Use Case
Center of Excellence (COE) teams want to accelerate new maker onboarding by connecting them with experienced mentors who understand their business domain. This flow automates the matching process monthly, eliminating manual pairing and ensuring no new maker is left without guidance. The department-aware matching ensures mentors can provide contextually relevant advice.
Flow Architecture
Monthly Recurrence
RecurrenceRuns on the 1st of each month at 9:00 AM UTC.
Initialize Variables (8 parallel)
Initialize variableBinds all 6 environment variables to runtime variables (varTeamsGroupId, varTeamsChannelId, varMakerTable, varMentorshipLogTable, varThresholdDays, varMinApps) plus 2 working variables (varPairingsSummary string, varPairingCount integer).
Compute New Maker Cutoff Date
ComposeCalculates the date threshold using addDays(utcNow(), mul(varThresholdDays, -1)). Makers created after this date are considered 'new.'
List New Makers
List rows (Dataverse)Queries the configurable maker inventory table filtered by createdon ge {cutoffDate}. Runs in parallel with List Experienced Makers.
List Experienced Makers
List rows (Dataverse)Queries the same table filtered by flowlibs_publishedappcount ge {varMinApps}. Runs in parallel with List New Makers.
For Each New Maker
Apply to eachIterates over each new maker. For each item: gets the maker's profile from Office 365 Users (UserProfile_V2) to retrieve department info, filters the experienced makers array by matching department or 'IT' fallback, then evaluates whether a mentor is available.
If Mentor Available
If conditionChecks whether the filtered experienced-maker array contains at least one match.
- Select First Mentor — Picks the first matching experienced maker via first(body('Filter_Experienced_By_Department')).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_TeamsGroupId | String | <configure> | Microsoft 365 Group ID for the Team that hosts the mentorship announcements channel. |
| flowlibs_TeamsChannelId | String | <configure> | Channel ID inside the Group where intro messages and the monthly summary are posted. |
| flowlibs_MentorshipMakerTable | String | admin_maker | Logical name of the Dataverse table containing maker records (used for both new and experienced maker queries). |
| flowlibs_MentorshipLogTable | String | flowlibs_mentorshippairing | Logical name of the Dataverse table where mentorship pairings are logged. |
| flowlibs_NewMakerThresholdDays | String | 30 | Number of days since creation for a maker to qualify as 'new.' |
| flowlibs_ExperiencedMakerMinApps | String | 3 | Minimum number of published apps required for a maker to be eligible as a mentor. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords (List new makers and experienced makers) CreateRecord (Log mentorship pairing) |
| Office 365 Users | shared_office365users | UserProfile_V2 (Get new maker department info) |
| Microsoft Teams | shared_teams | PostMessageToConversation (Post intro messages and monthly summary) |
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.
- Configure Environment Variables
- Update all 6 env var values for your tenant: set the Teams Group/Channel IDs, point to your maker inventory Dataverse table, create a mentorship pairing log table, and adjust the threshold-days and minimum-apps thresholds to match your COE policy.
- Authorize Connections
- Open the flow in the designer and authorize the three connections (Dataverse, Office 365 Users, Teams) with an account that has read access to the maker inventory and write access to the log table.
- Adjust Matching Logic
- The department filter in Filter_Experienced_By_Department matches by exact department or falls back to 'IT.' Modify this expression to add additional fallback departments or cross-functional matching rules.
- Customize Pairing Log Schema
- The Log_Pairing_To_Dataverse action writes flowlibs_name, flowlibs_newmakerupn, flowlibs_mentorupn, flowlibs_department, and flowlibs_pairingdate. Ensure your target table has these columns or adjust the field mapping accordingly.
- Turn On
- Once connections are authorized and env vars are set, toggle the flow to On. It will run on the 1st of each month at 9:00 AM UTC.
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.01Cutoff date calculation
Computes the 'new maker' cutoff timestamp by subtracting the threshold days from now.
EXPR.02Dynamic Dataverse filter (new makers)
Builds the OData filter string for the List New Makers action.
EXPR.03Dynamic Dataverse filter (experienced)
Builds the OData filter string for the List Experienced Makers action.
EXPR.04Department matching
Used inside Filter_Experienced_By_Department to match exact-department mentors or fall back to IT.
EXPR.05First mentor selection
Picks the first matching mentor from the filtered array.
EXPR.06Monthly summary date
Formats today's date for the monthly summary heading.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.