No certification enforcement at booking time.
You tell AURI which therapists perform which treatments, and it books inside that list. It does not verify a licence's expiry date on the spot.
A booking passes four checks — therapist, room, equipment, schedule — in one all-or-nothing step before it confirms. If any check fails, the slot stays free. If all four pass, it's yours.
Almost every story of a bad spa day starts the same way.
The therapist walks in to find two names in her nine o'clock. A guest stands in reception, confirmation email in hand, and you have nothing to give her. It happens because a spa sells three resources at once — the therapist's hour, the room, the equipment — and a calendar that tracks only one of them will eventually sell a slot that doesn't exist.
A booking engine's job is to make those moments impossible — not by working harder, but by being structured so they cannot happen.
The same 3:00 pm hot-stone massage, wanted twice in the same second. Here is everything the engine does about it.
Picks the hot-stone massage and taps Confirm.
Confirmed — the slot is hers. All four locked in one step.
Saw the same 3:00 pm as free a moment ago — and taps Confirm too.
Her booking never confirms. The slot is sold exactly once — she picks another time.
No apology email. No two names in Anna's nine o'clock. And nobody had to be careful — the engine settled it before either guest noticed.
The moment a guest taps Confirm, the engine runs four checks as one decision. Four yeses and the slot is hers — one no and it never confirms.
Checked live at the moment of confirmation — against what is actually booked, not an old copy of the calendar.
A single treatment room holds one appointment; a couples suite holds two. The engine counts — it never squeezes.
Every unit the treatment needs — a hydro suite, a specific bed, a laser — free for the entire window. If the laser is in use, the treatment doesn't confirm.
Rostered, and not inside PTO, training, or sickness — even leave entered after the slot was offered and before the guest confirmed.
The double-booking your therapist dreads has nowhere to happen. Not because anyone is more careful — because the engine cannot save a booking that breaks these rules.
AURI confirms a booking by running four checks in one PostgreSQL transaction under row-level locks — therapist, room, equipment, schedule — backed by a database-level exclusion constraint that rejects overlapping bookings for the same therapist even if the application layer ever missed one. The rule and the calendar live in the same place, so no two screens can both say yes.
Every booking lives in exactly one of eight states — four on the main path, two holds, two exits. Your morning numbers are computed from these recorded steps, not from anyone's memory.
The guest picks a real, open slot — the engine sets it aside.
Therapist, room and equipment locked together for that hour.
The front desk marks the guest in.
The record is final — it lands in the day's numbers.
A hold that clears moves on to confirmed. A hold that stalls is released — after one hour for payment, thirty minutes for email — and the slot goes straight back on sale.
Just as final as completed — recorded, counted, and the slot released the moment it happens.
A booking can never be in two states at once, can't jump from requested to completed, and once it exits the record is final — nothing gets quietly edited after the fact.
Capture rate, no-show rate, utilization — every KPI downstream comes from these recorded steps, never from a guess. See what they roll up to
A guest who walks away at the payment screen should not block a guest who is ready to book. Expired holds go back on sale on their own — and the gaps that remain get filled with intent.
When a booking doesn't name a therapist, AURI scores every eligible one by the gap it would leave — the empty minutes before and after the new slot. The smallest gap wins. One therapist's day packs tight; another stays wide open for spontaneous demand.
What this looks like on the floor — the calendar, the staff wizard, reassignment — lives on the operations page
To a buyer who has been over-promised before, what the engine won't do matters as much as what it will.
You tell AURI which therapists perform which treatments, and it books inside that list. It does not verify a licence's expiry date on the spot.
Mark a room or a laser out of service and the engine blocks new bookings in that window. Existing bookings aren't reshuffled behind your back — we surface the affected window; your staff decide.
The gap you set after a treatment shapes which slots guests are offered, so a normal booking never lands inside it. It is not one of the four hard checks, though — a manager who needs to squeeze a walk-in into a cleanup gap can decide to. What nobody can do, buffer or no buffer, is sell the same therapist, room, or bed twice.
If your guest always books Anna, the front desk picks Anna — the gap score doesn't weight personal history as a tiebreaker.
When a guest cancels, the system marks the refund as pending; staff make the actual reversal in the payment processor. We do not advertise one-click automated refunds because we do not ship them.
Need one of these on day one? Ask on the intro call — most are custom work we can scope into your implementation, and we will tell you which.
One that reserves the three things a treatment needs — therapist, room, and equipment — together, confirming the slot only if all three are free at once. AURI adds a fourth check in the same step: the therapist is actually on shift.
Twice over. While a booking is confirming, the slot is locked — two guests tapping Confirm in the same second can't both get it. And underneath, the calendar's database enforces a no-overlap rule of its own, so even a software bug could not save two bookings on the same therapist.
Yes. Live PMS connectors post each spa charge straight to the guest's folio, so it settles at checkout with nothing re-keyed at the front desk. Which systems are live — and how the folio flow works — is on the integrations page.
How AURI picks a therapist when the booking doesn't name one: it counts each eligible therapist's empty minutes before and after the new slot, and the smallest gap wins. When two therapists tie, a fixed rule settles it — never a coin flip — so the same inputs give the same assignment, every time.
The booking never confirms — and it doesn't linger. A booking that stalls before confirming is released after one hour, one still waiting on email verification after thirty minutes, and the slot goes back on sale.
Yes — equipment is one of the four checks every booking runs. A treatment that needs a specific unit confirms only if a free one exists for the entire window — built in, not bolted on.
Yes — day spa, luxury hotel, or chain, it is the same four checks under one lock. What's wired around it — your PMS and payment rails — lives on the integrations page.
Still looking for the crack? Book my intro call and try to break it live. The questions past the engine — where your data lives, who can reach it — are answered straight here.
After a short intro call, the walkthrough runs on your real treatment menu, rooms, and equipment. We try to break it on purpose — two guests, same therapist, same minute — and you watch what happens.