The enquiry arrives at 11pm. The clinic opens at nine.

How a skin clinic in Calabar went from a two day reply to under thirty seconds, got 152 bookings in 48 hours, and what broke along the way.

RoleDesign and build, end to end
ClientA skin clinic in Calabar
StackManyChat, OpenAI, Make.com, Tally, Google Sheets
StatusRan three months, now paused

Before

23:47 · PatientHi, do you do lip filler? How much and when's your earliest?

Nobody is at the desk. The message waits.

09:15 · ClinicGood morning! Yes we do. Let me check for you.

By now she has messaged two other clinics.

After

23:47 · PatientHi, do you do lip filler? How much and when's your earliest?

The assistant answers in under 30 seconds.

23:47 · AssistantWe do. The price depends on your skin after a proper check up. Fill this short form and the doctor will look at your case first thing.

23:52 · PatientDone.

She is in the patient tracker, and the doctor has an email before the clinic opens.
The assistant replying on the clinic's WhatsApp with the clinic address, the consultation fee and a link to the booking form.
The assistant on the clinic's WhatsApp. It gives the address, says honestly that the price depends on the skin, states the consultation fee, and hands over the form. Then it stops. Names and numbers in the contact list are covered.

The problem was never marketing

The clinic was running ads and getting plenty of enquiries. They came in during the evenings and at weekends, which is when people think about their skin and when the front desk is empty.

The owner put it plainly on our first call. He didn't have a standby receptionist, he didn't have time to answer messages as they came in, and his patients looked at booking links "like a strange language." They would rather send a photo on WhatsApp, or just walk in.

So the fix wasn't a nicer form. It was making sure someone answered straight away, answered the question the patient actually asked, and walked them to the form, with a phone number for anyone who still wouldn't fill it.

What I built

A path that runs from the first WhatsApp message all the way to the follow up after treatment.

  1. AnswerAn OpenAI assistant inside ManyChat replies on WhatsApp in under 30 seconds, day or night, in the clinic's own way of talking.
  2. Walk them to the bookingIt answers from the clinic's own prices and approved answers, then sends a short booking form. If the patient goes quiet, it nudges once after 30 minutes. If they won't fill the form, it gives them the doctor's number.
  3. BookThe form sends each booking to Make.com, which retries three times if a step fails. It logs the patient to the tracker, which gives them an ID, emails the doctor the booking with any photos and a one click WhatsApp button, and sends the patient a personal note.
  4. Follow upThe tracker moves every patient through appointment, procedure and aftercare statuses. Each morning it builds a list of who needs a message today, with the message already written from one of 14 templates and a one click WhatsApp link.
  5. ReportA dashboard shows active patients, completed treatments, and how many follow ups were prepared against how many were sent.
  6. FeedbackRatings split two ways. Four or five stars get a Google review link. One to three stars get a personal apology, and the doctor gets an urgent alert with the complaint so he can call them before it turns into a bad review.
The booking workflow in Make.com, showing the form webhook feeding a router that writes the patient to the tracker, emails the doctor and messages the patient.
The booking workflow. One form submission comes in on the left. The router sends it three ways at once: the doctor's email, the patient's confirmation, and a new row in the tracker. Every step retries three times, fifteen minutes apart, so a booking is never lost to a service being down for a moment.
The Google Sheets patient tracker, one row per booking, with the date, service requested, appointment date and location. Patient names, numbers, emails and chat links are replaced with sample values.
The patient tracker. Every booking lands here by itself, with a one click chat link back to the patient. The names, numbers, emails and links you see are samples. Real patient details do not leave the clinic's own sheet.

The part that mattered most

A skin clinic is a medical practice with a reception desk attached. The assistant was there to answer, reassure and book. It was never there to practise medicine.

What the assistant is not allowed to do

Anything clinical goes to the doctor, either through the form, where patients can upload photos, or straight to his phone for anyone who would rather call.

The booking email the doctor receives, with the patient's details, a link to their photo and a one click WhatsApp button.
What the doctor sees, minutes after a booking. The service in the patient's own words, the appointment, where they are, and one green button that opens WhatsApp with them already selected. Patient name and number replaced with samples.

Results

<30sFirst response, down from up to 48 hours. Nights and weekends included.
152Bookings in 48 hours. The clinic paused the system to catch up, because patients were booking faster than the doctor could see them.
3 monthsRunning with real patients, before the clinic switched it off.
The reporting dashboard, showing active patients, completed treatments, and follow ups prepared against follow ups sent.
The dashboard that showed me the problem. Follow ups prepared sat next to follow ups sent, which is how the gap in the next section became impossible to miss.

One more thing the tracker was good for

Every booking left an email address behind in the sheet, so the clinic was building a list of its own patients without anybody setting out to. In June we used it to write to the ones who had already been treated and ask how their skin was doing.

A Brevo email campaign report for the clinic's June retargeting email, showing 125 delivered and a delivery rate of 94.7 percent.
The June email to past patients. 125 delivered, 94.7 percent of the list. The addresses came out of the tracker, which is most of the argument for keeping one.

What went wrong

1. It wouldn't stop talking

Once real patients were using it, the assistant greeted people on almost every message and replied to every "okay" and "thank you," so conversations never ended. The client noticed before I did.

The fix was mostly taking things away. The first version told it to pick "good morning" or "good afternoon" from the clock. Now it only greets once a day, only if the patient greets first, using their own words. After a closing message it says nothing at all.

2. Nobody clicked send

The follow up list did its job. Every morning it worked out who needed a reminder or an aftercare check, and wrote the message. Staff only had to click.

209 messages prepared. 1 marked as sent.

The automation worked. The one click a day it depended on didn't happen. I now treat any step that needs a busy person as the part most likely to fail.

What I would do differently

Send the first reminder automatically. I'd only ask staff to deal with the replies. One click a morning sounds small. It wasn't.

Have the assistant say it's an assistant. The prompt had it talk as if it were a member of staff. I wouldn't build it that way again. Patients should know who they're talking to, and "I'm the clinic's assistant, the doctor will look at your photo" would have worked just as well.

Put the running cost next to the results from day one. The clinic switched the system off to save the subscription while it was still bringing in bookings. If the cost and the bookings had sat on the same dashboard, that decision would have looked very different.