Client Experience
Communications
WhatsApp, SMS, and email messaging — appointment reminders, templates, and conversation history.
Overview
The communications module handles all outbound messages from the salon to clients: appointment confirmations, reminders, campaign messages, and journey-triggered messages. It also provides an inbox view of incoming WhatsApp messages so the front desk can have conversations with clients.
All messaging respects client consent — no marketing message is sent to a client who has not opted in.
Provider Architecture
SalonOS uses a MessagingProvider adapter, meaning the underlying communication provider can be swapped without changing product logic:
| Channel | Primary provider |
|---|---|
| WhatsApp Business API (direct or via BSP) | |
| SMS | Twilio (or equivalent) |
| SendGrid / SMTP |
WhatsApp is the primary channel for India. SMS is a fallback when WhatsApp is not available. Email is used for longer-form content (campaign newsletters, invoice delivery).
Appointment Reminders
Appointment reminders are the most important automated messages. They reduce no-shows significantly.
Reminder Configuration
| Setting | Description |
|---|---|
| Channel | WhatsApp, SMS, or email |
| Timing | When to send (e.g. 24 hours before, 2 hours before) |
| Multiple reminders | Brand can configure up to 3 reminder points per appointment |
| Opt-out handling | Clients with transactional consent withdrawn do not receive reminders |
Reminder Content
Reminder templates include:
- Client's name
- Appointment date and time
- Service(s) booked
- Staff member (if brand allows stylist display)
- Location name and address
- Confirmation / cancellation action (link or reply keyword)
Reminder Failures
If a message fails to deliver (invalid number, block, WhatsApp not installed):
- The failure is logged
- An alert appears on the appointment record
- Front desk can resend manually or call the client
Appointment Confirmations
Sent immediately after an appointment is booked (via front desk or online booking):
- Booking details summary
- Option to add to Google Calendar / Apple Calendar (iCal link)
- Cancellation/reschedule link (if brand allows client self-cancel)
Reschedule and Cancellation Notifications
When a manager or front desk reschedules or cancels an appointment:
- Client is notified with the reason (optional)
- For cancellations, a rebooking link is included (configurable)
Message Templates
All WhatsApp messages use approved templates (required by Meta's policy for business-initiated conversations). Templates are managed in SalonOS:
Template Lifecycle
- Create — write the template in SalonOS with all placeholders
- Submit — sent to WhatsApp for approval (takes 1–24 hours)
- Active — approved template is available for use
- Paused/Rejected — flagged for revision
Template Categories
| Category | Examples |
|---|---|
| Utility (transactional) | Appointment confirmation, reminder, reschedule |
| Marketing | Promotional campaign, seasonal offer, reactivation |
| Authentication | OTP for portal login |
Personalisation Placeholders
{{client_name}}— client's first name{{appointment_date}}— formatted date{{appointment_time}}— formatted time{{service_name}}— primary service booked{{staff_name}}— assigned staff member{{location_name}}— location display name{{location_address}}— full address{{offer_code}}— discount code{{portal_link}}— client portal URL
Conversation Inbox
Two-way WhatsApp conversations are managed in the inbox:
- All inbound messages from clients appear in a unified inbox
- Messages are matched to the client CRM record by phone number
- Front desk can reply, attach images, or use quick-reply templates
- Conversations are stored in client communications history
Conversation Assignment
Conversations can be assigned to a staff member for follow-up. Assignment is visible to the team and shows as a task in their view.
Birthday Messages
Automated birthday messages are sent to clients with a birthday in the configured window:
- Sent on the client's birthday or N days before
- Content: a warm message + optional birthday offer (discount code or loyalty bonus)
- Personalised from the brand
- Respects marketing consent
Client Communications History
Every message sent to or received from a client is stored in their CRM record:
- Date, channel, direction (inbound/outbound), content, delivery status
- Linked to the appointment or campaign that triggered it (where applicable)
- Visible to front desk and managers; not visible to the client in the portal
Delivery and Reporting
| Metric | Description |
|---|---|
| Sent | Message dispatched to the provider |
| Delivered | Provider confirmed delivery to device |
| Read | WhatsApp read receipt |
| Failed | Delivery failed; reason logged |
| Reply | Client replied (for two-way channels) |
| Click | Link click tracked via redirect |
Campaign and journey message performance is available in the Marketing module.
Key Data Entities
- MessageTemplate — a WhatsApp or SMS template definition with approval status
- Message — a single sent or received message (channel, direction, content, status, timestamp)
- ClientCommunication — a thread of messages between the brand and a client
- ReminderSchedule — the configured reminder timing rules per brand/location
Permissions
| Action | org_owner | brand_manager | location_manager | front_desk |
|---|---|---|---|---|
| Configure reminder schedule | Yes | Yes | Yes | No |
| Create/edit message templates | Yes | Yes | No | No |
| Send manual messages | Yes | Yes | Yes | Yes |
| Reply in inbox | Yes | Yes | Yes | Yes |
| View communication history | Yes | Yes | Yes | Yes |
| Set up birthday messages | Yes | Yes | Yes | No |