COE Help Desk Request Router
When a Microsoft Forms support request is submitted, categorizes the issue type (DLP question, environment request, licensing, app support), looks up the responsible COE specialist via Office 365 Users, creates a Planner task assigned to them, and posts the request to a Teams triage channel with an adaptive card.
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
The COE Help Desk Request Router is a Power Automate Cloud Flow that automates the intake and triage of internal support requests submitted through Microsoft Forms. When a new form response arrives, the flow categorizes the issue type, identifies the responsible Center of Excellence (COE) specialist, creates a tracked Planner task, and posts a summary to a Teams triage channel — all without manual intervention.
This flow ships in Stopped state inside the FlowLibsCOEHelpDeskRequestRouter Dataverse solution and is fully portable across environments via environment variables.
Use Case
Scenario: An organization's COE team receives support requests covering DLP policy questions, environment provisioning, licensing inquiries, and app support. Manually reading each submission, determining the right specialist, creating a task, and notifying the triage channel is repetitive and error-prone.
The flow is ideal for teams that:
- Automatically categorizing each request based on the issue type selected in the form
- Routing to the correct specialist email (configurable via Initialize Variable actions)
- Looking up the specialist's profile from Azure AD via the Office 365 Users connector
- Creating an assigned Planner task for tracking
- Posting a formatted message to the Teams triage channel so the team has visibility
Flow Architecture
When_a_New_Response_is_Submitted
OpenApiConnectionNotification (Microsoft Forms)Fires when a new response is submitted to the form specified by the `flowlibs_FormID` environment variable.
Get_Form_Response_Details
OpenApiConnection (Forms)Retrieves the full response details for the submitted form using the response ID from the trigger.
Init_varTeamsGroupId
InitializeVariableSets the Teams Group ID from env var `flowlibs_TeamsGroupId`.
Init_varTeamsChannelId
InitializeVariableSets the Teams Channel ID from env var `flowlibs_TeamsChannelId`.
Init_varPlannerGroupId
InitializeVariableSets the Planner Group ID from env var `flowlibs_PlannerGroupID`.
Init_varPlannerPlanId
InitializeVariableSets the Planner Plan ID from env var `flowlibs_PlannerPlanID`.
Init_varDLPSpecialistEmail
InitializeVariableDefault: `dlp-admin@contoso.com` — email of the DLP policy specialist.
Init_varEnvAdminEmail
InitializeVariableDefault: `env-admin@contoso.com` — email of the environment provisioning admin.
Init_varLicensingAdminEmail
InitializeVariableDefault: `licensing@contoso.com` — email of the licensing admin.
Init_varAppSupportEmail
InitializeVariableEnvironment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_FormID | String | <configure> | The ID of the Microsoft Forms support request form. |
| flowlibs_TeamsGroupId | String | <configure> | The Microsoft 365 Group ID for the Teams triage team. |
| flowlibs_TeamsChannelId | String | <configure> | The Channel ID where triage messages are posted. |
| flowlibs_PlannerGroupID | String | <configure> | The Group ID that owns the Planner plan. |
| flowlibs_PlannerPlanID | String | <configure> | The Planner Plan ID where tasks are created. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Forms | shared_microsoftforms | When_a_New_Response_is_Submitted (trigger) Get_Form_Response_Details |
| Office 365 Users | shared_office365users | UserProfile_V2 |
| Planner | shared_planner | CreateTask_V3 |
| Microsoft Teams | shared_teams | PostMessageToChannel |
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.
- Set environment variable values
- Navigate to the solution in make.powerapps.com, open each environment variable, and provide the real IDs for your Forms form, Teams group/channel, and Planner group/plan.
- Update specialist emails
- Open the flow in the designer and modify the default values in Init_varDLPSpecialistEmail, Init_varEnvAdminEmail, Init_varLicensingAdminEmail, Init_varAppSupportEmail, and Init_varDefaultSpecialistEmail to match your organization's COE team.
- Verify connections
- Ensure all four connection references (Forms, Office 365 Users, Planner, Teams) are authenticated for the service account or user that will run the flow.
- Add new issue categories
- Add a new case to the Categorize_Issue_and_Route_to_Specialist Switch action. Create a corresponding Initialize Variable for the new specialist email.
- Add approval
- Insert an Approvals action after the Switch and before the Planner task to require manager sign-off on certain request types.
- Add adaptive cards
- Replace the simple Teams message with an Adaptive Card for richer formatting and interactive buttons.
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.01Form response ID from trigger
Used in Get_Form_Response_Details to extract the response ID from the trigger payload.
EXPR.02Submitter email from form response
Used in the Teams message body to display the submitter's email from the form response.
EXPR.03Specialist display name from Azure AD
Used in the Teams message body and Planner task to show the assigned specialist's display name.
EXPR.04Routed specialist email reference
References the routed specialist email set by the Switch action, used in Lookup_Specialist_Profile and the Teams message.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.