Core Operations

Client CRM

The client record — profiles, consent, tags, notes, history, and duplicate management.

Overview

The Client CRM is the single, brand-scoped record for every person a brand serves. It is the data that every other module reads and writes: scheduling books against it, marketing segments it, retention tracks entitlements against it, and finance links invoices to it.

The front desk creates a client in seconds for a walk-in (name + phone). The profile is then enriched over time: consent, preferences, allergies, notes, tags, and a full visit and purchase history that builds automatically.

Client Profile Fields

Field Notes
Name(s) First, last; display name
Phone number(s) Primary + additional; India-default format
Email address(es) Primary + additional
Date of birth / birthday For birthday automation
Gender Optional
Preferred language For communications
Profile photo Optional
Status Active, Inactive/Lapsed, Do-Not-Contact, Blocked
Registration location First location where client was created

Scope and Isolation

  • A client belongs to one brand — they are brand-scoped, not org-scoped
  • The same person can be served at any of that brand's locations using the same record
  • If the same person visits two different brands of the same org, they will have two separate records (one per brand) — this is by design (D-03, D-31)

Consent Management

Consent is captured per purpose and per channel. Purposes:

Purpose Description
Transactional messaging Booking confirmations, reminders, service updates
Marketing / promotional Campaigns, offers, newsletters
Data use / processing Broader data processing consent (DPDP requirement)

Each consent entry records: current state, timestamp, source (front desk, portal, import, widget), and who recorded it. History is never overwritten — every change is appended.

Withdrawal takes effect immediately and is authoritative: no marketing or journey message will be sent to a client who has withdrawn that consent type. Transactional and marketing consent are independent — a client can receive booking reminders while opted out of promotions.

India DPDP Compliance

SalonOS is built for India's Digital Personal Data Protection Act. Key implications:

  • Consent evidence is retained with full provenance
  • Data-subject access requests (export client's data), correction requests, and erasure requests are supported
  • Erasure removes/anonymises personal identifiers but preserves lawful financial records (invoices, GST) in de-identified form

Tags and Segments

Tags are applied manually by staff from a brand-defined controlled list. Examples: VIP, Sensitive-Scalp, Student, Influencer. Tags record who applied them and when.

Segments are rule-based groups that auto-compute from CRM, booking, and purchase data. Examples:

  • Lapsed (no visit in 90 days)
  • High-spend (lifetime value > ₹X)
  • Birthday this month
  • Purchased membership but not visited this month

Segments are consumed by Marketing for targeting and by Analytics for reporting. Rules are defined by the brand manager and recompute as data changes.

Notes

Type Visible to Created by
Shared note All staff with client access Any permitted role
Private note Author + management (configurable) Any permitted role

Notes record author, timestamp, and type (free text, service note, formula, complaint). Edit history is preserved — no silent overwrites. Private notes are never shown on client-facing surfaces or in client data exports.

Preferences and Allergies

  • Service preferences: preferred stylist, preferred products, seat/room preferences
  • Communication preferences: preferred channel, time of day
  • Allergies and contraindications: safety-critical fields that appear prominently at booking, check-in, and service — they cannot be buried
  • Formula / technical history: colour formulas, chemical records — durable and retrievable at the chair

Visit and Purchase History

The client profile shows a unified chronological timeline of:

  • All appointments (booked, completed, cancelled, no-show)
  • All invoices and payments
  • Deposit history
  • Package and membership purchases and redemptions
  • Loyalty point activity
  • Gift card usage

Summary metrics derived from history:

  • Total spend and recent spend
  • Visit count, recency, and frequency
  • Average ticket value
  • No-show count

History is read from the owning modules in near real-time — the stylist reads current data.

Duplicate Detection and Merge

At client creation, the system checks for probable duplicates by phone, email, and name similarity. If a match is found, the front desk is offered the option to open the existing record instead.

The merge operation:

  1. Selects a surviving record
  2. Resolves conflicts deterministically (most recent or user-chosen)
  3. Re-points all linked records (appointments, invoices, loyalty, gift cards) to the survivor
  4. Applies the strictest consent state (a withdrawal on either record wins)
  5. Records a full audit trail
  6. Provides a reversible path where feasible

Quick-Create vs Full Profile

Quick-create (available from booking and queue): name + phone, takes seconds. Used for walk-ins.

Full profile: enriched over time — contact details, consent, preferences, allergies, notes. A sparse profile is fine and is never a blocker for booking or checkout.

Client Self-Service (Portal)

Clients can view and update a subset of their own profile through the client portal:

  • Contact details (name, phone, email)
  • Preferences
  • Their own consent (capture or withdraw)

They cannot edit: status (do-not-contact, blocked), staff notes, or any financial records.

Key Data Entities

  • Client — identity, contact, status, brand scope
  • ConsentRecord — purpose, channel, state, source, timestamp, actor, history
  • Tag / TagAssignment — controlled labels applied to clients
  • Segment — rule definition and computed membership
  • ClientNote — shared or private, typed, versioned
  • Preference / AllergyEntry — safety-critical structured data
  • DuplicateMatch / MergeRecord — duplicate detection and merge audit