No headings found on page

30 HVAC leads at $59 CPL: Here's how I built the campaign from start to finish

30 leads in 4 weeks from $1,767.15 in Meta spend. My scope: strategy, creatives, copy, and the automation that moved leads to booked appointments.

4 weeks and $1,770 in Meta spend. My scope: strategy, creatives, copy, and the automation that moved leads to booked appointments.

Highlights

Results

$58.91 CPL

30 leads

Avg.

$137.50 CPL

-57%

vs. industry

Results

$58.91 CPL

30 leads

Avg.

$137.50 CPL

-57%

vs. industry

Funnel

5.6% CVR

23% booked | 86% showed

Avg.

4.5% CVR

+24.4%

vs. industry

Funnel

5.6% CVR

23% booked | 86% showed

Avg.

4.5% CVR

+24.4%

vs. industry

Funnel

5.6% CVR

23% booked
86% showed

Avg.

4.5% CVR

+24.4%

vs. industry

Videos

The problem

A Fresno-based general contractor came to me needing a consistent way to generate full HVAC system replacement leads. They were doing solid work, but their lead flow depended entirely on referrals and word of mouth.

They had no paid acquisition channel, no system for capturing demand, and no automated follow up. This meant that seasonal demand—hot leads in the summer, cold leads in the winter—was a pattern they had become uncomfortably used to.

My solution

I built a complete Meta-to-CRM pipeline that qualifies leads at the form level and triggers immediate automated follow-up, so every lead captured has a defined path to a booked appointment.

I chose Meta for because the creative-first format matched the angles I wanted to run. Urgency-based and financial pain messaging works better in a scroll environment than in search intent platforms like Google Ads.

Developing the assets

After researching our competitors in the Fresno HVAC market and having conversations with leadership, I settled on three angles:

Creative angles

"Get up to $1,000 for your old AC"

Financial incentive that functions as a trade-in offer.

"80% of your energy bill is your AC"

Positions the combo as a practical, convenient deal.

"If your AC is 12+ years old, you're overpaying"

Homeowners with older units immediately recognize themselves.

Creative angles

"Get up to $1,000 for your old AC"

Financial incentive that functions as a trade-in offer.

"80% of your energy bill is your AC"

Positions the combo as a practical, convenient deal.

"If your AC is 12+ years old, you're overpaying"

Homeowners with older units immediately recognize themselves.

Creative angles

"Get up to $1,000 for your old AC"

Financial incentive that functions as a trade-in offer.

"80% of your energy bill is your AC"

Positions the combo as a practical, convenient deal.

"If your AC is 12+ years old, you're overpaying"

Homeowners with older units immediately recognize themselves.

Video creative

3 step funnel (winning angle)

  1. Landing page

  1. Survey page

  1. "Thank you" page

HVAC survey + lead form

Automations

Inside GoHighLevel, I built automations that triggered the moment a lead submitted the form.

Messages:

  1. Internal "New lead" notification to the sales team

  2. Internal "New lead" notification to myself

  3. SMS to lead: "Hey [name], just got your request — we received it and will be in touch shortly." (paraphrased)

Nurture: A 5-day SMS sequence that followed up with the lead every 24 hours. Each message reinforced the offer, addressed a common objection, or created soft urgency around scheduling before slots filled up.

Tagging: An automated tagging system tracked lead source and buyer journey stage. Notifications went to the sales team and myself to make sure no lead sat untouched past a reasonable response window.

GoHighLevel workflow diagram

Down-funnel impact

The system booked 7 out of 30 leads for on-site consultations — a 23.33% booked rate. Of those 7, 6 showed up: an 85.71% show rate. A show rate above 80% tells you the messaging set accurate expectations. People who commit to an appointment and keep it are serious about replacing their system.

Mid-campaign improvements

To ensure that our campaign continued to perform, I focused on a few key aspects.

  • Ad Cadence: New creatives every few weeks. Cut what wasn't producing quality leads.

  • Message control: Doubled down on the "$1k for your old AC" angle since it outperformed the other two on booked rate and lead quality.

  • Funnel protection: Kept form tight enough to filter low-intent, without adding too much friction.

Three key lessons

  1. Financial incentives work well when paired with creative twists. The "$1k for your old AC" angle immediately positions the offer as a replacement opportunity.

  1. Real people on camera outperforms AI voiceovers. Authenticity affects performance, creating a gap between AI generated versus real content.

  1. Show rate is a stronger quality signal than booked rate. Anyone can say yes to an appointment. A high show rate means that messaging is aligned with expectations.

What I'd do differently

  • Disqualify leads if credit is poor: Several leads dropped off post-appointment after financial eligibility checks, taking up sales team time.

  • Incorporate more b-roll into video creative: Real talking head still worked, but the creative was thin in some places. More project b-roll would improve trust.

  • Test a longer nurture window: The 5-day sequence was promising, but HVAC is a considered purchase. A 10-14 day follow-up window could have been implemented to recover cold leads.

Tech Stack

Media buying, campaign monitoring, and attribution

Sources

Industry benchmarks are directional.

  • Cost per Lead: Link

  • Conversion Rate (Form Fills): Link

More Case Studies

How I generated solar + roof leads at 63% lower cost than average

$885 spent, 23 leads, and $38 CPL in 4 weeks with Meta Ads.

43 roofing leads at $76 CPL: What a full campaign actually looks like

A full system built from scratch for a local contractor.

Working on a similar challenge? Let's talk.

If you want to see more work samples, discuss a role, or ask any questions, feel free to reach out.