Blue Jay Irrigation has 4 locations across Ontario.
During peak season, 40% of their calls went straight to voicemail.
Customers with sprinkler emergencies at 7 PM? They'd wait until the next business day. By then, they'd already hired someone else.
New customer inquiries sat in queues. Existing clients waited 12+ hours just to confirm an appointment.
The reception team was stretched. Revenue was walking out the door.
So we built them an AI receptionist.
Not a chatbot. Not a basic IVR. A full conversational agent that handles what a human receptionist does.
Here's what it actually does:
→ Answers every call in under 3 rings. 24/7/365.
→ Books, reschedules, and cancels appointments with real-time availability.
→ Detects emergencies and dispatches SMS alerts to on-call techs at 2 AM.
→ Routes calls across 4 locations based on customer property.
→ Syncs directly with ServiceTitan for customer data and appointment management.
→ Understands natural language. "My sprinklers are acting weird" triggers the right follow-up questions.
Customer calls at 11 PM on Sunday to book an appointment?
Done.
Emergency at 2 AM?
On-call tech gets an SMS immediately.
No voicemail. No waiting. No missed revenue.
The business impact:
Before: 40% of peak-season calls missed.
After: Every call answered instantly.
Before: 12+ hours to confirm appointments.
After: Confirmed in seconds.
Before: Emergencies waited until morning.
After: Dispatched immediately, any hour.
This Thursday in CodeBrew, Souhail is walking through the full technical build.
We're covering:
→ The exact tech stack and architecture
→ ServiceTitan API integration (real code examples)
→ Emergency detection logic and escalation flows
→ How we handled multi-location routing complexity
→ Lessons learned and what we'd do differently in v2
If you want to build AI agents like this for service businesses (HVAC, roofing, landscaping, pest control, pool service), this is the session.