Growth
Marketing
Campaigns, client segments, automated journeys, and promotional offers.
Overview
The marketing module lets brands reach the right clients with the right message at the right time. It covers one-off campaigns (promotions, newsletters, seasonal offers), automated journeys (triggered by client behaviour), and the segment definitions that target both.
All messages respect the client's consent state — no message is sent to an opted-out client regardless of campaign configuration.
Segments
A segment is a dynamic group of clients who share defined characteristics. Segments are defined by the brand manager and recompute continuously as client data changes.
Segment Criteria
| Criterion | Example |
|---|---|
| Last visit date | Lapsed > 90 days |
| Total lifetime spend | High-value: spend > ₹25,000 |
| Service history | Has had "Balayage" at least once |
| Membership status | Active membership holder |
| Birthday period | Birthday in the next 14 days |
| Tags | Tagged as "VIP" or "Influencer" |
| Acquisition source | Acquired via Instagram |
| Location | Registered at Location A |
| Gender | Optional |
| Age range | 18–35 |
Criteria can be combined with AND/OR logic. A segment shows a live count of matching clients.
Segment Uses
- Campaign targeting (send to this segment)
- Journey enrollment (trigger a journey when a client enters/exits a segment)
- Analytics grouping (compare KPIs across segments)
- Reporting (revenue from high-value clients)
Campaigns
A campaign is a one-time or scheduled message sent to a segment.
Campaign Types
| Type | Channel | Use case |
|---|---|---|
| Promotional | WhatsApp / SMS / Email | Flash sale, seasonal offer |
| Newsletter | Monthly update | |
| Reactivation | WhatsApp / SMS | Lapsed client win-back |
| Event | WhatsApp / Email | New service launch, event invite |
| Birthday | Personalised birthday offer |
Campaign Flow
- Select segment — who receives this campaign
- Choose channel — WhatsApp, SMS, or email
- Write message — use a template or compose from scratch; personalisation tags available (client name, stylist name, offer code)
- Set schedule — send now or schedule for a future date/time
- Review — estimated reach, consent-gated count
- Send — messages dispatched; delivery receipts tracked
- Report — open rate, click rate, redemption rate, revenue attributed
Consent Gate
Before sending, the system filters the audience to only clients who have granted marketing consent for the chosen channel. The estimated reach shown at review time reflects this filter.
Offers and Discount Codes
Campaigns can include an offer:
- A unique or shared discount code (e.g. "WELCOME20" for 20% off)
- A fixed-amount discount or percentage
- Expiry date
- Applicable services/categories
Redemptions are tracked back to the campaign for attribution.
Message Templates
Templates are pre-approved message formats for each channel. WhatsApp Business API requires approved templates for outbound messages — templates are submitted for approval and stored in SalonOS.
Template fields:
- Name and language
- Body text with placeholders (
{{1}}= client name, etc.) - Header (image or text)
- CTA button (book now, visit website)
- Template status (pending, approved, rejected)
Journeys (Automated Workflows)
A journey is a triggered, automated sequence of messages based on client behaviour or time.
Journey Triggers
| Trigger | Description |
|---|---|
| New client | First booking or first visit |
| Post-visit | A few hours or days after service completion |
| Lapsed | No visit in X days |
| Birthday | N days before the client's birthday |
| Membership due | Membership renewal approaching |
| Package low balance | Package sessions running low |
| Review request | Delay after visit, ask for a Google review |
| Abandoned booking | Started but did not complete an online booking |
Journey Steps
Each step in a journey:
- Wait — delay before the next step (e.g. wait 2 days)
- Condition — branch based on a condition (has the client rebooked? did they open the previous message?)
- Send message — dispatch a message via the chosen channel
Journeys can branch: a client who rebooks after the first re-engagement message exits the journey; a client who doesn't gets a follow-up.
Journey Enrollment
- Enrollment is automatic when the trigger condition is met
- A client is only enrolled in one instance of a journey at a time
- Completed or exited clients can re-enroll when the trigger fires again
Attribution
Marketing attribution tracks which campaigns and journeys led to bookings and revenue:
- Last-click attribution: the most recent campaign/journey message before a booking is credited
- Campaign-level revenue report: total revenue from clients who received and engaged with each campaign
Key Data Entities
- Segment — rule definition and computed membership
- Campaign — a one-time message send with audience, channel, content, and schedule
- MessageTemplate — a pre-approved message format
- Journey — an automated trigger-step workflow
- JourneyRun — an individual client's progress through a journey
- Offer / Coupon — discount code with usage tracking
- AttributionEvent — the link between a message and a downstream booking
Permissions
| Action | org_owner | brand_manager | location_manager | front_desk |
|---|---|---|---|---|
| Create and manage segments | Yes | Yes | No | No |
| Create and send campaigns | Yes | Yes | If granted | No |
| Create message templates | Yes | Yes | No | No |
| Build and activate journeys | Yes | Yes | No | No |
| View campaign reports | Yes | Yes | Yes | No |
| Create discount codes | Yes | Yes | Yes | No |
| Redeem discount codes | Yes | Yes | Yes | Yes |