Clinic Assistant: A WhatsApp-First Appointment System for Clinics
Clinic Assistant explores a simple idea: patients should be able to manage appointments through a channel they already use, without sacrificing the reliability required behind the scenes.
InLoop built a working WhatsApp-first appointment workflow combining conversational interactions with structured scheduling, concurrency-aware booking, staff operations, and operational reporting.
Working, integration-tested proof of concept
The Challenge
Many smaller clinics coordinate appointments through phone calls, messages, spreadsheets, and front-desk processes. These channels can create repetitive work and make availability harder to coordinate across patients, walk-ins, cancellations, and rescheduling.
A convenient conversation is only one part of the problem. Behind it, patients and staff need to work with the same appointment state. Otherwise, a slot discussed in one channel may already have been taken in another.
The core idea: use WhatsApp as the patient interface while keeping scheduling logic and appointment integrity in a structured backend. The proof of concept tests that separation through a focused clinic scheduling workflow.
What We Built
Clinic Assistant is a WhatsApp-first appointment management system. The implemented workflow supports:
- Checking appointment availability and booking through WhatsApp.
- Cancelling and rescheduling appointments.
- Authenticated clerk-assisted appointment management.
- Blocking unavailable clinic time.
- Projecting appointment data into Google Sheets for operational visibility.
Staff-created or walk-in appointments can use the same scheduling state as conversational bookings. Staff operations therefore belong to the appointment workflow, rather than becoming a separate calendar that must be reconciled later.
This is an example of our custom software development approach: start with a specific operational problem and build the system around the decisions that need to stay consistent.
How It Works
A patient starts in WhatsApp, checks availability, and selects a slot. The backend validates the booking before a confirmation is returned. The conversation provides the interface; scheduling logic decides whether the requested appointment can be committed.
- Patient
- Check availability
- Select slot
- Booking validation
- Confirmation
Cancel: the patient can cancel an appointment. Reschedule: the patient can request a different slot. Both are implemented appointment operations, alongside the initial booking flow.
Engineering Behind the Workflow
The system is built with Meta WhatsApp Cloud API and deployed on Cloudflare Workers. Incoming interactions reach application logic that handles patient requests and authenticated staff operations. Schedule-sensitive work is routed to a Cloudflare Durable Object, with appointment state stored in SQLite.
Durable Object + SQLite maintain authoritative scheduling state. A Google Cloud service account supports the separate projection of appointment data into Google Sheets. Google Sheets is used as an operational projection rather than the authoritative appointment database.
This boundary keeps a familiar reporting surface available without giving the spreadsheet responsibility for booking decisions. It is a deliberate distinction between where appointment state is maintained and where it can be viewed.
Booking Integrity
Two patients may see the same appointment slot at nearly the same time. Showing a slot as available does not guarantee that it will still be available when the booking is confirmed.
Cloudflare Durable Objects coordinate schedule-sensitive booking operations. Competing requests are routed through the Durable Object before appointment state is committed. The booking decision is made against scheduling state, rather than relying on what an earlier availability response showed.
In this example, Patient A's booking succeeds and Patient B is asked to choose another slot. The point is not who wins: it is that two independent conversations must not each treat the same availability result as a confirmed reservation.
Built for Reliability
The current implementation has 328 passing automated tests with approximately 98% measured test coverage. Testing covers booking, cancellation, rescheduling, clerk workflows, authorization behavior, and integration flows.
Live inbound and outbound WhatsApp messaging has also been validated through the Meta integration. These are engineering validation metrics for the proof of concept. They describe what has been tested, not clinic adoption, business impact, or readiness for every production setting.
Current Status vs What's Next
The workflow is a working, integration-tested proof of concept. The roadmap below is future work, separate from the implemented capabilities.
Current
- Working proof of concept.
- Meta WhatsApp integration validated.
- Booking, cancellation, and rescheduling implemented.
- Authenticated clerk operations.
- Concurrency-aware scheduling and block-time management.
- Google Sheets projection.
- Automated test suite.
What's Next
- Clinic-specific onboarding and configuration.
- Stronger observability and audit capabilities.
- Production security hardening.
- Doctor and staff dashboards where required.
- Reminders and calendar integrations.
- Multi-clinic support.
- Selective AI-assisted conversational features.
The next stage is to shape the workflow around clinic-specific needs and strengthen operational readiness. AI-assisted conversation is a potential extension; the current case study demonstrates structured workflow automation and serverless scheduling.
Technology Stack
Still Managing a Workflow Through Messages and Spreadsheets?
Not every operational problem needs another large software platform. InLoop helps teams turn manual workflows into focused software, automation, and AI-assisted systems while keeping critical business logic reliable and human-controlled.
30-minute call ยท no obligation