Skip to content
VC
Case Study #02 · Marketing-ops

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 pipeline with AI commentary on anomalies fully removed this routine.

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 simultaneously: e-com, services, lead-gen. Each client needs a report for the past week on Monday morning — spend, CPM, CPC, CTR, orders / leads, ROAS, creative dynamics, 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 pipeline with AI commentary and auto-delivery

One self-hosted n8n instance runs the node chain on cron every Monday at 06:00. Three hours before the deadline, reports for all eight clients are already in Notion and have flown out via email / Telegram — the manager just reviews 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
Normalization

All metrics into one dict, weekly deltas, anomalies 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 not just current-week data but also the previous 3 weeks for comparison. The prompt is tuned for specifics with numbers: "CPL rose from X to Y because of this, ROAS dipped because of that, creative #3 shows the best results" — no fluff or 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's explicitly highlighted in the report as a separate block so the manager doesn't miss what needs to be escalated.

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 isn't "saved hours", it's freeing up Friday and Monday for client work. Managers now work on hypotheses, tests, creatives — not spreadsheets.

Bonus we didn't bake into the KPI: AI commentary sometimes highlights 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 — "multi-source pull → normalization → AI narrative → multi-channel push". The same n8n scheme (just swap the pull nodes) has been applied / applies to:

  • SMM agencies: organic reports — Instagram + TikTok + VK + Telegram → client
  • E-com sellers: daily digest WB + Ozon + Yandex.Market + Avito to owner in Telegram
  • SEO agencies: rankings (Topvisor/Allpositions) + Metrika + Search Console → Notion report
  • Affiliate teams: 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 with number specifics, not "all good" fluff
  • 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.

Готовы начать?

Аудит за 5 000 ₽ — с конкретным отчётом и сметой

Расскажу что внедрить в вашем бизнесе в первую очередь, какая будет окупаемость, и нужен ли вообще AI для вашей задачи (иногда — нет).

Или просто напишите свой вопрос — отвечу в течение 2 часов