Case study — 08 · Healthcare

WhatsApp Booking Agent

Patients book on the number a clinic already advertises, at any hour, in the language they normally write. Only genuinely free slots are offered, and anything clinical goes to a person straight away.

The problem

What it was like before

A clinic receptionist costs a salary and works office hours. Calls arriving outside those hours are appointments lost, and calls arriving during them interrupt whoever is looking after the patient in the room.

Every alternative asks the patient to install something. For a single appointment, they will not.

How it looks

Five steps, about a minute

The booking form as a patient sees it, cycling through its steps.

What we built

What it does

A guided flow inside WhatsApp

Five steps, about a minute: details, doctor, day, time, confirmation with an appointment ID.

Free text as a fallback

Patients who would rather just type can do that instead.

Real availability only

Slots are checked against the doctor's sessions, blocked days and every appointment already taken, so a double booking cannot be offered.

The clinic's own language

Roman Urdu, Urdu or English, including switching mid-sentence.

Bookings where staff already look

Written to the clinic's own sheet rather than a new system to learn.

Emergencies escalate immediately

Urgent messages get 1122 guidance at once and alert staff. Medical advice is never given, and that is not configurable.

Handover by design

Complaints, late changes and anything unusual go to a person with the thread attached.

Where it got to

In production

24/7Including nights and holidays
About a minuteFrom first message to appointment ID
No appNothing for a patient to install
Our view

Distribution beats features

Most clinic software fails on distribution rather than capability. The booking screen is not the hard part; getting a patient to arrive at it is.

WhatsApp is already open on the phone, which is why the whole product lives inside it and why there is no portal, no login and no app.

Built with

Tech stack

  • WhatsApp Business API
  • WhatsApp Flows
  • Google Sheets
  • PostgreSQL
  • Docker
  • Caddy
The work behind it

Delivered under WhatsApp AI Assistants.

More work

Other things we have built.

Banking

Sanctions Screening Agent

Watchlist alerts arrive all day and most are false matches. The agent clears the obvious ones against a rule engine backed by an LLM and sends every disagreement to a person with the evidence already assembled.

Read it
Banking

Law-Enforcement Request Intake

Requests arrive as letters with scanned attachments. The agent reads the mailbox, OCRs the attachments, verifies identifiers against core banking, classifies the intent and routes it — with an audit trail behind every step.

Read it
Banking

Internal Policy Assistant

Staff ask a policy question in plain language and get an answer drawn strictly from approved documents, with the source named. Nothing leaves the bank, and the assistant says so when the documents do not answer.

Read it
Compliance

CTR to goAML Conversion

A compliance team spent hours a week turning Currency Transaction Reports into goAML XML by hand. Parser, XML builder, schema validator and audit trail, behind a interface officers actually use.

Read it
Compliance

Regulatory Reporting Engine

A registry of every periodic return a bank owes. The engine pulls the data, builds each report against the mandated template, then schedules and submits it behind a maker-checker step.

Read it
Product

Autonomous Social Media Agent

A ReAct loop that researches, reads its own history to avoid repeating itself, writes a strategy memo, critiques its own drafts, publishes, and learns from every rejection.

Read it
Product

Multi-Agent Marketing System

Two agents on one platform with a person approving everything before it ships. One researches and takes a position; the other plans a week of posts reviewed as a batch.

Read it

Have something like this?

Describe the process and we will come back with whether it is worth automating, roughly what it would take, and what we would build first — or tell you plainly if it is not a job for us.