Live demo · AI receptionist for clinics

This receptionist answers the phone, finds a free time and books the visit. Talk to it below and watch the clinic's schedule fill in.

  • Answers calls
  • Checks the calendar
  • Books visits
  • Flags urgent cases
INCOMING CALLBright SmileReceptionist is talkingBooked
  1. Call connectsPhone or browser
  2. Receptionist answersGreets and listens
  3. Checks the calendarHours, length, bookings
  4. Books the visitSaved, no double-booking
  5. Schedule updatesStaff see it at once

Front desk · AI receptionist

Online and ready

Try saying

  • “Can I book a cleaning for tomorrow?”
  • “Are you open on Sunday?”
  • “I have a bad toothache.”

The conversation shows up here as it happens.

This is a demo clinic. Please don't share real personal details. Calls are capped at two minutes.

The clinic's schedule

How a call works

From ring to booked visit in five steps

  1. Call comes in

    A patient rings the clinic's number, or talks from a web page like this one.

    Vapi voice
  2. Receptionist answers

    It greets, listens and asks what the visit is for, in plain conversation.

    speech to speech
  3. Checks the calendar

    It looks up opening hours, visit length and what is already booked.

    check_availability
  4. Books the visit

    The slot is saved once. Two callers can't take the same time.

    book_appointment
  5. Staff see it

    The schedule updates at once. Anything the AI can't settle becomes a callback.

    request_callback
Where the call starts

A patient dials the clinic's phone number, or presses Talk on a web page. Both reach the same receptionist.

What happens next

The voice service turns speech into text and back. When it needs facts, it calls the clinic's own server.

What the clinic gets

A booking in the schedule, a summary of the call and a list of people to call back.

What it books

The visits a clinic actually takes

Each service has its own length and its own colour, so the schedule reads at a glance. Change the list per clinic in one file.

Checkup and cleaning30 minutes
Consultation30 minutes
Filling60 minutes
Teeth whitening60 minutes

What the clinic sees

A calm view of today

Staff sign in to a private dashboard: today's visits, every call with its transcript, and callbacks to tick off. The screens below use demo data.

receptionist / staff
Dashboard showing today's schedule and callbacks, with demo data
Today: visits and callbacks. Demo data.
receptionist / staff
A call transcript with the booking it created, with demo data
One call: the transcript and what it booked. Demo data.

Under the hood

Built like a real product

Voice layer
Vapi handles the call, speech and turn-taking. The assistant calls four tools on my server.
Backend
Fastify and TypeScript, inputs checked with zod, webhook protected with a shared secret.
No double-booking
Postgres with a per-day advisory lock, so two simultaneous callers can't take the same slot.
Scheduling rules
Opening hours, visit lengths and minimum lead time live in plain functions covered by unit tests.
Dashboard
Next.js 15 and React 19. Signed-cookie login, and the API key never reaches the browser.
Public demo
This page only reads a masked feed: first names, no phone numbers, no transcripts.

What a missed call costs

Put your own numbers in

60
25%
40%
$90

$2,340

a month in visits that never get booked: about 26 callers who ring, don't get through, and go elsewhere.

An estimate from the numbers you set, not a promise of results. Change them to match your clinic.

Want one for your clinic?

Let's talk about your calls

I'll look at how your clinic books today and tell you plainly whether this fits. Thirty minutes, no pitch deck.

Hiring? See my portfolio, GitHub or LinkedIn.

Bright Smile