
- Prerequisites
- A Microsoft Form that accepts file attachments.
A SharePoint List with a column of type Multiple lines of text configured for Enhanced rich text (allows hyperlinks).
Access to Power Automate with permissions for the Forms and SharePoint connectors.
- Flow Overview
Trigger: When a new Form response is submitted
Action: Get response details
Action: List attachments for that response
Action: For each attachment
Upload the file to a SharePoint Document Library
Append an HTML `<a>` link (with `<br>` after it) to a string variable
**Action**: Create or update the SharePoint List item, writing the accumulated HTML into the rich-text column
- Step-by-Step Instructions
A. Trigger and Get Response Data
Trigger:
Connector: Microsoft Forms → When a new response is submitted
Select your Form.
**Get response details**:
Connector: **Microsoft Forms** → **Get response details**
Form ID: same as trigger
Response ID: `Response Id` from the trigger
B. List Attachments and Upload Files
List attachments:
Connector: Microsoft Forms → List attachments
Form ID: same as above
Response ID: from “Get response details”
**Initialize variable**:
Name: `varLinks`
Type: **String**
Value: leave blank
**Apply to each** (for each attachment returned):
**Create file** (SharePoint):
Site Address & Library: your document library
File Name: `Name` (from the attachment)
File Content: `ContentBytes`
**Append to string variable** (`varLinks`):
Value (use an expression, switching to the Expression tab):
```sql
<a href='@{body('Create_file')?['{Link}']}' target='_blank'>
@{items('Apply_to_each')?['Name']} </a><br> ```
This builds an HTML anchor tag pointing to the newly created file’s link and adds a line break.
C. Create or Update the SharePoint List Item
Create item or Update item in your SharePoint List:
Fill in any metadata fields (e.g., Title, responder’s name).
For your **Enhanced rich text** column, set its value to the variable `varLinks`.
Key configuration: Your List column must be set to Enhanced rich text (Rich text with pictures, tables, and hyperlinks) in List Settings. Only then will the
<a>
tags render as clickable links.
- Example Flow Outline
When a new response is submitted
Form ID: “Your Form”
Get response details
Form ID: “Your Form”
Response ID: `@{triggerBody()?['responseId']}`
**List attachments**
Form ID: “Your Form”
Response ID: `@{outputs('Get_response_details')?['body/responseId']}`
**Initialize variable**
Name: `varLinks`
Type: String
Value: `''`
**Apply to each** `value` (attachments)
**Create file** (SharePoint Document Library)
File Name: `@{items('Apply_to_each')?['Name']}`
File Content: `@{items('Apply_to_each')?['ContentBytes']}`
**Append to string variable** (`varLinks`)
```sql
<a href='@{body('Create_file')?['{Link}']}' target='_blank'>
@{items('Apply_to_each')?['Name']} </a><br> ```
**Create item** (SharePoint List)
Title: responder’s name or other identifier
Enhanced Rich Text column: `@{variables('varLinks')}`
- Testing and Verification
Submit the form with multiple files.
Check the SharePoint Document Library to confirm file uploads.
Open the newly created List item:
The enhanced rich-text column should display each file name as a clickable hyperlink (one per line).
- Additional Tips
To customize link text (e.g., remove file extensions), use Power Automate expressions such as substring()
or split()
.
If you want links to open directly in the browser view, append ?web=1
to the URL.
Ensure the List and Library permissions allow users to click through and view the files.
With this approach, all attachment URLs from a single Form response are concatenated into one rich-text field in your SharePoint List, and each link is fully clickable. Hope that helps!Here’s a detailed, systematic, and “scientific” walkthrough in English for saving Microsoft Forms attachment links into a SharePoint List column (enhanced rich text) so they appear as clickable hyperlinks:
- Prerequisites
A Microsoft Form that accepts file attachments.
A SharePoint List with a column of type Multiple lines of text configured for Enhanced rich text (allows hyperlinks).
Access to Power Automate with permissions for the Forms and SharePoint connectors.
- Flow Overview
Trigger: When a new Form response is submitted
Action: Get response details
Action: List attachments for that response
Action: For each attachment
Upload the file to a SharePoint Document Library
Append an HTML `<a>` link (with `<br>` after it) to a string variable
**Action**: Create or update the SharePoint List item, writing the accumulated HTML into the rich-text column
- Step-by-Step Instructions
A. Trigger and Get Response Data
Trigger:
Connector: Microsoft Forms → When a new response is submitted
Select your Form.
**Get response details**:
Connector: **Microsoft Forms** → **Get response details**
Form ID: same as trigger
Response ID: `Response Id` from the trigger
B. List Attachments and Upload Files
List attachments:
Connector: Microsoft Forms → List attachments
Form ID: same as above
Response ID: from “Get response details”
**Initialize variable**:
Name: `varLinks`
Type: **String**
Value: leave blank
**Apply to each** (for each attachment returned):
**Create file** (SharePoint):
Site Address & Library: your document library
File Name: `Name` (from the attachment)
File Content: `ContentBytes`
**Append to string variable** (`varLinks`):
Value (use an expression, switching to the Expression tab):
```sql
<a href='@{body('Create_file')?['{Link}']}' target='_blank'>
@{items('Apply_to_each')?['Name']} </a><br> ```
This builds an HTML anchor tag pointing to the newly created file’s link and adds a line break.
C. Create or Update the SharePoint List Item
Create item or Update item in your SharePoint List:
Fill in any metadata fields (e.g., Title, responder’s name).
For your **Enhanced rich text** column, set its value to the variable `varLinks`.
Key configuration: Your List column must be set to Enhanced rich text (Rich text with pictures, tables, and hyperlinks) in List Settings. Only then will the
<a>
tags render as clickable links.
- Example Flow Outline
When a new response is submitted
Form ID: “Your Form”
Get response details
Form ID: “Your Form”
Response ID: `@{triggerBody()?['responseId']}`
**List attachments**
Form ID: “Your Form”
Response ID: `@{outputs('Get_response_details')?['body/responseId']}`
**Initialize variable**
Name: `varLinks`
Type: String
Value: `''`
**Apply to each** `value` (attachments)
**Create file** (SharePoint Document Library)
File Name: `@{items('Apply_to_each')?['Name']}`
File Content: `@{items('Apply_to_each')?['ContentBytes']}`
**Append to string variable** (`varLinks`)
```sql
<a href='@{body('Create_file')?['{Link}']}' target='_blank'>
@{items('Apply_to_each')?['Name']} </a><br> ```
**Create item** (SharePoint List)
Title: responder’s name or other identifier
Enhanced Rich Text column: `@{variables('varLinks')}`
- Testing and Verification
Submit the form with multiple files.
Check the SharePoint Document Library to confirm file uploads.
Open the newly created List item:
The enhanced rich-text column should display each file name as a clickable hyperlink (one per line).
- Additional Tips
- To customize link text (e.g., remove file extensions), use Power Automate expressions such as
substring()
orsplit()
. - If you want links to open directly in the browser view, append
?web=1
to the URL. - Ensure the List and Library permissions allow users to click through and view the files.