WhatsApp Booking Automation
WhatsApp is where NIIA talks to your clients. This guide shows how NIIA handles real conversations — finding open slots, booking appointments, sending confirmations and reminders, dealing with changes, and answering price questions.
WhatsApp Business Integration
niia connects to your WhatsApp Business account through Meta's Cloud API or Gupshup. Set this up from Settings → WhatsApp.
1. Suggesting open slots
When a client asks about availability, NIIA quickly checks your Google Calendar and replies with a few open times that work for them.
Example — a haircut request
Client: "Hi! Do you have any openings for a balayage this Saturday afternoon?"
NIIA: "Hello! Yes, we have openings on Saturday afternoon with our stylist Maria: 1️⃣ 2:00 PM 2️⃣ 3:45 PM 3️⃣ 5:00 PM Which time suits you best?"
NIIA makes sure the stylist, the treatment time, and the station are all free before offering a slot — so what the client sees is what's actually available. It never floods them with your whole schedule; it just offers 2–3 good options.
2. Confirmations & reminders
As soon as a client books, NIIA confirms the appointment and saves it in your Google Calendar. The confirmation message includes:
- Salon name and location — with a one-tap map link.
- Service and price — what's booked, how long it takes, and the cost.
- Stylist — who the client will see.
- Date and time — shown in local time.
- Easy changes — clear instructions to reschedule or cancel by replying.
══════════════════════════════
✨ APPOINTMENT CONFIRMED ✨
══════════════════════════════
Client: Sarah Jenkins
Service: Balayage & Blowdry (120 mins)
Stylist: David
Date: Saturday, Oct 14
Time: 2:00 PM
📍 Glow & Co. Salon, 124 Main Street
🗺️ View on map
Need to change? Reply RESCHEDULE or CANCEL.
Reminders that reduce no-shows
| When | What the client gets | What you get |
|---|---|---|
| 24 hours before | A reminder to confirm, reschedule, or cancel | Fewer last-minute surprises |
| 2 hours before | A "heads up" with directions and arrival tips | Clients arrive on time |
| 2 hours after | A thank-you with a review link and a rebooking invite | Repeat bookings |
3. Handling changes & cancellations
Life happens — clients move things around. NIIA makes it painless.
Example — moving an appointment
Client: "I need to move my 3 PM appointment tomorrow."
NIIA: "No problem! Here are some open slots over the next few days: 1️⃣ Tomorrow, 6:00 PM 2️⃣ Thursday, 11:30 AM 3️⃣ Friday, 4:15 PM Which works best for you?"
When a client reschedules or cancels, NIIA frees the old slot in your calendar right away. If they cancel and you have a waitlist, NIIA can let someone on it know a spot just opened.
4. Catching missed calls
When you're mid-treatment or the phone rings off the hook, missed calls happen. NIIA follows up automatically.
- An incoming call goes unanswered.
- Within about 30 seconds, NIIA sends a polite WhatsApp message to the caller:
"Hi! We just missed your call at Luxe Salon & Spa. We're with clients right now, but I'm NIIA, the salon's assistant. Would you like to check availability or book an appointment now?"
- The caller can reply and book right on WhatsApp — instead of moving on to a competing salon.
5. Answering price questions
Clients often ask how much a service costs. NIIA can answer from the details you set up.
Languages
niia auto-detects the language each customer writes in and replies in the same language. No configuration needed.
Workflows
Built-in triggers you can use to automate follow-ups:
| Trigger | Fires when |
|---|---|
message_received | A customer sends a new message |
inactivity | A customer has been inactive for a set number of days |
service_rebooking | A customer is prompted to rebook a specific service |
Webhooks
niia can notify your CRM when a new lead comes in from an ad campaign. Set a webhook URL in Settings.
Payload format:
{
"event": "lead_captured",
"campaignId": "cmp_abc123",
"campaignName": "Spring Promo",
"platform": "facebook",
"phone": "+971501234567",
"customerName": "Aisha M.",
"timestamp": "2026-05-14T14:23:00Z",
"tenantSlug": "your-salon",
"tenantName": "Your Salon",
"conversationId": "6650f1a2b3c4d5e6f7890123"
}