Growth
Retention Programs
Loyalty points, memberships, service packages, gift cards, store credit, and referrals.
Overview
Retention programs give clients a reason to keep coming back and to deepen their relationship with the brand. SalonOS provides five retention instruments: loyalty points, memberships, service packages, gift cards, and store credit (wallet). These are linked to the client profile and redeemable at checkout.
Loyalty Points
A loyalty programme rewards clients with points on every visit or purchase.
Earning Points
| Activity | Example earning rate |
|---|---|
| Service purchase | 1 point per ₹100 spent on services |
| Retail purchase | 1 point per ₹50 spent on products |
| Birthday visit | 2× points in the birthday month |
| Referral | Bonus points when referred friend completes first visit |
Earning rules are configured per brand. Rates can differ by service category or product type.
Reward Tiers
Brands can create VIP tiers based on accumulated points or annual spend:
| Tier | Qualification | Benefits |
|---|---|---|
| Standard | Default | 1× earn rate |
| Silver | 5,000 points or ₹50k spend/year | 1.25× earn rate + 5% discount |
| Gold | 15,000 points or ₹1.5L spend/year | 1.5× earn rate + 10% discount |
| Platinum | 30,000 points or ₹3L spend/year | 2× earn rate + 15% discount + priority booking |
Tier qualification resets annually or is lifetime (configurable per brand).
Redeeming Points
At checkout, clients can redeem points for a discount:
- Minimum redemption threshold (e.g. must have at least 500 points)
- Redemption rate (e.g. 100 points = ₹10 discount)
- Maximum redemption per visit (e.g. up to 20% of invoice)
Loyalty Account
Each client has a loyalty account per brand:
- Current point balance
- Lifetime points earned
- Transaction history (earn and redeem events)
- Current tier
Memberships
Memberships are recurring monthly or annual subscriptions that give clients access to benefits at a fixed fee.
Membership Structures
| Type | Example |
|---|---|
| Included services | "Glow Plan" — 2 haircuts + 1 deep conditioning per month |
| Discount on all services | "Silver Member" — 15% off all services |
| Mixed | "Unlimited Blowouts" — unlimited blowouts + 10% off everything else |
Membership Lifecycle
- Purchase — client buys a membership at checkout or online
- Activation — membership is active from the purchase date
- Monthly reset — included services replenish each month
- Renewal — auto-renewal on the billing date; client is notified in advance
- Pause — client can pause (with approval) — billing pauses, benefits paused
- Cancel — client or staff cancels; existing period is honoured
Free-Session Redemption Audit Trail
Every time a membership's included free service is redeemed, a membership_redemptions
row is written (migration 0088). This mirrors the package_redemptions pattern:
| Column | Purpose |
|---|---|
client_membership_id |
Which membership subscription was used |
appointment_id |
The appointment the service was rendered for (nullable) |
invoice_id |
The invoice the redemption was applied to (nullable) |
redeemed_at |
Timestamp of redemption |
The remaining session allowance is derived by counting redemptions — there is no mutable counter that can go out of sync. This provides a tamper-evident audit trail for disputes.
Using Membership Benefits at Checkout
When a client with an active membership is checked out:
- Included services are shown as covered (₹0 or reduced price)
- Remaining included service allowance is shown
- Discount is applied automatically to eligible items
Service Packages
A package is a pre-paid bundle of specific services, sold at a fixed price.
Examples
- "Keratin Care Pack" — 3 keratin treatments for ₹6,000 (vs ₹2,500 each = ₹7,500)
- "Bride Package" — trial + bridal hair + bridal makeup for ₹15,000
- "10-visit Massage Pass" — 10 × 60-min massages for ₹8,000
Package Tracking
- Each package purchase has a session balance (e.g. "8 of 10 used")
- Balance decrements when a package service is redeemed at checkout
- Expiry date (optional) — balance forfeited after expiry
- Balance visible on client profile and at checkout
Selling Packages to a Client (no appointment required)
Packages can be sold directly from the client profile without an open appointment:
- Open the client → Packages tab
- Tap Sell Package → select package definition
- Confirm payment method → package is created and linked to the client immediately
This enables upsells at the front desk between visits (e.g. selling a "10-session colour
pass" during a checkout conversation). The sale creates a client_packages row and a
linked payment record. No appointment is required.
Gift Cards
Gift cards are a pre-loaded monetary value redeemable at checkout.
Features
- Fixed denominations or custom amounts
- Physical (printed code) or digital (sent via WhatsApp/email)
- Unique code per card
- Balance tracked; partial use supported (remaining balance carries forward)
- Expiry date (configurable, or no expiry)
- Purchasable by anyone; redeemable by any client using the code
Gift cards are also a common upsell at checkout and during seasonal campaigns.
Store Credit (Wallet)
Store credit is a client-specific monetary balance that can be earned or issued and spent at checkout.
Sources of Store Credit
| Source | Example |
|---|---|
| Refund | Service refund issued as credit instead of cash |
| Goodwill | Complaint resolution — manager issues credit |
| Referral reward | Referring client earns credit when referee visits |
| Promotion | "Load ₹5,000 to wallet, get ₹500 bonus" |
Store credit does not expire by default (configurable). Balance is visible on the client profile.
Referrals
The referral programme rewards clients for bringing in new clients:
- Referrer shares their referral link or code
- New client books using the link/code
- Trigger: after the new client's first completed visit, rewards are issued
- Referrer reward: store credit, loyalty points, or a discount
- Referee reward: a discount on their first visit
Key Data Entities
- LoyaltyAccount — client's points balance and tier at a brand
- LoyaltyTransaction — each earn or redeem event
- RewardTier — tier definition (threshold, benefits, earn rate)
- Membership — the membership plan definition
- MembershipSubscription — a client's active membership instance (billing, status, allowance)
- Package / PackagePurchase — a bundle definition and a client's purchased instance with remaining balance
- GiftCard — a card with a code, value, and remaining balance
- Referral — a referral record (referrer, referee, state, rewards)
- WalletEntry — a store credit transaction (credit or debit)
Permissions
| Action | org_owner | brand_manager | location_manager | front_desk |
|---|---|---|---|---|
| Configure loyalty rules | Yes | Yes | No | No |
| Configure membership plans | Yes | Yes | No | No |
| Create packages | Yes | Yes | No | No |
| Sell gift cards | Yes | Yes | Yes | Yes |
| Redeem at checkout | Yes | Yes | Yes | Yes |
| Issue store credit | Yes | Yes | Yes | Yes (limited) |
| View client balances | Yes | Yes | Yes | Yes |
| Configure referral programme | Yes | Yes | No | No |