Client reporting for agencies

Your team ships in six places. Your client reads one page.

Attune connects to the tools your team already works in, reads what actually happened this week and writes the client update, with a receipt on every line.

No status meeting requiredEvery account walled off by defaultNothing sends until you allow it
Use case

The rhythm. One page every Friday and nothing in between that has not earned it. Progress sits quietly in the panel: no push, no interruption.

SourcesSynthesisThe client update
Linear
Slack
GitHub
Notion
Figma
Xero
No push · sits in the panel until Friday
AAcme Co. · Weekly updateFRI 16:00
Progress· Weekly summaryNo push
  • Checkout rebuild cleared QA and ships Thursday.LinearGitHub
  • The two blockers you raised Tuesday are closed.Slack
  • The third is waiting on your sign-off of the copy.Slack
  • New checkout screens are approved and in the build, with the brand guidelines now live in your workspace.FigmaNotion
  • 14 issues closed this sprint, 3 carried into next.Linear
  • November retainer invoiced. 62% of the hours used.Xero

Checkout is through QA and ships Thursday. The two blockers you raised on Tuesday are closed and the third needs your sign-off on the copy, which is now the only thing between us and the date. Design is approved and in the build and the updated brand guidelines are live in your workspace.

14 issues closed this sprint, 3 carried into next.November retainer invoiced, 62% of the hours used.
Synthesising41 signals · 6 sources · one draft
Drafted from 6 sources · 41 signalsApprove & send
-
Play the walkthrough, or hover a tool to see which lines came from it.
Also connects:PlaneScoroMicrosoft 365Any MCP server

The Friday problem

Nobody minds writing an update. They mind writing three weeks of one.

Every place you look costs a few minutes. None of them feels like the problem. Then the afternoon is gone. Leave it three weeks and you are not writing an update at all, you are reconstructing one from cold.

A Friday, reconstructedOne client · one update
Linear, filtered by cycle. Twice.18 min
The #acme-build channel, scrolled back to Monday24 min
GitHub, matching merges to the issues they closed16 min
Figma, checking what actually got approved9 min
Xero, because they always ask about the retainer12 min
Asking Sam what really happened on Wednesday27 min
Writing it. Then rewriting it kinder.34 min
Time it actually took2 h 20 m

Nine minutes here. Twelve there. None of them felt like the problem.

What you are scrolling back through
“are we still ok for thursday or is the copy thing going to bite us”Slack · #acme-build · Tue 16:42
ACM-214 Checkout rebuild → DoneLinear · moved by Sam · Wed 09:12
Merged: feat/checkout-v2 (34 commits)GitHub · northwind/acme-web · Wed 18:03
Checkout v2 marked ApprovedFigma · 3 frames · Thu 11:20
Brand guidelines 2.4 publishedNotion · Acme workspace · Thu 15:55
INV-2291 sent · $14,400 · retainer 62% usedXero · Fri 08:00
Why the gap costs so much

The same month, written two ways.

Monthly updates onlySeveral hours each time
Drift starts · noticed four weeks later
1 Nov30 Nov

Four weeks of scrolling back before you can write a sentence. What goes out is still the short version.

Little and oftenMinutes each
Same drift · noticed in days
30 Nov

The monthly update is assembly, not authorship. Everything in it is already written.

Momentum you can see

The client stops wondering whether anything is happening. The record answers it before they have to ask.

Drift while it is still small

A slip you catch in three days is a conversation. The same slip three weeks later is a scope problem.


Over time

A week reads like a week.

Every post above is one entry in the engagement. Together they are the record: what shipped, what broke, what you asked for and what they still owe you. Scroll it.

AAcme Co. · Checkout v2Internal notes visible
Friday 28 November
AWeekly update16:00
Progress· Weekly summaryNo push

Checkout is through QA and ships Thursday. The two blockers you raised on Tuesday are closed and the third needs your sign-off on the copy, which is now the only thing between us and the date. Design is approved and in the build and the updated brand guidelines are live in your workspace.

14 issues closed this sprint, 3 carried into next.November retainer invoiced, 62% of the hours used.
Drafted from 6 sources · 41 signalsPosted by Jo
Thursday 27 November
ACheckout v2 is live15:20
Milestone· Go-livePushed

Checkout v2 went live at 2:50pm. Your customers get new checkout screens, a shorter address step and saved cards. The copy change you signed off on Monday shipped with it. Rollout notes and the updated brand guidelines are in your workspace.

Next: payments hardening, then the December campaign build.
Drafted from 4 sources · 24 signalsPosted by Jo
ADeploys are running again09:15
Progress· UnblockedNo push

The provider outage cleared at 8:40 and the checkout deploys are running again. Thursday holds.

Drafted from 2 sources · 6 signalsPosted by Sam
Wednesday 26 November
ACheckout copy deck14:05
Deliverable· Ready for your reviewPushed
Ready for your review · stage 2 of 5

The checkout copy deck is ready for your review. Three screens changed. The two questions you left last week are answered on screen two. It is on the staging build, so you are reading it in place rather than in a PDF. Ten minutes should cover it and anything you flag we will turn around Thursday.

checkout-copy-deck · staging
Drafted from 3 sources · 9 signalsPosted by Sam
ARetainer is running ahead of plan09:30
Alert· RiskInternal onlyNo push

We are 62% through the retainer with five weeks left. Flag a scope conversation now, before it becomes an invoice conversation.

Internal noteSam · Delivery
ASupplier API approved08:12
Decision· ResolvedNo push

Priya approved the supplier API paid tier. It is in this sprint and the two issues waiting on it are moving again.

Closed automatically when the ask was answeredSystem
Tuesday 25 November
ABlocker11:24
Alert· BlockerPushed
What happenedThe payment step in the checkout deploy has failed twice this morning. The provider confirmed an outage on their side at 9:40.
ImpactTwo issues are stopped behind it. Nothing else in the sprint is affected and no data was lost.
What we’re doingA retry is running now and we have a call with the provider booked for 1pm.
What we needNothing from you yet. If it is not clear by 3pm we will come back to you about Thursday.
Drafted from 3 sources · 12 signalsPosted by Sam
ABudget approval09:40
Decision· Budget approvalPushed

The third supplier API needs a paid tier to go past 500 calls a day. It is $90 a month and it is not covered by the current retainer. Two issues are waiting on the answer and nothing else is affected.

Approve$90 a month and it ships this sprint
Declinewe proceed without it and close the two issues another way

No reply by Thursday and we proceed without it.

Resolved · Priya approved Wed 08:12 · the team was told
Drafted from 3 sources · 12 signalsPosted by Jo
Monday 24 November
AWhere the third blocker actually sits17:20
Progress· UpdateInternal onlyNo push

The third blocker is on them, not us. Do not frame it as our delay. Push for copy sign-off Monday or Thursday slips.

Internal noteJo · Account lead
ACheckout rebuild is in build09:05
Progress· StartedNo push

The checkout rebuild moved into build this morning. The first screens should be testable on Wednesday.

Drafted from 2 sources · 5 signalsPosted by Sam

What it reads

Three kinds of evidence. One story.

01 · Delivery

What actually shipped

Issues closed, PRs merged, cycles completed, designs approved. The difference between “we’re on it” and “it’s live.”

02 · Conversation

What was decided

The blocker raised in a thread on Tuesday and quietly resolved on Wednesday. The decision that never made it into a ticket.

03 · Commercial

Where the money sits

Retainer burn, hours against scope, what is invoiced. The number the client is actually going to ask about.


The boundary

Two audiences. One workspace. No accidents.

Your team talks about the client. The client reads about the work. Attune keeps those two things in the same thread without ever letting one leak into the other. Visibility is set per post. Internal notes are invisible to the client account, not merely hidden.

Internal only
Jo · Account leadThird blocker is on them, not us. Do not frame it as our delay. Push for copy sign-off Monday or Thursday slips.
Sam · DeliveryWe’re 62% through the retainer with 5 weeks left. Flag a scope conversation before it becomes an invoice conversation.
Client sees
Northwind StudioThe third blocker needs your sign-off on the checkout copy. Once that lands, Thursday’s ship date holds.
Northwind StudioYou’re 62% through the November retainer. Worth a scope check-in before December.
2 internal notes not shown

Get set up

Connected in an afternoon.

01

Connect your tools

One-click OAuth for Linear and Plane. Or point Attune at any MCP server. Credentials are held at the agency, never per-client.

02

Scope the engagement

Tell Attune which projects, repos and channels belong to which client. That scope is the wall. Nothing outside it is ever read.

03

It drafts, you edit

Attune gathers the week’s signals and writes the update, citing the source behind every claim so you can check the ones that matter.

04

You decide what sends

Nothing reaches a client until you allow it. Auto-publish is an opt-in that ships switched off, so you turn it on once the drafts have earned it. Marking a line internal-only has no such switch: it stays on your side of the wall for good.


“Once we posted little and often, the big updates wrote themselves.”

Writing updates was the job nobody wanted. The longer we left it the worse it got, because a month-end update meant reconstructing a month. Posting more often fixed two things we did not expect. The client could see momentum without having to ask for it. And by the time a major update was due, the information was already in front of us. It also meant we caught drift while it was still a conversation rather than a scope problem.

Minnio · the first agency running Attune

Every client, attuned.

Connect your stack and see what your last week actually looked like.