Built for your trade

For hair salons that take colour seriously.

F9.contact records every formula — product codes, developer volume, gram weights, level transitions — against each client visit. Your next colorist will know exactly what worked last time. So will the one after that.

What you get

The colour chair, fully documented

Every chemical event captured, every consent signed, every record GDPR-erasable — and fiscalised to the letter in Croatia.

Colour formulas that reproduce

Each mix component stored as product code, grams and role; developer volume and grams; starting and target level on the 1–10 scale with target tone. The colour event never exists without its recipe — the next colorist rebuilds it exactly.

Chemical service log with per-visit photos

One log for colour, bleach, relaxer, perm, keratin and more, with encrypted scalp condition, adverse reactions, result notes and next-visit recommendation. Each event carries role-tagged photos — formula card, reference look, result, documentation.

Patch tests that expire

A Pending → Pass / Fail / Inconclusive state machine with a tenant-set validity window, encrypted reaction notes and an optional result photo. The chair sees whether the test on file is still valid before the colour goes on.

Consultations and consents, signed up front

Versioned intake questionnaires and consent forms, signed with an eIDAS simple electronic signature and sealed with HMAC-SHA256. A booking-confirmation gate blocks an appointment until the paperwork is done; a one-time magic link nudges the client to the right form.

Memberships and packages

Pre-paid service bundles under Croatian SPV rules and recurring membership plans with included services, member discounts and priority booking. Industry research puts member retention at 70–90% versus 30–40% — the single biggest retention lever a salon has.

Privacy-first Google Calendar sync

Confirmed bookings mirror one-way into a dedicated Google calendar showing the service and time only — never names, phones or notes. Available and live-verified on dev; production rollout pending Google OAuth app verification.

The formula is the asset, not the appointment

A colour client is loyal to a result, not to a chair. The salon that can rebuild last visit's formula on demand keeps that client; the salon that improvises loses them the first time the regular colorist is out sick.

F9.contact treats the formula as a first-class record. Every colour or bleach event is logged as a chemical service with its colour formula attached in the same transaction — a colour event never exists in the system without the recipe that produced it.

What a formula record holds

Each mix component is stored as product code · grams · role:

  • Product code — the manufacturer's tube identifier, exactly as the colorist reads it off the tube (Wella/L'Oréal 7.43, Schwarzkopf Igora 7-77, Redken 6NN — the format is brand-specific, F9 doesn't force one).
  • Grams — how much of that tube went into the bowl.
  • Role — primary, secondary, toner, or additive (bond builders, intensifiers, gold drops).

Alongside the mix:

  • Developer volume — 10 / 20 / 30 / 40 vol, the strength that drives the lift.
  • Developer grams — so the next colorist reproduces the consistency, not just the colour.
  • Level transition — starting level and target level on the 1–10 scale, plus the target tone in plain words ("warm copper", "cool ash").

The point is reproducibility. At the next visit the colorist sees exactly what worked last time — and, through the encrypted result notes, what didn't.

A chemical service log that holds up

Colour is one chemical event among several. The chemical service log is the foundational record for colour, bleach, relaxer, perm, keratin and other treatments, with four encrypted free-text fields the chair actually needs: scalp condition, adverse reactions, result notes, and the next-appointment recommendation.

Every event carries its own per-visit photos, each tagged by role — formula card, reference look, result, or documentation — so the before/after and the recipe live together, not in three different phones.

Patch tests, tracked and expiring

EU colour and lash chemistry means patch tests, and patch tests mean expiry. F9 records each patch test through a Pending → Pass / Fail / Inconclusive state machine. A passing test gets a calculated expiry date driven by a tenant-configurable validity window, with encrypted reaction notes and an optional result photo. The salon sees, per client, whether the test on file is still valid — before the colour goes on, not after.

Consultations and consents, signed before the colour goes on

Chemical work is also a consent-and-paperwork business. F9 lets the salon author versioned consultation forms — structured intake questionnaires with typed questions, per-locale wording, and a configurable refill cadence — and versioned consent forms (chemical hair colouring, lash extensions, and any slug the salon needs) under a Draft → Published → Archived lifecycle.

The client signs from the portal with a simple electronic signature in the eIDAS sense: a typed-name affirmation plus an agreement checkbox, with IP, user agent, session identifier and locale captured server-side and sealed into a canonical envelope with HMAC-SHA256. A DBA who edits any field after the fact invalidates the recomputed seal — the record is independently re-verifiable, and a PDF receipt with a forensic footer is available on demand for legal review.

When a published template is wired to the services on a booking, F9 turns it into a booking-confirmation gate: the appointment can't move to Confirmed until the client has a current signature or response on file. Staff nudge the client with a one-time, revocable magic link (72-hour expiry, single-use, fully audited) that drops them straight onto the right form.

Memberships and packages: turn a colour habit into recurring revenue

Colour is the most predictable recurring need in the salon — roots regrow on a schedule. F9 captures that with service packages (pre-paid bundles like "5 × Haircut + 3 × Colour", invoiced under Croatian SPV rules with VAT paid upfront) and client memberships (monthly / quarterly / annual plans with included services, member-only discounts, priority booking, and a loyalty-points multiplier).

This is the single biggest retention lever a salon has. Industry research puts member retention at 70–90% versus 30–40% for pay-as-you-go, with members spending 20–40% more and visiting more often. F9 handles the full lifecycle — freeze, prorated cooling-off refunds, cancellation, auto-renewal — with cron-driven renewal reminders and expiry, and surfaces remaining sessions and renewal dates in the client portal.

Calendar sync without leaking your client list

Staff want their day on their own phone. F9 mirrors confirmed bookings one-way into a dedicated F9 Bookings calendar in a connected Google account — and by default the event shows the service name and time only. Customer names, phones and notes never leave F9. Reschedules and cancellations propagate; Google-side edits are not read back, so F9 stays the source of truth.

Google Calendar sync is available and live-verified end-to-end on our development environment — connect, booking sync, reschedule, cancel, and per-worker share all confirmed. Production rollout is pending Google's OAuth app verification.

GDPR is cryptographic, not cosmetic

Hair records are personal data, and a salon eventually has to honour a deletion request. F9's erasure is cryptographic: customer PII is encrypted with a per-customer key, and erasure destroys the key. The formula history, the photos, the encrypted notes — all become permanently unreadable, while the booking history and audit trail survive as the salon's legitimate business record. Encryption is AES-256-GCM throughout, with a tiered key hierarchy that keeps customer data out of reach of tenant-level keys.

Croatian fiscal compliance, built in

Every sale fiscalises. F9 puts the JIR, the ZKI and a scannable FINA QR code on each invoice, pointing back at porezna.gov.hr. When a sale has to be reversed, F9 issues a proper storno credit note rather than deleting the original — and where the salon took the card through a connected terminal, the refund follows the money back to the original card automatically. Blagajnički maksimum, the dnevnik blagajne day journal, variance classification at close, and JOPPD tip export are all part of the platform, not a bolt-on.

This isn't a US tool with a Croatian flag bolted to the settings page. It was built for the EU from the first commit.

Give every colorist the formula that worked

Set up your services, levels and team in minutes, and start recording formulas that travel with the client. No card required.