Case study Patient Acquisition System
The Patient Acquisition System We Built for a Private Clinic
Instagram, WhatsApp & Google into one booking engine
Two parallel acquisition funnels feeding one unified CRM — built for private practices where quality of care is strong but patient acquisition infrastructure hasn't caught up.
Who this was built for
Quality of care was never the issue. Everything before the chair was.
A private clinic running on reputation and word of mouth quality of care was never the issue. The issue was everything that happened before a patient sat in the consultation chair. Enquiries coming in across three different channels with no unified system to handle them. A receptionist manually confirming bookings over WhatsApp. Patients searching at night and finding a competitor who let them book instantly.
This system was built for that clinic and applies directly to any private practice where the quality of care is strong but the patient acquisition infrastructure hasn't caught up. Dermatologists, dentists, cosmetic clinics, physiotherapists, psychologists, nutritionists, ENT specialists, and general practitioners running private practice all face the same problem. Patients don't wait. The first clinic that responds wins the booking.
Pain points we resolved
What was losing patients overnight
- Patients enquiring on WhatsApp and Instagram at night with no response until the following morning already booked elsewhere by then
- Receptionist spending 3 to 4 hours daily managing booking confirmations, payment follow-ups, and appointment reminders manually
- No structured follow-up when a patient showed interest but didn't complete a booking
- Instagram DMs handled conversationally with no qualification, no capture, and no conversion path
- Payments collected at the clinic cancellations and no-shows meant lost slots with zero revenue recovered
- No visibility into how many enquiries came in versus how many actually converted to paid consultations
- Zero after-hours booking capability any patient searching outside office hours was a lost patient
System map · Funnels · Automations · CRM
Every enquiry routes into one booking engine.
Three inbound funnels, conversational qualification, live calendar booking, Stripe payment, and a CRM that overlooks the entire process — with automations running the handoffs.
What we built
Two parallel acquisition funnels. One unified CRM.
The doctor and receptionist manage one system. The patient gets a seamless experience regardless of where they started Google search, Instagram DM, or WhatsApp.
Local SEO foundation
Every page structured around how patients actually search service-specific pages, location targeting, schema markup for clinic name, address, specialisation, and operating hours. The clinic appears where patients are already looking.
Booking flow built into the website
Patient selects their service, chooses a date and time from live availability, and lands on a Stripe checkout to confirm the consultation. No phone call required. No WhatsApp message required. Booking confirmed, payment taken, slot reserved in under three minutes.
Automated confirmation and reminders
The moment payment clears, the patient receives a booking confirmation by email and WhatsApp. A reminder fires 24 hours before the appointment. No-show rate dropped from 40% to 10%.
Instagram DM bot
When a patient messages the clinic on Instagram, the bot responds immediately introduces the clinic, asks about their concern or the service they're looking for, captures their name and contact details, and qualifies their enquiry through a structured conversation. No rigid script the bot handles natural language and follows the patient's lead.
WhatsApp bot on the same logic
Patients who message on WhatsApp go through the same conversational qualification flow. Preferred appointment timing, nature of the concern, any relevant history. The bot collects everything a receptionist would ask without the receptionist being available.
Payment link to close the booking
Once the patient is qualified and a suitable slot is identified, the bot sends a direct Stripe payment link. Patient pays, consultation is confirmed, data flows into the CRM automatically. The entire journey from first DM to confirmed booking happens without a single human touchpoint.
The admin CRM
One view of every patient
Both funnels feed the same system. The doctor and receptionist never manage two platforms.
Unified patient database
Every patient from every channel website booking, Instagram bot, WhatsApp bot lives in one place. Source, contact details, service booked, payment status, appointment date, consultation notes.
Live booking calendar
Today's appointments, this week's schedule, upcoming availability all visible in one calendar view. Synced automatically as bookings come in from either funnel.
Drop-off tracking
Patients who started the booking journey but didn't complete payment are flagged automatically. The receptionist sees who dropped off, at what stage, and can follow up with one click.
Role-based access
Receptionist has operational access manages bookings, views patient details, handles follow-ups. Doctor has a clinical overview sees upcoming consultations, patient notes, and payment status without navigating the operational layer.
Payment and revenue visibility
Every confirmed booking carries a payment record. Cancellations, refunds, and failed payments are all visible in one place. The clinic always knows exactly what revenue is confirmed for the week ahead.
Real-time notifications
New booking confirmed, payment received, appointment cancelled, drop-off detected the receptionist and doctor are notified instantly, in-app and by email.
The automation layer
Five things that now happen without the receptionist being involved
Instant response, confirmation, reminders, payment, and drop-off alerts all running without manual follow-up.
Instant enquiry response
Instagram and WhatsApp bots respond within 60 seconds, 24 hours a day, 7 days a week. No lead goes cold overnight.
Booking confirmation
Payment clears, confirmation sent to patient automatically via email and WhatsApp within seconds.
Appointment reminders
24-hour reminder fires automatically for every upcoming consultation. No manual reminder calls.
Payment collection at booking
Stripe collects payment at the point of confirmation. No invoice to chase, no payment to collect at the clinic for pre-paid consultations.
Drop-off alerts
When a patient starts the journey and doesn't complete payment, the system flags it automatically so the receptionist can follow up within the hour rather than never.
Results
From overnight losses to an automated booking engine
Lead response dropped from 8–14 hours to under 60 seconds. Enquiry-to-booking conversion rose from ~15% to ~50%. No-shows fell from ~40% to ~10%. After-hours bookings now make up 35% of monthly volume. Receptionist booking admin time went from 3–4 hours a day to under 30 minutes.
<60s
Lead response time
~50%
Enquiry-to-booking conversion
35%
After-hours bookings
Before & after
What changed for the clinic
| Metric | Before | After |
|---|---|---|
| Lead response time | 8–14 hours | Under 60 seconds |
| Enquiry-to-booking conversion | ~15% | ~50% |
| No-show rate | ~40% | ~10% |
| After-hours bookings captured | 0% | 35% of total monthly bookings |
| Receptionist booking admin time | 3–4 hours/day | Under 30 minutes |
| Payment chasing time | 2–3 hours/week | Zero |
| Cross-channel patient visibility | Scattered | Single CRM view |
Built on
Quiet infrastructure, clear product
A stack chosen for local SEO, secure patient data, payments at booking, conversational bots across channels, and full funnel visibility.
Next.js
SEO-optimised, fast-loading clinic website built to rank for local search
Supabase
Patient records, booking data, and role-based access in one secure backend
Stripe
Consultation payments and access confirmation at the point of booking
Instagram & WhatsApp API
Conversational bots handling qualification and payment routing across both channels
GA4 + Clarity
Full funnel visibility traffic sources, drop-off points, conversion rates by channel
In their words
What the client said
“We were losing patients every night to clinics that could confirm a booking instantly. Now we capture those patients automatically the bot qualifies them, takes payment, and by the time I arrive in the morning the day is already booked.”
Running a clinic or private practice?
We've built this system before. We can have yours live in 4 weeks.
Start the conversation →forgex.systems