Case study
Voice Receptionist
A Voice AI Demo
A voice AI receptionist I built as a demo: how it answers, qualifies intent, routes urgent calls, and books appointments. Never deployed.
Demo: what this status meansSelf-built demo · never deployed for a client
Built by VelvoAI, an independent AI systems studio. One engineer scopes and writes every system.
Try it yourself
Call it and see
The agent answers, works out why you are calling, takes your details and offers to book a time. Nothing is scripted for this page. It is a demo, not a system running for any client, and the clinic it answers for is fictional.
AI receptionist
Call the AI receptionist, +1 (620) 333-3213It answers as a fictional dental clinic.
Call the AI receptionistTry asking…
- 01
Can I book a check-up for next week?
- 02
I need to move my appointment to Thursday afternoon.
- 03
Can I speak to someone at the front desk?
A demonstration, not a client system.
Live callIllustrative flow · AI demo line
00:00 · incoming call · routed to AI receptionist
Caller · 00:03
Can I book a check-up for next week?
AI receptionist · 00:05
Happy to help. Let me check next week's availability.
intent: book_appointment · type: check-up · window: next week
AI receptionist · 00:11
Tuesday at 10:30 is open. Shall I book that for you?
Caller · 00:14
Yes, please.
calendar.create · Tue 10:30 · confirmed
- intent: book_check_up
- when: next week
- new patient
- Caller
- New patient
- Intent
- Check-up
- Slot
- Tue 10:30
- Status
- Booked
Gmail · sent
Your check-up is booked: Tue 10:30
Vapi · OpenAI · Google Calendar · Google Sheets · GmailAn AI demo — not a client system
The brief
The problem and the build
01
The problem
Service businesses lose inbound calls after hours, so I wanted to find out how much of a receptionist's call handling a voice agent could take over end to end.
02
The solution
Built a voice AI receptionist that answers calls, qualifies intent, captures contact details, routes urgent requests, and books appointments. It is a demonstration of the pattern, not a deployed system.
- Before
- A pattern I had implemented in pieces, never end to end
- After
- A working reference build I can demo and adapt to a real business
Built with
The stack and what it demonstrates
Stack
- Vapi
- OpenAI
- Google Calendar
- Google Sheets
- Gmail
01Answer
Vapi runs the call loop; OpenAI supplies the model.
02Qualify
The agent works out why the caller rang and takes their details.
03Check availability
Google Calendar is queried during the conversation, not after it.
04Book and record
Calendar holds the slot; Sheets records who called and what they wanted.
05Confirm or hand off
Gmail sends the confirmation; calls that need a person are handed off.
The hard part
What made it harder than it looks
- A phone call gives you no interface to fall back on: if the agent misunderstands, the caller hangs up rather than rephrasing
- Booking against a real calendar means checking availability during the conversation, not after it
- Some calls should never be handled by software, so the agent has to recognise them and get out of the way
Architecture
How it was built
Vapi provides the number and runs the conversation loop; OpenAI supplies the model. The agent's tools call Google's APIs directly, with nothing in between: Calendar for checking availability and holding the appointment, Sheets as the record of who called and what they wanted, Gmail for the confirmation that follows. When a call needs a person, it hands off rather than improvising. It answers as a dental clinic that does not exist, invented so the agent has a business to represent — the prices, hours and services it quotes are not real.
A decision
Ordinary tools, wired directly
The demo could have been built on a bespoke backend, or strung through an automation platform in the middle. Calling Calendar, Sheets and Gmail straight from the agent's tools keeps the number of moving parts low enough that the whole thing is legible, and it maps onto how a small business already works. Taking it to a real deployment is then a swap rather than a rewrite: the business's own identity, its own booking system, its own CRM.
My part
What I built
All of it. This is my own build, not client work, and it exists so the pattern can be demonstrated rather than described.
If I built it for you
What I'd instrument from day one
No outcome figures are published for this project. These are the things I would put a number on building the same system again, so the next version could be judged rather than described.
- Answer latency, because a pause long enough to notice is a pause long enough to lose the caller
- How often the agent escalates, and whether it escalated on the right calls
- Booking completion rate against calls that intended to book
- Where conversations end early, which is the fastest way to find the branch that is not working
More work
Other systems I've built
- Written by
- Usman Ali, Founder
- Last reviewed

Next step
Ready to scale operations without more busywork?
Bring the workflow, lead leak, reporting gap or knowledge bottleneck. You talk to the engineer who would build it, and leave knowing what it would take to ship.
Free, no obligation.