Private medical practice
How a physician linked ad spend to booked appointments
Facebook and Google ads sent enquiries to WhatsApp, but nobody knew which ad produced a patient — or whether the patient turned up.
- WhatsApp Cloud API
- n8n
- Google Calendar
- Pipedrive
- Meta Ads
- Google Ads
Quick Overview
- Industry
- Private medical practice
- Business area
- Patient acquisition, appointment booking, and attendance
- Automation type
- WhatsApp AI agent with calendar booking, reminders, and campaign attribution
- Services
- Workflow design, AI agent configuration, WhatsApp platform setup, calendar integration, and CRM reporting
- Tools
- WhatsApp Cloud API, n8n, Google Calendar, Pipedrive, Meta Ads, and Google Ads
- Key result
- Appointments booked in the conversation itself, confirmed by reminder, and traceable back to the campaign that produced them
The Challenge
The practice was already spending on advertising. Campaigns ran on Meta and on Google, and both sent people to the same place: a WhatsApp number.
That number worked, in the sense that patients wrote to it and appointments eventually happened. What it could not do was scale, and it could not answer the one question that decides an advertising budget.
- The consultation price was asked several times a day, and answered by hand every time.
- Appointments were agreed inside the chat and copied into the calendar afterwards, which is where double bookings come from.
- Messages that arrived in the evening or at the weekend waited until the practice reopened, by which point some enquiries had gone elsewhere.
- Patients forgot appointments they had agreed to days earlier.
- Nothing connected a patient to the campaign that brought them, so two campaigns that produced very different results looked identical in the ad platforms.
The last point is the one that mattered most. Clicks and replies were measurable; patients seen were not. Spend was being allocated on the wrong evidence.
The Previous Process
Before the system was built, an enquiry travelled like this:
- The patient saw an ad on Facebook or Google and opened a WhatsApp conversation.
- Someone at the practice read the message, in working hours.
- The price and availability were answered manually.
- A time was agreed over several messages, back and forth.
- The appointment was written into the calendar by hand.
- The patient was expected to remember it.
Every step was small. Together they meant that the speed of the practice's response depended on somebody being free to look at a phone, and that the source of each patient was lost by the second message.
The Solution
The number was moved onto the WhatsApp Cloud API, which is what makes the rest possible: a number on the free Business app cannot be connected to other systems or send scheduled messages, so the platform was a requirement rather than a preference. The tool at WhatsApp Business app vs Cloud API walks through the same decision.
On top of it, we built an agent in n8n that handles the conversation end to end:
- It qualifies the enquiry first — what the patient is coming for, and whether this is a first visit or a follow-up — because that decides how long the appointment needs to be.
- It answers the consultation price directly, which is the question that arrives most often.
- It reads the physician's real free slots from Google Calendar and offers what actually exists, rather than a fixed list someone has to keep up to date.
- It writes the appointment back to the calendar, so the slot is taken the moment the patient accepts it.
- It records the conversation and the appointment in Pipedrive, together with the campaign that produced them.
The agent works at any hour. A patient who writes at eleven at night gets a price and a booked appointment in the same conversation, which is where most of the recovered demand comes from — those enquiries were not slow before, they were often lost.
One boundary was drawn deliberately: the agent does not give medical advice. It handles price, availability and logistics. Anything clinical goes to the physician.
From Ad Click to Booked Appointment
The two platforms needed different mechanisms, because only one of them can hand information to a WhatsApp conversation on its own.
Meta
Click-to-WhatsApp ads open the chat directly, and the incoming message carries a reference to the ad that produced it. The source is known before the patient has typed anything, and nobody has to ask where they heard about the practice.
Google Ads has no equivalent, so its traffic passes through a landing page that captures the campaign parameters and hands them to the chat when the patient opens it. The extra step is the price of knowing which search campaign is working.
Both paths end in the same place. Every conversation reaches Pipedrive with its origin attached, and when the agent books an appointment, that appointment is recorded against the same record. The chain from campaign to booked appointment stays intact without anyone maintaining it.
What that changes is the question the practice can ask. Not how many people clicked, but which campaigns produced patients who booked — and those are rarely the same ranking.
Reminders That Ask for an Answer
A reminder that only announces a date does very little. The sequence built here asks the patient to confirm, which turns a message into a signal the practice can act on: a confirmed appointment, or one that needs attention while there is still time to fill the slot.
Because reminders go out days after the last message, they fall outside the window in which WhatsApp allows free-form replies. They are sent as approved message templates — a constraint of the platform that has to be designed for from the start, since template wording is submitted for approval rather than written on the day.
Automation Workflow
- 01
Trigger
A patient opens a WhatsApp conversation from a Meta ad, from a Google campaign through the landing page, or directly.
- 02
Source Capture
The campaign reference travelling with the conversation is read and stored before the first reply is sent.
- 03
Qualification
The agent establishes what the patient is coming for and whether it is a first visit or a follow-up.
- 04
Price
The consultation price is answered directly, from the information the physician configured.
- 05
Availability
Free slots are read from Google Calendar at that moment and offered to the patient.
- 06
Booking
The chosen slot is written back to the calendar, which closes it to anyone else immediately.
- 07
CRM Record
The conversation and the appointment are recorded in Pipedrive together with the campaign that produced them.
- 08
Reminders
A sequence of approved templates asks the patient to confirm ahead of the appointment.
- 09
Escalation
Anything clinical, or any conversation the agent cannot resolve, is handed to a person.
Where a Person Still Comes In
The agent runs unattended for what it was built to do: reading the calendar, answering a price, booking a slot, sending a reminder. None of those can do damage that cannot be undone.
Everything else escalates. A question the agent does not recognise, a patient who insists, anything that sounds clinical — the conversation goes to a person rather than being guessed at. That split between what may run on its own and what has to stop and ask is the same one described in which processes are worth automating, and it is what makes an agent on a public channel safe to leave running.
The Result
Enquiries are answered whenever they arrive, and the appointment is booked in the same conversation instead of over a day of messages. The calendar is written once, by the system that read it, so the slot a patient accepts is genuinely theirs.
Reminders now come back with an answer, which gives the practice time to react to an appointment that is about to be missed rather than discovering it in the waiting room. The same problem, approached with a different stack, is covered in centralizing bookings and cutting no-shows.
And the advertising can finally be judged on what it produces. Each booked appointment carries the campaign that brought it, so the budget follows patients rather than clicks.
Results here were qualitative rather than measured through formal performance indicators.
Are you paying for ads whose results you cannot trace, or answering the same questions by hand before every booking? Syntropic Ops designs automation systems that answer, book, and record where each customer came from — while keeping people in control of the decisions that matter.