An inbound call handling system for a plumbing business. When a customer calls, an AI receptionist answers, collects their information, classifies the issue, routes to the right technician, books an appointment on their calendar, and sends confirmation.
Interactive workflow: https://grand-puffpuff-5210eb.netlify.app/
- Answers inbound calls via Twilio and conducts a natural voice conversation
- Collects caller name, phone, address, issue type, and urgency through GPT-4o
- Classifies the plumbing issue and determines if it qualifies as an emergency
- For emergencies: offers live transfer to an on-call technician or immediate scheduling
- For standard jobs: routes to the best available technician based on skill, complexity, and service area
- Books the appointment directly on the technician's Google Calendar
- Sends a confirmation SMS to the caller and a notification to the business owner
- Logs every call to Google Sheets (internal record and client-facing record)
- Detects spam and abusive callers, flags or blocks them, and notifies the owner
- Triggers follow-up SMS sequences when a booking or transfer fails
| Phone & SMS | Twilio |
| AI conversation | OpenAI GPT-4o |
| Text-to-speech | ElevenLabs |
| Scheduling | Google Calendar |
| Logging | Google Sheets |
| Automation | Make.com |
| Backend | Python / FastAPI |
Copy .env.example to .env and fill in your credentials, then:
pip install -r requirements.txt
python scripts/setup_google_sheets.py # create logging tabs
python scripts/seed_technicians.py # verify technician table
uvicorn app.main:app --reloadPoint Twilio phone number's voice webhook to https://your-domain.com/webhook/voice.