Weekly Client Reporting Automation

A fully automated client report that pulls live data, generates AI-written narrative summaries, and delivers a clean PDF to clients every Monday — without a human writing a word.

· 3 min read · Function Client Operations · Tools n8n, Claude API, Google Analytics 4, Airtable, Resend
  • reporting
  • AI writing
  • client ops

Context

An agency managing 14 client accounts was producing weekly performance reports manually. Each report took 45–60 minutes: pulling GA4 data, formatting it, writing the narrative, exporting to PDF, and sending it.

That is 10+ hours per week on reporting. The reports themselves were high-quality, but the value was in the data and the narrative — not the formatting work.

What the automation does

Every Monday at 7:00 AM:

  1. Pulls current-week metrics from GA4 for each client
  2. Compares to prior week and prior month averages
  3. Feeds the data into Claude with a narrative prompt tailored per client
  4. Generates a 3–5 paragraph narrative with highlights and context
  5. Assembles data + narrative into a styled PDF
  6. Emails each client’s PDF to the correct recipient
  7. Logs delivery status and any anomalies to Airtable

Total elapsed time: ~4 minutes for 14 clients.

Workflow diagram

The narrative prompt

The key to making AI-generated narratives trustworthy is the prompt structure. The prompt includes:

  • The client’s goals and KPIs (pulled from their Airtable record)
  • This week’s numbers with deltas
  • Instructions to highlight what is notable, not just describe every number
  • A constraint: no more than 4 paragraphs, no bullet points
  • A tone specification per client (e.g., “technical and precise” vs “accessible and optimistic”)

Sample narrative output:

Traffic this week reached 12,400 sessions, up 18% from last week and 34% above the monthly average. The driver was a spike in organic search on Tuesday and Wednesday — likely attributable to the product update post published Monday afternoon, which ranked quickly for several target keywords.

Conversion rate held steady at 3.1%, translating the traffic lift into 384 goal completions versus 278 last week. The contact form remains the primary conversion point (61% of completions). The new pricing page, launched mid-week, contributed 23 additional form submissions — a strong early signal.

One item to watch: mobile sessions grew 22% but mobile conversion rate is lagging at 1.8% versus 3.9% on desktop. This gap has widened slightly over the past three weeks and may warrant a mobile UX review.

Error handling

Three scenarios require special handling:

GA4 API failures: If the data pull fails, the workflow sends an internal Slack alert and skips that client’s report. The client receives a brief note that their report is delayed.

Anomalous data: If any metric is more than 3 standard deviations from the 90-day average, Claude is instructed to flag it explicitly rather than treating it as normal variation.

Missing client config: If a client’s Airtable record is missing required fields, the workflow halts and alerts the ops team.

Outcomes

  • Reporting time per week: 10+ hours → ~20 minutes (review + send approval)
  • Client satisfaction with reports: unchanged (clients do not know they are AI-generated)
  • Error rate in first 60 days: 2 delivery failures, both caught by monitoring

The 20 remaining minutes are a light review step — one person scans each report before it sends. This is a deliberate choice. The AI is excellent at narrative, but a human sanity check on the numbers before client delivery is worth the time.