Use case · Client reporting

Per-client reporting, compiled from the sources — not from screenshots.

GA4, Search Console and the store's own orders, read per client on a schedule, reconciled, and written to that client's ledger next to every action taken on their behalf. The monthly report builds itself from the ledger. Revenue drops are a policy: checked every morning, notified only when something moved.

Already have an account? Set this up on a client store →

Shopify WooCommerce Shopware
Northwind · ran on autopilot
Revenue-drop alert: −31% vs. trailing 7-day −€4,120
Reporting via Shopify · 1m ago
Context

Yesterday's revenue €9,180 vs. 7-day average €13,300. Sessions flat (GA4); conversion rate 1.4% vs. 2.1%. Drop concentrated in the Bestsellers collection — 2 of 5 top SKUs show 0 stock.

Executed actionshopify
notify
channel#ops-northwind
severityhigh
metricrevenue_1d vs revenue_7d
delta-31%
Done · in the ledger, approved by policy
The problem, times every client

Ten clients, three dashboards each, one report a month that takes days.

GA4 was built for analysts. Search Console has its own view. Every store admin has another. The numbers rarely agree, so month-end is someone pulling screenshots into a deck — and nobody looks at any of it between month-ends, which is when revenue actually drops.

01

Report day eats the week

Six clicks for weekly traffic in GA4, per property, per client. Multiply by ten and the monthly report is a two-day job done under deadline.

02

Sources disagree

Engaged sessions vs. sessions vs. active users; GA4 revenue vs. the store's. Without a fixed definition per client, every report argues with the last one.

03

Drops surface late

A checkout bug or a stock-out on a top SKU shows up in the monthly report, three weeks after it cost the client money. Nobody was watching on a Tuesday.

The policy · when · where · then

A reporting policy per client. Alerts are a notify step, not a chat.

Schedules are triggers. A daily policy compares yesterday to the trailing week for each client and notifies the right channel only when a threshold is crossed. A monthly policy compiles the report from the ledger. Both are deterministic; the agent only adds the why.

  • Scoped to one client — its GA4 property, its Search Console, its store. Definitions are fixed per client so the numbers stop arguing.
  • Thresholds are field expressions you set; a quiet day fires nothing.
  • The agent step runs on autopilot because it only reads: it pulls the breakdown and writes the explanation into the alert.
  • The notify step is direct — Slack channel, email, or both. Slack is a delivery target here, not a place to chat with data.
Daily revenue check — Northwind
Northwind · Shopify · fired 7 times
Agent
When Weekdays at 09:00andWhererevenue_1d < revenue_7d_avg * 0.75andWheresessions_1d >= sessions_7d_avg * 0.9ThenReporting explains the drop from GA4, GSC & ordersautopilotThenNotify #ops-northwind and email the client's owner
How it runs

Schedule → policy → agent → ledger.

Schedule

Every morning, every client

The policy reads GA4 sessions and conversion, Search Console clicks and impressions, and the store's orders and revenue for the previous day. No one opens a dashboard.

Policy

Compare, threshold, route

Yesterday against the trailing average, per metric, per client. Below threshold, the policy continues; otherwise it records the numbers and stops.

Agent

The why, in plain sentences

Where a drop crossed the line, the Reporting agent breaks it down — channel, landing page, collection, SKU — and writes the explanation: “conversion fell, sessions didn't; two bestsellers are out of stock.” Charts only where they help.

Ledger

The month writes itself

Daily numbers, alerts, and every action taken on the client's store — refunds, fixes, published posts, who approved — sit on one ledger. The monthly report exports from it per client, as a PDF or a shareable page.

Typed store actions

Typed reporting actions — reads compiled, alerts delivered.

Reporting is read-only on the sources, so it runs without sign-off. The writes are deliveries: a Slack message, an email, a published report. Each one is on the ledger with its recipients.

  • toolRead GA4 traffic, conversion and revenue per property
  • toolRead Search Console clicks, impressions and positions
  • toolRead store orders, revenue and top products
  • toolDaily threshold checks with a notify step
  • toolCompile the monthly client report from the ledger
  • toolExport as PDF or publish a shareable report page

Put every client's reporting on a schedule.

Connect GA4, Search Console and the first store, attach the daily revenue check and the monthly report policy. Free for one store; agency plans from the second.

Free for one store · 14-day trial on paid plans · no card · bring your own AI key