Automated Report Distribution
On a schedule, retrieves a report file from SharePoint, converts it to PDF if needed, and distributes it to a configured list of recipients via email with the report attached.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
Automated Report Distribution is a scheduled cloud flow that closes the loop between where reports are produced (SharePoint) and where they need to land (executive inboxes). On the configured cadence — typically weekly or monthly — the flow picks up the latest report file from a SharePoint document library, converts it to PDF when the source is Word or Excel, looks up the distribution list for that report from a SharePoint list, and emails the PDF to every recipient with a subject line that includes the report name and reporting period. After the send, it writes a row to a distribution log list so report owners have an audit trail of who received what and when. The demo version of this flow is intended as a starting point: connection references, the report library, the distribution-list source, and the log list are all wired through environment variables so the same packaged solution can be dropped into any tenant and re-pointed at the right SharePoint locations without editing the flow.
Use Case
Executive and operational reporting cadences usually fail in the last mile — the report is built on time, but distribution becomes a manual chore for the report owner who has to remember the schedule, find the latest file, convert it, attach it, and chase the recipient list. This flow removes that manual step entirely. It is intended for teams that publish recurring reports to a known SharePoint library and want delivery to be automatic, consistent, and logged.
The flow is ideal for teams that:
- Finance, operations, and PMO teams distributing recurring executive reports
- Report owners who maintain distribution lists in SharePoint rather than mail-enabled groups
- Organizations that need a delivery audit trail (who got what, when) for compliance or governance
- Mixed-format reporting (Word, Excel, or already-PDF) where the recipient should always receive a PDF
Flow Architecture
Schedule trigger
RecurrenceRuns on the configured cadence (weekly or monthly, on a specified day and hour) to drive report distribution. Frequency, interval, and time-of-day are controlled by the trigger settings so the same flow can be re-pointed at any reporting cycle without code changes.
Get latest report file
Get file content (SharePoint)Retrieves the latest report file from the configured Reports library on SharePoint. The site, library, and file path/naming convention are driven by environment variables so the same flow can be aimed at any tenant's report location.
If file is Word or Excel
If conditionChecks the file extension of the retrieved report. Word (.docx) and Excel (.xlsx) files need conversion to PDF before distribution; existing PDFs can be forwarded as-is.
- Convert file (OneDrive / Word Online) — Converts the .docx or .xlsx source to PDF and stores the converted content in a temporary location for use as the email attachment.
No conversion needed — the original file content is used as the attachment.
Get distribution list
Get items (SharePoint)Reads the Report Distribution Lists SharePoint list and filters by the current report name to retrieve the recipient set for this send. Keeping the recipient list in SharePoint lets report owners maintain it without touching the flow.
For each recipient: send the report
Apply to each → Send an email (V2)Loops the filtered distribution-list rows and sends one email per recipient via Outlook. The subject line combines the report name and the current reporting period (e.g. 'Sales Summary — May 2026'), the body carries the summary/highlights copy, and the PDF report is attached. Sending one email per recipient (rather than a single BCC blast) gives a cleaner per-recipient log entry.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_ReportSiteUrl | String | https://your-tenant.sharepoint.com/sites/Reports | Full URL of the SharePoint site that hosts the report library and supporting lists. Set this to the site that owns your recurring reports. |
| flowlibs_ReportLibraryName | String | Reports | Display name of the SharePoint document library where the source report files are published. |
| flowlibs_ReportName | String | <configure> | Logical name of the report this flow distributes (e.g. 'Sales Summary'). Used to look up the right distribution list rows and to build the email subject. |
| flowlibs_DistributionListName | String | Report Distribution Lists | Name of the SharePoint list that holds recipient rows. The flow filters this list by report name to find the current recipient set. |
| flowlibs_DistributionLogName | String | Distribution Log | Name of the SharePoint list where each distribution run is logged (report, date sent, recipients, status). |
| flowlibs_EmailBody | String | <p>Please find the latest report attached.</p> | HTML body used in the distribution email. Customize with executive summary text, key highlights, or links to dashboards. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| SharePoint | shared_sharepointonline | GetFileContent (retrieves the latest report file) GetItems (reads the Report Distribution Lists rows) CreateItem (writes the Distribution Log row) |
| OneDrive for Business | shared_onedriveforbusiness | ConvertFile (converts .docx / .xlsx to PDF) |
| Word Online (Business) | shared_wordonlinebusiness | ConvertWordDocument (PDF conversion for Word source files) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (sends the report email to each recipient) |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Switch the cadence
- The recurrence trigger ships set up for a generic weekly/monthly run. Open the trigger and set Frequency, Interval, and the specific day/hour to match your actual reporting cycle. For monthly executive reports, a common pattern is the first business day of the month at 7 AM tenant-local time.
- Point the flow at your report library
- Update flowlibs_ReportSiteUrl, flowlibs_ReportLibraryName, and flowlibs_ReportName to match the SharePoint location that already holds your published reports. No flow edits are needed — the Get file content action reads these environment variables.
- Stand up the distribution list and log
- Create two SharePoint lists in the report site: one with columns for Report (text) and Recipient (person or email), the other with columns for Report, DateSent, Recipients, and Status. Set flowlibs_DistributionListName and flowlibs_DistributionLogName to their display names. The flow filters the distribution list by report name so a single list can support multiple reports.
- Customize the email body and subject
- Edit the flowlibs_EmailBody environment variable for global copy changes (executive summary, links to dashboards, contact details). For per-run subject tweaks, the subject expression combines the report name and the current month — adjust the formatDateTime mask to switch between 'May 2026', '2026-05', or quarter-style labels.
- Bypass conversion for already-PDF reports
- The condition step inspects the source file extension and only converts Word/Excel files. If your reports are already published as PDF, the conversion branch is skipped automatically and no further changes are needed.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Email subject with reporting period
Builds a subject line like 'Sales Summary — May 2026'. Swap the format mask for 'yyyy-MM' or 'QQQ yyyy' to match your reporting style.
EXPR.02Detect Word or Excel source
Used in the If condition step to decide whether to convert the source file to PDF.
EXPR.03Filter distribution-list rows by report
OData filter applied to the Report Distribution Lists SharePoint list so only the rows for the current report flow into the Apply to each loop.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.