Healthcare · 2026
AI WhatsApp assistant for clinic bookings
A WhatsApp assistant for a multi-branch clinic group. It answers common questions, books and reschedules appointments against the doctors’ real schedules, and hands the conversation to the call centre with a summary whenever a person is needed.
Built by
- Client
- Withheld at the client’s request
- Channels
- WhatsApp · Web chat
- Languages
- Arabic · English
- Typical timeline
- 8–10 weeks
- Squad
- 6 people · 5 disciplines
Technologies
- n8n
- NestJS
- LLM APIs
- WhatsApp Cloud API
- PostgreSQL
- pgvector
- Redis
- Next.js
- Docker
The product
10 images01
Brief
Patients wrote at midnight. The call centre opened at nine.
Context
The group runs several branches and one call centre. Most WhatsApp messages ask the same things: prices, which days a doctor is in, directions, and booking.
Problem
Messages waited hours for a reply, staff copied bookings from WhatsApp into the clinic system by hand, and patients who got no answer booked elsewhere.
Goals
- Answer in seconds, day and night
- Book straight into the clinic system
- A clean handover to staff
- No medical advice from the bot
02
Team
The squad behind it.
| Tech leadAgent design, guardrails and the clinic-system integration | ×1 | Agent design, guardrails and the clinic-system integration | Senior | |
|---|---|---|---|---|
| Conversation designerConversation flows, tone in both languages and the staff inbox | ×1 | Conversation flows, tone in both languages and the staff inbox | Senior | |
| Frontend engineerStaff inbox, handover screen and reports | ×1 | Staff inbox, handover screen and reports | Senior | |
| Backend & AI engineerAgent tools, booking API, n8n workflows and the knowledge base | ×1 | Agent tools, booking API, n8n workflows and the knowledge base | Senior | |
| DevOps engineerEnvironments, conversation logs and alerts | ×1 | Environments, conversation logs and alerts | Senior | |
| QA engineerConversation test set and checks before every prompt change | ×1 | Conversation test set and checks before every prompt change | Senior |
03
UI/UX design
A conversation that never leaves the patient guessing.
Who worked on it
We wrote the flows before any prompt: greeting, booking, rescheduling, questions and handover. Every reply offers the next step as buttons, so most patients book without typing a word.
- Buttons before typingQuick replies for branch, doctor and time.
- Two dialects, one toneEgyptian and Gulf Arabic, and English, in the same warm voice.
- Always a way out“Talk to a person” is one tap away on every message.
04
Frontend
One inbox for every handover.
Who worked on it
The call centre works from a web inbox. Conversations the assistant hands over arrive with a summary, the patient’s details and the slot they wanted, so staff never ask the same question twice.
- Summary firstStaff read the assistant’s summary before the chat.
- Live updatesNew handovers appear without reloading the page.
- Right-to-leftThe whole inbox mirrors for Arabic.
05
Backend & architecture
The model talks. The clinic system decides.
Who worked on it
The assistant reads each message, picks an intent and calls tools: find slots, book, reschedule, cancel, look up prices. Every tool calls the clinic system’s API, so availability is always the real one. n8n runs the reminders and follow-ups.
Decision 1
Bookings only through tools, never free text
A slot must exist before the assistant can promise it.
Trade-off · Every new capability needs a tool and its tests.
Decision 2
Answers come from an approved knowledge base
Prices and policies change, and the assistant must not invent them.
Trade-off · The clinic team keeps the knowledge base up to date.
Decision 3
Medical questions always go to a person
The assistant handles logistics, not diagnosis.
Trade-off · Some chats reach staff that the assistant could have answered.
06
DevOps
Every reply can be traced.
Who worked on it
Each conversation step is logged with the tool calls behind it, with personal data masked. Model costs, response times and handover rates sit on one dashboard, and alerts fire when WhatsApp or the clinic API slows down.
- Masked logsNames and phone numbers hidden in every log.
- Cost per conversationModel usage tracked per day and per branch.
- Fallback modeIf the model is down, patients get the menu and a person.
07
QA
No prompt change ships untested.
Who worked on it
A set of scripted conversations, in both dialects and in English, runs before every change to prompts, tools or the model. A release goes out only when every test booking is correct and every medical question is handed over.
- Scripted conversationsChecked automatically on every change.
- Booking checksEvery test booking verified in a staging clinic system.
- Red-team casesAttempts to pull medical advice or off-policy prices.
Tell us what you’re building.
A short message is enough. A senior engineer replies within 1 working day.
