Automated Client Reporting
from inbox to inbox
An end-to-end reporting pipeline that replaced a manual, multi-hour monthly process with a fully automated workflow — built lean, without enterprise licensing costs.
The Challenge
My client provides logistics services to a broad client base across Sameday, UK Overnight, and International freight. Each month, the business needed to deliver individual branded performance reports to their clients — covering booking volumes, spend breakdowns, sustainability metrics, and year-on-year comparisons.
The existing process was entirely manual. Someone had to pull booking data, validate it, identify anomalies, format figures, and build out a PowerPoint presentation for each client. It worked, but it was time-consuming, inconsistent, and impossible to scale as the client base grew.
“The goal was simple: remove the human from the routine and leave them only the things that require human judgement.”
An additional constraint shaped the entire design — the solution had to be built without significant licensing overhead. The most obvious tooling for this kind of output sits behind premium licence tiers that weren’t justifiable. That meant finding a smarter path.
The Solution
A four-stage automated pipeline was designed and built across the Microsoft Azure ecosystem — connecting a shared inbox all the way through to a finished, branded report landing in a client’s email.
Stage 1 — Data Ingestion
A Power Automate flow monitors a shared inbox and automatically picks up booking data file attachments as they arrive each month. Files are validated and saved to SharePoint, with the activity logged throughout.
Stage 2 — Validation & Anomaly Detection
An Azure Data Factory pipeline processes the data through a set of quality rules — flagging missing information, emission inconsistencies, and pricing issues. Anything unusual is routed to a review queue rather than silently passing through.
Stage 3 — Operator Review & Approval
Flagged items surface in a SharePoint-based exception queue where an operator can review and make a decision. Once all anomalies are resolved, clean data is automatically promoted to the production database.
Stage 4 — Report Generation & Distribution
A final flow loops through the client list, calls an Azure Function to generate a fully branded multi-slide PowerPoint report for each client, saves it to SharePoint, and emails it to the Account Manager or directly to the client — all without human involvement.
Key Decisions & Problem Solving
Several deliberate decisions shaped how this was built — particularly around cost, flexibility, and maintainability.
Bypassing Licensing Barriers
The natural choice for generating branded PowerPoint output — Power BI paginated reports — requires a Premium Capacity licence. A custom Python solution was built instead, producing identical output at zero additional licensing cost.
Data Quality at the Gate
Rather than trusting incoming data, every file passes through automated validation rules before it can reach a report. Anomalies are surfaced and resolved — not buried or ignored.
Multi-Client Architecture
A client grouping model in Azure SQL allows multiple site codes to be combined into a single report, with no changes required in the automation layer — the database handles the logic.
Built for Handover
The pipeline is designed to migrate cleanly into the client’s own Azure tenant — connection strings and environment variables are the only changes needed.
Skills & Technologies
The Outcome
A monthly process that previously demanded hours of manual effort now runs entirely on its own. Reports are consistent, accurate, and delivered on time — every month — without anyone building a spreadsheet or assembling a slide deck by hand.
The team’s time is freed to focus on client relationships and exceptions rather than routine execution. The pipeline is documented, modular, and ready to scale — and it was built without adding costly monthly licensing to the bill.

