“We already push values back into CallTrackingMetrics.”
That works exactly as well as somebody remembers to do it, for the deals they remember. This reads the money from the system that already holds it.
For CallTrackingMetrics
CallTrackingMetrics attributes the contact. Match those contacts against your sales export and rank channels on the money rather than on the volume.
No API key Nothing to install in CallTrackingMetricsNothing to install No card requiredNo card
CloseRev reads a CallTrackingMetrics export of calls and form submissions — the caller's number or the submitted email, with the source, campaign and keyword attached — and matches those people against your closed-sales export. CallTrackingMetrics answers which campaign produced the contact; this answers which contacts produced revenue, which is the half no call platform can see. Contacts that never became revenue simply do not appear in the revenue column.
Last checked against CallTrackingMetrics's own documentation on September 24, 2026.
The gap
The dashboard says a campaign produced ninety-one conversions last month. Nobody in the building can tell you how many of them bought, or what they were worth.
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 and the form record. Calls give you a number captured by the network rather than typed by anyone, which is the cleanest join key in this whole catalogue.
The attribution fields on the contact. This is the half CallTrackingMetrics does well and the half your sales system has never heard of.
Used to order the match where somebody appears more than once, and to keep a repeat caller from crediting the wrong campaign.
Whatever you already use to mark a lead as qualified. It lets the report put your judgement of a lead beside what the lead actually paid.
Step by step
Written for somebody with CallTrackingMetrics open in the next tab. Report names vary by edition, so each step says what to look for.
Both are contacts and both belong in the lead file. Exporting only calls is the most common way to make paid search look better than paid social, because one of them converts by phone and the other by form.
Source, campaign and keyword are the point of the file. A lead export without them tells you a stranger called, which you knew.
From whatever holds the money — job management, practice management, a CRM, or the accounting system. Customer phone or email, amount, date.
The contact comes first and the money lands later, sometimes much later. A sales file starting where the call file starts will miss the revenue those calls produced.
The join runs on the phone and the email, normalised on both sides rather than compared as strings.
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 HVAC Companies page — not from a CallTrackingMetrics account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 38 | $241,400 | |
| Meta Ads | 24 | $61,600 | |
| Email marketing | 19 | $46,200 | |
| Direct / Unknown | 63 | $164,300 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
CallTrackingMetrics is unusual in tracking both halves properly. Most businesses take calls and forms, and most compare them by counting: ninety calls, forty forms, therefore the phone matters more.
Counting is the wrong comparison and everybody suspects it. A form fill from somebody researching at eleven at night and a call from somebody standing in their flooded basement are not the same event, and no volume metric will ever say so.
Ranking both on closed revenue puts them on one axis. The split that comes out is usually not the one the team expected, and it is the number that should decide where the next thousand goes.
Scoring and tagging exist because somebody has to decide which leads were any good before the money arrives. It is a reasonable thing to do and it is systematically biased in a direction nobody notices: long, engaged, articulate conversations score well whether or not they buy.
When you rank channels by qualified leads and then by revenue, the two lists differ. That difference is the useful output. It separates the channel filling the phone with conversation from the channel filling it with customers, and those are frequently not the same channel.
A call log carries existing customers chasing a job, suppliers, recruiters, wrong numbers and outright spam, and every one of them is attributed to whichever number they dialled. A heavily advertised number collects more of this than a quiet one, so the noise is not evenly spread and it flatters exactly the campaigns you are spending most on.
Matching against a sales export filters it out by construction: a call that produced no revenue has nothing to match and never reaches the revenue column. No rule has to be written and no exclusion list has to be maintained.
The opposite case is more interesting. An existing customer who calls a tracked number and buys again is real revenue, and whether the campaign should get credit for it is a judgement. Repeat customers are reported separately rather than folded in silently.
CallTrackingMetrics is often run across several offices, branches or franchise locations on one account, and the blended report is the one everybody looks at because it is the one that exists.
A blended cost per lead hides the thing worth knowing, which is that a channel works in one market and not in another. The same campaign in two cities can differ by more than two campaigns in one city.
Where the sales export carries a location, branch or business unit, the report splits on it. That usually changes at least one budget decision, because the average was never true of anywhere in particular.
Fair questions
That works exactly as well as somebody remembers to do it, for the deals they remember. This reads the money from the system that already holds it.
Nothing changes. CallTrackingMetrics stays where it is and its export becomes the lead file.
That is the normal case and the reason this exists. Two exports, one join, on the phone and the email.
No. It supplies the lead file; this adds what those leads went on to pay. They answer different halves of one question.
Calls and form submissions with the contact detail and the source, campaign and keyword attached.
Closed sales from whatever holds your money — job management, practice management, a CRM or the ledger.
On the phone number and the email address, normalised on both sides with a proper phone library rather than string comparison.
Yes, and leaving them out is the most common way to make one channel look better than another for no real reason.
Yes, and the disagreement between those two rankings is usually the most useful thing the report produces.
The link is weaker, so it is flagged for a person rather than counted automatically.
They are reported separately, so you decide whether repeat revenue should credit the campaign that first won them.
Yes, where the sales export carries one. A blended figure across branches is usually true of none of them.
Further than the call file, because the revenue lands after the contact — often months after.
Yes. Any provider exporting a contact detail with a source works identically.
The contact detail, the source fields and a date. No recordings, no transcripts, no voicemail — none of it is part of the match. Uploads are encrypted in transit and at rest, isolated to your workspace, and deleted with the import.
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.
CallTrackingMetrics 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 CallTrackingMetrics, no API key, and no need to have been tracking anything until now. Last year works as well as this month.