Form Submission to Assigned Outlook Task
When a Microsoft Form is submitted with a task request, create an Outlook Task assigned to the specified team member.
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 - Form Submission to Outlook Task turns every Microsoft Forms response into a tracked task. When a form is submitted, the flow pulls the response details, builds a task title and notes block from the submission, creates a Microsoft To-Do task on the connection owner's account, then emails the assignee an HTML notification summarizing the new work item.
This is a Beginner-level demo that ships in the Off state. Turning it on requires only authorizing three connections and updating five environment variables — the architecture is fully wired with real connector actions (no inline fixtures).
Use Case
Many small teams collect intake — change requests, IT tickets, training nominations, content reviews — through Microsoft Forms because it's already in their tenant and friction-free for submitters. The downside is responses just sit in a spreadsheet. This flow closes the loop: every submission becomes a real task in someone's Microsoft To-Do list and the assignee gets an email confirming it. No spreadsheet refresh, no manual triage, no missed requests.
The flow is ideal for teams that:
- Operations intake form to task in the ops queue with a 7-day SLA
- Training request form to task assigned to the L&D lead
- IT support form to task in the helpdesk owner's list with the request details inline
- Content review form to task to the editor with the submitter and submission timestamp captured
Flow Architecture
When a new response is submitted
Microsoft Forms — CreateFormWebhookFires on every new submission to the form ID stored in flowlibs_FormID.
Get Response Details
Microsoft Forms — GetFormResponseByIdPulls the full response payload (responder UPN, submit time, response ID, all answers) using the response ID from the trigger.
Init varAssigneeUpn
Initialize VariableSeeds the assignee UPN from flowlibs_DefaultAssigneeUpn. Customize to read an 'Assigned To' form field instead.
Init varTaskTitle
Initialize VariableBuilds the task title by concatenating flowlibs_TaskTitlePrefix with a default phrase. Customize to read a form-supplied title.
Init varTaskNotes
Initialize VariableBuilds the task body text including the responder UPN, submission timestamp, and response ID for traceability back to the form.
Init varDueDate
Initialize VariableSets the due date to 7 days from now via addDays(utcNow(), 7). Customize to read a form-supplied due date.
Create To Do Task
Microsoft To-Do — CreateToDoV3Creates the task in the To-Do list referenced by flowlibs_ToDoListId. Title, body content, due date, and importance ('normal') are all bound to the variables above.
Notify Assignee
Office 365 Outlook — SendEmailV2Sends an HTML confirmation email to the assignee with the task title, due date, and notes.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_FormID | String | <configure> | The Microsoft Forms form ID. Replace with your own form ID after creating the form (found in the forms.office.com URL after ?formid=). |
| flowlibs_DefaultAssigneeUpn | String | you@yourcompany.com | Fallback UPN when the form does not specify an assignee. |
| flowlibs_ToDoListId | String | Tasks | Microsoft To-Do task list (folder) ID. Replace with the actual list ID from your To-Do account after authorizing the connection. |
| flowlibs_TaskTitlePrefix | String | [Form Task] | Prefix prepended to every generated task title. |
| flowlibs_NotificationEmailAddress | String | alerts@yourcompany.com | Reserved for any flow-level notifications. (Not used in the default action wiring; see Customization Guide.) |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Forms | shared_microsoftforms | CreateFormWebhook (trigger) GetFormResponseById |
| Microsoft To-Do (Business) | shared_todo | CreateToDoV3 |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
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 Microsoft Form and set the form ID
- Build a Form in Microsoft Forms with the questions you want to capture (e.g. Title, Description, Assigned To, Due Date). Copy the form ID from the URL (forms.office.com/Pages/...?formid={ID}) and paste it into the flowlibs_FormID env var.
- Set the To-Do list ID
- Open Microsoft To-Do and confirm the target list exists. The first time the connection is authorized in Power Automate, the picker will surface list IDs — paste the desired one into flowlibs_ToDoListId.
- Set the default assignee UPN
- Update flowlibs_DefaultAssigneeUpn with the UPN you want tasks routed to when the form does not specify an assignee.
- Wire form fields into the variables (recommended for production)
- Open Init varAssigneeUpn and replace the value with the form's 'Assigned To' field token (e.g. outputs('Get_Response_Details')?['body/{question-id}']). Repeat for varTaskTitle (Title field), varTaskNotes (description/justification fields), and varDueDate (form-supplied due date, falling back to addDays(utcNow(), 7) via coalesce()).
- Switch to Planner for true assignment
- Microsoft To-Do tasks are personal — CreateToDoV3 writes to the connection owner's account. To assign tasks to other users, swap the Create To Do Task action for Planner 'Create a task (V3)' and pass groupId, planId, and assignedUserIds. The notification email step already handles assignee awareness in the meantime.
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.01Trigger output → response ID
Pulls the response ID from the webhook payload to look up the full response in Get Response Details.
EXPR.02Init varTaskTitle
Concatenates the configurable prefix with a default suffix.
EXPR.03Init varTaskNotes
Builds an audit-friendly notes block tying the task back to the source response.
EXPR.04Init varDueDate
Sets due date to 7 days from now in ISO-8601 format.
EXPR.05Notify Assignee subject
Subject line uses the same prefix so all flow-generated emails are easy to filter on.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.