
AI Receptionist
The patient-facing counterpart to Clinic Copilot.
Clinic Copilot serves staff and its capability policy denies the patient role. The AI Receptionist is the separate feature that answers inbound patient messages on SMS, WhatsApp, and email.
Inbound patient conversations
Three channels. One clear boundary.
The receptionist responds to messages coming from patients. It is not a staff assistant, and it does not extend Clinic Copilot to the patient role.
- Answers inbound patient SMS messages
- Answers inbound patient WhatsApp messages
- Answers inbound patient email messages

Explicit control
Off until the clinic turns it on.
Each clinic opts in separately, channel by channel. The switches are stored in the system_settings table; no configuration row means SMS, WhatsApp, and email are all off.
- Independent switch for every clinic
- Independent switch for each channel
- No row means every channel stays off

Fail-closed by design
A configuration error does not turn automation on.
If the configuration lookup fails, the receptionist stays off. The inbound message still lands in the staff inbox, where the clinic team can handle it.
- Configuration reads return the all-off state on error
- Inbound messages remain available to staff
- The receptionist never fails open

Conversation-aware booking
Follows the patient’s language and the agreement they made.
The receptionist answers in the language of the patient’s latest message, samples candidate appointments across the whole day, and books the duration the patient agreed to.
- WhatsApp identity and state are keyed to each conversation JID
- Whole-day slot sampling instead of only the next free slot
- WhatsApp privacy identifiers are never treated as phone numbers

Channel controls
- SMS
- Inbound patient channel
- Inbound patient channel
- Inbound patient channel
- Off
- Default with no configuration row

Keep the roles clear
Staff use Copilot. Patients reach the Receptionist.