Get responses from Forms to Microsoft Lists using Power Automate

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 typeForms 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. 

Issue tracker form and list

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

Automate, Power Automate, See your flows

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

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”.

Microsoft Forms trigger, When a new response is submitted.

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

When a new response is submitted.

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.

Get response details

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.

Office 365 Users, Search for users (V2) action

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.

SharePoint Create item action

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.

SharePoint, Update item action

Repeat the above “Update item” step as required. 

My completed Flow looks like the image below.

Flow, New form response successful

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

18 thoughts on “Get responses from Forms to Microsoft Lists using Power Automate

  1. 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

    Like

  2. 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

    Like

    1. 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.

      Like

    2. 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

      Like

  3. 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?

    Like

  4. 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

    Like

    1. 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

      Like

  5. 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.

    Like

    1. 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

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s