How to Send an Email Based on a Microsoft Forms Response With Power Automate

After every internal training session, our training coordinator sent a feedback form built in Microsoft Forms. The responses piled up in Forms, but nobody saw them until the end of the month.

Attendees wanted to know their feedback had arrived, and trainers wanted to hear it while the session was still fresh. A short Power Automate flow fixed both: every response now triggers a thank-you email to the attendee and a copy to the right trainer.

In this tutorial, I’ll show you how to build both emails: one to the person who submitted the form, and one sent to different people depending on how they answered a question.

Quick answer: Create an automated cloud flow with the Microsoft Forms trigger When a new response is submitted and choose your form. Add Get response details with the same Form Id and the trigger’s Response Id. Then add Send an email (V2) with Responders’ Email in To, or put the email inside a Condition or Switch that checks an answer, so each response goes to the right person.

The example form

The form is called Training Feedback and has five questions:

QuestionQuestion type
Full NameText
Attended onDate
Trained TechnologyChoice (Power Automate, Power BI)
Trainer NameText
Rate the trainerRating
Microsoft Forms Training Feedback form with name, date, technology, trainer and rating questions

Under the form’s settings, it’s set so only people in the organization can respond and their names are recorded. That setting matters for the first email, as you’ll see.

Part 1: Email the person who submitted the form

Step 1: Create the flow with the Forms trigger

In Power Automate, create an automated cloud flow and choose the Microsoft Forms trigger When a new response is submitted. In Form Id, pick the Training Feedback form.

When a new response is submitted trigger with the Training Feedback form selected

If you don’t see your form in the list, it’s probably a group form, one that belongs to a Microsoft 365 group. Those don’t appear in the dropdown: open the form in Forms, copy the part of the address after FormId=, and paste it in as a custom value.

Step 2: Get the answers

The trigger only tells you that a response arrived. To read the answers, add the action Get response details, choose the same form, and set Response Id to the Response Id from the trigger. Each question in your form now appears as dynamic content.

Get response details action using the Response Id from the trigger

In older flows and some templates, this action sits inside a For each loop, as in the screenshot. That’s left over from an earlier version of the trigger; with the current trigger, you get one response at a time, and the loop does no harm.

Step 3: Send the confirmation email

Add Send an email (V2). In To, choose Responders’ Email from the dynamic content. Write a subject such as Training Feedback Submitted, and use the answers in the body, for example the attendee’s name, the technology, the trainer and the rating.

Send an email V2 addressed to the responder with the form answers in the body

Responders’ Email only holds a real address when the form accepts responses from people in your organization and records their names. If the form is set so anyone can respond, the responder shows up as anonymous and the email fails. For public forms, add a question that asks for an email address and send to that answer instead.

Step 4: Test the flow

Save the flow, select Test, choose Manually, and submit a response to the form. The attendee receives the confirmation:

Confirmation email sent to the person who submitted the Training Feedback form

Look at the Technology line: the answer appears as [“Power Automate”]. That happens when a Choice question allows multiple answers, because Forms sends the answers as text that looks like a list. For a single-answer question, you get plain text. If you need multiple answers, you can tidy the text with replace(), or turn it into an array with json() and loop through it.

If attendees only need a simple receipt, Microsoft Forms can also send one on its own: turn on email receipts in the form’s settings. Power Automate is the way to go when you want to customize the message or send it to other people.

Part 2: Send the email to different people based on an answer

Now let’s route each response to the trainers for that technology. Power Automate responses go to Lidia Holloway and Miriam Graham, and Power BI responses go to Henrietta Mueller.

Step 1: Trigger and response details

Start the same way: When a new response is submitted for the Training Feedback form, then Get response details:

Forms trigger for the Training Feedback form in the routing flow
Get response details action in the routing flow

Step 2: Check the answer with a Condition

Add a Condition. On the left, choose the Trained Technology answer from the dynamic content; set the operator to is equal to; and on the right, type Power Automate, exactly as it’s written in the form.

Condition checking whether the Trained Technology answer is equal to Power Automate

Behind the scenes, each question has an ID that starts with r, such as body('Get_response_details')?['rbea76e2d0f5d4e7eac8fed1fa186def9']. Always pick the answer from the dynamic content rather than typing the ID. If you delete and re-create a question, it gets a new ID, and you’ll need to pick it again.

Step 3: Email the first group of trainers

In the True branch, add Send an email (V2) addressed to the Power Automate trainers, with their addresses separated by semicolons, and the feedback in the body:

Send an email V2 to the Power Automate trainers with the feedback details

Step 4: Check the second answer

In the False branch, add a second Condition that checks whether Trained Technology is equal to Power BI:

Second condition checking whether the Trained Technology answer is Power BI

In its True branch, add Send an email (V2) for the Power BI trainer:

Send an email V2 to the Power BI trainer with the feedback details

Here’s the finished flow:

Flow with the Forms trigger, Get response details and nested conditions that send two emails

Step 5: Test it

Submit a response with Power Automate selected:

Training Feedback form submitted with Power Automate as the trained technology

The two Power Automate trainers receive the feedback:

Feedback email received by the Power Automate trainers

Submit another response with Power BI, and the email goes to the Power BI trainer instead.

Use a Switch when you have more choices

Nested conditions are fine for two options, but they get hard to read with more. If your question has three or more answers, use a Switch on the answer, with one case per choice and a Default case for anything unexpected. See how to use the Switch control in Power Automate.

Whichever you use, remember that the comparison is exact. “power bi” doesn’t match “Power BI”, so copy the choice text from the form. If you use contains() instead, note that it’s case-sensitive too.

Troubleshooting

If the flow doesn’t start, check that the trigger is connected to the right form and that the connection uses a work or school account; the Forms connector doesn’t work with personal Microsoft accounts.

If the email fails with an invalid address, look at Responders’ Email in the run history. Anonymous means the form accepts anyone; add an email question instead.

If a condition never matches, compare the answer in the run history with the text in your condition, including spaces and capital letters. A multiple-answer question sends text like [“Power BI”], which never equals Power BI.

These guides show more ways to automate Microsoft Forms with Power Automate:

Frequently Asked Questions

How do I send an email to the person who filled out a Microsoft Form?

Use Get response details after the When a new response is submitted trigger, then Send an email (V2) with Responders’ Email in To. It only works when the form records the names of people in your organization.

Why is Responders’ Email anonymous in my flow?

The form accepts responses from anyone, so Forms doesn’t know who responded. Add a question that asks for an email address and send to that answer instead.

How do I send a Forms response to different people based on an answer?

Add a Condition, or a Switch for several options, that checks the answer from Get response details, and put a separate Send an email (V2) in each branch.

Why doesn’t my group form appear in the Form Id list?

Group forms aren’t listed. Copy the Form Id from the form’s address and enter it as a custom value. Microsoft covers more scenarios in its Forms and Power Automate guide.

4 thoughts on “How to Send an Email Based on a Microsoft Forms Response With Power Automate”

  1. Hi there –
    Really stuck on this one and it should be simple! I’ve built a simple form, and want to follow the exact steps you laid out. If the selection (they can select one or many) = Adoption, then send an email. I’m testing, and the condition continues to come back as false. Any ideas?
    I would be happy to send over screen shots

  2. Curious if there is a way to grab all field values at once and embed in the email body instead of dropping each field individually? So if the form changes (i.e. a field is added), the email body automatically picks up that new field and includes it instead of having to go back in and add the new field

  3. If only it was that simple. I set a form and flow up exactly like this, but simply entering the form field’s value doesn’t work. “Expression Result” of the condition returns “False” and never sends the email. More Microsoft disappointment. Promising simplicity and delivering complexity.

Comments are closed.