7 July 2026 · Airtective Team
How to Automate Appointment Reminders for Salons (WhatsApp + SMS)
The Problem With Basic Reminders
Most salon owners are using some kind of booking tool. Fresha, Square Appointments, Acuity, Vagaro. They all do the same thing: send one reminder 24 hours before the appointment.
That's it.
No follow-up if the client doesn't confirm. No recovery message when they ghost. No reactivation when they disappear for 8 weeks. And definitely no review request after a good visit.
You're leaving a lot on the table.
One salon we worked with was running at about 31% no-show rate on weekday mornings. They had the reminder turned on in their booking tool. It just wasn't doing enough. After building the full sequence in Make with WhatsApp, they got it down to 9%.
That's not a miracle. It's just more touchpoints at the right times.
What a Full Reminder Workflow Actually Looks Like
The booking tool is the trigger. Everything else runs in Make or n8n on top of it.
Here's the sequence:
Step 1: Booking Confirmation (Immediate)
The moment someone books, they get a WhatsApp message. Something with a name, service, time, and address. Not just "booking confirmed."
Example message:
Hi [Name], your [service] is confirmed for [date] at [time].
We're at [address]. Reply here if you need to reschedule.
WhatsApp open rates are around 85% for messages like this. Email hovers at 25%. There's no comparison.
Step 2: 24-Hour Reminder
The day before. Same channel. Short.
Hey [Name], just a reminder for tomorrow at [time]. Reply YES to confirm or call us to reschedule.
If they reply YES, log the confirmation in your tracking sheet. If no reply after 2 hours, move them to the unconfirmed branch.
Step 3: 2-Hour Reminder (Unconfirmed Only)
This step only runs for people who didn't confirm from Step 2. You're not sending three reminders to everyone. Just chasing the ones who haven't responded.
[Name], we have you down for [time] today. Let us know if you're still coming.
Confirmed clients never see this message.
Step 4: No-Show Recovery
30 minutes after the appointment start time, check against your bookings sheet. If the appointment shows as no-show, send a recovery message within the hour.
Hi [Name], looks like we missed you today. We have openings on [next 2 available slots]. Want to rebook?
This sounds simple. Almost no salons do it. Every owner we've talked to handles no-shows manually, which usually means not handling them at all.
Step 5: 6-Week Reactivation
This is the one that actually makes money.
If a client hasn't booked again after 42 days from their last visit, they go into a reactivation branch. The timing matters, 42 days is roughly when a regular client is overdue.
Hey [Name], it's been a while. We'd love to have you back. Want to book your usual?
You can add conditional logic. Regular color clients get a message about root touch-ups. Occasional trim clients get something more generic. Even a basic version converts well.
Step 6: Review Request
24 hours after a completed appointment, send a review request. Don't wait a week. Don't put it in email where it gets buried.
Thanks for coming in yesterday, [Name]. If you enjoyed your visit, a quick Google review really helps us. [link]
Timing matters here. 24 hours after the visit, the experience is fresh. After 3 days most people have forgotten.
Building This in Make
The trigger is a webhook from your booking tool. Every serious booking platform has an API that fires webhooks when appointments are created, updated, or completed.
In Make, the scenario structure:
- Webhook trigger (new booking)
- Google Sheets module (log the appointment with all timing info)
- WhatsApp module (send the confirmation)
- Schedule: a separate scenario runs every 30 minutes to check which messages are due
The delayed messaging is the part that trips people up. Make has a "sleep" module but it's limited for long delays (like 24 hours or 42 days). The cleanest approach is to use Google Sheets as a state tracker. Log each appointment with columns for each scheduled message and a due timestamp. A second Make scenario runs every 30 minutes, pulls rows where send_time <= now, sends the message, marks it sent.
Total modules across both scenarios: about 14. Build time the first time: 3-4 hours.
If you're on n8n instead, the "Wait" node handles delays natively. Actually a bit cleaner for this use case. You set the delay duration and n8n queues the execution.
What You Need to Set This Up
- A booking tool with webhook support or a native integration (Acuity, Fresha, Square, Cliniko all have this)
- A WhatsApp Business account connected through a BSP (Business Service Provider)
- Make or n8n
- Google Sheets (for state tracking, optional but makes debugging much easier)
On the WhatsApp BSP Question
This comes up every time. WhatsApp's Business API requires routing through a BSP. They charge a monthly fee plus per-message cost.
For a salon sending 200-300 messages a month, Wati starts around $49/month and covers most setups. If you're in a region with cheaper options, 360dialog and MAYTAPI both have lower base costs.
Some owners try using unofficial WhatsApp Web automation libraries. Works until it doesn't. WhatsApp bans numbers that behave like bots without a BSP. Not worth the risk on a number your clients know.
What This Actually Costs
For a salon seeing 50 clients a month:
- Roughly 6 messages per client through the sequence
- 300 messages/month total
- WhatsApp BSP messaging cost: around $0.05/message in most regions = $15
- BSP subscription: $49/month (Wati) or less with alternatives
- Make plan: $9-16/month depending on operations volume
Total monthly: $70-80.
If the reactivation sequence brings back 3 clients who would have churned, that's easily $150-300 recovered per month in most salons. The numbers work pretty quickly.
Common Mistakes
Too many messages. Four messages before one appointment is spam. The sequence above is designed around specific triggers. The 2-hour reminder only goes to unconfirmed clients. The recovery message only fires if they actually no-showed. Each message has a reason to exist.
Using email instead of WhatsApp. For salons specifically, clients are used to WhatsApp. Email feels formal for a haircut appointment. Open rates reflect this.
Skipping no-show recovery. Feels awkward to reach out after a no-show. Converts better than most other messages in the sequence. People who no-show are often embarrassed. A low-pressure rebook offer works.
Automating a broken booking process. If clients book over DM, phone, walk-in, and a booking tool simultaneously with no central system, fix that first. Reminders on a chaotic foundation just remind more people to not show up.
This exact confirmation, reminder, and reactivation sequence is what our AI appointment booking and no-show reduction service builds for salons and similar service businesses.
If you want us to build this for you, book a free workflow audit at airtective.com
Related articles
21 July 2026
Why Your Zapier Workflows Break as You Scale
Zapier gets you started fast, then quietly falls apart once lead volume and branching logic grow. Here's why it breaks and what we build instead.
21 July 2026
Why Your Zapier or Make Connection Keeps Disconnecting
Repeated Zapier or Make reconnect prompts trace to expired OAuth tokens, revoked scopes, or password changes. Here's what actually fixes the loop.