AI receptionist that books
On this page
The most common reason to buy voice AI: the phone rings while everyone is busy, and every missed call is a customer who books somewhere else. This builds a receptionist that answers all of them and books into your real calendar.
- A Google Calendar or Outlook calendar that reflects real availability.
- Your opening hours, prices and address written down.
- A number your team answers, for callers who need a human.
- About an hour, including testing.
Every call is answered, at any hour. The agent knows your prices and hours, checks genuine free/busy before offering a time, books the appointment with the caller invited, texts them the address, and posts to Slack so the team sees it. Anyone who needs a person gets transferred.
The shape of it
1. Build the agent
Start from the Appointment Scheduling template in Setup Guide, then replace the generic content with yours. The structure below is what a good receptionist prompt looks like once finished.
## Who you are
You are Amara, the receptionist for Brightsmile Dental in Westlands, Nairobi.
Today is {{date}}.
## What this call is for
Book, move or cancel appointments, and answer questions about price, hours
and location. If you cannot help, take a message.
## How to speak
- One or two sentences per reply. Ask one question at a time, then wait.
- Warm and efficient. A busy front desk, not a call centre.
- If you are interrupted, stop talking and listen.
## What you know
- Open Mon-Fri 8am-6pm, Sat 9am-1pm. Closed Sunday.
- Cleaning KSh 3,500. Consultation KSh 2,000. Whitening from KSh 15,000.
- 3rd floor, Delta Towers, Westlands. Free basement parking.
- We do NOT do orthodontics - we refer to Dr Kimani.
- For anything else, search the knowledge base before answering.
## Booking an appointment
1. Ask what they need and roughly when suits them.
2. Use check_availability. NEVER offer a time you have not checked.
3. Offer two options: "I have Thursday at 2, or Friday morning - which works?"
4. Take their full name and phone number.
5. Use create_event to book it.
6. Read the day and time back to them before ending the call.
7. Use send_message to text them the address.
## Rules you never break
- Never quote a price that is not listed above or in the knowledge base.
- Never give clinical or dental advice. A dentist advises at the appointment.
- If someone is in pain or distressed, transfer to the clinic immediately.
- If a lookup or booking fails, do not guess - take their number and say the
clinic will confirm within the hour.
- If they ask for a person, transfer the call.
## When you are unsure
"I don't want to give you the wrong information - let me have someone from
the clinic call you back. What's the best number?"Today is {{date}} — without it, “next Tuesday” is a guess. NEVER offer a time you have not checked — without it, the agent invents slots. Offer two options — open-ended “when suits you?” produces rambling calls; two concrete choices close quickly.
The greeting
Short, identifies you, invites them to speak. Anything longer loses people:
Brightsmile Dental, this is Amara - how can I help?
If your jurisdiction requires disclosing that this is an AI, put it here: “…this is Amara, Brightsmile’s virtual assistant — how can I help?” It also measurably reduces people hanging up when they work it out mid-call.
2. Give it your facts
The five things you are asked constantly go in the instructions, as above. Everything else goes in a Knowledge Base: the full price list, treatment explanations, insurance and payment policy, parking instructions, your FAQ page.
Create it at Knowledge BaseNew, upload the documents or paste your website URLs, then attach it to the agent. The instructions above already tell the agent to search it.
Open the file and try to select a sentence with your cursor. If you cannot, it is a scan — there is no text in it and the agent will find nothing. Re-export it from the original document.
3. Connect the calendar
This is what separates booking from message-taking.
Connect Google Calendar or Outlook
IntegrationsGoogle CalendarConnect. Sign in as the account that owns the booking calendar — ideally a shared clinic account rather than a personal one, so it survives staff changes.
Attach it to the agent
On the integration panel, select this agent. Connecting alone does not grant access — see Giving an agent access.
Make the calendar honest
The agent believes what the calendar says. If lunch, admin time and holidays are not blocked out, it will book over them. Half an hour tidying the calendar prevents most complaints about this setup.
| Action | What the agent does with it |
|---|---|
check_availability | Finds genuinely free slots before offering anything. |
list_events | Reads what is already booked — “when is my appointment?” |
create_event | Books it, and invites the caller if you have their email. |
4. Add a way out
Every production agent needs an escape route. Create a Transfer tool pointing at a number that is genuinely staffed, attach it, and make sure the instructions above include the transfer triggers — asked for a person, in pain, upset, or two failed attempts.
Add a Send Message tool as well. Texting the address after booking is a small thing that noticeably reduces no-shows and “where are you again?” calls.
At 11pm nobody will answer a transfer. Add a rule: “Outside opening hours, do not transfer. Take a message and say the clinic will call back when it opens.” Otherwise the agent will cheerfully put a caller through to a ringing, empty room.
5. Tell the team
Connect Slack and attach it, then add one line to the instructions:
After booking an appointment, use execute_slack with action send_message to post to the #front-desk channel: the caller's name, the day and time booked, and what they are coming in for.
Note the full name — execute_slack. Integration actions are always execute_<app>, which keeps Slack’s send_message distinct from the SMS tool of the same name.
This is the cheapest way to make the whole thing visible. Your team watches bookings appear in real time without ever opening Vociply, which does more for internal buy-in than any dashboard.
6. Put it on your line
Two options, and the second is what most established businesses want:
| Approach | What callers dial | Best for |
|---|---|---|
| Attach a new Vociply number | A new number you publish | New businesses, a dedicated bookings line, or testing. |
| Forward your existing number | The number they already know | Anyone with an established line. Nothing on your side changes. |
For forwarding, the strongest starting configuration is forward on no answer: your team gets first refusal, and the agent catches everything they miss. Set it up at your current provider — full detail in Phone numbers.
7. Test like a customer
Run these seven calls before you point real traffic at it. Each one catches a different failure:
| Say this | What you are checking |
|---|---|
| “I’d like to book a cleaning.” | The happy path. Does it check availability and book? |
| “How much is whitening?” | Knowledge base retrieval, and that it does not invent a figure. |
| “Do you do braces?” | That it correctly says no and refers on. |
| “Can I come at 7pm on Sunday?” | That it knows you are closed and does not book it. |
| “I need to speak to someone.” | That the transfer fires promptly. |
| “My tooth is really hurting.” | That it escalates rather than booking you in three weeks. |
| Interrupt it mid-sentence. | Turn-taking. If it talks over you, adjust the timers. |
Then check the other side: is the appointment actually in the calendar, at the right time, with the right person? An agent saying it booked something is not evidence that it did.
What to fix first
| Complaint | Cause | Fix |
|---|---|---|
| It booked a time we were closed | Calendar does not reflect reality | Block your closed hours in the calendar itself. It is the source of truth. |
| It quoted the wrong price | Stale knowledge base, or the price only exists in the prompt | Update the document, remove the old one, and re-test the exact question. |
| It talks over people | Wait timers too aggressive | Raise wait to 0.7s and no-punctuation to 1.8s — see Voice & conversation. |
| It takes messages instead of booking | Calendar not attached, or no instruction to book | Check the integration is attached to this agent, not just connected. |
| Callers hang up immediately | The greeting | Shorter. Name the business, offer to help, stop. |
| It repeats questions | Never told it already has the details | “You already have their name and number — do not ask again.” |
Questions
Can it handle two callers at once?
Yes — an agent is not a phone line. Ten people can be talking to it simultaneously, each in their own conversation. This is usually the moment people realise it replaces a queue, not a person.
Can it cancel or move an existing appointment?
It can read the calendar to find the booking. Rescheduling reliably usually means combining list_events with a booking of the new slot, and telling the agent explicitly how you want changes handled. Start with “take the request and transfer” and add automation once the booking path is solid.
What if two people book the same slot at the same second?
Availability is checked at the moment of booking, so genuine collisions are rare. For high volume, keep a small buffer between appointments rather than booking back to back.
Should I tell callers it is an AI?
Some places require it. Everywhere else, it still helps — people who are told adjust their expectations and stay on the line. A single word in the greeting is enough.