Logo
Case study
Digital marketing · Monthly performance reporting

From 3.5 hours a report to 30 minutes of checking

How a digital marketing agency moved its monthly ad reports from hand-built to AI-built, with a person checking every one, in about three months.

86%less time spent on monthly reports
36 hrsback every month for client work
$31to produce one report, down from $210

01 At a glance

The short version

A digital marketing agency was spending 42 hours a month building client performance reports by hand. We set up an automated AI analyst that extracts the numbers, runs the calculations, and drafts the reports in Google Docs. A person checks each one before it goes out.

The client

A digital marketing agency

Runs Facebook ad campaigns for 12 clients and sends each one a monthly report.

The pain

42 hours of report building

Each report took about 3.5 hours by hand. 12 clients meant 42 hours lost every month.

The solution

An AI analyst on a timer

A workflow (a chain of automatic steps) pulls the ad data and the lead sheet. The analyst writes the report as a Google Doc.

The outcome

86% less time on reports

Monthly reporting time dropped from 42 to 6 hours across all 12 clients, with an account manager checking every report.

The shift

Before: 3.5 hours per report spent manually pulling ad metrics and spreadsheets. After: polished draft reports generated automatically each month, reviewed by staff in 30 minutes.

02 The pain

The data was all there.
Turning it into reports was slow.

Every client needed the same monthly answer: how did the ads perform, and what should we do next? Getting that answer used to take most of an afternoon per client.

01

The numbers live in two places

Ad results sit in Facebook Ads Manager. Budgets and lead counts sit in a separate spreadsheet. Someone has to bring them together for each client.

02

The maths is easy to get wrong

Cost per click, cost per lead, cost per purchase and click rate are all division. One slip in a formula spoils the whole report.

03

Writing it up takes the longest

Spotting what worked, what overspent and what to do next takes judgment. Putting it into plain words for the client takes more time again.

04

It repeats every month, for every client

Each new client adds another few hours to the monthly pile. More clients means more reporting hours, not more strategy.

The real cost. Spending 3.5 hours per report across 12 clients consumed 42 hours every month. At $60 an hour of staff time, that was $2,520 a month spent on manual compilation instead of campaign strategy and business growth.

03 The solution

An AI analyst
that writes the report

A workflow built in n8n (a tool that links apps together) runs once a month. It pulls the numbers, hands them to an AI analyst and saves the finished report as a Google Doc. The analyst runs on OpenAI's o3, a model that works through problems step by step, which suits number work.

Step 1 · Collect

Daily results from Facebook Ads (spend, views, clicks, leads, purchases) for every campaign, plus the lead sheet in Google Sheets (budgets and buying-journey counts).

Step 2 · Analyse

The two sets of data are joined into one bundle. The analyst is told what to work out: spend against budget, cost per click, cost per lead, cost per purchase, click rate and where people drop off.

Step 3 · Write

The analyst creates a Google Doc titled with the month. It writes the key takeaways first, then the detail, then what to do next.

Ads + lead sheetspend, clicks, leads, budgets AI analyst (o3)does the maths, writes it up Google Doc reporttakeaways + actions

Human review stayed in

The report lands in a Google Doc, not in the client's inbox. A person reads it, checks the headline numbers against Ads Manager, adds what only the account manager knows, then shares it.

04 Implementation

What we set up,
and what each part does

We connected the data first, then briefed the analyst, then checked its reports against a hand-made one before switching it on.

Part What it gave the team
Monthly timer Starts the whole run on its own each month, so nobody has to remember.
Facebook Ads link Pulls daily spend, views, clicks, leads and purchases for each campaign.
Lead sheet A Google Sheet with the budget for each campaign, the buying-journey counts and a notes column.
Merge Joins the ad data and the sheet into one bundle for the analyst.
AI analyst (o3) Does the sums and writes the report from that bundle.
Google Docs tools Let the analyst create a fresh Doc for the month and fill it in.
Analyst brief Written instructions: who the report is for, what to measure and how to lay it out.
Days 1 to 3 · Connect

Connected Facebook Ads Manager, the Google Sheets lead trackers, and Google Docs.

Days 4 to 7 · Brief

Configured the analyst's instructions for the agency's reporting standards and verified against past data.

Days 8 to 10 · Verify

Compared outputs with manual reports, refined the formatting, and activated the monthly schedule.

05 The workflow

The build, as it looks
in n8n

This is the finished workflow on the n8n canvas. The timer on the left starts two jobs at once. They meet in the middle and feed the AI analyst on the right.

ad reporting workflow · n8n
The n8n canvas: a schedule trigger feeds Facebook Graph API and Google Sheets, then Merge, Aggregate and an AI Agent with an OpenAI model and two Google Docs tools
Two jobs, one start

The monthly timer sets off both at once. One pulls the Facebook ad results. The other reads the lead sheet and packs its rows into a single list.

Merge, then hand over

The Merge step joins the two sets of data. A second Aggregate step packs it all into one bundle and passes it to the analyst.

The analyst and its tools

The AI Agent thinks with an OpenAI model. Its two Google Docs tools create the month's report and fill it in. The run ends at the Doc.

06 The report

Ten checks in every report,
takeaways first

10checks the analyst runs on every campaign, every month, in the same order.
Check How it is worked out What it tells the team
Spend vs budget Total spend vs total budget Whether the month is on track
Cost per click Spend ÷ clicks What each visit costs
Cost per lead Spend ÷ leads What each enquiry costs
Cost per purchase Spend ÷ purchases What each sale costs
Click rate Clicks ÷ views × 100 Whether the ad grabs attention
Funnel conversion Awareness to purchase Where people drop off
Best campaign Lowest cost per purchase Where the next dollar works hardest
Campaign budgets Spend vs each budget Which campaigns need a change
Odd results Sheet notes and outliers What needs a human look
Recommendations Built from the nine checks above What to boost, pause or refresh
Layout

Takeaways first

A short summary opens the report. Headings and bullet lists follow, so a busy client can stop after the first paragraph.

Brief

Built for this agency

The analyst is told who the clients are and which numbers matter, so the advice is specific.

07 The analysis

Two live campaigns,
analysed side by side

The automated workflow ran on live Facebook campaigns for an agency client. The analyst aggregated daily rows, calculated ratios, and surfaced performance gaps.

$5.58per purchase on the retargeting campaign (40.0% conversion rate) versus $9.00 on the summer promo. The analyst surfaced the performance gap immediately.
Measure Summer promo Retargeting Both together
Spend $1,980 $1,005 $2,985
Clicks 2,750 1,300 4,050
Leads 650 450 1,100
Purchases 220 180 400
Cost per click $0.72 $0.77 $0.74
Cost per lead $3.05 $2.23 $2.71
Cost per purchase $9.00 $5.58 $7.46
Click rate 5.19% 6.19% 5.47%
Leads who bought 33.8% 40.0% 36.4%
What the analyst surfaced

A clear winner

Retargeting delivered purchases at $5.58 and converted 40.0% of leads to buyers. The top-of-funnel promo cost $9.00 per purchase at 33.8% conversion.

The recommendation

Reallocate budget

Recommended increasing daily budget on the retargeting ad sets and reviewing summer promo creative. The account manager approved and actioned the change.

08 The outcome

What changed,
and what was delivered

Every operational bottleneck was eliminated, delivering verified time and cost savings from month one.

Area Before After 90 days
Time on reports 42 hours a month across 12 clients 6 hours a month (around 30 minutes of review per client)
The maths By hand, in spreadsheets Automated calculations with 100% consistency, spot-checked by staff
Writing it up Written from scratch each time AI drafts takeaways and narrative; team adds client context
Adding a client Another 3.5 hours every month Workflow cloned in minutes, adding only 30 minutes a month

How the 90 days ran

Days 1 to 30 · First four clients

Ran automated reports alongside manual reports to verify accuracy and narrative quality.

Days 31 to 60 · Eight clients

Incorporated account manager feedback, refined metrics, and added four more client accounts.

Days 61 to 90 · All twelve clients

Retired manual builds entirely. The team transitioned full-time to review and strategy.

09 The numbers

The results
at 12 clients a month

With all 12 clients live on the system, the agency gained 36 hours a month back for high-value client strategy, with a human reviewing every deliverable.

42 → 6
Hours on reports

A 30-minute check, not a 3.5-hour build.

$210 → $31
Cost of one report

Staff time plus $1 of AI use. Hosting is extra.

0 → 36
Hours back a month

Time for strategy, calls and new clients.

Month by month

Measure Before Month 1 Month 2 Month 3
Clients on the AI report 0 4 8 12
Hours on reports 42 30 18 6
Hours back for client work 0 12 24 36
Staff time freed at $60 an hour $0 $720 $1,440 $2,160
Running cost (AI and hosting) $0 $34 $38 $42
Net gain a month $0 $686 $1,402 $2,118
$2,118

a month in staff time saved, net of running costs, across all 12 clients. That delivers $25,400 a year in recovered agency capacity.