Power Automate: Sending Multiple SharePoint Documents as Email Attachments
Introduction
One of the common requirements is to send mails with multiple attachments from a content source like SharePoint. In this article we will see how we can setup a collection to gather all the required attachments and then add it to the mail while sending it out to the receiver.
Implementation
The summary of the steps used in the implementation would be:
- Initialize the power automate based on the Item creation trigger on a SharePoint List
- Use the Get Attachments Action to get all the attachments associated with that specific list item
- Initialize an array variable to hold the attachments collection
- Use the Get Attachment Content action in a loop to get the content of each attachment and append it to the previously initialized array variable
- Add the array of attachments to the Send Email Action
Walkthrough
Let’s first add the trigger condition for the Power Automate which will be the “When an item is created” and associate it to the specific list where we want to run the flow.
Now let’s call the Get Attachments Action to extract all the attachments of the list item that was created recently. We will also initialize an array to hold the attachments collection.
Now let’s initialize an apply to each loop to loop through the body of “Get Attachments” action and get the File Content of each of the attachment.
The values of ID and File Identifier used in the action Get Individual Attachment content is as follows:
- ID: ID obtained from the Dynamic content output of “When an item is created” trigger
- File Identifier: Id output from the “Get Attachments from the list item” action
We will also start building the attachment collection array in this apply to each loop by building the attachment item which contains 2 properties:
- Name: Display Name is retrieved from the out put of the Get Attachments from the list action
- Content Bytes: Body retrieved from the Get Individual attachment content action
At the end of the loop, we will have the array which contains all the attachments from the list items. Now we will use the Send mail action to add this array as an attribute to the “Attachments” parameter in the action as below:
Thus, the complete flow would like:
Testing the Flow
To test the flow, lets create an item in the SharePoint list and add 5 attachments to it. On item creation, the flow will be executed, and the flow run succeeds by attaching the multiple attachments to the mail.
We have also received the mail with multiple attachments:
Summary
Thus, we saw how to combine multiple attachments into an array collection and use it for sending mail to a receiver using Power Automate and SharePoint.