Instantly Create PDF from SharePoint List Using Power Automate

In 2 Steps Create PDF from SharePoint List Using Power Automate | Step by Step Tutorial

No comments

Loading

In this “Create PDF from SharePoint list Using Power Automate flow” article, we will learn how to create a PDF from a SharePoint list or document library using a Power Automate flow step by step. This is a two-step process. First, we will create a Word document using the “Populate a Microsoft Word template” action, then we will convert the Word document to a PDF file using the “Convert Word Document to PDF” action, and then finally I will send that PDF file as an attachment to email.

Managing business data efficiently is critical in modern enterprises. SharePoint Online is widely used to store and organize information, but often organizations require these list items in a professional document format like PDF for reporting, compliance, or sharing purposes.

In this guide, we’ll explore how to use Power Automate create PDF from SharePoint capabilities. You’ll learn how to extract SharePoint list data, format it into a Word document, and then automatically convert that Word file into a PDF — all within a few clicks using Microsoft Power Automate.

In the below section, I will explain step by step how to create a PDF file from a SharePoint list using a Power Automate flow.

Step 1: Create a Word Template in SharePoint Document library

The first step is to design a Word template that will act as the base document.

  • Create a Word file (.docx) and add placeholders like <<Title>>, <<Description>>, etc.
  • Upload this template into OneDrive or SharePoint document library.
  • Ensure that you know the path, as Power Automate will use this template.

This ensures consistent formatting across all generated PDFs.

In this section I will explain how to create a template file in Microsoft Word.

First open your Microsoft Word application, click anywhere in the ribbon, and then you will get the option to customise the ribbon and keyboard shortcuts; click on this option.

Then enable the “Developer” checkbox.

Activate developer tab in Microsoft word template file
Activate developer tab in Microsoft word template file

Then add the controls which you want from the developer section; for example, I have added a sample plain text content control for the first name configuration and then configured the “Title” and “Tag” attributes as shown in the below example:

Content control properties in word template file
Content control properties in word template file

You need to design your word template file as per your requirement; the main concept here is wherever you want to pass dynamic value, you need to add content control and configure it as shown above.

For my use case, I have considered the employee offer letter rollout template for the HR recruitment management. Below is my offer letter template file.

Offer letter template file in Microsoft word
Offer letter template file in Microsoft word

In the above offer letter template file, Date, Employee Name, Role, Department, Joining Date and Annual Salary are dynamic content controls – these values will be updated dynamically.

Once this template file is created, upload it your SharePoint Online document library.

Offer letter template file uploaded to SharePoint
Offer letter template file uploaded to SharePoint

I have uploaded this offer letter template inside the “Offer Letter Templates” folder in my “Offer Letters” document library.

And below is my offer letters list.

Employee offer letters list set up
Employee offer letters list set up

The use case is once new candidate offer letter details are added to this list, automatically an offer letter in Word format will be created in the offer letters document library, and then that offer letter will be converted to a PDF file automatically.

Now, I am done with the SharePoint setup; next, I will move on to Power Automate flow development.

Step 2: Create PDF from SharePoint List Using Power Automate Flow

This is my Power Automate flow:

Create PDF from SharePoint Using Power Automate flow and send email
Create PDF from SharePoint Using Power Automate flow and send email

Let’s explain each action of this flow:

This is my flow trigger on the employee offer letters list, and then I am reading the current item details from this list.

Create PDF from SharePoint Using Power Automate flow and send email flow
Create PDF from SharePoint Using Power Automate flow and send email flow

Populate a Microsoft Word template

Then I have configured the Populate a Microsoft Word template action where I have passed my site URL and document library name, and then for the file name, I have selected my template file from my document library. Once I had selected my template file, all the dynamic control I had added to my offer letter word template got auto-populated.

Then I have passed joining date, employee name, salary, job title and department from my employee offer letters list. And for the current date, I have passed the current date. This is a vital or core step in this process.

Populate a Microsoft Word template configuration
Populate a Microsoft Word template configuration

Create word document using Power Automate flow

Then, based on the output of the Populate a Microsoft Word template action (Body), I am creating a Word document in my SharePoint Online document library. You can see the configuration below:

Create word document dynamically using the template file in SharePoint
Create word document dynamically using the template file in SharePoint

Convert Word Document to PDF

Using the Convert Word Document to PDF action, I am converting the same offer letter word document to a PDF file. Here for the location, I have selected my SharePoint site and for the document library I have selected my document library, and for the file name, I have passed the “Name” attribute from the previous step, “create offer letter word file”.

Convert Word Document to PDF in SharePoint using Power Automate flow
Convert Word Document to PDF in SharePoint using Power Automate flow

Create PDF document using Power Automate flow

Then, using the create file action, I am creating the offer letter PDF file, where for the file content I am passing the body of the Convert Word Document to PDF action and the site address as my site URL, the folder path as my document library root folder, and then for the file I have constructed the dynamic file name.

Create PDF document using Power Automate flow
Create PDF document using Power Automate flow

File name formula:

concat(outputs('Get_item_from_offer_letter_list')?['body/EmployeeName'], '_OfferLetter_', formatDateTime(utcNow(), 'yyyy-MM-dd'), '.pdf')

Send Attached PDF file to Email Using Power Automate

Then, finally, I am sending that offer letter PDF file as an attachment to the selected candidate email, where I have created a dynamic email template with the dynamic content from the employee offer letters list.

Then, for the attachment file name, I have passed the Name column from the “Create offer letter PDF file” output, and for the attachment’s content, I have passed the body of the “Convert Word Document to PDF” action.

Send attached PDF file to Email using Power Automate
Send attached PDF file to Email using Power Automate

Offer Letter Email Template

For your reference I am providing you the offer letters email template:

Subject: Congratulations [Candidate Name]! Your Offer Letter from [Company Name]

Body:

Dear [Candidate Name],

We are delighted to offer you the position of [Job Title] at [Company Name]. After reviewing your qualifications and interview performance, we believe that your skills and experience will be a valuable addition to our team.

Please find your official offer letter attached as a PDF document. This includes details about your role, compensation, benefits, and terms of employment.

Key Highlights:

  • Position: [Job Title]

  • Joining Date: [Start Date]

  • Location: [Office Location or Remote]

We kindly request you to review the offer letter and confirm your acceptance by replying to this email or signing and returning the attached document by [Acceptance Deadline].

If you have any questions, feel free to reach out to us at [HR Contact Email/Phone].

We look forward to welcoming you to the [Company Name] family!

Warm Regards,
[HR Manager’s Name]
HR Department
[Company Name]


Attachment: Offer_Letter_[CandidateName].pdf

Update Title Column with the Offer Letter ID

Then, I am checking if the title column is empty, then updating this column with the dynamic offer letter ID:

Update Title Column with the Offer Letter ID Using Power Automate
Update Title Column with the Offer Letter ID Using Power Automate
For the unique offer letter construction, use the below expression:
concat(
'OfferLetter_',
utcNow('yyyyMMdd'),
'_',
substring(
concat('0000', string(triggerOutputs()?['body/ID'])),
sub(
length(concat('0000', string(triggerOutputs()?['body/ID']))),
4
),
4
)
)

Delete the Offer Letter Word Document

Finally, delete the offer letter word document you just created from your document library so that you will only have one copy of the offer letter that is the PDF version of the offer letter.

This step is optional; you may implement it or may not. However, deletion is recommended for the maintenance of your offer letters.

Delete file from SharePoint using Power Automate
Delete file from SharePoint using Power Automate

Demo: Power Automate: Generate Word File, Convert to PDF, and Send Email Automatically

As an HR manager, create a new item for the employee offer letter list like below:

Add new item to SharePoint Online list
Add new item to SharePoint Online list

A new offer letter will be created as a Word file; then that offer letter document will be converted to a PDF file, and then that will be stored in the offer letters document library like below:

Create PDF documents using Power Automate from SharePoint Document Library
Create PDF documents using Power Automate from SharePoint Document Library

Then, the email will be sent to the selected candidate with the PDF offer letter attachment, like below:

Send dynamic email with attachment from SharePoint using Power Automate
Send dynamic email with attachment from SharePoint using Power Automate

YouTube Video Demo: How to Create PDF from SharePoint List

Benefits of Automating PDF Creation in SharePoint

By implementing this process, organizations gain:

  • Faster document generation compared to manual work.
  • Consistency in formatting and structure.
  • Integration with existing Microsoft 365 services.
  • Scalability for large lists and frequent reporting needs.

Best Practices

  • Always design a reusable Word template with proper placeholders.
  • Use pagination and filters when dealing with large SharePoint lists.
  • Store PDFs in a dedicated SharePoint document library for easy tracking.
  • Monitor flow performance and enable error handling in case of large data volumes.

Conclusion

Thus, in this article we have learnt how to create a Word template in SharePoint dynamically, how to create a Word document in SharePoint using the “Populate a Microsoft Word template”, how to “Convert Word Document to PDF”, and how to send email with attachments using Power Automate. Everything in this process is automatically created.

Using Power Automate create PDF from SharePoint, you can transform raw SharePoint list data into professional PDF documents automatically. Whether you need reports, invoices, or compliance-ready records, this automation streamlines your workflow, saves time, and enhances productivity within Microsoft 365.

If you want to take your SharePoint and Power Automate skills further, consider experimenting with advanced scenarios like batch PDF generation, custom approvals, or integration with Microsoft Teams and Copilot.

See Also

Top 10 FAQs: Power Automate Create PDF from SharePoint

1. How can I create a PDF from a SharePoint list using Power Automate?
You can use Power Automate’s Word Online (Business) connector to populate a Word template, then convert it into a PDF using the Convert Word Document to PDF action.

2. Do I need a premium connector to create PDFs in Power Automate?
Yes. The Word Online (Business) connector is a Premium connector, which means you’ll need a Power Automate Premium license or be covered under certain Microsoft 365 plans that include it.

3. Can I automatically send the generated PDF via email?
Yes. After the document is converted to PDF, use the Send an email (V2) action in the Outlook connector to send it as an attachment to the intended recipient.

4. Can I use a custom Word template for generating the PDF?
Absolutely. You can upload a pre-designed Word template to a SharePoint document library and map list fields to placeholders in the template for professional, reusable documents.

5. How do I generate a unique Offer Letter ID or Invoice ID in Power Automate?
You can use expressions like:
concat('OfferLetter_', utcNow('yyyyMMdd'), '_', triggerOutputs()?['body/ID'])
This ensures each document has a unique ID based on the date and SharePoint list item ID.

6. What kind of documents can I generate besides offer letters?
You can automate PDFs for invoices, contracts, certificates, HR letters, proposals, reports, and other business documents.

7. Does Power Automate support bulk PDF generation from SharePoint lists?
Yes. By looping through items in a SharePoint list with the Apply to each action, you can generate PDFs for multiple records in one flow.

8. How secure is it to generate PDFs in Power Automate?
Since the process runs within Microsoft 365 and SharePoint, it follows Microsoft’s enterprise-grade security and compliance standards.

9. Can I store the generated PDF back in SharePoint automatically?
Yes. Use the Create file action in SharePoint or OneDrive to automatically save the PDF into a document library for record-keeping and collaboration.

10. What are the best practices for creating PDFs in Power Automate?

  • Use structured Word templates for consistency
  • Generate unique file names (e.g., including ID or date)
  • Store PDFs in organized libraries
  • Add error handling for failed runs
  • Optimize flows with pagination for large lists

About Post Author

Do you have a better solution or question on this topic? Please leave a comment