The goal: when your HVAC business misses an inbound call outside business hours (or during a busy stretch), a personalized SMS fires to the caller inside 15 seconds with your shop name and a booking link. No customer waits on hold. No lead calls your competitor.
This walkthrough uses Twilio Studio because it is drag-and-drop, free to start, and battle-tested at scale. You do not need to write a single line of code. If you can wire a thermostat, you can build this.
What you need before you start: a Twilio account (free trial works, upgrade after testing) and a booking link from your dispatcher (ServiceTitan booking widget, Jobber client hub, Housecall Pro online booking page, or a plain Calendly if you do not have a dispatcher yet).
The 6-step build
Buy a Twilio phone number in your area code
In the Twilio Console, go to Phone Numbers → Buy a Number. Search by your area code. Filter for numbers with both Voice and SMS capabilities. Pick one. Cost: $1.15 per month plus usage.
This is the number your main line will forward to when unanswered. Customers still see your existing shop number when they call back, so no branding change.
Forward your main line with a 15-second timeout
On your existing phone system (Google Voice, RingCentral, Nextiva, Vonage, or legacy PBX), set conditional forwarding to the new Twilio number when the main line does not answer within 15 seconds. Every provider has a version of this setting labeled "no answer forward" or "call forward busy."
Do not use 30 seconds. 30 seconds is long enough for the caller to hang up before your Twilio number even rings, and the missed-call auto-SMS never fires. 15 seconds is the sweet spot: long enough for you to grab it if you can, short enough to preserve the fallback.
Create a new Twilio Studio flow
In the Twilio Console, go to Studio → Create New Flow. Name it HVAC After Hours Missed Call. Start from an empty flow, not a template.
The default trigger is Incoming Call. Keep it. You will add a No-Answer path off this trigger in the next step.
Add the missed-call detection + SMS widgets
From the widget library on the right, drag these onto the canvas in order:
- Connect Call To widget, configured to forward to your on-call cell number with a
timeout=15. This gives the after-hours on-call tech a chance to answer if available. - Send Message widget, wired to the
No Answerpath of the Connect Call To widget above.
The wiring: Incoming Call → Connect Call To (15s) → No Answer → Send Message. Answered calls just complete normally, no SMS fires.
Configure the SMS body
Click the Send Message widget. Fill in these fields:
MESSAGE BODY:
Hey, [Your Shop Name] here, sorry we missed you.
Tap [YOUR BOOKING LINK] to grab a slot, or reply
YES if you need us right now.
Reply STOP to opt out.
SEND TO: {{trigger.call.From}}
FROM: {{flow.channel.address}}
Replace [Your Shop Name] and [YOUR BOOKING LINK] with your actual values. The {{trigger.call.From}} template variable auto-populates the caller's number. The {{flow.channel.address}} variable auto-populates your Twilio number as the sender.
Publish and test end-to-end
Click Publish in the top right of Studio. Wait for the green confirmation.
Test: call your original shop number from a personal cell phone. Let it ring past 15 seconds without answering. Within 15 seconds of the timeout, an SMS with your booking link should arrive on the personal cell.
If the SMS does not arrive: check the Studio flow execution log (bottom left of the canvas after a call fires). Most common miss is the forwarding config in Step 2 not timing out at 15 seconds. Fix that and re-test.
What this actually costs
Twilio phone number: $1.15/month. SMS delivery: $0.0075 per message in the US. If you get 30 missed calls per week that fire the SMS, that is roughly $1 per week, $4 per month. Total tool cost: about $5-$6 per month. Your recovery: typically $500-$2,000 per week starting Week 2. ROI is not close.
What to add later (Week 2+)
- Yes-reply auto-response. If the caller replies YES (they want you now), fire a follow-up SMS with your emergency dispatch number and a Calendly link for tomorrow.
- Booking confirmation loop. When they book through the link, fire a confirmation SMS with the time slot and technician name.
- Reply routing. If they reply asking a question, forward the SMS to your dispatcher via a webhook. Or plug into an AI agent for auto-response.
TCPA safety note. The auto-SMS response to an inbound call is TCPA-safe under the existing-business-relationship doctrine. The Reply STOP to opt out is legally required to keep it safe. Do not add any additional marketing content in the first response beyond the booking prompt.
Want us to build and run it for you inside 14 days?
The Starter plan (done for you) at $1,500/mo ships this workflow plus dispatcher API integration and dispatcher-side booking sync. Your $250 Assessment tier credits against month one.
Book the Assessment tier call