Clinic and dental chatbot

Clinic chatbot that books appointments, sends medical questions to staff

One open-source agent answers schedules and prices on every chat app, books through your calendar and passes symptom questions to staff.

Sunrise DentalOnline
  1. Zalo OA · replies by the Ecbot agent
  2. Thursday 9:47 PM
  3. hi, is Dr Hung in on Saturday? and how much are braces?21:47
  4. Google Calendar · Composiofind_free_slots result: Sat · Dr Hung · 10:30, 14:00
  5. Hi! Dr Hung has 10:30 or 14:00 free this Saturday. Metal braces start from VND 25 million; the doctor confirms the final price. Which time?21:47
  6. 10:30 pls. Linh, 09xx xxx 45621:49
  7. Google Calendar · Composiocreate_event result: Sat 10:30 · Dr Hung · Linh
  8. Booked: Dr Hung, Saturday 10:30. I'll remind you here Friday evening. Please arrive 10 minutes early.21:49
  9. Reminder set: Friday 7:00 PM
  10. oh also my gum is swollen, what medicine should I take?21:51
  11. Guardrail blocked a medical question · sent to staff
  12. I can't advise on medicine, so I've passed this to our staff. Swelling spreading fast, high fever or trouble breathing? Call 115 now.21:51

Example conversationExample conversation with a made-up clinic; blue chips are logged tool calls the patient doesn't see.

Where clinics lose patients in the inbox

Three moments every clinic on Zalo and Messenger knows.

The 9:47 PM booking question

A patient asks about Saturday and braces at night. Reception reads it at 8 AM; she already booked elsewhere.

A medicine question bots shouldn't answer

“My gum is swollen, what should I take?” Answering can hurt someone. Ignoring it leaves the patient alone.

Reminders sent by hand

Every afternoon reception texts tomorrow's patients one by one, between check-ins and payments.

How it works

Admin questions answered. Medical questions go to people.

A guardrail screens every message first and hands symptom or medicine questions to staff. The agent handles the rest from your documents.

Patients message on

  • Messenger
  • Zalo
  • WhatsApp
  • Telegram
  • Website

Every message kept

Answered in turn

Your clinic's agent

Guardrail on every message

KnowledgeToolsPlaybooks

The agent does the admin

  • Answers hours and prices from your docs
  • Checks free slots and books via your tool
  • Sends the reminder in the chat
  • Medical questions go to staffSame inbox, full history
Guardrails and handoff

Symptom and medicine questions always reach a person.

Write the guardrail in plain words; an AI classifier checks every message against it. Blocked chats go to staff with full history.

  • Backup keywords: pain, swelling, bleeding, fever, medicine
  • Test 20 old symptom questions before going live
  • Staff can pause the agent on any chat

The agent hands over when

  • The customer asks for a person
  • The agent isn't confident
  • A guardrail blocks a message
  • A label you mark as urgent
  • Your handoff keywords
Conversations
Nguyen Thao LinhNeeds you

oh also my gum is swollen, what medicine should I take?

I can't advise on medicine, so I've passed this to our staff. Swelling spreading fast, high fever or trouble breathing? Call 115 now.

Handed to staff: A guardrail blocks a message

StaffHi Linh, Ha from Sunrise Dental. Dr Hung can check the swelling tomorrow at 8:30. Shall I move your booking?
An agent that does the work

It books the slot and logs every step.

Connect Google Calendar via Composio, a Google Sheet, a REST API or an MCP server. Each call is logged with input and result.

  • Each agent uses only the tools you add
  • Failed calls show their error, so reception can follow up
  • Needs schedules and prices, not medical records
Activity log · Sunrise Dental agent
TimeToolResult
21:47find_free_slotsGoogle Calendar · Dr Hung · SaturdayOK
21:49create_eventGoogle Calendar · Sat 10:30 · braces consultation · LinhOK
21:49append_rowGoogle Sheets · Bookings sheet · Linh · 09xx xxx 456OK
21:49schedule_followupEcbot · Fri 19:00 · appointment reminderOK
22:15find_free_slotsGoogle Calendar · Dr Mai · Sunday · timed outError
One patient, every app

Messenger last month, Zalo tonight: one patient profile.

Each Zalo, Messenger, WhatsApp or Telegram identity attaches to one profile. When phone or email match, Ecbot suggests a merge for staff to confirm.

  • Returning patients come with their past bookings
  • Tags follow the patient from app to app
  • Nothing merges until staff confirm

Merge suggested

Telegram “@linhnt” has the same phone number.

Nguyen Thao Linh

09xx xxx 456 · linh.nt@example.com

  • Returning patient
  • Prefers mornings
  • Braces consultation

Contact points

  • Zalo · Linh NguyenBooked Sat 10:30 with Dr Hung · today
  • Messenger · Thảo LinhAsked about whitening prices · last month
  • Website chat · Visitor #2207Asked about parking · last month

Staff notes

Prefers Dr Hung, mornings, reminder the evening before.

Keep after-hours bookings from slipping

Playbooks per visit type, every message answered, reminders in the patient's chat.

Playbooks loaded on demand

Write how you book a braces consultation in markdown. The agent opens it only when a chat needs it.

skills/braces-consultation.mdLoaded for this chat
# Braces consultation
1. Ask which doctor they prefer
2. Check free slots with find_free_slots
3. Take their name and phone number
4. Say the doctor confirms the final price
5. Ask them to arrive 10 minutes early

No dropped messages

Every message is kept and answered in turn, even when 30 patients write at lunch.

  1. is dr hung in on saturday?Answered
  2. how much are braces?Answered
  3. +30 messages at lunch break

    10:30 plsBooked
  4. is there parking?Replying

Reminders in the patient's chat

Rule: remind 1 day before. Follow-ups run 1 minute to 30 days ahead, max 5 per chat, not synced with your calendar.

- Booked an appointment: remind the patient at 7 PM the day before

  1. Thu 21:49

    Booked Saturday 10:30 with Dr Hung

  2. Fri 19:00

    Agent: “See you tomorrow at 10:30 with Dr Hung. Please come 10 minutes early.”

  3. Moved in the clinic software

    Reminder keeps the old time; message the patient

Set up your clinic's agent in three steps

Test it in a private chat before patients see it.

  1. 01

    Describe your clinic in one sentence

    The builder suggests persona, tone, goals and rules. You edit what's off.

    Describe your business

    A dental clinic in Thu Duc, patients message us on Zalo and Messenger

    Suggested by the agent builder. Edit anything.

    Persona
    Ha, the front desk assistant at Sunrise Dental
    Tone
    Polite and calm, short answers
    Goals
    • Answer hours, doctors' schedules and prices
    • Book appointments and send reminders
    Rules
    • Never give medical advice or name a medicine
    • Quote prices only from the price list
    • In an emergency, tell the patient to call 115
  2. 02

    Add admin docs and a booking tool

    Upload prices and doctor schedules, not medical records. Connect Google Calendar or your booking API.

    • price-list-2026.pdf148 KBIndexed
    • doctor-schedule.pdf36 KBIndexed
    • before-your-visit.docx22 KBIndexed

    In Postgres with pgvector, on your server if you self-host

      Tools the agent can use

      • Google Calendarvia Composio
      • Composiomarketplace
      • Google Sheetsvia Composio
      • REST APIyour own
      • MCPany MCP tool
    • 03

      Write the medical guardrail, test, go live

      Block symptom, medicine and test-result questions, test with old messages, then connect channels.

      • MessengerAvailable
      • ZaloAvailable
      • WhatsAppAvailable
      • TelegramAvailable
      • Website chatAvailable

      On the roadmap: Instagram, TikTok Shop, Shopee, LINE

    Security

    Your business data stays yours.

    How Ecbot guards credentials, screens messages and keeps businesses apart.

    Encrypted credentials

    Platform tokens use AES-256-GCM with versioned keys, so keys rotate without taking channels offline.

    Secrets never reach the AI

    Credentials never enter the model's context, so no prompt can pull them out.

    Guardrails in both directions

    Incoming messages are screened for scams and prompt attacks, replies for leaked data. You set the strictness.

    Workspaces and roles

    Each business gets its own workspace. Staff join by invitation with a role, checked on every request.

    Open source. Self-host it if you want.

    On GitHub under AGPL-3.0, with every Cloud feature. Your knowledge stays in your own Postgres.

    View on GitHub

    Questions from clinic owners

    Ecbot is an open-source AI agent that answers patients on Zalo, Messenger, WhatsApp, Telegram and your website. It answers hours and prices, books through your connected tool, sends reminders and hands medical questions to staff.

    Last updated: 2026-09-22

    Put an agent on your clinic's inbox.

    Join the Ecbot Cloud waitlist, or self-host it today.

    Or self-host the open-source version from GitHub