After created a Microsoft Form with an upload file option, you can put the link to the file within the email using Power Automate.

    Log on to and click on the box in the top left hand side corner.

    If Power Automate is not listed, click on All apps

    Click on Power Automate

  1. Click on My flows
  2. Click on + New
  3. Click on Automated--from blank

  1. Name the flow
  2. Click on "When a new response is submitted Microsoft Forms"
  3. Click on Create

  1. Select the Microsoft form (In this example, it's named Test Form - Link)
  2. Click on + New step

  1. Search for Microsoft Forms
  2. Select "Get response details Microsoft Forms"

  1. Select the Microsoft Form in the Form Id field.
  2. Click in the Request Id field
  3. Select Response Id from the popup box.

  1. Search for Parse JSON
  2. Select "Parse JSON Data Operation"

  1. Click in the Content field
  2. Select the Upload file response from the popup box
  3. Copy and Paste the below code into the Schema field:
 "type": "array",
 "items": {
 "type": "object",
 "properties": {
 "name": {
 "type": "string"
 "link": {
 "type": "string"
 "id": {
 "type": "string"
 "type": {},
 "size": {
 "type": "integer"
 "referenceId": {
 "type": "string"
 "driveId": {
 "type": "string"
 "status": {
 "type": "integer"
 "uploadSessionUrl": {}
 "required": [

    4. Click on + New step

  1. Search for Send email
  2. Select "Send an email (V2) Office 365 Outlook"

  1. Type the email address to send the responses to and select the account from the list in the To field.
  2. Type the subject of the email in the Subject field.
  3. In the Body, format the email with labels and the appropriate responses (4) from response details in the popup box.
  4. (Response details)

  1. Type a label for the file link (including a space at the end)
  2. Click on Expression in the popup box
  3. In the function box type (or copy and paste) first(body('Parse_JSON'))?['link']
  4. Click OK in the popup box
  5. Click Save

The flow should look like the following: