Which Marketing Channel Books Jobs? How to Tell · Willison Skip to main content
Growth and ROI · 11 min read

Which marketing channel is actually producing booked work, and how do you tell?

Seth Willison ·

You're paying for four or five things that make the phone ring. The search ads, the map listing, a mailer, maybe a social campaign somebody talked you into. Ask which one is actually carrying the business and the honest answer, at a lot of shops, is a hunch.

Here's the short version. The channel producing booked work is the one whose calls turn into sold jobs at a cost you can live with, not the one that makes the phone ring most. To tell which it is, join three records most shops keep apart: a tracked phone number on each channel, a required lead source on every job you book, and a monthly ledger per channel of spend, calls, calls answered, jobs booked and sold revenue. No industry benchmark can make that call for you, because it doesn't know your costs, your tickets, or which of your calls got picked up.

Willison sells an AI receptionist, and parts of this post argue that missed calls can skew a channel report, which is an argument for answering more of them. Read it knowing that. Willison's own monthly report doesn't tell you which channel a job came from either, and the last section says exactly what it does and doesn't carry.

Why can't the ad dashboards tell you?

Every platform you pay reports on itself. The search ads count calls from the search ads, the map listing counts calls from the map listing, and the social campaign claims whatever it can. None of them knows how the call ended unless you tell it.

So what you get is calls and clicks, and a call isn't a job. The dashboard can't see that the caller wanted work you don't do, lived two counties over, or was an existing customer ringing the number off last spring's mailer.

Add the dashboards up and they can claim more work than you did. A homeowner who saw your ad, then looked you up on the map, can show up in both reports. Only your own books know the job happened once.

Invoca's 2026 home services benchmarks report points the same way. One of its recommendations is feeding phone lead and conversion outcomes back into your ad platforms, so they work from real booked jobs instead of raw call counts.

What does the industry data say about channels?

That same Invoca report breaks calls out by marketing channel, and it's worth knowing before you read your own numbers. For each channel it gives two rates: the share of answered calls that were leads, and the share of those leads that converted on the call.

Multiply the two and you get jobs booked on the call per answered call. That's our arithmetic, not Invoca's finding, and it runs from about 14% for paid social to about 19% for paid search.

That gap is real: paid search books about a third more jobs per answered call than paid social does. It's also measured across other companies' calls, not yours. And rates alone don't settle it, because volume counts too. Invoca's own note is that paid search drives the highest volume of calls, leads and conversions of any paid channel, and channel efficiency matters, but so does scale.

What the benchmark can't carry is your side of it. What each channel costs you per call, what the jobs it books are worth, and how many of its calls you actually pick up. The report's figures are averages across Invoca's own customer base. Your channels are yours.

One row needs care. ChatGPT-referred calls have the highest lead rate of any channel and trail paid search on converting. Invoca also says the total volume of calls from AI search is still very low, with no measurable volume from AI tools other than ChatGPT, and calls it a signal worth watching rather than a place to move significant budget yet.

How do you trace a booked job back to where it started?

Four pieces. Each one covers a hole in the others.

1. A tracked number on every channel that can carry one. Each channel gets its own number that rings through to your line, so the call log says where the caller came from before anybody asks. It costs something: a monthly fee to a call-tracking provider, and a real round of setup across your ads, website, listings and booking software. It's still the only piece that doesn't rely on anyone's memory. Before a tracked number goes on a mailer or a truck, ask the provider whether you keep that number if you ever leave.

It doesn't look the same everywhere. Some ad platforms put their own forwarding number on your ads and count those calls in their own report. Google's Local Services Ads work that way, and so can call extensions on its search ads. Your website can't show one printed number to every visitor and still tell paid from organic, so tracking tools swap the number displayed based on where the visitor arrived from. On your Google Business Profile, the usual setup is the tracking number as primary with your main number kept as an additional one, so your listings stay consistent across the web.

2. A required lead source on every job. Most field-service and booking software has a source or campaign field. Make it required, with a fixed pick list, so a job can't be saved without one. A free-text box fills up with "google", "Google ad", "web" and "the internet", and none of those can be counted.

Forms, texts and online bookings go through the same field. A web form can pass along the page or ad it came from, if whoever built your site set it up to.

3. The caller's own answer, written next to the tracked source. Ask how they found you and record it as they say it. Plenty of people who say "I found you on Google" can't tell a paid ad from the map listing. On its own that answer is weak. Beside the tracked source, it catches what a number can't, like the neighbor's referral who happened to dial the number off your ad.

4. A monthly ledger, one row per channel. Spend, calls, calls answered, jobs booked, jobs sold, and the gross profit on those sold jobs. Two numbers fall out of it: what each channel costs you per booked job, which we worked through in what a good cost per booked job is, and how much gross profit it brings in for every dollar it costs. Use profit, not revenue: much of a system replacement's ticket is equipment, and revenue flatters it.

Booked is the checkpoint. Sold is the finish line. A tune-up and a full system replacement are both one booked job, and a channel that books a lot of small ones looks better than it is until the profit column goes in.

Whatever you add to cover the phone, a person, a service, or ours, goes in the ledger as a cost too. And if an ad platform accepts sold-job data back from you, send it, so it learns from jobs rather than rings.

Split new customers from existing ones before you credit anything. An existing customer calling the number on last year's sticker is repeat business, not a win for whatever printed the sticker. And if your trade swings with the weather, compare the same months a year apart. July against March mostly tells you about the weather.

Can missed calls make a channel look worse than it is?

This is where a good channel can get cut for the wrong reason. A call nobody answers books nothing. It usually gets no lead source either, because there was nobody on the line to ask.

Channels don't necessarily ring at the same hours. If one channel's calls tend to land in the evening, on a Saturday, or while you're on a roof, that channel loses booked jobs in your ledger for a reason that has nothing to do with the channel.

So before you cut one, pull its answer rate out of the tracking data. If it's well below your other channels, fix that first and judge the channel next quarter. If the answer-rate gap is too small to explain the cost gap, don't wait to judge the channel. That check costs nothing, and you can run it before buying anything from anyone.

Two cautions run the other way, and they matter as much. Missed isn't the same as lost: a call you return in ten minutes can still book, and it still gets its source if whoever calls back fills in the field. And the unanswered pile isn't all jobs. It holds misdials, hangups, junk calls and the supply house, so don't credit a channel with every call it missed as a job it would have won.

There's a step between answered and booked as well, and it's whoever takes the call. Invoca's call-handling data found that on 55% of the home services calls it scored, nobody asked the caller to buy or book. A weak close drags every row down at once, and it's easy to blame on the ads.

And sometimes the channel really is the problem. If its answer rate matches the others and it still books less per dollar, answering more won't fix it. Neither will a better receptionist, ours included.

What won't show up as a channel at all?

Referrals. Repeat customers. The wrap on the truck, the yard sign, the ball team. Much of that arrives on your main number, or on whichever tracked number the caller found after searching your name.

Give that work its own row, something like "referral and repeat", instead of forcing it into a channel. Forcing it in flatters whichever channel the caller happened to dial last. Leaving it out entirely makes your brand spending look like it produces nothing, which a call log can't prove either way.

That row is often worth watching on its own. If it's growing while your paid rows hold flat, something you did a year ago is paying off in a way no dashboard will ever claim.

What changes for an HVAC shop?

The missed-call check matters more where fewer calls reach a person. In Invoca's 2026 data, 34% of calls to HVAC companies are answered by a person, second lowest of the nine home services groups it measured. In the same Invoca benchmarks, plumbing sits at 74%.

That doesn't mean two thirds of HVAC calls are lost jobs. Automated handling, misdials and hangups are in the remainder too. It does mean the answer-rate check isn't a formality. With only about a third of calls reaching a person, the hours a channel's calls arrive in can move its row, whatever the channel itself is worth.

HVAC also runs on weather. The first heat wave and the first hard freeze pile calls into the same few days, the phone gets harder to catch, and any channel running hard that week takes the hit in your ledger. That's the case for holding this July against last July.

One more HVAC wrinkle: a maintenance-agreement customer calling in for a repair belongs in the existing-customer row, whatever number they dialed.

Where Willison fits, and what it won't tell you

If your tracking data shows one channel's calls going unanswered, there's more than one fix. Take that window yourself, move the ads' schedule to hours you can cover, put a person on the phone, or put something on the line.

Willison answers every call in seconds, 24/7, and takes many at once, so nobody gets a busy signal. That evens out the answer rate across channels. Season, ticket size and how each call is handled still sit in every row.

Its monthly report counts calls answered, after-hours calls answered, jobs booked and the booking rate, and it splits new callers from repeat ones. What it doesn't carry is the channel. It won't tell you which ad or listing a job came from. That still takes a tracked number on each channel, and that part is your setup, not ours.

And answering every call won't make a weak channel good. If a channel still costs too much per sold job with every call picked up, the ledger's right. Cut it.

Frequently asked questions

Is asking "how did you hear about us?" enough on its own?

No. A caller may name the last thing they did rather than the first, and "Google" can mean a paid ad, the map listing or a search for your name. Keep asking, since it picks up referrals no tracked number can, but pair it with a separate number on each channel so the record doesn't depend on anyone's memory.

How long before the channel numbers mean anything?

Give it at least a full season, and a year if your work swings with the weather. A single month of calls per channel is usually too few to tell a real difference from a lucky week, and in a seasonal trade the fair comparison is the same months a year apart.

Should I move ad budget toward ChatGPT or AI search?

Not on today's data. In Invoca's 2026 home services report, ChatGPT-referred calls had a 45% lead rate, the highest of any channel, but converted at 41% against 48% for paid search. Invoca adds that call volume from AI search is still very low, with none measurable beyond ChatGPT. Track it as its own row and revisit it next year.

What if a customer found me two different ways?

Pick one rule and keep it. Crediting the first contact rewards the channel that introduced you, and crediting the last rewards the one that got the call. Either is defensible. Switching between them from month to month isn't, so write the rule down where whoever enters the lead source will see it.

Want to know if Willison is the right fit for your business?

15 minutes. Tell us how your phone works today, how many calls slip past when you cannot pick up, and what a booked job is worth to you. You leave with a straight yes or no on whether Willison is the right fit, and what it would look like set up for your business.

No pitch, no follow-up unless you want one. Your plan is month-to-month by default: cancel anytime if it's not working for you, no penalty. We work with you to dial the receptionist in for your business.

Written by

Seth Willison

Founder, Willison. Willison builds AI receptionists for trades and restoration companies, so the calls that pay don't get missed.

Free 15-min call See your missed revenue
Book