The festival that “did nothing”
A plumbing and HVAC company is hiring someone to track which local campaigns work. Here is how that tally goes wrong, what went wrong for others who automated it, and a build that holds up.
How to use this page
Read the story, then the map. If no one in your business holds the middle square, start there, not with the build. If someone does, read what went wrong for others, then copy the build kit into your AI agent.
On 29 September a locally owned plumbing and HVAC company, growing into towns where people don't know it yet, posted a part-time job: half at community events, half at a desk. Two lines in the posting carry the whole job: “Keep one place where we can see what each campaign cost and what it produced” and “A lead nobody calls is not a lead.”
Here is how it goes today. On Saturday the coordinator works a booth at a fall festival in a new town. Forty-one people leave a name and number on a clipboard. One of them says her furnace keeps shutting off.
On Tuesday her furnace quits, and she books the first company that answers her search. On Thursday, the first desk shift of the week, the coordinator types the 41 names into the system. Nobody calls them.
At month end the numbers show the festival with no booked jobs. Two neighbors who did ring the main number were logged with no source. The owners are told the festival did nothing.
Nobody here is careless. The source of each lead is decided by whoever answers the phone, days after the event, and the follow-up waits for the next desk shift. Automate the tally without changing that and you get the same wrong answer, faster.
The festival, the 41 names and the furnace are an example built from the posting, which gives no counts. A furnace repair runs about $1,200 on one software maker's 2025 numbers.
The map: the same job as a system
The judgment it all runs on sits in the middle square, held by a person. Around it, the work in the order it moves, each square run by the machine or by a person. Along the bottom, what it runs on.
The middle is which campaigns to run again: where the next marketing dollar goes, and what to stop. The owners hold it.
The same job as a system. The middle is which campaigns to run again, held by the owners. Names and calls come in on the left; across the top the machine tags each one to its campaign, texts the new names and counts each campaign's cost and results; on the right the coordinator calls everyone who asked about a job and fills in any source that is missing. Along the bottom is what it runs on: the switch and the alert, the counts, and the campaign list, codes and text it works from.
- Runs on its own
- A person does it
- The judgment it all depends on
- What it runs on
Who holds the middle square
The owner who signs off the marketing budget. Which campaigns are worth another dollar, judged on booked jobs and their value, not on sign-ups.
Before you build, these must already be true in your business:
- Every campaign has a name and a known cost before it runs.
- Everyone agrees what counts as a result: a booked job, with its value.
- Someone on the team calls the people who ask about a job.
Still deciding whether to do this, or no one holds this judgment yet? See the verdict: what it costs today, what to hand over, the bill and the owner
What went wrong for others, and the rules it gives the build
Five things that went wrong for people who did this job, or that tripped them up, and the rule each one gives the build.
Office staff pick the wrong campaign, or skip the question, 30 to 50% of the time.
A company that sells attribution software, from its own audits. Read it
The rule: Set the source from the tracking number, booth code or page the lead came through. A person asks only when none matches, and every unmatched lead is listed, never hidden.
An HVAC company switched its attribution off entirely: its software re-credited manually booked jobs to a campaign inside a 7-day window that could not be edited.
The company, on its software's community forum, February 2025. Read it
The rule: Never change a source a person set.
Returning customers were booked under whatever campaign ran last, and “the owner ends up trusting nobody's numbers.”
A firm that sells marketing audits. Read it
The rule: A returning customer keeps their first source unless a person changes it.
Leads that “went cold” were usually never followed up on at all.
An HVAC marketing agency, August 2026. Read it
The rule: Everyone who asked about a job is on the next morning's call list, and an alert fires if a name waits two business days.
A different number on the business listing makes a company “less likely to appear in searches”, and Google requires the listing's number to be “under the direct control of the business”.
A call tracking company's help pages, and Google's own guidelines. Read it
The rule: Tracking numbers go on mail, ads and event cards only. The main number stays on the listing.
What it costs to run
About 63 cents ($125 a month over about 200 leads). Built: about 30 cents ($60 over 200), then the build and the upkeep.
Estimate. The cost per lead assumes about 200 leads a month and 5 campaign numbers. The baseline month replaces both.
The build kit
One prompt to paste into Claude, ChatGPT or any AI agent that can build. It checks the middle square before anything else, builds the map square by square, carries the 5 rules above, and has the whole build: what starts it, every step, the data, the review, the alerts, what to do when it breaks, and what to count before you switch it on.
Before you build
- It may never, on its own: change a source a person set; credit a returning customer's job to a new campaign; text anyone who did not agree; change the phone number on our business listing; or drop, pause or start a campaign.
- Keep with a person: which campaigns to run again and which to drop; the call to anyone who asked about a job; the source of any lead the machine could not match, asked on the call; the booth, the crowd and the offer.
- Not yet: moving a job someone already credited to a different campaign; crediting a returning customer's new job to the latest campaign; calling a campaign dead on one month, when events cluster in the warm months and mail in the quiet ones; texting anyone who did not agree to it at the booth; changing the number on the company's own business listing.
Help me build this in my business: Keeping one place that shows what each local marketing campaign cost and what it produced: calls, leads, booked jobs and reviews, for direct mail into new towns, local ads, and community events such as festivals, markets and parades. And getting the names collected at those events into the company's system, so somebody reaches out. Before you build anything: this runs on one person's judgment, "Which campaigns to run again", held by the owner who signs off the marketing budget. Ask me whether each of these is true in my business, one at a time: 1. Every campaign has a name and a known cost before it runs. 2. Everyone agrees what counts as a result: a booked job, with its value. 3. Someone on the team calls the people who ask about a job. If any is not true, stop and tell me which, and what I need in place first. Do not build around it. Rules from others who built this and got it wrong. Keep every one: - Set the source from the tracking number, booth code or page the lead came through. A person asks only when none matches, and every unmatched lead is listed, never hidden. - Never change a source a person set. - A returning customer keeps their first source unless a person changes it. - Everyone who asked about a job is on the next morning's call list, and an alert fires if a name waits two business days. - Tracking numbers go on mail, ads and event cards only. The main number stays on the listing. The map of this system, a 3x3: - The middle square, the judgment it all runs on: Which campaigns to run again (Held by the owners). It stays with a person. - The work, in the order it moves: 1. Log every name and call (runs on its own: Event sign-ups, calls and forms); 2. Tag each lead to its campaign (runs on its own: By number, code or page); 3. Text the new names (runs on its own: The same evening, and a call list); 4. Count cost and results (runs on its own: One table a month); 5. Call everyone who asked (a person does it: The coordinator, who also asks any missing source). - Along the bottom, what it runs on: Automation (The workflow switch and the call-list alert); Measure (Leads with no source, days from event to first contact, booked jobs per campaign); Build (The campaign list with costs, the booth codes and tracking numbers, the thank-you text). Build the squares in that order, and keep the person's squares with a person. The working set to build from: - Trigger: an event sign-up through the booth code; a call or text to a campaign's tracking number; a form on a campaign's page; a job booked or completed in the field-service software; a new review; and the first business day of each month, for the table. - Steps: at sign-up, write the person to the system with the event as source and their consent and "call me about a job" answers; at 6:00 pm on event days, text everyone who consented the thank-you and that event's offer; put everyone who asked about a job on the next morning's call list, oldest first; on each call or form, set the campaign from the number or the page; if none matches, mark it "no source" and put it on the list for the office to ask on the call; when a job is booked, carry the customer's campaign onto it, unless a person already set one or the customer has an earlier job; on the first business day of the month, add up each campaign's cost (from the campaign list) against its names, calls, booked jobs, revenue and reviews, and list every "no source" lead. - Data: one record per lead: lead ID, name, phone, how it came (sign-up, call, text, form), campaign, how the campaign was set (number, code, page, person, none), consent (yes or no), asked about a job (yes or no), texted at, called at, booked job and its value, review left, and whether a person changed the campaign. One record per campaign: name, type, town, start and end, cost. - Review step: the coordinator works the call list each desk shift and asks the source of every "no source" lead on the call; the owners read the table once a month with the coordinator. - Alerts: a call-list name not called within two business days; "no source" above 1 in 10 of the month's leads; a tracking number that took no calls for 14 days while its campaign is live; a text that failed; and the wrong-but-green count, the campaigns a person changed after the machine set them. - If it breaks: what you see: a campaign with names but no calls, every call landing as "no source", or the same person texted twice. Check first: the tracking numbers still forward to the main line; the booth code points at the right event; the connection to the field-service software is still authorized. Safe fix: pause the workflow; numbers keep ringing through, and the coordinator follows up and tallies by hand. - Baseline to count before switch-on: one month of: names collected at each event, days from event to first contact (from the system, not memory), calls and forms with no source, booked jobs by campaign as the office records them today, and the coordinator's minutes on the tally (time it, do not ask). - Tools by name: CallRail (Lead Tracking $50 a month, Lead Tracking Complete $95 with 1,000 form submissions; 5 local numbers, 250 minutes and 25 texts included; extra number $3, minute $0.05, text $0.03); WhatConverts (from $30 a month, $60 with forms); ServiceTitan (a tracking number per campaign fills the campaign on the booking screen; Marketing Pro price on request, $200 to $600 a month by one add-on seller; manually booked jobs re-credited inside a fixed 7-day window); Jobber (Marketing Suite $99 a month); Housecall Pro (lead source set by hand; add-ons on request); built: Twilio ($1.15 a number a month, $0.0085 a minute inbound), Airtable Team ($20 a seat a month billed annually), n8n (Starter 20 euros a month billed annually, 2,500 runs), Claude Sonnet 5.5 ($2 per million tokens in, $10 out). USPS retail Every Door Direct Mail postage $0.26 a piece. Google: the listing's number "must be under the direct control of the business". It may never, on its own: change a source a person set; credit a returning customer's job to a new campaign; text anyone who did not agree; change the phone number on our business listing; or drop, pause or start a campaign. Keep with a person: which campaigns to run again and which to drop; the call to anyone who asked about a job; the source of any lead the machine could not match, asked on the call; the booth, the crowd and the offer. Not yet: moving a job someone already credited to a different campaign; crediting a returning customer's new job to the latest campaign; calling a campaign dead on one month, when events cluster in the warm months and mail in the quiet ones; texting anyone who did not agree to it at the booth; changing the number on the company's own business listing. Ask me for the tools and numbers you need from my business before you start. Then build it one step at a time, and show me each step working before the next.
No one in your business holds this judgment?
Then the first step is the expertise, not the build. Konstellation, Nick's advisory firm, judges one of your jobs with you, free: what it costs today, the verdict, the bill and who owns it.
Get the verdict on one jobKnow someone doing this job by hand? Send them this page.
Free, for one email
One email opens every job and every system.
Everything on instig8.ai is free. Your email, once, unlocks all of it on this device, and you hear when the next job is out.
Unsubscribe any time.