“Invoca already attributes calls to sources.”
It does, well. What it cannot see is the invoice, so it cannot say which of those sources produced revenue.
For Invoca
Export your call records, match them against closed sales, and find out which sources produced calls that became invoices.
No API key Nothing to install in InvocaNothing to install No card requiredNo card
Invoca sits on the lead side in CloseRev: export its call records — the caller's number, the source that produced the call and the date — and match them against closed sales from whichever system holds them. Invoca's own strength is classifying what happened during a call; what it cannot see is whether the business was ever invoiced, which is the question a marketing budget turns on. Revenue with no traceable lead is reported as Direct / Unknown.
Last checked against Invoca's own documentation on September 24, 2026.
The gap
You have excellent classification of what happened on the phone, and no idea which of those calls the company was eventually paid for.
What was sold, to whom, and for how much.
The click, the keyword, the call, and what each one cost.
The file
Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.
On the call record. This is the strongest lead key in the whole catalogue, because it is the number the person actually used.
Whatever the record carries about what produced the call. This is the channel label the revenue will be grouped by.
When the call happened, which anchors the window.
Qualified, booked, not a fit. Keeping it lets the report compare the classification against what the ledger later said.
Step by step
Written for somebody with Invoca open in the next tab. Report names vary by edition, so each step says what to look for.
One row per call with the caller's number, the source and the date.
It is the thing worth testing. Comparing it with closed revenue tells you how well the model predicts money, which nobody can know from inside it.
A contact detail, the amount and the date. Collected revenue rather than booked, where the two differ.
Some of them closed. A file containing only the qualified ones cannot discover that, and that discovery is usually worth the exercise on its own.
The join runs on the phone number, normalised, with unmatched calls and unmatched revenue both kept visible.
What comes back
Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the Hospital Networks page — not from a Invoca account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 214 | $1,015,000 | |
| Meta Ads | 118 | $420,000 | |
| Email marketing | 79 | $280,000 | |
| Direct / Unknown | 402 | $1,785,000 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
Scoring a call as qualified is a judgement made from the conversation, and it is usually a good one. It is still a judgement made before anybody paid anything.
Comparing classifications with closed revenue turns that judgement into something testable: what share of qualified calls produced an invoice, and what share of unqualified ones did too.
Both halves are informative. A high rate in the first is confirmation; anything meaningful in the second is a rule quietly discarding business.
This is not an argument against classification. It is the check that tells you whether it is calibrated for your business, which cannot be established from inside the tool that produces it.
Most lead files hold a number somebody typed into a form, which can be mistyped, deliberately wrong, or a work number for a personal purchase.
A call record holds the number the person actually called from, verified by the act of calling. It matches against a customer record more reliably than anything else available.
That makes this one of the highest-yield sides of a match, and it is worth exporting even when another system is your primary lead source.
The usual failure is on the other side: the revenue system holds an old landline or a relative's number. Normalisation runs on both, and what does not join is reported rather than dropped.
Call records of this kind routinely carry the campaign and often the search term that produced the call, which is a level of detail most lead files never reach.
Grouping closed revenue at that level shows which terms produce calls that become invoices rather than calls that merely happen, and the two lists are rarely the same.
It is also the level at which a large account can act without restructuring anything: pause terms, shift budget, change the offer behind the ones that work.
Where the volume at term level is too thin to be stable, the report rolls up rather than printing a ratio built on four calls.
Every call file contains rings that went nowhere — after hours, queued too long, abandoned — and they are usually excluded from marketing reports as noise.
They are the clearest cost in the file. A source producing excellent calls at a time nobody is on the phone is being judged for an operational failure.
Keeping them in and reporting them separately puts a revenue number on the problem, which is the form in which it tends to get fixed.
It also protects a channel from being cut for the wrong reason, which is the most expensive mistake available in this whole exercise.
Fair questions
It does, well. What it cannot see is the invoice, so it cannot say which of those sources produced revenue.
Probably. This is how you demonstrate it rather than assert it, and how you find the cases it is quietly missing.
Then export the others anyway once. Whatever share of them closed is business a rule is currently discarding.
No. It works from an exported call file, so no recordings, transcripts or live call data are reachable from here.
Call records with the caller's number, the source and the date; closed sales with a contact detail, an amount and a date.
No, and they should not be exported. The number, the source and the date are the whole requirement.
Yes, at least once. Some of them closed, and finding that out is often the most valuable result.
Yes — that is the point of keeping the outcome column. It compares a prediction against what was invoiced.
As fine as the record carries, often to the search term. The report rolls up where the volume is too thin to be stable.
Reported separately, with the revenue that never followed them, because that is usually an operations problem rather than a channel one.
The phone number, normalised — country code, punctuation, extensions — because it is the most reliable key available.
Both sides are normalised and the email is used as a second key where present. Anything that does not join is reported.
No. It adds the half that happens after the call ends.
A phone number, a source and a date on one side; a contact detail, an amount and a date on the other. No recordings, no transcripts, no conversation data. Encrypted in transit and at rest and deleted with the import.
Closed revenue by source, campaign and term where available, classification tested against outcome, missed calls reported apart, and everything unmatched kept visible.
By trade
What the report looks like once the export is in, written for each one.
Other systems
Running more than one system, or comparing? The method is the same and the columns are not.
Invoca and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.
Start today
Nothing to install in Invoca, no API key, and no need to have been tracking anything until now. Last year works as well as this month.