Skip to content
VC
Case 6 of 33 · Marketing automation

Weekly client reports: 4-6 hours of manual assembly → 0

A performance agency with 8 clients spent a full day of manager time on weekly report assembly from FB, Yandex.Direct, Metrika and GA. An n8n workflow with AI commentary on anomalies removed that routine entirely.

Industry
Performance agency
Stack
n8n · Claude · Notion API
Timeline
~1.5 weeks
Outcome
4-6 hrs/wk → 0 hrs/wk
01 · Pain Point

Friday morning everyone assembles reports by hand

The performance agency runs eight clients at once: e-commerce, services and lead generation. Each client needs a report for the past week on Monday morning — ad spend, CPM, CPC, CTR, orders and leads, ROAS, how each creative performed, anomalies, and a manager's comment.

Each report took on average 30-45 minutes of manager time: log into Ads Manager, export the FB account, switch to Yandex.Direct, grab Metrika, supplement with GA data, glue together by hand into a Notion / Google Slides template, write commentary on spikes and dips, send.

In total, Friday-Monday took the team 4-6 hours of pure manager time every week — assuming the client asked no follow-up questions.

02 · Solution

n8n workflow with AI commentary and automatic delivery

One self-hosted n8n instance runs the whole chain of steps on a schedule, every Monday at 06:00. Three hours before the deadline, reports for all eight clients are already in Notion and have gone out by email or Telegram — the manager only reviews them and adds a paragraph by hand if needed.

01
Cron trigger

Every Monday 06:00, in sequence for all 8 clients

02
Data collection

FB Graph API + Yandex.Direct API + Metrika API + GA — in parallel

03
Normalisation

All metrics into one structure, week-over-week deltas, anomalies flagged by z-score

04
AI commentary

Claude gets context and writes 3-5 paragraphs of chart explanation

05
Delivery

Render to Notion page + PDF, send to client via their channel

Pulling from four platforms in parallel

n8n launches four HTTP nodes simultaneously: FB Graph API (account and campaign insights), Yandex.Direct API (Reports service), Yandex.Metrika API (visits, goals, sources), Google Analytics (acquisition + conversions). All responses are combined into a shared context for downstream normalization.

AI commentary that the manager writes

Claude gets the current week alongside the previous 3 weeks for comparison. The prompt is tuned for specifics with numbers: "cost per lead rose from X to Y for this reason, ROAS dipped for that one, creative #3 performs best" — no filler and no generalities.

Auto anomaly detection

Before handing data to the AI, the pipeline computes z-score on key metrics (CPM, CTR, CPL) against a 4-week rolling window. If a value falls outside ±2σ, it is called out in the report as a separate block, so the manager does not miss what has to be raised with the client.

Delivery per each client's channel

Some prefer a Notion page with embedded charts, some — PDF by email, some — a short summary in Telegram with a link to the full version. n8n renders the appropriate format and sends to the address configured in the client card.

03 · Stack

Self-hosted, no vendor lock-in

n8n (self-hosted)

Orchestration of all nodes and cron trigger on our own VPS

Facebook Graph API

Insights for FB Ads accounts and campaigns

Yandex.Direct API

Reports service for campaigns and ad groups

Yandex.Metrika API

Visits, goals, traffic sources, behavioral metrics

Google Analytics API

Acquisition reports + conversions from GA4

Claude API (Anthropic)

AI commentary on data and anomalies, 3-5 paragraphs per report

Notion API

Render the report into a page with charts and embedded content

cron / systemd timer

Schedule: Monday 06:00, then retries on failure

n8nFB Graph APIYandex.Direct APIYandex.Metrika APIGA4 APIClaude APINotion APIcron
04 · Results

What changed in numbers

Manager time
4-6 hrs 0 hrs

per week on report assembly across 8 clients

Delivery time
Mon 09:00

to all clients simultaneously, no "I'll send by lunch" slippage

Payback
~ 1 mo

at the cost of saved manager hours

The main win is freeing up Friday and Monday for client work. Managers now work on hypotheses, tests and creatives.

A side benefit we had not planned for: the AI commentary sometimes catches anomalies that a manager might miss during manual assembly while tired on Friday evening — the pipeline doesn't get tired.

05 · Where it fits

Where else the same architecture fits

Universal pattern — "collect from several sources → normalise → AI write-up → send to every channel". The same n8n scheme (swap the data-collection steps) applies to:

  • SMM agencies: organic reports — Instagram + TikTok + VK + Telegram → client
  • E-commerce sellers: a daily digest from WB + Ozon + Yandex.Market + Avito to the owner in Telegram
  • SEO agencies: rankings (Topvisor/Allpositions) + Metrika + Search Console → Notion report
  • Performance teams running ad trackers: Keitaro + Binom + Voluum → daily summary with AI commentary
  • Sales teams: amoCRM / Bitrix24 + telephony + email → weekly sales digest to director
What's reused on subsequent projects
  • Base n8n scheme with per-client config — adding a new client takes 20 minutes
  • AI commentary prompt that reports specific numbers, not "all good"
  • z-score anomaly detector — tunable to any metrics
  • Notion / PDF / Telegram renderers — each client gets their own format
Similar challenge?

If people spend hours on report assembly — it can be automated

Marketing reports, sales reports, operational digests, production monitoring — anywhere there are several data sources and a regular recipient, this scheme works. Time to production — 1-2 weeks per typical project.

Ready to start?

The 9,900 ₽ audit — with a concrete report and quote

I'll tell you what to deploy in your business first, what the payback looks like, and whether you need AI for the task at all (sometimes you don't).

Or just send your question — I reply within 2 hours