Capability catalogue · v1 · August 2026

What an appointment business can actually run on

Every capability worth knowing about for a salon — and for the barbers, nail bars, brow studios, massage rooms, physios, groomers and tattoo shops that run on the same four primitives: staff, services, money up front, and a reason to come back. Tiered by build order, not by how impressive it sounds in a pitch. Mexico is the first install; Australia is the market.

First install
Mum's salon — already lives on WhatsApp and Mercado Pago
Target market
Australian appointment SMBs, 1–10 staff
Core decision
Own the booking engine and the client record
Rented
Payment rails, message transport, calendar sync
Tier 0 — Table stakes

If any of these is missing, nothing else matters

No client notices these when they work. Every one of them generates a complaint when it doesn't. This is the whole of version one for Mum's salon — resist the pull of Tier 3 until all seven are boring.

Real availability, not a contact form

  • Owner
  • Client

Per-staff calendars, per-service duration, buffer and clean-down time, and hard double-booking prevention. This is the engine everything else plugs into — get the data model right here or pay for it in every tier above.

Integrates
Two-way Google Calendar sync so staff keep the calendar they already use
Runs at
$0 marginal — self-hosted
Build
Heavy

A service catalogue a machine can read

  • Owner
  • Client

Every service with a name, duration and price, held as structured data — not typed into a page. It feeds the booking flow, the website, LocalBusiness schema, and Google's booking surface from one source.

Integrates
Schema.org structured data; prerequisite for Reserve with Google (T1)
Runs at
$0
Build
Medium

The reminder ladder

  • Owner
  • Client

Confirmation on booking → reminder at 24 hours → a confirm-or-reschedule tap at 2 hours. The single highest-return automation in the catalogue: reminder ladders of this shape are reported to cut no-shows 25–40%.

Integrates
Message provider interface — see provider swap
Runs at
Cents per appointment; see cost note below
Build
Medium

MX WhatsApp Cloud API utility templates — where the client already lives

AU SMS + email; WhatsApp penetration is low, don't force it

Client profile with real history

  • Owner
  • Staff

Contact, visit history, spend, preferred stylist, notes, and — critically — recorded consent state for each message channel. This table is the asset. It is also the thing you can never get back if you rent it from Fresha.

Integrates
Feeds win-back, loyalty, reporting and the deep client record in T2
Runs at
$0
Build
Medium

Self-serve reschedule and cancel

  • Owner
  • Client

A one-tap link in every reminder, governed by a stated policy window. Removes the most common interruption in the salon's day and converts silent no-shows into fillable gaps while there's still time to fill them.

Integrates
Triggers the waitlist fill in T1
Runs at
$0
Build
Light

Mobile-first site that loads instantly

  • Client

Near-everyone books from a phone, often standing in a queue. Fast first paint, thumb-reachable booking, no layout shift. Installable as a home-screen app if you want it, but that's a nice-to-have and not a reason to delay.

Integrates
Static hosting + the booking API
Runs at
~$0–5/mo
Build
Medium

Google Business Profile wired to booking

  • Owner

Most local discovery ends on the Maps listing, not the website. Correct category, hours, services, photos, and a booking link — the cheapest acquisition work available, and a prerequisite for the Google review and reservation features later.

Integrates
Google Business Profile; API access needs a verified profile live 60+ days with a linked site
Runs at
$0
Build
Light
Tier 1 — Revenue differentiators

The features that pay for the system

Each of these has a number attached to it. That matters more for the Australian pitch than for Mum's salon: an owner paying A$230/month for Timely wants to know what they get back, and "a nicer website" is not an answer.

Deposits and card-on-file

  • Owner

Take a deposit at booking, or hold a card against a cancellation policy. The strongest lever on no-shows there is — reported to remove around 90% of first-time-client no-shows, with businesses using deposits seeing roughly a 32% lift in appointments that actually happen.

Integrates
Payment provider interface — see provider swap
Runs at
Processing fees only, ~1.6–2.9% + fixed
Build
Heavy

MX Mercado Pago — Checkout Pro for speed, Checkout API when you want the flow to stay on your own page

AU Stripe (best API, native Xero sync) or Square (free reader, owns Afterpay)

Rebook before they leave the chair

  • Owner
  • Staff

Checkout prompts the next appointment at the interval that service implies — six weeks for colour, four for a cut. Then a follow-up message for anyone who left without booking. Card-on-file clients already rebook about 10% more often; the prompt compounds it.

Integrates
Booking engine + message provider
Runs at
Message cost only
Build
Light

Cancellation waitlist that fills itself

  • Owner
  • Client

A cancelled 2pm Saturday is pure lost revenue — the chair, the stylist's hour, both gone. When a slot opens, offer it automatically to waitlisted clients who match the service and stylist, first to accept takes it. Quiet, unglamorous, and the feature owners react to hardest in a demo.

Integrates
Cancel flow (T0) + message provider
Runs at
Message cost only
Build
Medium

Win back the ones who drifted

  • Owner

Flag clients who've passed 1.5× their own normal gap and send something worth opening. Requires the visit history from T0 and — non-negotiably — recorded marketing consent, because this is promotional traffic, not service traffic.

Integrates
Client record + message provider; consent gate mandatory
Runs at
Marketing-rate messages — the expensive category
Build
Medium

Reserve with Google

  • Owner

A Book Now button on the Maps listing itself, booking straight into your calendar. Google announced agentic booking at I/O 2026, rolling out to US users over the summer — which makes a machine-readable service catalogue a distribution asset, not just tidiness.

Integrates
Google Actions Center — needs a direct merchant contract, a merchant list matching Maps, standard service definitions and a published cancellation policy
Runs at
$0 — no commission, unlike a marketplace
Build
Heavy

Memberships and prepaid packages

  • Owner

Six blow-dries paid up front, or a monthly membership. Converts lumpy walk-in revenue into something predictable and raises switching cost more than any loyalty scheme. Needs careful ledger design — balances, expiry, refunds — so treat it as real financial code.

Integrates
Payment provider (recurring) + client ledger
Runs at
Processing fees
Build
Heavy

Gift cards and vouchers

  • Owner

Cash today for a service delivered later, bought by someone who isn't your client and redeemed by someone who might become one. Seasonal, and disproportionately valuable in the weeks before Christmas and Mother's Day.

Integrates
Payment provider + redemption ledger
Runs at
Processing fees
Build
Medium

Retail attached to the service

  • Owner
  • Staff

The shampoo used in the chair, offered at checkout and reorderable by message six weeks later. Highest-margin revenue in a salon and the one most consistently left on the table.

Integrates
Inventory (T2) + payment provider
Runs at
Processing fees
Build
Medium
Tier 2 — Owner & staff

The part that actually closes the sale

Clients judge Tier 0 and 1. Owners buy Tier 2. Every hour an owner spends on a spreadsheet at 9pm is the thing you're really selling against — and it's the tier where generic website builders have nothing to offer at all.

The owner dashboard

  • Owner

Revenue per stylist, rebooking rate, retention, service mix, chair utilisation, average ticket. Most owners have never seen these numbers because their current tool buries them. Showing an owner their own retention rate is the strongest demo moment you have.

Integrates
Reads everything; writes nothing
Runs at
$0
Build
Medium

Commission and tips, computed at checkout

  • Owner
  • Staff

Service and retail commission calculated as the sale happens, tips allocated, both visible to the stylist in real time. Removes the fortnightly payroll argument, which is a recurring source of friction in every commission salon.

Integrates
Checkout + payroll export
Runs at
$0
Build
Heavy

Backbar vs retail inventory

  • Owner

Product consumed in the chair and product sold off the shelf are different economics and should be different ledgers. Deduct backbar automatically per service performed, alert on reorder thresholds, and the owner stops discovering shortages mid-appointment.

Integrates
Service definitions + checkout
Runs at
$0
Build
Heavy

Deep client record

  • Staff
  • Client

Colour formulas with developer volume and timing, allergies and patch-test dates, photo-use consent, the preferences that make a returning client feel known. This is the vertical depth a generic scheduler can't copy — and the reason a stylist won't leave.

Integrates
Extends the T0 client profile; per-vertical field sets
Runs at
$0
Build
Medium

Rosters and shifts

  • Owner
  • Staff

Who's on, when, and what that does to bookable availability — one source, not a printed sheet plus a booking system that disagrees with it. Handles leave, split shifts, and the chair-renter who sets their own hours.

Integrates
Drives availability in the booking engine
Runs at
$0
Build
Medium

Staff view of their own day

  • Staff

A stylist opens their phone and sees today's clients, each one's history and formula, and their own earnings so far. Adoption by staff is what makes or breaks a salon system — the owner can buy it, but the team decides whether it gets used.

Integrates
Scoped, permissioned read of the same data
Runs at
$0
Build
Medium

End-of-day reconciliation

  • Owner

Takings by method, tips, discounts, voids, cash variance — closed off in two minutes instead of twenty. Unglamorous, done daily, and therefore worth more than most Tier 3 features combined.

Integrates
Payment provider settlement data
Runs at
$0
Build
Medium

Hand-off to the accountant

  • Owner

Sales, fees, refunds and payouts landing in the accounting package without re-keying. In Australia this is a real differentiator, because the incumbents are uneven about it.

Integrates
Export layer, provider-specific
Runs at
$0 on your side
Build
Medium

AU Stripe syncs natively to Xero. Square covers Xero and QuickBooks but not MYOB. Tyro terminals reconcile cleanly to both.

Before / after library with consent

  • Staff
  • Owner

Photos attached to the client record and the formula that produced them. Consent is a stored flag per photo, not an assumption — it decides whether an image can be reused in marketing, and getting that wrong is a real problem, not a small one.

Integrates
Client record; feeds the social generator in T3
Runs at
Object storage, cents/mo
Build
Medium
Tier 3 — Wow factor

Demo candy, and the honest note about it

These win meetings. Most are also thin wrappers over someone else's API, which means they're cheap for you to add and cheap for a competitor to copy. Build them because they close deals, not because they're the moat — the moat is Tier 2.

AI receptionist for the phone

  • Owner

Answers after hours and during the rush, books straight into the calendar, escalates what it can't handle. Salons lose real bookings to unanswered calls — the stylist's hands are literally in someone's hair. Market pricing sits at roughly US$29–199/month.

Integrates
Voice agent vendor + your booking API
Runs at
$29–199/mo per site
Build
Medium

Missed-call text-back

  • Owner

Any unanswered call triggers an immediate message offering a booking link. A fraction of the effort of a voice agent and recovers a surprising share of the same lost bookings — build this first and treat the voice agent as the upsell.

Integrates
Telephony webhook + message provider
Runs at
Message cost only
Build
Light

Booking inside the WhatsApp thread

  • Client

The client never leaves the conversation they were already in. Genuinely transformative in Mexico, where the salon's whole relationship already lives in WhatsApp. In Australia, largely beside the point.

Integrates
WhatsApp Cloud API + booking API
Runs at
Free inside the 24h service window
Build
Heavy

MX Ship it — this is how her clients already talk to her

AU Skip; build the same flow over SMS if anything

Virtual hair try-on

  • Client
  • Staff

Client uploads a photo and previews a colour or cut before committing. Sells consultations and reduces the "that's not what I asked for" conversation. Perfect Corp ships this as a drop-in web module, mobile SDK, or REST API.

Integrates
Third-party try-on API; embed or server-side
Runs at
Per-call vendor pricing
Build
Light

Review requests and drafted replies

  • Owner

Ask for the review at the right moment — just after a good appointment — then draft the reply for the owner to approve. Run it in approval mode, not autopilot; Google's local ranking weights review volume, recency and rating heavily enough to be worth the discipline.

Integrates
Google Business Profile API — verified profile, live 60+ days, linked website, complete listing
Runs at
Model cost, negligible
Build
Medium

Don't mark up review schema that contradicts the live Google rating — mismatched signals confuse rather than average.

Loyalty card in the phone's wallet

  • Client
  • Owner

A pass added to Apple or Google Wallet from a QR code at the desk — no app download, no account creation. Points and rewards update silently in the wallet, and the pass can surface a notification near the salon.

Integrates
Wallet pass provider + your loyalty ledger
Runs at
Low monthly, vendor-dependent
Build
Medium

Social posts from the work itself

  • Owner

Consented before/after pairs become drafted posts with the service and price attached. The owner approves from their phone between clients. Solves the real problem, which was never ideas — it was finding fifteen minutes.

Integrates
Photo library (T2) + scheduler
Runs at
Model cost
Build
Medium

Your own CRM and automation spine

  • You

Not for the salon — for the agency, once there are ten salons. Twenty is the open-source Salesforce alternative worth watching: AGPL-3.0, ~54k stars, YC-backed, TypeScript, Docker Compose to self-host. Pair with n8n (free community edition, ~€15–30/mo of server) as the glue between client systems.

Integrates
Your sales pipeline; per-client automation workflows
Runs at
~€15–30/mo of VPS, 4 GB RAM
Build
Light

Keep this separate from the salon's client database. They're different jobs — conflating them is the classic mistake.

The provider swap: one product, two markets

The single architectural decision that decides whether this is reusable: nothing above the interface knows which country it's in. Business logic calls send(client, template, vars) and charge(client, amount, intent). Which provider answers is configuration.

What swaps, and what must never leak upward
LayerMexico — todayAustralia — laterInterface owns
Messaging WhatsApp Cloud API SMS + email Template category, consent check, delivery receipts, quiet hours
Payments Mercado Pago
Checkout Pro / API
Stripe or Square Deposit intent, card-on-file token, refund, settlement webhook
In-person Mercado Pago point Square reader / Tyro EFTPOS Terminal pairing, sale, void
Accounting Local export Xero, MYOB Canonical sales journal — never provider-shaped
Tax / invoicing Country plugin Country plugin Nothing. Keep this out of core entirely.

Message economics shape the design

WhatsApp moved to per-delivered-message billing in July 2025. Three things follow directly. Anything inside the 24-hour service window is free — so design reminders to invite a reply and keep the window open. Utility templates (booking confirmations, reminders) are dramatically cheaper than marketing and get volume-tier discounts; marketing gets none, deliberately. And rates are per country — around US$0.025 in the US, ~£0.038 in the UK, over €0.11 in Germany. Classify every template correctly at design time; it's the difference between cents and dollars per client per year.

What Australia requires, and why it's a day-one schema decision

Every message this system sends is either a service message (about an appointment they booked) or a marketing message. They are governed differently, and the difference has to be modelled in the database, not remembered by whoever writes the campaign.

Spam Act 2003 — three requirements, every marketing message

  • Consent — express or reasonably inferred, and you must be able to show it
  • Sender identification — clear who sent it and how to reach them
  • A working unsubscribe — honour STOP replies and opt-out links, promptly

Privacy Act 1988 and APP 7

The Act currently binds organisations turning over more than A$3 million, but reform is expected to extend it to all businesses — build as if it already applies. APP 7 restricts using personal information for direct marketing, and the practical rule bites here: a phone number collected to confirm an appointment generally cannot be repurposed for promotions unless the client was told that at collection. So the booking form has to capture purpose and consent at the moment the number arrives.

Design consequence

Consent is per channel, per purpose, timestamped, with the wording shown at capture stored alongside it. Bolting this onto an existing client table later means going back to every client and asking again — which in practice means losing most of your marketable list. Cheap now, expensive forever after.

The wedge: what the incumbents charge

This table is the Australian pitch. A five-chair salon on Timely pays roughly A$230 a month, forever, and never owns a row of the data.

Australian salon software, 2026
PlatformMonthlyCommission 5-chair salonOwns the data?
Fresha ~A$49 inc GST 20% of new marketplace clients A$49 + commission Fresha does
Timely ~A$46 per staff None ~A$230 Timely does
Phorest Quote only None Quote only Phorest does
Yours, self-hosted VPS + messages None ~A$40–70 all-in The salon does

Two things to be honest with yourself about. First, Fresha's 20% buys real demand — its marketplace sends new clients that a self-hosted system will not. Your answer has to be Reserve with Google plus the Business Profile, and you should say so plainly rather than pretending the marketplace has no value. Second, self-hosted isn't free: you become the support line and the on-call. Price the recurring fee for that reality, not for the server bill.

What not to build yet

Scope discipline is what gets Mum's salon live. Everything here is defensible later and a mistake now.

  • A native mobile app. A fast mobile site does the job. An app is two more store listings and a release process for zero additional capability at this stage.
  • Multi-location and franchise hierarchy. Model one business well. Adding tenancy to a clean schema later is normal work; guessing at it now warps every table.
  • An admin UI for everything. Config in files, edited by you, is fine for the first few clients. Build the settings screen when a client actually asks to change something without you.
  • Your own payment or messaging infrastructure. Rent the rails. Permanently.
  • Country tax and e-invoicing in core. Mexico's CFDI, Australia's GST — plugins at the edge, or the product becomes Mexican and stops being sellable.
  • AI anywhere on the critical path. Approval mode for review replies, drafts for social. A bad automated reply on a public Google listing is a real problem for a real business.

The shortest path from here

Ship Tier 0 complete for Mum's salon on WhatsApp and Mercado Pago. Add deposits, waitlist fill, and rebooking prompts — the three Tier 1 items with the clearest payback. Then build the owner dashboard, because that's the screen you'll open first in every Australian sales meeting, and it needs six months of real data behind it to be worth showing.