osmTalk Docs
Cookbook

Receptionist

Answer calls when I'm busy, take messages, book appointments.

The classic use case: your business phone rings, your AI receptionist answers, handles routine requests, books appointments, and only transfers to a human when actually needed.

Goal

A friendly receptionist that:

  • Greets callers professionally
  • Books appointments with name, phone, reason, preferred time
  • Routes "urgent" requests to a human
  • Captures contact info if the caller just wants a callback

Balanced — gpt-5.4-mini + Deepgram nova-3 + Deepgram Helena. About ~₹4/minute, 900ms latency.

If your callers speak Hindi/Tamil/etc., switch to Balanced (India) which uses Sarvam STT + ElevenLabs multilingual TTS.

System prompt (copy-paste)

You are Priya, the receptionist at Greenleaf Dental Clinic in Mumbai.

We're open Monday-Friday 9 AM to 7 PM IST, Saturdays 9 AM to 2 PM.
Closed Sundays and public holidays.

Your job, in order:
1. Greet the caller warmly.
2. Ask how you can help.
3. If they want an appointment:
   - Get their name (first name only is fine)
   - Get their phone number (in case we need to confirm)
   - Get the reason for the visit (cleaning, checkup, root canal, emergency, other)
   - Get their preferred date and time (we have 30-min slots; offer two options if they're flexible)
   - Confirm the booking by repeating it back
4. If they want to leave a message, capture the name, number, and message — say we'll call back the same day.
5. End the call with "We'll see you then. Have a good day."

Hard rules:
- If they say "emergency", "in a lot of pain", or "bleeding": ask them to come within 30 minutes, no booking needed.
- If they ask about prices: say ₹500 for cleaning, ₹3000 for root canal, ₹800 for checkup. For anything else, say "I'll let the doctor confirm during the visit."
- If they ask about a doctor by name: we have Dr. Aisha (general) and Dr. Rohan (root canal specialist).
- If they sound frustrated or insist on a human, say "Let me get someone — please hold" and use the transfer_to_human tool.
- Never invent prices, dates, doctor names, or services.

Speak warmly but stay under 2 sentences per turn. Don't repeat the same phrase twice in a row.

Welcome message

Hi, thanks for calling Greenleaf Dental. This is Priya — how can I help?

Settings

Configure → Advanced

SettingValueWhy
Allow interruptionsOnCallers expect to interrupt naturally
Mute during welcomeOnDon't let them cut off the greeting
Enable call recordingOnCompliance + training
Enable end-call detectionOn"Bye" / "thank you" → bot hangs up gracefully
Filter incomplete turnsOnDon't reply to "uh..." mid-thought

Tools

1. Transfer to human

Configure → Actions → Call Transfer → Transfer to Human

FieldValue
Enabled
Destination+91-your-front-desk-number
Trigger description"Transfer when caller is frustrated, asks for a human, has a complaint, or asks anything not covered by the prompt."

2. HTTP tool — save appointment (optional)

If you want to auto-save bookings to your CRM:

Configure → Actions → HTTP Tools → + Add

FieldValue
Namebook_appointment
Description"Save a confirmed appointment to the CRM. Call this only after confirming all details with the caller."
MethodPOST
URLhttps://your-crm.example.com/api/appointments
HeadersAuthorization: Bearer YOUR_KEY
Parametersname (string, required), phone (string, required), reason (string, required), slot (string, required)
Wait message"One moment, just booking that for you..."
Error message"Hmm, the booking system is slow right now. Can I just take your details and call you back?"

Phone setup

  1. Phone Numbers → Buy Number (or use an existing one)
  2. Edit the number → set Inbound agent = your receptionist agent
  3. Test by calling from your own phone

How to test

In the agent page, click Test Call and try these:

Try saying...Expected behavior
"Hi, I'd like to book an appointment for next Tuesday at 3 PM."Asks for name, phone, reason. Confirms slot.
"How much for a root canal?"Says "₹3000". Asks if they want to book.
"I'm in a lot of pain right now."Says to come within 30 min, no booking.
"Can I speak to Dr. Aisha directly?"Triggers transfer_to_human (offers callback).
"What are your hours?""Mon-Fri 9 AM to 7 PM IST..."

Typical cost

A 2-minute booking call:

LLM (gpt-5.4-mini, ~600 tokens):  ₹0.30
STT (Deepgram, 2 min):             ₹1.00
TTS (Deepgram, ~600 chars):        ₹3.10
SIP (phone trunk, 2 min):          ₹1.34
─────────────────────────────────────
Provider total:                    ₹5.74
+ 30% margin:                      ₹1.72
─────────────────────────────────────
Charged to your account:           ₹7.46

Approximately ₹3.50–₹4/min for booking calls. Surveys/short calls cost less.

Common mistakes

MistakeFix
Bot gives wrong pricesAdd specific prices in the prompt; tell it explicitly "never invent prices"
Bot doesn't transfer when frustratedMake trigger_description more specific. Include emotional cues: "frustrated, raises voice, complains"
Bot books appointments outside business hoursList your exact hours in the prompt and add: "Never offer slots outside business hours"
Caller says "yes" but bot doesn't catch itPhase 5 (Smart Turn v3.2 + filter_incomplete_user_turns) fixes most of this. Already on by default.
Bot's voice sounds roboticSwitch to Premium preset (ElevenLabs voices are more natural)

What's next