An AI agent that answers, reschedules and confirms installs in two languages
A Phoenix solar and HVAC installer was losing rescheduling calls to voicemail while crews were on roofs. We put an inbound voice agent on their main line that verifies the caller, detects Spanish and translates live, offers real crew openings from the dispatch calendar, rebooks the job, texts a confirmation and writes every action back to the CRM, while dispatchers watch the call unfold in a live console.
- 82%
- Calls resolved by AI
- < 1s
- Response latency
- 2
- Languages on the line
What they came with
Calls that came in after the office closed went to voicemail, and so did the overflow when the phones were busiest. In home services a missed call is usually a booked install, and the callback the next morning arrives after the customer has already found someone else. Inbound came in both English and Spanish, which narrowed who on the rota could take any given call. On the calls that were answered, what was agreed lived in the head of whoever answered.
What the engagement covered
- Live transcript with automatic Spanish to English translation for dispatchers
- Real crew availability pulled from the dispatch calendar and booked during the call
- Every action logged to the CRM, with one-click hand off to a human when needed
Technical detail
Streaming audio, not turn taking
Twilio media streams feed Deepgram continuously and partial transcripts reach the model before the caller has finished speaking. The agent starts forming a response mid-utterance, which is what keeps the gap between turns short; a fast round trip on its own would not.
Availability checked at confirm time
The agent reads installer availability when it offers a slot and reads it again before it writes the booking, so two calls in flight cannot both take the same window. A slot that has gone in between is re-offered rather than double booked.
Language handled per call
Recognition runs bilingual and the prompt and voice follow whichever language the caller opens in, including mid-call switches. There is no separate Spanish number and no routing decision to get wrong before the call is answered.
Escalation carries the transcript
When intent stays unresolved or the caller asks for a person, the call warm-transfers with the running transcript and captured details attached, so the human does not restart the conversation. Transcript and disposition are written back to the CRM whether or not a human ever joined.
The stack
Telephony
Speech and AI
Backend
Infrastructure
- Practice
- Live Voice Agent
- Sector
- Home Services
- Shape
- Client engagement
- Stack
- OpenAI Realtime, Twilio, ServiceTitan API
Something like this to build?
Tell us what runs today and where it hurts. An engineer reads it and replies.