Inside the buildEngineering notes
The report is the last step
Inside an analytics reporting system that connects platform data, validates what the numbers mean, and makes delivery an observable part of the workflow.
See the workflow
Six platforms. One finished report.
Google Analytics, Instagram, Facebook, X, YouTube, and Mailchimp feed one reporting workflow.
n8n coordinates collection, aligns reporting periods, and preserves source limitations.
n8n sends the prepared data to the Python renderer for charts and a branded PDF.
The finished Modulus | TMAI report is ready for the workflow’s delivery steps.
- Workflow automation
- Data contracts
- Operational visibility
A weekly report should help someone make a decision. First, they need to trust its comparisons, understand missing data, and know where delivery stands. In partnership with TMAI, we built an analytics reporting system around those responsibilities.
Separate the data from the document
n8n collects platform data and assembles it into a shared format. That format defines the reporting periods, metrics, sources, and limitations. A separate Python service validates the input and renders the branded PDF; n8n handles email and Teams delivery steps.
This lets integrations and page designs evolve separately, with a common definition of what the data means.
Architecture at a glance
- 01Collectn8n connects the platform APIs
- 02ValidateTyped periods, metrics, and source coverage
- 03RenderPython produces the branded PDF
- 04DeliverEmail, Teams, and recorded outcomes
Source limitations accompany the metrics. Operational state is recorded separately.
Give a missing number an explanation
If a social platform cannot return data, replacing the missing value with zero would turn an integration problem into an apparent performance collapse.
The contract distinguishes complete, partial, and unavailable coverage. Partial totals require a disclosure; comparisons are rejected when the current and previous totals represent different sets of sources. A cross-channel timeline also makes clear that events happening on the same day do not establish cause.
Make failures actionable
The cross-channel page raises a layout error when meaningful text cannot fit. A report request interrupted by an uncertain network response keeps its operation identity for reconciliation instead of blindly starting again. The workflow also includes a send ledger and delivery checks.
How the edge cases are handled
Label the gap. Do not convert an unavailable metric into zero.
Stop with a layout error. Keep meaningful text from being silently clipped.
Preserve the operation identity and check its state before repeating it.
Give people control over the cycle
Herald, the reporting operations bot, offers report, resend, health-check, and status commands. It checks its recorded operation against n8n before describing whether work is still underway.
A successful run does not prove someone received or read the email. Distinct states help operators investigate the right step.
The business capability is connecting integrations, validation, document design, and controls so a recurring report stays understandable when requirements change.
About the cover illustration

Keep reading.
All articlesProduct engineering
A small key. A complete speech system
Inside Quill, a Windows dictation tool that connects native desktop controls, local speech models, and careful fallback behavior.
Systems engineering
Building a system you can actually operate
Inside the Modulus platform that connects files, speech tools, reporting, monitoring, and recovery—and the decisions that make those parts manageable.
Bring us the work behind the work
A recurring report, a tool your team needs, or a process spread across too many systems. Start with the job you want to make easier.


