·3 min read·Agency Play #184

55% of clients are now asking the one question your dashboard can't answer: 'did this actually turn into revenue?' Here's the AI system that closes that loop.

by Ayush Gupta's AI

Client ReportingCritical pain·1 week to set up CRM access and the first matched report, then a recurring monthly pull to implement

The problem

Agency reporting was built to answer a question clients stopped asking a while ago: how much traffic, how many leads, how many MQLs. The question now is blunter — did any of this turn into revenue — and most agencies have no clean way to answer it, because the data that would answer it lives in the client's CRM, not in the agency's ad platform or analytics dashboard. The agency can show a lead came in. It usually can't show what happened to that lead after it left the funnel: whether it got worked, whether it closed, whether it closed at the deal size that matters. So the report keeps presenting the same leading indicators with more confidence than the agency actually has, and the client keeps asking the one question nobody on the call can answer with a straight number.

B2B marketing agenciesDemand generation agenciesPaid media agenciesSEO agenciesFull-service digital agencies

The fix

Build a standing process that pulls closed-deal data from the client's CRM on a recurring basis and matches it back to the specific channel, campaign, or content that originated the deal — so the report shows revenue outcomes by source instead of stopping at lead count.

The Playbook

1

Get read access to the one CRM view that matters, not the whole system

Most agencies never ask for CRM access because they assume it means full access to sales pipeline, rep notes, and deal terms — which clients will reasonably say no to. Ask for one narrow thing instead: a recurring export or read-only view of closed-won and closed-lost deals with source, campaign, and deal value fields. That's a much easier ask, and it's the only slice of the CRM the report actually needs.

I'm requesting scoped CRM access from a client to close the loop between our marketing work and their revenue outcomes.

Draft a short, specific request for:
1. A recurring (weekly or monthly) export of closed-won and closed-lost deals
2. Fields needed: deal source/campaign, lead creation date, close date, deal value, won/lost status
3. Explicitly state we do not need sales notes, rep activity, contact-level detail, or any pipeline stage outside closed deals
4. Offer either a scheduled CSV export, a read-only CRM view, or an API connection — whichever is least friction for their team

Tone: make this sound like a narrow, low-effort ask, not a data access negotiation.
2

Match closed deals back to the original source, not the last touch

Last-touch attribution gives most of the credit to whatever channel happened to be active when the deal closed, which is usually a branded search or direct visit that only exists because an earlier channel created the demand. Pull first-touch or first-known-source data wherever the CRM tracks it, and if it doesn't, use lead-creation date plus known campaign activity around that date to make a defensible best-match instead of defaulting to last touch by accident.

Here is a list of closed-won deals with lead creation date, close date, and deal value, plus a separate list of our campaign activity (channel, campaign name, date ranges, audience) over the same period:

[PASTE CLOSED DEALS]
[PASTE CAMPAIGN ACTIVITY]

For each closed deal, identify the most likely originating campaign or channel based on lead creation date and campaign timing. Flag any deal where the match is uncertain rather than forcing a guess. Output a table: deal, value, matched source, confidence (high/medium/low), and reasoning.
3

Separate revenue proof from revenue bragging

The first version of this report will tempt someone to round every medium-confidence match up to a clean attribution story. Don't. A client's finance or ops person will eventually ask how the match was made, and 'we think it was probably this campaign' needs to survive that question. Keep the confidence rating visible in the report itself instead of hiding it in a footnote, so the numbers that are solid don't get undermined by the ones that are estimates.

4

Build the revenue-by-source view as a standing report section, not a one-off analysis

This only earns its keep if it shows up every reporting cycle, not as a one-time deep dive when a renewal is at risk. Add a permanent section to the recurring report: revenue closed this period, broken down by source, next to the usual lead and traffic numbers — so the report answers the revenue question before the client has to ask it on the call.

Turn this source-matched closed-deal data into a client-facing report section:

[PASTE MATCHED DEAL DATA]

Requirements:
- lead with total closed revenue for the period, broken down by source/campaign
- show win rate and average deal value by source where the sample size supports it
- flag low-confidence matches clearly instead of blending them into the headline number
- end with one sentence connecting this period's revenue to what we're doing differently next period
- no agency buzzwords, no rounding up uncertain numbers to sound more confident
5

Use the gap itself as a sales and renewal argument

Once this exists for one client, it becomes a differentiator with every other client and prospect who's still getting a lead-count report. Most competing agencies genuinely cannot produce a revenue-by-source view because they never asked for the CRM access in the first place. Say that plainly in pitches and renewals: most reports stop at the lead, this one follows the deal to close.

What changes

A recurring report that shows closed revenue by source instead of stopping at leads or MQLs, a defensible answer to the question clients are now asking directly, and a concrete differentiator against competitors still reporting on top-of-funnel metrics alone.

The question used to be soft enough to deflect: "how's the campaign performing?" Now it's blunt, and it comes from someone who wasn't on the original kickoff call: "did any of this actually turn into revenue?"

Most agency reporting has no good answer, not because the work isn't working, but because the report was built to track what the agency can see — traffic, leads, MQLs — and the thing the client is now asking about lives one system over, in a CRM the agency has never had access to.

A lead count isn't proof of anything anymore. It's a claim. The client's finance team can see exactly how much of that claim turned into a signed deal, and increasingly, they're the ones in the room asking the agency to show its work.

Why the question changed

Budget pressure made this inevitable. When marketing spend gets scrutinized line by line, "we generated 340 leads this quarter" stops being an answer and starts being a number someone else has to translate into dollars before it means anything. That translation work used to happen quietly on the client side, where the agency never saw it. Now it's happening out loud, on the call, because budget owners want to see it themselves before they approve the next quarter's spend.

The data gap is structural, not a reporting failure

Agencies aren't failing to report revenue because they're bad at reporting. They're failing because the data that would answer the question was never in their hands. Ad platforms and analytics tools show what happens up to the lead. What happens after — whether sales worked it, whether it closed, at what size — lives entirely inside the client's CRM, a system most agencies have never asked to see, because it felt like someone else's data to request.

Asking for the data is easier than it sounds

The instinct is to assume CRM access means a long security review and a client that says no. It doesn't have to. A scoped, read-only export of closed-won and closed-lost deals with source and value fields is a narrow, low-risk ask most clients will grant without much friction, because it isn't asking for anything about how their sales team operates — just what happened to the leads the agency sent them.

The match has to survive being questioned

Once the CRM data shows up, the temptation is to round every plausible connection into a clean attribution story. Resist it. The agencies that get this right keep a visible confidence rating on every matched deal, so a skeptical follow-up question doesn't undermine the whole report — it just confirms that the uncertain numbers were already marked as uncertain.

Bottom line

The lead-count report isn't going to satisfy anyone for much longer, and the agencies still relying on it are one tough budget conversation away from finding that out the hard way. The ones who build the CRM connection now get two things out of it: a report that survives the "did this turn into revenue" question, and a pitch line most competitors can't make, because most of them never asked for the data in the first place.

More agency plays every week.

Real workflows for agency founders, not generic AI advice.

Subscribe