AI-native CRM / booking system for gyms, studios, health clinics and spas
One system behind every door a member walks through: the message, the booking, the money and the record are the same thing — so they can never disagree.
Seven things worth stopping on.
“Booked” came from the action, not the assistant. book_session appears twice — queued from the member, then ok from the saga. The word only appeared because the second line did.
One booking is four steps, and four undos. check_credits, reserve_slot_capacity, write_booking_row, decrement_credits. A step fails and the ones before it run backwards: the place is released, the credit goes back. There is no half-booking to find in the morning.
Nothing moved, and nothing claims it did. Sunday was full, so scene one ends with no reschedule_booking line at all. The assistant may only report what a tool actually returned — which is why it says it has not moved anything.
It has no authority of its own. Every tool it calls is logged as human:member — her, not it. What she cannot do, it cannot do.
Not every actor is a person. vendor:stripe is Stripe’s callback landing. system:saga is the durable job finishing what it started. Afterwards you can tell all of them apart.
It stops, and it is stopped. A stranger’s email is held until I say who they are — member_self_signup, then the thread unpauses. A question about somebody’s knee gets escalate_to_staff and nothing else.
The last one is me. From my own ChatGPT the actor is agent, on its own key with its own scopes — and both writes waited for a tap.
It will still misread somebody. What it cannot be is wrong and unaccountable: whatever it claims had to happen first, and whatever it did is a line you can read.
What is in the product today.
Built for studios that sell a person’s time in slots: EMS first, then trainer-led PT, physio, bodywork. If your day is a grid of trainers and appointments, it fits.
If your day is a timetable of classes, that part is not built yet. No classes, no timetable, no waitlist, no multi-site — not in the product today. Better you read that here than find it in week three of a migration.
Fits today
EMS studios. Trainer-led personal training. Physio. Bodywork and treatment rooms. One site, one trainer roster.
Not in the product
Class timetables. Class waitlists. Several sites under one account.
Running classes? Say so, and wait.
Classes are on the roadmap. I will not take your money against a promise. Leave an email and you will hear from me when it is real.
Eleven screens, or one message.
11 screens to 1 message is true, and it is not like-for-like. So here is the rest of it.
New member · conventional web flow
11 screensReturning member · Clavis
1 messageAny chance of Thursday at 6?
The like-for-like number
Returning member on both sides: three taps, or one message. Competitors do repeat bookings in two or three taps. That part is genuinely close.
What a cold start costs
A first-time visitor in chat takes three to five messages. Slower than a form. That is the trade, and why the booking site exists too.
Nobody is forced into chat, and you are never charged for a booking a member makes on the site themselves.
Config over code.
“Bends to anything you can imagine” usually means somebody writes code for you and the pilot becomes a consulting bill. Here are the dials that are actually yours, in the dashboard, changed by you, live:
- Brand voice. Yours, not a vendor’s house style.
- Tool permissions, per tier. Every action carries a list of who may call it. The assistant is on that list only where you put it.
- Model. Which one answers your members.
- Spend cap. A number you set, not a bill you discover.
- Cancellation window. Your policy, enforced by the same actions.
- Marketing flows. Which ones run, and when.
- The notification grid. Who hears about what, on which channel.
Not a workflow builder. No canvas, no wiring your own logic. Anything outside that list is code somebody has to write — better said here than found in month three.
Ask your own ChatGPT how the studio did this week.
Not a bot I built and asked you to trust. Your ChatGPT, connected to your studio, calling the same audited actions the dashboard calls. What came in last week, who has not been in for a month, what a trainer is owed — then do something about it.
Not a dependency: the dashboard runs the same actions, so skip this and nothing breaks.
The caveats, up front:
- Needs ChatGPT Developer Mode, on a paid plan. OpenAI’s gate, not mine.
- Anything that writes sits behind a confirmation. You approve it before it happens.
- Same permission model as everywhere else. This door cannot do what the action would refuse.
There is no demo video here yet.
Written, not filmed. They will sit in this frame when they exist. I am not putting stock footage of somebody else’s gym in it.
Not filmed yet.
TODO(mario): set VIDEO_ID in assets/js/config.js and this frame becomes the embed.
Want to see it working now? Book the call and I will share my screen on the live studio.
A platform price, and a receptionist.
Two lines rather than one big number, because they are two different things and you should be able to decline the second one.
Studio
Everything, on your own Stripe
£268/mo all-in
1 site · up to 6 trainers · up to 300 active members
| Platform Bookings, members, packages, memberships, payments on your own Stripe, rota and payroll, dashboard, booking site, ChatGPT access for the owner, unlimited staff logins, email support in 1 business day. |
£179/mo |
|---|---|
| AI Receptionist WhatsApp and web chat on your own number. 200 AI conversations a month, 500 staff-assistant turns fair use. |
£89/mo |
| All-in | £268/mo |
| Overage | 45p per conversation, capped at £90 |
| Maximum possible bill | £358/mo |
£358 is not a projection, it is the ceiling. Everything is capped, so there is no month where this surprises you.
| Setup 12–16 hours concierge onboarding, full migration, WhatsApp signup, connectors, training call, 30-day hypercare. |
£750 |
|---|---|
| Annual prepay | £2,680 two months free |
Founding partner First 5 sites only
The same thing, while I still need the first five
£199/mo all-in
26% off list · held for 12 months · first 5 external sites
| All-in | £199/mo |
|---|---|
| Overage | waived 60 days, then as list |
| Maximum possible bill | £289/mo |
| Setup No cash fee. A £750 migration credit, recovered over a 3-month minimum term, and waived outright on annual prepay. |
£0 |
|---|---|
| Annual prepay | £2,388 |
Five sites, and the rate holds for twelve months. I would rather have five studios that work than fifty that grumble.
What counts as one AI conversation
One member or lead, on WhatsApp or your website chat, in one 24-hour period, in which the assistant replied at least once. A fifteen-message back-and-forth is one conversation. You never pay for a conversation the assistant hands to your staff, for a booking a member makes themselves on your site, or for your own team’s use of the assistant. No token or credit ever appears on an invoice.
Not included, so you are not surprised
- Meta template fees, Resend and Google Workspace, and Stripe’s own processing — all on your accounts, not billed through me.
- A branded member app, POS, door access, class waitlists and SMS.
- Custom development.
- Support beyond 1.5 hours a month once hypercare ends, then £60/hour — priced, so neither of us has to pretend “unlimited support” means anything.
Running a gym rather than a studio? That tier is quote-only, and I am not going to print a number for a product that does not exist yet.
The part most vendors would bury.
You would be the first studio on Clavis that isn’t mine.
- How many studios use this?
- One. Mine. That is why the founding rate exists. No uptime figure either — one studio’s data is not a statistic.
- Is there a free trial?
- No — and no signup button, for the same reason. Signups are off in the product. Every studio on Clavis is one I onboarded by hand. The call is the trial.
- What happens to my studio if you stop?
- The parts that matter are already in your name: your Stripe, your WhatsApp number, your Workspace. Month to month, thirty days’ notice, no early-termination fee. Leaving is not a migration — only my software stops sitting in front of them.
- Who do I call when it breaks?
- Me. If it breaks on a Saturday it breaks for me first — my studio runs on the same thing yours does. And the audit trail is the diagnosis: a fault is a line you can point at, not an argument with a support queue.
- Will the AI say something mad to my members?
- It might misread somebody. What it cannot do is say something happened that did not — the claim is checked against the record before the message goes out. Out of its depth, it hands over to a person. You set which tools it may touch at all.
- Do I have to use the AI receptionist?
- No. It is a separate line precisely so you can decline it. The platform at £179 runs the studio without it.
- Does anyone actually book by message, or is this a demo?
- I stopped answering booking messages at my own studio when we cut over in August 2026 — except the escalations, where it hands the conversation to a person. You saw one further up.
2. The data-export answer. The exit answer above covers Stripe, WhatsApp and email only. Decide the export path and format, and this becomes an eighth question.
If it is not somewhere on this page, assume it is not in the product, and ask me on the call. I would rather lose the deal on the call than in month three.
Twenty minutes, with the person who built it.
Bring your worst month. I will show you my own studio’s dashboard and you can decide.
Three questions on the booking form, then a time. Nothing to fill in here first.
No signup, no card, no trial to expire. Onboarding is 12–16 hours of my time, by hand — which is why there are five founding places and not fifty.