Automated marketing reports have a reputation problem. Ask any client who has received one and they’ll describe the same experience: a PDF arrives, it’s full of numbers, and it answers precisely none of the questions they actually had. The data is there. The narrative isn’t. At Choco Media, we’ve spent the past two years building and refining an automated marketing reports workflow that produces outputs clients actually read — and that doesn’t require someone to spend half a day writing around generated summaries. This post is that workflow, explained plainly.
If you’re an agency running reports for multiple clients, or an in-house team producing regular performance updates for stakeholders, the problem is identical: you have more data than time, and the humans receiving the reports want story, not spreadsheets. Automation solves the data aggregation problem. The narrative challenge is harder, and that’s what most automated reporting guides don’t address.
We’ll cover the data sources we use, the structure we settled on, the prompts that turn metrics into useful commentary, and — critically — the parts we haven’t automated and probably won’t.
Why most automated reports still feel generated
The failure mode of automated reporting isn’t bad data. It’s context-free data. An automated system can tell you that impressions were down 18% last week. What it can’t tell you, without help, is that impressions were down because you paused a campaign intentionally, and that the remaining campaigns actually improved in efficiency. Without that context, the report creates more questions than it answers.
The other common failure: over-reporting. Automated systems default to completeness. They include every available metric because excluding something feels like a gap. Clients interpret this as noise, start skimming, and eventually stop reading. The report becomes a ritual nobody benefits from.
- Automated reports optimise for data completeness. Clients want signal clarity.
- Without human context injection, automated commentary will always be technically accurate and strategically useless.
- Sending a complete report is not the same as sending a useful one.
The workflow we use is built around a different premise: automation handles aggregation and formatting; humans inject context; AI turns that combination into readable narrative. The output feels curated because it is curated — just not at the expense of four hours of manual work per client.
The data sources and how we connect them
Before you can automate narrative, you need clean data. This is the unglamorous prerequisite that most reporting guides skip past. Our current stack pulls from:
Paid media
- Meta Ads Manager — campaign-level spend, impressions, clicks, CPM, CPC, ROAS. Exported via API or scheduled CSV export depending on the client’s setup.
- Google Ads — same fields, plus Quality Score and search impression share where relevant.
- We don’t pull every available metric. We define a fixed set per client at onboarding and stick to it. Scope creep in reporting metrics is a slow-burning problem.
SEO and organic
- Google Search Console — clicks, impressions, average position for top queries. Pulled via the API or Looker Studio connector.
- GA4 — organic sessions, engagement rate, top landing pages.
Social and content
- Platform-native exports where API access is clean. We avoid third-party social aggregators unless the client already has a subscription — adding tools for the sake of a report is a cost that rarely pays for itself.
All data lands in a shared Google Sheet per client. One tab per data source, one summary tab that pulls the key figures we’ll actually report on. The Sheet is the single source of truth. The reporting tool reads from it, not from the platforms directly. This means the Sheet needs to be maintained, but it also means reporting is decoupled from API rate limits and platform downtime.
The reporting structure we use
We settled on a five-section structure after iterating through about a dozen formats across different client types. The goal was: a client should be able to read the report in under five minutes and know exactly what happened, why, and what’s next.
- Summary (3–4 sentences) — The week/month in plain English. No metrics in this section. Just: what happened at a strategic level.
- Performance snapshot — A small table of the five to seven metrics that matter most for this client. Period-over-period change. Green/red colouring. Nothing else.
- What worked — Two to three specific observations about positive performance, with enough context to be actionable. Not just “CTR improved” but “CTR improved on the retargeting audience, likely because we refreshed the creative mid-week.”
- What to watch — One to two areas of concern or uncertainty. Honest, not alarming. If nothing needs watching, this section says so.
- Next actions — Three to five specific things happening in the next period. Owner noted where relevant.
This structure is non-negotiable across all reports. Clients learn the format quickly and start skimming to the sections they care about. Consistency is a feature, not a limitation.
The best reporting format is the one your client has already memorised. Changing the structure every month, even to improve it, costs you the attention economy of familiarity.
The context injection step — the human part
This is the step that separates automated reports that read like reports from ones that read like they came from someone who was paying attention. Before any AI summarisation runs, someone on our team fills in a context form. It takes five to ten minutes. It covers:
- Intentional changes this period — campaigns paused, budgets shifted, creative refreshed, landing pages updated. Anything we did on purpose that will show up in the data.
- External factors — seasonal patterns, competitor activity, platform outages, market events that might explain anomalies.
- Client context — anything the client mentioned in the last sync that’s relevant: a product launch coming, a sale period ending, a concern they raised.
- Honest assessment — a one-sentence internal view of whether the period was genuinely good, genuinely bad, or mixed with specific reasons.
This context form is a Notion template. It takes the same format every week. The completed form, combined with the data snapshot, is what gets fed into the summarisation prompt. Without this step, AI commentary is pattern-matching on numbers with no situational awareness. With it, the output is grounded in actual decisions and events.
The prompts we use for narrative generation
We use two prompts in sequence. The first generates the summary and “what worked / what to watch” sections. The second generates the next actions list. Keeping them separate reduces the tendency for the model to conflate observations with recommendations.
Prompt 1: Performance narrative
The prompt includes: the five-section report structure as a template; the data snapshot (key metrics, period-over-period changes); and the completed context form. The instruction is to write in the agency’s voice — calm, direct, first-person plural — and to avoid generic statements that could apply to any account.
We explicitly tell the model: “Do not summarise metrics that are already visible in the snapshot table. The narrative should add interpretation, not repetition.” This single instruction dramatically improves output quality. Without it, the model defaults to restating numbers in sentence form, which adds words and removes signal.
Prompt 2: Next actions
Separate prompt, separate context: what actions were discussed in the last review, what the data suggests needs attention, and what’s already in the work queue. Output: three to five bullet points, each with a clear action verb and an owner. The model is not asked to invent actions — it’s asked to synthesise from the inputs we provide.
- We review both outputs before they go anywhere near a client. This is not optional. The model will occasionally misinterpret context or produce a recommendation that contradicts something we know and didn’t include in the form.
- Editing AI-generated report narrative takes about 10 minutes, versus 45–60 minutes to write from scratch.
- The edit is almost always subtractive: removing hedge words, cutting repetition, tightening the opening sentence.
Delivery format and what we avoid
Reports go out by email as a clean HTML email with the structured sections visible in the body — no attachment, no login required, no dashboard link that the client will never click. We tried Looker Studio dashboards for eighteen months. Clients consistently preferred the email. The dashboard is available if they want it; the email is what they actually read.
We’ve also tested full report automation where a tool generates and sends without human review. We stopped after three incidents where the automation sent technically accurate but contextually wrong commentary — once about a campaign that had been paused specifically because of poor performance, framed as performing “as expected.” The client noticed. We stopped automating the send step.
- Automated aggregation: yes.
- AI-assisted narrative generation: yes, with human review.
- Automated send without review: no.
If you’re exploring what AI automation looks like applied to client-facing work, reporting is a good starting point precisely because the stakes of a bad output are low enough to experiment but high enough to care about quality.
The metrics we actually report on (and the ones we dropped)
Early in building this workflow we reported everything. Clients received fifteen-metric tables. Nobody read them. We cut ruthlessly and now report on a client-specific shortlist defined at onboarding. The criteria for inclusion:
- Does this metric influence a decision we or the client might make?
- Does the client understand what it means without a footnote?
- Is it reliably comparable period-over-period (i.e., not affected by tracking changes, attribution windows, or platform counting methodology shifts)?
For a typical paid media + SEO client, we report on: total spend, ROAS or CPA, organic sessions, top-query impressions, and one channel-specific metric relevant to their current focus. Five to seven figures. That’s it.
The temptation to add metrics increases when performance is mixed. More metrics creates more places to find something positive to say. We resist this. A report that adds metrics when performance dips trains the client to distrust the reporting format and to wonder what’s being hidden. Consistency is the only honest policy.
Connecting the automated reporting workflow to broader content and AI systems
The reporting workflow we’ve described here doesn’t live in isolation. It connects to the broader AI content workflow we run — the same principles apply: brief well, generate with context, review before delivery. The same prompt discipline, the same human-in-the-loop checkpoints.
It also connects to the client relationship at a deeper level. A client who receives a clear, honest, consistently formatted report every week develops a different relationship with their agency than one who receives a data dump. The report becomes evidence of attentiveness, not just information delivery. That’s worth more than any metric on the page.
If you’re building or refining a reporting workflow and want a second opinion on the structure or the automation approach, have a look at our AI content and workflow services or reach out via the contact page — we’re happy to look at what you’re currently sending and suggest where automation would help and where it would hurt.