AI-Powered Phone Receptionist for Businesses
<1s
Response Time
4
AI Tools
24/7
Uptime
90s
Avg Call
Voice Receptionist
Full walkthrough — from incoming call to booked appointment in under 2 minutes.
From phone ring to booked appointment — here's the full call flow.
Caller
Caller dials your Twilio number
Twilio Number
Twilio routes call to VAPI
VAPI
VAPI converts speech to text (STT)
Django Server
Django sends text to Claude AI
Claude AI
Claude decides which tools to call
Google Calendar
Check Availability
Book Appointment
Create Event
Twilio SMS
send_sms()
PostgreSQL
Log Call Data
VAPI TTS
Converts text → speech, caller hears AI
Every component runs on your infrastructure. Vapi only handles voice transport.
Django Backend
Your Server
Vapi
Voice Transport
Claude API
AI Brain
Google Calendar
Availability
Twilio
SMS
PostgreSQL
Call Logs
Transparent pricing — see exactly what each provider charges per minute.
Human receptionist vs AI Voice Agent — based on avg 3-min calls
Rough estimate — actual costs vary by plan and usage
VAPI (STT + TTS)
Speech-to-text, text-to-speech, orchestration
Twilio (Inbound)
Per-minute inbound call charge
Twilio (SMS)
Outbound SMS via send_sms()
Claude API
Tokens consumed per call turn
Total per minute
You buy a Twilio number, then import it into VAPI's dashboard. VAPI takes over call handling via SIP trunking — Twilio routes the call to VAPI, and VAPI handles the voice AI pipeline (STT, your Django server for Claude decisions, TTS). Twilio still bills you for the number rental and per-minute inbound usage. VAPI bills separately for its STT/TTS/orchestration layer.
Every feature designed for businesses that book appointments by phone.
Callers speak naturally — the agent understands intent, asks follow-up questions, and responds conversationally. Optimized for short, natural phone dialogue.
Checks Google Calendar availability in 30-minute slots, handles new patient (60 min) and returning (30 min) appointment types, and creates events instantly.
After booking, automatically sends a Twilio SMS to the caller with appointment details — date, time, and type. No manual follow-up needed.
Claude makes multiple decisions per call turn — check availability, book appointment, send SMS, and log the call — all in one conversation step.
Every call is logged with caller phone, duration, AI-generated summary, and booking status. Full Django admin dashboard for search and filtering.
Vapi is only the voice transport layer (STT/TTS). All AI logic, tools, and business rules run on your own Django backend — fully customizable.
Built for teams that need 24/7 phone coverage without hiring.
Dental and medical practices needing 24/7 appointment booking
Service businesses replacing manual receptionist workflows
Clinics wanting after-hours phone coverage with AI
Any business that books time-based appointments by phone
Teams building custom voice AI agents on their own infra
Battle-tested technologies running in production.
Clone, configure, and start taking AI calls. Full details in the GitHub README.
git clone https://github.com/codewithmuh/ai-voice-agent.git && cd ai-voice-agentAdd your API keys: Anthropic, Vapi, Google Calendar, and Twilio
cp .env.example .envCreate a service account in Google Cloud, enable Calendar API, download credentials JSON, and share your calendar with the service account email
Starts Django on port 8000 and PostgreSQL on port 5432
docker compose up --buildCopy the HTTPS URL for the next step
ngrok http 8000In Vapi Dashboard: set Custom LLM URL to your-ngrok-url/api/vapi/chat/completions/ and Server URL to your-ngrok-url/api/vapi/webhook/ — assign a phone number and call to test
Deploy the Voice Receptionist on your own infrastructure. Open source, fully customizable, production-ready.
Built by CodeWithMuh