Guides
1 / 11
Start herebeginner20 min

Send Microsoft Forms Responses to a SharePoint List Automatically

By

Power Automate can take every Microsoft Forms response and create a matching item in a SharePoint list, then notify whoever owns it. You build it from three actions: the Forms trigger, Get response details, and Create item. The step that trips most people up is that Forms returns choice and date answers as text, so a few fields need converting before SharePoint will accept them.

Swipe up to begin
Concept

The export nobody should still be doing

Microsoft Forms is a good way to collect answers and a bad way to keep them. The results page shows you responses in the order they arrived, and when you want to filter them, assign them, or report on them, the only route out is Export to Excel. So somebody exports on Monday, and by Wednesday the spreadsheet is out of date and there are two versions of it.

A SharePoint list fixes that, because it is a real list: sortable, filterable, permissioned, and connected to everything else in Microsoft 365. What is missing is the bridge between the two, and the bridge is three actions long.

Concept

Build the list first

Do this before touching Power Automate. It takes five minutes and it saves you twenty.

Create the SharePoint list and add one column per form question, choosing the column type deliberately:

  • Single line of text for short answers and names
  • Choice for anything the form asks as multiple choice, with the options typed exactly as they appear in the form
  • Date and time for dates
  • Number for quantities
  • Hyperlink for file-upload questions, which arrive as links rather than files
  • Choice for a Status column with New, In progress, Done — this one has no matching form question and exists so humans can work the list

Now add one item by hand, filling every column the way a real response would. That row is your specification. When the flow runs, its output should be indistinguishable from what you just typed.

Concept

Add the trigger

In Power Automate create an Automated cloud flow and choose When a new response is submitted (Microsoft Forms). Pick your form from the dropdown.

This trigger is deliberately thin. It gives you a response ID and almost nothing else, which surprises people who expect the answers here. The answers come next.

Concept

Get the response details

Add Get response details (Microsoft Forms). Choose the same form, and set Response Id to the Response Id token from the trigger.

This is the action that actually returns the answers, and it is the one people skip. Without it there is nothing to write into the list. Once it is in place, every question on your form becomes an available token named after the question text.

Concept

Create the item

Add Create item (SharePoint), point it at your site and list, and map each column to the matching token.

Two of those mappings will not work first time, and it is always the same two.

Dates. Forms hands you a date as text. SharePoint wants a date. Wrap it:

formatDateTime(outputs('Get_response_details')?['body/rYourQuestionId'],'yyyy-MM-dd')

Choice columns. The text Forms returns has to match the SharePoint choice exactly, including capital letters and any trailing spaces. "In Progress" and "In progress" are two different answers as far as the list is concerned. If a choice column keeps failing, this is almost always why.

Everything else, text and numbers, maps straight across.

Concept

Tell somebody it landed

A list nobody looks at is a spreadsheet with extra steps. Add Post message in a chat or channel (Teams) or Send an email (V2) (Outlook), and write a line with the tokens in it:

New request from [Responder's Email]
Type: [Request type]
Open it: [Link to item]

Include the link to the item. That single field is the difference between a notification that gets acted on and one that gets scrolled past.

If the notification should go to different people depending on the answer, add a Condition before it and compare the relevant response, then put a different message in each branch.

Concept

Test it properly

Switch the flow on and submit the form as yourself. Compare the row the flow created against the row you typed by hand at the start. They should match field for field.

Then submit a second response that deliberately makes life difficult: leave an optional question blank, pick the choice you thought nobody would pick, and put an apostrophe in a text answer. Blank answers and unexpected choices are what break these flows in week three, not week one.

Concept

Where this goes next

Once responses land in a list, the list becomes the trigger for everything else. The obvious next step is sign-off: point an approval at the new item and let the answer be recorded on the same row, which is exactly the shape covered in building a Power Automate approval flow.

If the requests arrive with documents attached rather than as form answers, the filing half of the problem is covered in auto-filing email attachments to SharePoint.

Concept

Build your first version now

Open Power Automate, create an automated flow on the Forms trigger, and wire up just three actions: Get response details, Create item, and one Teams message. Map only the three or four fields you genuinely need, not every question on the form.

Submit one test response and check the row. Once it matches the row you typed by hand, add the rest of the columns, the routing and the approval — each one is a small addition to a flow that already works.

Try this now

Try this now

Build the SharePoint list first, with a column for every question the form asks, and add one row by hand. Then build the flow to reproduce exactly the row you just typed.

That’s the whole lesson. Try it on a real task while it is fresh, then come back for the next one.

Our recommendation

If you are on Microsoft 365, use Power Automate with the built-in Forms trigger and a SharePoint list as the destination. It needs nothing installed, runs inside your tenant, and gives you a list you can filter, sort and report on, which the Forms results page cannot do. Reach for a different builder only when the form itself lives outside Microsoft.

When something else fits better

  • A builder you already use — when the form is a Google Form, Typeform or a website form rather than Microsoft Forms; the destination steps are the same, only the trigger changes
  • n8n — when the responses need to reach a database or an app outside Microsoft 365, or you want to hold the credentials yourself

Questions people actually ask

Can Microsoft Forms write to a SharePoint list without Power Automate?
Microsoft Forms cannot write to a SharePoint list on its own. Forms stores responses in its own results page and can export them to Excel, but moving a response into a list needs a Power Automate flow sitting between the two. That flow is three actions long and needs no code.
Why does the SharePoint Create item step reject my date or choice field?
Microsoft Forms returns every answer as text, including dates and choice answers, while a SharePoint list expects a real date value or an exact choice match. Wrap a date answer in the formatDateTime expression, and make sure the choice wording in Forms matches the choice column in SharePoint character for character, including capitals.
Does this flow run for responses submitted before it was built?
No. The Forms trigger only fires on responses submitted after the flow is switched on, so anything collected earlier stays where it is. Export the existing responses to Excel and import them into the SharePoint list once, then let the flow handle everything from that point forward.
Can the flow notify a different person depending on the answer?
Yes. Add a Condition after Get response details and compare the relevant answer, then put a different notification in each branch. A common version routes by department: the facilities answers go to one mailbox, the IT answers to another, using the same single form.
What happens to file uploads in a Microsoft Forms response?
A file upload question stores the file in the form owner OneDrive and returns a link rather than the file itself. Put that link in a hyperlink column on the SharePoint list, or add a Get file content step and a Create file step if the document genuinely needs to live in the same library as everything else.

Drafted with AI assistance from our own research and Search Console data, and reviewed by Rahul A before publishing. Tools and prices change; check the linked official source before you act.