web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Power Automate: Extern...
Power Automate
Answered

Power Automate: External User Fills Microsoft Form

(2) ShareShare
ReportReport
Posted on by 20
Hi need help,
I'm trying to build a Power Automate flow that works like this:
  1. An external user fills out a Microsoft Form.
  2. The form includes their email address (since they're not internal users).
  3. After submission, the flow sends a follow-up email asking them to reply with a required document (e.g., scanned ID, approval letter, etc.).
  4. The flow then waits for their reply (to that specific email) with an attachment.
  5. Once received, the attachment is saved to a SharePoint document library.
I’m stuck on these key parts:
  • How to wait for the reply from that specific email address captured in the form?
  • How to ensure the flow picks only the reply to the sent email (not any other email from that person)?
  • How to get the attachment from that reply email and save it automatically to SharePoint?
Bonus: If you have a step-by-step or expression example for the trigger "When a new email arrives (V3)" with filters, that would really help.
 
Categories:
I have the same question (0)
  • Suggested answer
    mrcwojcik Profile Picture
    68 on at
    • How to wait for the reply from that specific email address captured in the form?
    • How to ensure the flow picks only the reply to the sent email (not any other email from that person)?
    • How to get the attachment from that reply email and save it automatically to SharePoint?
     
    Hello,
    1. Sadly - there is no way to do this dynamically. You need to receive and handle every mail in a flow
    2. But... you can save conversationId when you sent original mail. Then when you receive mail you can make 2 conditions: 
    - if you have specific email address on your list
    - check if you have saved conversationId - by this you will know if reply is part of any exicisting conversation
     
    3. As for 3 point you have available action:
    Message Id you have in your trigger body and attachement id you can grab from body too (but you can get mail with few attachments so you need to handle it by foreach loop
  • Verified answer
    StewC Profile Picture
    120 on at
    @AN-04030826-0, just to clarify and build a bit on @mrcwojcik's post:
     
    You'll have two flows: the first covering steps 1-3, with an additional step, and the second covering steps 4-5. I use a flow very similar to the second one, capturing attachments from certain people and doing something with them.
     
    At the end of your first flow, as suggested, you capture the email and message ID sent in step 3. Use the Get Emails action, filtered on the recipient of the sent mail, maybe the subject to be sure, and set Top value to 1 to get just the most recent email. From that, you can capture the message ID of the message you just sent.
     
    Since you are using Sharepoint, a logical place to save the email and messageID might be a Sharepoint list, either existing or one you create just to 'log' your emails.
     
    The second flow starts with the Outlook trigger, with the option set to filter emails with attachments. No, you can't filter on the email alias of the sender in this case. In my flow, I first check to see if the Sender is on the list (I use dataverse Contacts, you'd use your Sharepoint list and the Get Items sharepoint action.) In your case, you might be able to get away with just checking to see if that MessageID is on your list.
     
    If it's on the list, now you process that attachment. As noted, you'll use the Get Attachment action, and remember you may get more than 1 attachment, so the rest of your flow will be nested inside a 'For Each' loop. The MessageID value you already have.
     
    One piece of learning: check the file type of each attachment -- if it's a graphic, for example, it's probably not what you were looking for, even if the messageID is a match. Or maybe it is! (I have a regular user who has 3-4 graphics in her signature block, and I ignore those.) One way to get the file extension is this expression, in a Compose:
     
    last(split(outputs('Get_Attachment_(V2)_from_known_user')?['body/name'],'.'))
     
    If OK, then save the attachment to the Sharepoint library. The filename and content of the attachment are in two fields returned by the Get Attachment:  body/name and body/contentBytes.
     
    A bonus round idea: in your Sharepoint list, you might capture a status like "sent/responded" so you can tell from looking at the list...
     
    Best -- Stew
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Haque Profile Picture

Haque 607

#2
Valantis Profile Picture

Valantis 495

#3
Vish WR Profile Picture

Vish WR 429

Last 30 days Overall leaderboard