Customers & Automation
Colour Formula Library
Keep one rolling formula note on FREE, or record structured per-visit recipes, immutable history, reuse and photo links on PRO.
Last updated 22 July 2026
Keep one rolling free-text formula note on FREE. PRO adds structured per-visit recipes with bases, developer, technique, processing time and notes, primarily as a chair-side mobile feature for hair venues.
Where to find it - Mobile: Booking detail (Chair View) → Record formula or Use last formula. Web: Customer profile → Visits; also the booking-detail sheet.
TL;DR
- Record per-visit formulas with bases, developer, technique, time, notes.
- Immutable history - formula details lock on save; notes editable with full audit trail.
- Auto-attaches to the booking; auto-summarised on the customer's "must-know" strip.
- Use last formula prefills from the most recent - copies, never overwrites.
- Link formulas to treatment photos for matched visual + recipe history.
- PRO structured history; FREE rolling formula note.
- Imported free-text formulas stay separate from dated recipes.
What goes in a formula
| Field | What | Constraint |
|---|---|---|
| Bases | The colour mixture | 1 to 8 rows. Each row: shade, parts, brand |
| Developer | Hydrogen peroxide developer | volume (10 / 20 / 30 / 40 / Other) + brand |
| Technique | Application method | roots only / global / balayage / foils / bleach wash / toner / free (custom text required when free) |
| Processing time | Minutes the colour develops | Integer minutes |
| Notes | Anything else - feedback, sectioning, observations | Free text |
Linked context (auto-populated):
- Customer (required, derived from the booking)
- Staff member (derived from the user who saved)
- Service (derived from the booking's primary service)
- Booking (the booking you saved from - optional if recording outside a booking context)
Recording a formula
From Chair View (mobile)
- Open the booking on mobile.
- Chair View renders (when the booking is in service or 15 min before).
- Tap Record formula (or Use last formula to start from the customer's most recent recipe).
- Fill bases, developer, technique, time, notes.
- Save.
The formula attaches to the booking and the customer's main colour_formula cache updates so the next visit's "must-know" strip shows the summary.
From the customer profile (web)
Web shows formula history under Visits. Structured formulas are recorded from a booking so their visit context stays accurate.
Use last formula
The Use last formula action prefills the form with the customer's most recent recipe via ?preFill=1. Three reasons:
- Repeat visits where the formula is the same - quick save.
- Slight variations (different developer volume, extra toner) - edit the prefilled form.
- Reference what they had last time without retyping the whole thing.
Always saves as a new row - never overwrites the previous formula. The audit trail stays clean.
Immutability
The formula itself (bases, developer, technique, time) is immutable once saved. To "change" a formula, save a new copy.
Reasoning: a colour correction six months later needs to see exactly what was applied last time, not whatever the stylist might have edited to retroactively. The immutable record protects against accidental rewrites and creates a clean audit trail.
Exceptions:
- Notes are editable - corrections to observations are common. Edits are tracked in
notesHistory(append-only jsonb log). - Remove and restore - Owners and managers can use “Remove from active history”; the action hides the entry immediately and offers Undo. Any signed-in venue team member can restore it later from Removed formulas.
Notes history (owner-only)
Notes can be edited freely, but the system keeps an append-only history of every change. Owners can retrieve the audit through the formula notes-history endpoint.
Useful for understanding why a stylist updated their observation between visits or to settle a "what did we say last time" discussion.
Linking to treatment photos
From any treatment photo on the customer's timeline, tap Link to formula to attach the photo to a specific formula. Constraint: same-customer guarantee (you can't accidentally link a photo of Sarah to a formula on Tom's record).
This builds a visual+recipe history together - the "before/after" photos beside the formula that produced them. Especially useful for clients with colour journeys (lift, fade-out, toner refresh).
See Treatment Photos for the photo timeline itself.
The customer "must-know" strip
Each customer row in the clients list and on the booking detail surfaces a must-know strip showing the latest formula summary - bases + developer + technique compressed to one line. Powered by the deterministic buildColourFormulaSummary helper; cached on venue_customers.colour_formula so it renders cheap.
Example: "6N + 7AA (1:1), 20vol Schwarzkopf, roots only · 30min"
Recent shades autocomplete
When you're entering a new formula, the shade field autocompletes from the venue's recent formula shades - privacy-stripped (no customer attribution). Speeds up data entry for venues that consistently use the same palette.
Last formula card
On the Chair View and the customer profile, a Last formula card surfaces the latest summary with three actions:
- Use last formula - prefill new formula
- View history - open the full formula list for this customer
- Record - fresh formula from scratch
How long ago was the last formula?
The countSinceFormula query powers a "N visits ago" badge on the must-know strip. Matches by email/phone on bookings since the latest formula's createdAt. Useful for "last colour was 8 visits ago - they're due".
Imported and earlier formulas
Imported formulas appear as Imported from Fresha when the source is known, otherwise Earlier formula. The original text is preserved exactly. If the original visit date is unknown, OpenChair omits the date rather than presenting the import date as a visit date.
Free-text notes cannot pre-fill structured fields, link to photos, contribute recent shades, or show “N visits ago”. Record the next visit as a structured formula to begin reusable history.
Mobile parity
Chair View on mobile is the primary chair-side surface. Web and mobile show history in the customer’s Visits section and share the same ledger lifecycle.
Tier
FREE venues:
- Can view and edit one rolling free-text formula note
- Cannot reuse that note as a structured recipe or attach it to a visit
- Keep their latest edit as the current formula if they later upgrade
PRO venues add structured per-visit recipes. Legacy/imported notes remain read-only reference material; corrections are saved as a new structured recipe.
What's NOT in scope today
- No AI assistance - formula generation is operator-entered, not AI-suggested. The summary string is deterministic.
- No self-service batch import - authorised migrations can preserve formulas from supported provider exports as source-labelled free text.
- No print/export - view in-app or via the data export ZIP under (future inclusion).
- No formula sharing across venues - formulas are venue-scoped (a customer with bookings at two venues has separate formula histories).
Common mistakes
| Problem | What to check |
|---|---|
| Can't edit a formula I just saved | Formula details are immutable. Save a new formula with the correct details - the old one stays in history. |
| Notes edits aren't being saved | Notes are editable with audit history; check the network - your save might have failed. |
| Use last formula prefilled nothing | The customer doesn't have a previous formula recorded. Start from scratch. |
| Don't see Record formula on the booking detail | You're not on Chair View - Chair View only renders when the booking is in-service (or 15 min before). Or you're on a FREE plan. |
| Linked a photo to the wrong formula | Open the photo detail and unlink, then re-link to the correct formula. |
| Summary strip missing | Cache may not have updated. Refresh the page; the cache writes inside the formula-save transaction. |
FAQ
How do I record a colour formula?
From the mobile booking detail in Chair View, tap Record formula (or Use last formula to start from the customer's previous recipe). Enter bases (up to 8), developer volume + brand, technique (roots only, global, balayage, foils, bleach wash, toner, or free-text), processing time, and notes. Save - it's locked to the booking.
Can I edit a formula after saving?
Notes can be edited (with full history kept). The formula itself - bases, developer, technique, time - is immutable once saved. To change a formula, save a new copy with the change. This keeps the per-visit audit trail clean for colour-correction sessions later.
What's 'use last formula'?
Pre-fills the new formula form with the customer's most recent recipe. Useful for repeat visits where the formula is the same or only slightly different. Always saves as a new row - never overwrites the previous.
Can formulas link to photos?
Yes. From a treatment photo, you can link it to the formula that produced it. Same-customer guarantee enforced. Makes the customer's visual history match their colour recipe history.
Are formulas visible to my customers?
No. Formulas are internal - not surfaced on the customer portal. Treatment photos can be customer-visible separately (Treatment Photos).
Do formulas affect commission or reports?
No direct effect today. The formula is a per-visit record for clinical / craft accuracy - separate from commission calculations or reporting.