The problem
Service businesses — HVAC, plumbing, roofing, mobile mechanics, locksmiths, medical clinics — lose qualified leads every night and weekend because nobody picks up the phone. The customer hangs up at the third ring, calls the next company in the search results, and the original business never even knows that lead existed.
Pre-built "AI receptionists" sold as SaaS have the opposite problem: they pick up, but their script is generic enough that the caller instantly clocks they're talking to a bot, and either hangs up or gets an answer that doesn't apply to this business.
What we built
- Real voice in milliseconds.ElevenLabs for the voice itself, Twilio for the phone line, Gemini for the conversation. The caller doesn't feel like they're waiting for a server.
- Custom conversation logic per client.Not a generic "may I take a message" script — a flow that knows the business's service area, pricing posture, after-hours policy, emergency triage, and what questions a real human at this company would ask.
- Booking + SMS in the same call.When the call ends, the customer has a confirmed appointment time and a text message they can reply to. The owner's calendar already has the event.
- Hot-lead escalation. Real emergency, big-ticket estimate, or a return customer who needs a human? The agent forwards the call to the on-call number or fires an instant alert. Routine quote requests get captured for the next-day callback.
- Transcripts and recordingsare searchable from the owner's dashboard — so they can audit what the agent told a customer, retrain it on whatever it got wrong, and improve the script over time.
Security — the part most people skip
Voice infrastructure is a juicy attack surface. We hardened it before going live:
- No exposed webhook ports. All inbound traffic from Twilio routes through a Cloudflare tunnel — no raw IPs facing the internet.
- Per-tenant secrets kept out of source and rotated on a schedule. Webhook payloads are signed and verified.
- Cost guardrails.Hard caps on per-call duration and per-day spend so a stuck loop or hostile caller can't run up a bill.
What we deliberately did not build
- No multi-language by default.If the client wants Spanish (and in Florida many do), it's a Phase 2 add-on with proper bilingual prompts and a tested handover — not a feature flag switched on quietly.
- No "voice clone" of the owner.Tempting, but uncanny and legally messy. We use ElevenLabs preset voices that sound natural enough that the caller doesn't fight the interaction.
Where it stands
In production for a service business. Tuned and tested against real-world call patterns. Every conversation feeds the next iteration — false escalations get retrained, missed intents get added.
Why this matters beyond one client
Any business where the phone is the lead funnel can run a version of this — HVAC, plumbing, roofing, medical, legal, real estate, auto. The ROI math is simple: count the calls you missed last week. If five of them were qualified leads worth $1k each, you can do the rest of the math. Discovery call is 15 minutes.