In this blog post I will outline how to get responses from Microsoft Forms into Microsoft Lists using Power Automate. I am using the Microsoft Lists, Issue tracker template for my examples. I have created a new Forms form that aligns its questions to the Issue tracker list columns. This is how my list column types line up to my form column types:
Lists column type | Forms column type |
---|---|
Attachments | File upload |
Choice | Choice |
Date and Time | Date |
Multiple lines of text | Text (Long answer) |
Person or Group | Text * |
Single line of text | Text |
URL | Text |
* Tip: Prompting for an email address, from Forms, instead of a name will help to resolve the person’s claims information.

Create a new Flow by clicking “Automate” > “Power Automate” > “See your flows”.

Click “New” > “Automated-from blank”.

Provide a Flow name, I.e. “New form response”, select the Microsoft Forms “When a new response is submitted” trigger and click “Create”.

Select your target form, I.e. “Issue tracker”.

Click “New step”, search for “Forms” and select the “Get response details” action. Set the “Form Id” to your target form, I.e. “Issue tracker”, and set the “Response Id” to “Response Id” from the previous “When a new response is submitted” step.

Click “New step”, search for “Office 365 Users” and select the “Search for users (V2)” action. Set “Search term” to the name columns from your form. In my example, I have two name columns and I will have to repeat these steps to convert the text submission to a user’s claims information.

Click “New step”, search for “SharePoint” and select the “Create item” action. Note: Microsoft Lists is really SharePoint, so that is why we are using the Power Automate SharePoint actions.
Set the “Site Address” and “List Name” to you target site and list.
Set each List column to the corresponding Forms “Get response details” action, omit the person columns (I.e. “Assigned to” and “Issue logged by”) for now. Note: “Title” in the list has been renamed to “Issue” but still retains the original column name internally.

Click “New step”, search for “SharePoint” and select the “Update item” action.
Set the “Site Address” and “List Name” to you target site and list.
Set each required and choice List column to the previous “Create item” action values. Set the person column to “Email” from the “Search for users (V2)” action (I.e. “Assigned to”). Note: When you add a person or group column, Power Automate will put the action into a “Apply to each” loop. This allows the action to add multiple people or groups to the column.

Repeat the above “Update item” step as required.
My completed Flow looks like the image below.

Save your Flow and test by submitting a new item from the “Issue tracker” form. If all goes well your Forms submission will be stored in Microsoft Lists.

Forms, Microsoft Lists and Power Automate provide citizen developers a self-service platform for enhancing and modernizing business processes using a no-code approach with out-of-the-box functionality.
In my next blog post I will expand on this Flow to include any attachments from the Forms submission. It’s surprisingly more work than you would expect and deserves it’s own post.
Thanks for reading.
NY
Great post Norm. We are using same technique for Incident Reporting and have extended it to create PDF Reports to be issued to stakeholders.
LikeLike
Thanks for the feedback, Scott. I like your use case. What are you using for PDF creation?
LikeLike
I build the templates in Word and add Content Control Boxes. Save that as a Template to SharePoint. Within Power Automate, there is two Word for Business Connectors. One injects the data into the content controls then, the other enables conversion from Word to PDF
LikeLike
Hi Norm – I hope you’re well. Thanks as always for the great information!
Question for you: is one only permitted to write Flows around the Forms they themselves have created? My manager would like me to write a Flow around one he’s created, but it’s not coming up in my list of Forms in ‘When a new response is submitted’ and ‘Get response details’. I figured I would have access because he’s shared the collaborative/editing link with me, and I can do whatever I want with the actual Form itself, like edit questions, add/subtracts questions, etc … well, everything except write a Flow for it.
Thanks in advance for any thoughts/guidance you can share –
Be well!
Scott
LikeLike
You can use the technique on any form however, if its a Form Created by somebody else, in the trigger, select Custom Value at the bottom and copy the Form ID from the URL. Include the underscore at the beginning of the ID.
LikeLike
Hi Scott,
Thanks for the question. Unfortunately sharing the Flow does not allow you to connect to it while in Power Automate. I would recommend rebuilding the Flow under a service account that you and the support team have access to.
I hope this helps and thanks for reading!
NY
LikeLike
Hi! What about attachments? Is there any way to transfer from Forms to Sharepoint list? Thank you!
LikeLike
Hi Radu,
Turns out I already wrote a post on this. See https://normyoung.ca/2020/09/12/add-attachments-from-forms-to-microsoft-lists-using-power-automate/. How embarrassing. I hope this helps and thanks for reading.
NY
LikeLike
Super helpful post, Norm! I’m working on a flow like this for a project and everything is working smoothly except the claims for the person fields. I’m entering an email address in the form, but I receive error 400 “the specified user could not be found.” Any advice on how to fix this issue?
LikeLike
Hi Jenni,
Is the user outside of your O365 tenant (i.e. guest user)?
Thanks for reading!
NY
LikeLike
Hi, nice post. – I’ve had a flow set up similarly for a long while now. But my Forms has a large number of questions and I want to access the value of each question reply.
Do you know if there’s a way to loop through the questions and access the individual question replies in a single Form response using the Apply To flow component?
My Googling takes me here, and this is my current set-up, but it’s really miserable to set up and maintain when the form gets lengthy: https://powerusers.microsoft.com/t5/General-Power-Automate/Flow-Loop-through-Form-Responses-and-Check-For-Specific-Answer/td-p/402255
LikeLike
Hi TMags,
I don’t think there is an elegant way around this one. You could reduce the number of variable declarations to a single compose statement using the Variable Object type. The assignment and evaluation of all variables will still be lengthy.
Interesting use case. If I think of something I’ll message back.
Thanks for reading!
NY
LikeLike
Hi Norm, my form responses are landing in a SharePoint list and I have the list permissions to only show the user items which they have submitted. However, as I have created the form, all of the responses are being submitted with my name under ‘created by’ so I can see all responses and the users don’t see anything. I assume there is something I need to change in the flow but I can’t see what.
LikeLike
Hi Mel,
This is happening as a result of the SharePoint action running under your account. The only way I can see moving forward on this one is to grant item level permissions to each submitter per submission. This should be easy enough to implement but may be a list management issue in the future.
“The supported limit of unique permissions for items in a list or library is 50,000. However, the recommended general limit is 5,000. Making changes to more than 5,000 uniquely permitted items at a time takes longer. Therefore, for large lists, design the list to have as few unique permissions as possible.”
https://docs.microsoft.com/en-us/sharepoint/troubleshoot/lists-and-libraries/error-share-break-inheritance#:~:text=The%20supported%20limit%20of%20unique,few%20unique%20permissions%20as%20possible.
If your list item count is measured in the hundreds I would go for it using the “Grant access to an item” action.
Thanks for reading!
NY
LikeLike
thanks alot of information
LikeLiked by 1 person
Thanks for saying that Reyhan, I appreciate it!
NY
LikeLike
Hi Norm,
Thank you – this was really easy to follow. I used it to create a leave register to capture responses from an e-form I created for leave submissions. I thought I nailed it too, however with the 2nd submission failed the flow due to “duplicate values in one of the columns” – namely, the office location of the individual. How do I get around this as this is likely to re-occur?
I was planning on using this list / form combo as a trial run for creating a large number of pre-start checklists, incident forms etc, and then linking them to a CAPA register, so I want to get the trial one right forst.
Thanks!
LikeLike
Hi Naomi,
Change the column settings for “office location of the individual” to allows duplicates.
Thanks for reading!
NY
LikeLike
Hi Norm,
Thanks so much for the quick response. I couldn’t see that as an option in the settings for the columns because I had selected radio buttons instead of dropdowns. All fixed now.
Thanks so much!
LikeLiked by 1 person
Hi Norm,
I have another question. I have a column which is a Yes / No choice (leave approved) and I’m trying to run a flow which will send an email to the requestor when the choice ( or approval status) is updated. It is triggering every time the column is updated, but is only sending the email linked to the “if no” on the condition (i.e. leave rejected).
LikeLike