Amirali YaghoutiSenior Software Engineer

ai Case study

n8n Reporting Pipeline

A report full of numbers and no recommendation gets skimmed. The useful output of an operational digest is a short list of things that need attention, with the numbers available underneath for anyone who wants them.

The business problem

Operational data was spread across the store, the CRM and several spreadsheets, and assembling it into anything a manager could read took long enough that it happened irregularly. When it did arrive, it was a table, which meant the interpretation was left to whoever had time.

What I delivered

  • A scheduled n8n pipeline that collects operational data from the systems it lives in and normalises it into one shape.
  • A generated summary that ends in next actions rather than in totals.
  • A daily and weekly cadence, so the digest exists without anybody triggering it.
  • Human review before anything derived from the summary reaches a customer, keeping the generated portion internal by default.
  • Error branches and retry behaviour, documented as part of the workflow rather than discovered during an outage.

Technical approach

  • Collection is separated from summarisation, so a change in what I want the digest to say does not require changing how the data is gathered.
  • The summary ends in actions because that is the part a manager can use. Numbers support the recommendation; they are not the deliverable.
  • Anything customer-facing derived from this passes a person first. The digest is allowed to be wrong internally; it is not allowed to be wrong at a customer.
  • Failure behaviour is designed rather than default. A reporting pipeline that stops quietly is worse than one that never existed, because everyone believes the numbers are current.

Result and evidence

The operational digest arrives on schedule and leads with what needs attention, which is what got it read rather than archived.

Commercial value

Management attention is the scarce input. A digest that spends it on interpretation rather than on reading tables is worth several times the same data in raw form.

implementation-brief.readme

Readable implementation brief

implementation_brief {
  project: "n8n AI Reporting Pipeline"
  cadence: "scheduled daily and weekly; no manual trigger"
  stages: "collect -> normalise -> summarise -> next actions"
  output: "leads with what needs attention; numbers support it"
  boundary: "generated content stays internal until reviewed"
  reliability: "designed error branches and retry behaviour"
}