Skip to content

Client Report Writer · Marketing

Monthly client reports written for you, approved by you

Reads each client's KPI sheet, writes a clear report with wins, misses and next steps from your real numbers, and emails it once the account manager approves.

Available now $129 one-time · never renewsIncluded in Enterprise

Free account to start. Buying and running live need a paid plan.

  • Runs on a schedule
  • 2 AI steps
  • A person approves before it acts
  • About 25 min to set up

Sound familiar?

The job, before and after this agent.

What it feels like today

  • “The first week of every month disappears into writing client reports.”
  • “Every account manager formats reports differently, and some clients get far less than others.”
  • “I'm terrified of sending a client a number that doesn't match their data.”

What you get with the agent

  • Each client's KPI sheet read once a month, up to 30 clients per run.
  • A client-ready report comparing last month with the month before and the client's goals: headline, key numbers, wins, misses and next steps.
  • All drafts wait together for the account manager to edit, approve or hold.
  • A final check that every number matches before each approved report is saved in Notion and emailed, with replies to the account manager.
  • Reports with missing data are held and the account manager is told why. Nothing is estimated.

Before

Account managers spend two days copying numbers from sheets into documents, writing commentary, and chasing each other for consistency.

After

On the 3rd, every draft is waiting in Reviews. The account manager tweaks the next steps for two clients, approves the batch, and every client has their report before lunch.

How it works

The whole workflow, step by step.

Once a month the agent reads your Clients tab in Google Sheets and each client's KPI sheet (up to 30 clients). AI compares last month with the month before and the client's goals and writes a client-ready report — headline, key numbers with changes, wins, misses and next steps — using only the numbers in the sheet. All drafts wait together for the account manager to edit and approve. Each approved report gets a final check that every number matches, is saved as a page in your Notion database and emailed to the client with replies to the account manager; reports with missing data or failed checks are held and the account manager is told why. Numbers must already be in the sheets — it doesn't pull from ad platforms.

  1. TriggerMonthly, on the 3rd at 9:00
  2. App callRead your client list
  3. LogicEach client
  4. App callRead the client's KPI sheet
  5. AI stepWrite the client report
  6. LogicCheck the math
  7. Human approvalAccount manager approves the reports
    • Approved:Each approved report
  8. LogicEach approved report
  9. AI stepFinal check on the numbers and wording
  10. LogicCheck before sending
  11. LogicSend it?
    • Passes:Save the report in Notion
    • Held:Tell the account manager it was held
  12. App callSave the report in Notion
  13. OutputEmail it to the client
  14. OutputTell the account manager it was held
  15. OutputMonth's reports done

This is the workflow that opens in your workspace when you set the agent up. Every step can be edited.

  1. Step 1Monthly, on the 3rd at 9:00Runs once a month, after last month's numbers are in your KPI sheets. Set your time zone and day on the trigger.
  2. Step 2Read your client listReads your Clients tab: one row per client with Client, Contact, Email, Sheet (the KPI spreadsheet link), Tab and Goals.
  3. Step 3Each clientRepeats the next three steps for every client row (up to 30 per run).
  4. Step 4Read the client's KPI sheetReads the client's KPI tab (the Sheet and Tab from their row): one row per month or per channel, with your own column names.
  5. Step 5Write the client reportAI compares last month with the month before and the client's goals, and writes a client-ready report: headline, key numbers, wins, misses and next steps — using only the numbers in the sheet.
  6. Step 6Check the mathRecalculates each metric's % change (value vs. the month before) and each derived figure (e.g. cost per lead) in code — not by AI — writes the correct figures into the report and email, and flags anything the AI got wrong for the account manager.
  7. Step 7Account manager approves the reportsAll of this month's drafts wait in Reviews together. The account manager edits any report, sets send to false on any that shouldn't go out, and approves; nothing reaches a client before that.
  8. Step 8Each approved reportRepeats the wording check, the code checks, the Notion page and the email for every approved report.
  9. Step 9Final check on the numbers and wordingAI reads each approved email for numbers that don't match the report's key numbers (typos made while editing), invented results or causes, promised results and mentions of AI. It must quote the exact sentence it objects to. The recipient, send flags and placeholders are checked in code next.
  10. Step 10Check before sendingIn code: the data was ready, still marked to send, 1–5 valid recipients, a subject and a body with no placeholders left — plus the wording check's verdict. Anything that fails is held and the account manager is told why.
  11. Step 11Send it?Reports that pass every check are saved and emailed; the rest are held and the account manager is told why.
  12. Step 12Save the report in NotionCreates a page in your client reports database with the report's title and full text.
  13. Step 13Email it to the clientEmails the approved report to the client's contacts from your workspace's sender, with replies going to the account manager.
  14. Step 14Tell the account manager it was heldEmails the account manager which report was held and why, so they can fix it and send it by hand.
  15. Step 15Month's reports doneThe run history keeps every report and what happened to it.

Example run

What goes in, and what comes out.

Example with fictional data

Comes in

Clients tab row for Acme Dental Group; KPI sheet with August and September rows for leads, spend, calls and bookings; goal 120 leads a month.

The agent produces

Headline: leads up to 131, beating the 120 goal. Key numbers with changes from August. Win: bookings rose with the new landing page. Miss: calls slipped. Next steps: test call-tracking ad extensions. Waits for approval, then saved in Notion and emailed to the client.

What you need

Everything it takes to run it.

About 25 minutes from purchase to live. A checklist above the canvas takes you through each step.

Plan

Included in Enterprise; on other paid plans it's $129 once. Agents run live on paid plans, from Basic ($39/mo).

Your AI key

Connect any of 14 AI providers on your own key. Your provider bills usage directly, at cost; we add no markup.

Apps

Checklist

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Google Sheets and Notion, connected in Settings → Integrations.
  • A Clients tab (Client, Contact, Email, Sheet, Tab, Goals) and one KPI tab per client with a row per month, kept up to date.

Setup, about 25 minutes

  1. Connect your AI provider. The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
  2. Connect Google Sheets. Connect the Google account that can open your Clients spreadsheet and every client's KPI sheet (Settings → Integrations → Google Sheets).
  3. Connect Notion. Connect the Notion workspace with your client reports database (Settings → Integrations → Notion).
  4. Describe your agency's reports. Open “Write the client report” and replace the placeholder with your agency name, tone, KPI definitions and sign-off.
  5. Pick your client list and KPI account. Open “Read your client list” and pick the account, spreadsheet and tab (columns Client, Contact, Email, Sheet, Tab, Goals); then pick the same account in “Read the client's KPI sheet”.
  6. Pick your Notion reports database. Open “Save the report in Notion” and pick your workspace and database.
  7. Add the account manager's email. Open “Email it to the client” (Reply-to) and “Tell the account manager it was held” (To) and enter the account manager's address.
  8. Test it with Dry Run. Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
  9. Switch the trigger on. Open the trigger, set your time zone (and day, if not the 3rd) and switch the schedule on.

Is it a fit?

Who it's for, and what it won't do.

Built for

  • Marketing and SEO agencies with monthly client reporting
  • Account managers handling several retainers
  • Consultancies reporting KPIs to clients

What it doesn't do

  • It doesn't pull numbers from ad platforms, Google Analytics or call tracking — they must already be in the KPI sheets.
  • It never emails a client before the account manager approves.
  • It doesn't create charts or PDFs: the report is plain text in the email and in Notion.
  • It never invents results or explanations; when the sheet is missing data, the report is held.
  • It handles up to 30 clients per run (duplicate the agent for more).

We list the limits up front so you can decide before you buy.

Price

$129 one-time

Per workspace. It never renews.

Available now
  • Included at no extra cost on Enterprise.
  • Buying and running it live need a paid plan, from Basic ($39/mo).
  • Dry Run costs nothing: simulated AI and app calls, nothing sent.
  • AI usage is billed by your own provider, at cost. No AI credits to buy from us.

One-time agent purchases aren't covered by the 30-day money-back guarantee. Refund policy

FAQ

Questions about Client Report Writer.

What if it gets a number wrong?

It writes only from the numbers in your sheet, the account manager approves every report, and a final check confirms every number matches before sending. Missing data means the report is held, never guessed.

Does it pull from Google Ads or Analytics?

No. Numbers must already be in the KPI sheets, typed in or filled by your own exports. It doesn't create charts or PDFs; the report is plain text in email and Notion.

How long is setup?

About 25 minutes: a Clients tab with client, contact, email, sheet, tab and goals, one KPI tab per client, and Google Sheets and Notion connected.

Is it worth the price?

A one-time price that never renews, against days of report writing every month. Live runs need a paid plan and your own AI provider key; Dry Run is free.

How do I lay out the sheets?

A Clients tab with the columns Client, Contact, Email, Sheet, Tab and Goals (one row per client; Sheet is the link to that client's KPI spreadsheet, Tab the tab name). Each KPI tab has one row per month (a Month column like 2026-09) and one column per metric (Leads, Spend, Calls, Bookings…). The Google account you connect must be able to open every KPI sheet.

Does it pull numbers from Google Ads or Meta?

No. The numbers must already be in the KPI sheets (typed in, or filled by your own export or Looker Studio extract).

Can the AI get the percentages wrong?

Not in what your client sees: every month-over-month % change and derived figure (like cost per lead) is recalculated in code from the sheet's numbers and written into the report and email. If the AI's math was off, the review screen shows what was corrected.

What if a client's sheet is missing last month?

That report is marked not ready, held after approval, and the account manager gets an email saying what's missing. Nothing is estimated.

Is this a subscription?

No. Client Report Writer is a one-time purchase of $129 per workspace and never renews. The Enterprise plan includes it at no extra cost. Running it live needs a paid plan (from Basic ($39/mo)), and your AI provider bills you directly for usage.

Can I test it before it touches real data?

Yes. Once it's set up in your workspace, Dry Run plays every step on sample data with simulated AI and app calls: nothing is sent and nothing in your apps changes. Switch the trigger on only when you're happy.

Put Client Report Writer to work.

Free account, no credit card. Your Agents page opens with Client Report Writer ready to buy and set up, then Dry Run it before it goes live.