A workspace per client
One login, a separate isolated workspace for each client. Switch, report, repeat.
Marketing attribution for Marketing Agencies
Match your clients' closed-sales exports to their ad and call data, and hand them a per-channel revenue report at renewal time.
$326,200 77% of $423,600 paid
The blind spot
Your dashboards prove clicks and calls, but the client's boss asks about dollars. The revenue lives in their CRM, the source lives in your ad platforms, and nobody joins them — so every renewal becomes an argument about whether leads were any good.
What you get
One login, a separate isolated workspace for each client. Switch, report, repeat.
Export a read-only report with your mark on it and ours removed, and forward it to their CFO.
No tracking numbers to provision, no scripts on their site. Two CSVs and you have the answer.
A worked example
Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Google Ads | 61 | $186,400 | 44% | |
| Meta Ads | 48 | $93,200 | 22% | |
| Email marketing | 19 | $46,600 | 11% | |
| Direct / Unknown | 44 | $97,400 | 23% |
Agencies do not usually lose accounts because the campaigns were bad. They lose them because at renewal the client asks what the spend produced, and the honest answer available is a number of leads — while the client is looking at a bank balance.
The gap is structural rather than anyone's fault. Your ad platforms know which click produced a call. The client's CRM knows which of those calls became a paying customer six weeks later. Nothing joins the two, so the most important number in the relationship is the one nobody can produce.
CloseRev closes that gap with the two exports both sides already have. You are not asking the client to install anything, change their CRM, or trust a new script on their website — which matters, because the client who is questioning your value is exactly the client who will not approve a new integration.
Running several clients through one account with a client field is fine until the first time a report shows the wrong logo, or a junior exports a CSV containing two clients' customer lists. Both are recoverable mistakes with unrecoverable consequences.
Each client gets a separate workspace with its own data and its own retention window, drawing on the one monthly record allowance the account shares. Someone with access to one has no path to another. That is also what makes the data-processing conversation short when a client's counsel asks how their customers' phone numbers are kept apart from someone else's.
A report with another vendor's name on it invites the question of who actually did the work. On the Agency plan the CloseRev mark comes off entirely and yours goes on, so what lands in the client's inbox is your analysis.
It also travels. A read-only link or a PDF gets forwarded to a finance director who was never in your kick-off call and does not know what a UTM is. The report is written to survive that forwarding — closed revenue by channel, with the unattributed portion shown rather than hidden.
The most valuable report an agency ever runs on a client is the one before the work starts. A reconciliation of the previous twelve months of their closed sales against whatever source data exists gives you the channel mix you inherited, the share of revenue nothing can explain, and the average value of a closed deal by source. None of it requires the client to change anything, because the period is already finished. It takes one afternoon and two exports they already have, and what it buys is a starting line nobody can move later.
Without a baseline, every subsequent conversation is an argument about counterfactuals. Revenue rose and the client's sales director believes it was the new product; it fell and the finance director believes it was the media. A baseline does not settle causation, and no honest tool claims to, but it does establish what the mix looked like before and what it looks like now, measured the same way both times. That comparison is considerably harder to dismiss than a platform dashboard nobody outside your agency has audited, and it protects you against a client who has forgotten where they started.
There is a commercial argument for doing this during the pitch rather than after the win. An agency arriving at a first meeting will not have the data, but an agency offering the exercise as its first deliverable is offering something specific and unusual. Most prospects have never been shown their own closed revenue by channel and most cannot produce it internally at all. Offering to build it, with nothing installed on their site and nothing connected to their CRM, is a smaller ask than the discovery projects agencies normally open with.
The hardest thing to produce in an agency pitch is evidence. Case studies are written by the agency, testimonials are solicited, and every deck in the category claims a percentage improvement in something. A prospect discounts all of it automatically and correctly, because none of it can be checked and they have seen forty versions of the same slide this year. What survives that discount is a number that came from a client's own accounting rather than from a platform the agency controls, and it reads differently in a room.
Running this across a portfolio makes those claims available at portfolio scale. Each client sits in an isolated workspace with its own retention window, so nothing crosses between them. There is no combined view across workspaces: each client has its own report, and any comparison across the portfolio is one you assemble yourself, without exposing one client's book to another. What you may say publicly stays constrained by what each client agrees to, as it always has been. What you can say in a pitch about the results the agency produces on closed revenue rather than on clicks is considerably stronger than before.
There is a retention effect worth naming as well. An agency reporting on closed revenue has changed what a client would have to replace on leaving — not a dashboard, which any competitor will match, but a reconciled view of their own business they may not be able to produce internally. That is not lock-in in any objectionable sense, because the client keeps their own data and can export everything at any time. It is a higher standard of evidence, and standards are hard to walk back from once a finance director has seen one.
Why it matters
"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.
Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.
Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.
Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.
Honest answers
That is the normal case, and it is why there is no template to fill in. Any column layout works — you confirm what maps to what before anything runs, and extra columns are ignored rather than rejected. The one thing that genuinely matters is a phone number or an email address on each row.
Some of it will be, and showing that honestly is the point. A tool that reports 100% attributed is redistributing the unmatched portion across your channels — which flatters whichever channel it guessed and eventually gets caught. A defensible 74% beats an indefensible 100%.
Keep it. CloseRev sits on top of what it produces rather than replacing it — a call tracker tells you a call came from Google Ads, and CloseRev tells you that call became $4,200. If you export from CallRail, Invoca or WhatConverts, that export is one of the two files.
Pricing
The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Agency usually fits agencies running Google & Meta for multiple clients — ten isolated client workspaces sharing one record allowance, plus white-label reports.
Reporting on many clients at once
$799/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
No. CloseRev reconciles data you already have — CRM exports and ad or call-tracking exports — so there is nothing to instrument, nothing to keep working after a site redesign, and nothing to ask their developer for.
The Agency plan includes ten client workspaces, each isolated, and ten seats across the account. All ten workspaces share one monthly allowance of 25,000 sales records. More client workspaces or extra records can be added from your billing page when the roster or a busy month needs it.
Yes — invite them to their workspace as a viewer, which lets them read the report and export it but not run imports or change settings. Or send a read-only share link, which needs no account at all.
On the Agency plan, entirely. Your logo appears on PDF and shared reports from Growth upward; removing our mark is what Agency adds.
Minutes. There is nothing to provision — you upload their two exports, confirm the column mapping once, and the mapping is the same next month.
It still matches. Matching is on the person — a normalized phone number or a canonicalized email — not on a session or a cookie, so a ninety-day sales cycle is not a problem. Cookie-based attribution has usually lost that link long before.
No. There are no phone numbers, no minutes, no per-form fees and no overage bills. One flat price per plan, which is also why the number on the pricing page is the number on the invoice.
Nothing in the license prevents it, either as a line item or folded into the retainer. Operating client workspaces on the Agency plan is exactly what the plan is for, and the white-label report is what the client sees.
Export everything, then delete the workspace. Deletion removes the records and the original CSVs. You can also set a retention window so imports purge automatically.
A baseline across their last twelve months, before you change anything. The period is finished, the exports already exist, and it gives you a starting line that nobody can move later in the relationship.
Offer the baseline as a first deliverable rather than promising results. A prospect that has never seen its own closed revenue by channel usually cannot produce it internally either, and nothing has to be installed for you to build it.
Then you have found it before the client's next finance director does. Bringing an uncomfortable number to a client along with a plan is a considerably stronger position than having it discovered without you.
Not in one combined view. Each client is isolated in its own workspace with its own report, and there is no roll-up across workspaces, so a portfolio comparison is one you put together from the individual reports. What you may say publicly about any one client stays governed by that client's agreement, as it always has.
Map the new export once, the same way you mapped the old one. The revenue rows are still rows with a contact detail, an amount and a date, so periods before and after remain comparable.
It is yours, so export what you need and delete it, or hand the client their own report first. Deletion removes the records and the original files rather than flagging them as removed.
Nearby
Match your practice-management export to your call and ad data, and see which channels produced treatment that was actually paid for.
See how it worksMatch your invoiced jobs to the calls and ads that produced them, and find out which channel is actually paying for the trucks.
See how it worksMatch signed, fee-earning matters to the calls and ads that produced them — including the ones that settled a year later.
See how it worksWhere your sales already are
Export closed-won deals and reconcile them against your ad and call exports, including the offline sources HubSpot never receives.
What to exportExport won deals and match them to the ads, calls and referrals behind them — including the sources Pipedrive only records as a text field.
What to exportExport sales invoices, upload your lead and call records beside them, and rank channels on the revenue you actually billed.
What to exportExport paid invoices and contacts, upload your ad and call sources beside them, and rank marketing on revenue rather than on opens.
What to exportExport your Calendly invitees, upload your closed sales beside them, and find out which bookings turned into money.
What to exportExport the leads your campaigns produced, match them against closed sales, and find out which campaigns produced revenue rather than form fills.
What to exportExport won deals and leads from Zoho CRM, join them on the contact detail, and see what the source field has actually been recording.
What to exportExport deals and leads from your boards, reconcile them once in the file, and get a single revenue-by-source answer.
What to exportExport won opportunities and leads from Copper, join them on the contact detail, and recover how the relationship actually started.
What to exportExport your submissions, match them against closed sales, and find out which forms and which sources produced revenue.
What to exportExport contacts with their original source and deals with their value, and rank on what each channel actually produced.
What to exportExport your WhatConverts leads, match them against your invoices, and see where the recorded values and the real ones part company.
What to exportExport leads from the client's sub-account, get the client's invoices, and report revenue by source that the client can check against their own books.
What to exportFrom the blog
Every agency eventually meets the client whose sales director says the leads are rubbish. More dashboards will not fix it. What fixes it is measuring on the client's own revenue data — which is the one thing most agencies are structurally reluctant to ask for.
Read the articleAdd up what your agencies and platforms claim and you have sold the same thing several times over. Nobody is lying. Here is why double counting is structural, how to run the reconciliation meeting, and what to change in the contracts so it stops recurring.
Read the articleBoards do not distrust marketing numbers because they are bad at maths. They distrust them because the numbers keep changing, do not tie to the accounts, and arrive with no statement of what was not measured. All three are fixable in one page.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.