The one rule that beats everything else
If you only remember one thing from this entire document, remember this.
MIT research: companies that call within 5 minutes are 100× more likely to make contact than those who wait 30 minutes. HVAC leads submit to 3–5 companies at once — you win by being first.
Lead pipeline stages (GHL)
Set up your pipeline with these exact stages. Move every lead to the correct stage after each touch — this keeps your pipeline honest and your reporting real.
| Stage | What it means |
|---|---|
| New Lead | Just came in — call immediately |
| Attempting Contact | Called, no answer yet |
| Contacted | Spoke to them live |
| Appointment Set | Date and time confirmed |
| Appointment Confirmed | Called day before to confirm |
| Job Estimated | Tech was on-site, estimate sent |
| Closed / Won | Signed and scheduled |
| Closed / Lost | Chose another company |
| Dead — No Contact | Completed full sequence, never answered |
The 7-day contact cadence
8 call attempts over 7 days. Most companies give up after 1–2 calls. That persistence gap is exactly where you win.
Day 1 — Strike while it's hot
| Time | Action |
|---|---|
| 0–5 min after lead | Call Attempt 1 — use the Double Dial (below) |
| No answer → now | Send Text #1 |
| +30 minutes | Call Attempt 2 |
| +2–3 hours | Call Attempt 3 + leave Voicemail #1 |
Day 2
| Time | Action |
|---|---|
| 8:30–9:00 AM | Call Attempt 4 |
| 5:00–6:00 PM | Call Attempt 5 + send Text #2 |
Day 3
| Time | Action |
|---|---|
| 11:00 AM | Call Attempt 6 + leave Voicemail #2 |
| After call | Send Text #3 |
Day 5
| Time | Action |
|---|---|
| 10:00 AM | Call Attempt 7 |
| After call | Send Text #4 |
Day 7 — Final attempt
| Time | Action |
|---|---|
| 10:00 AM | Call Attempt 8 |
| After call | Send Breakup Text |
| Then | Move stage → Dead — No Contact |
The Double Dial
Use on every first attempt and any time you suspect they screened the call.
- Call the number
- Let it ring 2–3 times
- Hang up
- Call again immediately
Phone scripts
Conversational, not robotic. Hit the copy button to grab any script.
"Hey, is this [First Name]? … Hey [First Name], this is [Your Name] calling from [Company Name]. You just reached out on our website about your HVAC system — I wanted to call you right away to make sure we got you taken care of. Is now a quick second to chat?"
If yes → move to Script 2 (Qualify).
If bad time: "No problem at all. What's a better time for me to call you back today — morning or afternoon?" (Log the callback time in GHL. Call back at exactly that time.)
Ask in a conversational flow — not rapid-fire.
1. "So what's going on with the system right now — is it not cooling/heating, or are you looking to replace it?"2. "How old is the unit?"3. "Is it just not working at all, or is it kind of struggling?"4. "And you're the homeowner, correct?"5. "What part of [city/area] are you in?"
Goal: Confirm they're a homeowner with a real problem or replacement need. If they're a renter, get the landlord's number.
Close to appointment:
"Okay, sounds like we can definitely help you with that. I want to get one of our techs out to take a look — what works better for you, [Option A: day + time] or [Option B: day + time]?"
If your CSR can't quote on the spot:
"What I'm going to do is get you on with [Owner/Tech Name] who can give you more detail — he's the one who does the actual assessments. One second."
Voicemails & texts
Texts go out after a missed call, never instead of one. Voicemails stay under 20 seconds.
Voicemail scripts
"Hey [First Name], this is [Name] from [Company]. You reached out about your HVAC system — just want to make sure you're taken care of. Give me a call back at [number]. Talk soon."
"Hey [First Name], [Name] again from [Company]. Tried you a couple times — still want to help you out with that HVAC situation. Call me back at [number] when you get a second."
Text message templates
"Hi [First Name], this is [Name] from [Company Name]. Just tried calling about your HVAC system — we're ready to help. What's a good time to reach you today?"
"Hey [First Name] — [Name] from [Company] again. We haven't been able to connect. Still want to get you taken care of — just reply here or call us at [number]."
"[First Name], still have your request open from [Company]. HVAC situations can get worse fast — want to make sure you're not left without A/C [or heat]. Call or text back anytime."
Seasonal swap: "without A/C" in summer, "without heat" in winter.
"Hey [First Name], last time we'll bother you before the week's out — [Name] from [Company]. Still here if you need us: [number]."
"Hey [First Name] — going to close out your request with us. If you ever need HVAC help down the road, we're always here. Take care."
Objections & responses
Every objection is a door, not a wall. Acknowledge, then redirect to value.
Reference & best practices
When to call
Best times
- 8:00–9:30 AM (before work)
- 12:00–1:00 PM (lunch)
- 5:00–7:00 PM (after work) — highest answer rate
Worst times
- 9:30–11:30 AM (already at work)
- 2:00–4:00 PM (afternoon slump)
House rules
Log every attempt in GHL. Date, time, outcome (no answer / voicemail / spoke to them / wrong number). If it's not logged, it didn't happen.
Never say "just checking in." It signals low value. Every contact needs a reason — "want to make sure you have AC before the weekend" is a reason.
Same-day rule. If a lead comes in before 4 PM, it gets at least 3 call attempts that same day. No exceptions.
What GHL should do for you
The texts run on autopilot. The calls stay manual — no automation replaces a live voice.
- Lead comes in → instant SMS fires (Text #1) within 60 seconds
- Lead comes in → task created: "Call [First Name] NOW" assigned to CSR
- Day 2 at 5 PM → auto-send Text #2 if still in "Attempting Contact"
- Day 3 → auto-send Text #3
- Day 5 → auto-send Text #4
- Day 7 → auto-send Breakup Text + move to Dead stage
Weekly lead review (every Monday)
Pull the GHL pipeline report and answer:
• How many new leads came in last week?
• How many were contacted within 5 minutes?
• How many appointments were set vs. leads that came in?
• How many leads are stuck in "Attempting Contact" 7+ days? (Move to Dead)
Target KPIs
| Metric | Target |
|---|---|
| Speed to first call | Under 5 minutes |
| Contact rate (spoke to someone) | 40–60% of leads |
| Contact → Appointment rate | 50–70% |
| Appointment → Show rate | 80%+ |