Check-in and door screens
A group class is a session: one occurrence, a fixed number of seats, and a roster of who booked it. Staff tap people in from a phone, a tablet bolted by the door can run check-in on its own, a full class keeps a standby line, and the session closes itself and marks the absentees.
Sessions and seats
Any event type with more than one seat is a group event type, and its seat count is the one number that decides how full a class is. A session is created the first time something needs it — the roster is opened, someone checks in, a booking is made — and it is keyed by the event type and the exact start and end time, so one class can never split into two rosters.
A session is open or closed. Attendance is separate from booking status: a booking is attended when it is confirmed and has a check-in time, and a no-show is a booking status written only by the close-out.
Today in the dashboard shows the whole day — the day's sessions in one band and the day's one-to-one appointments in the other — resolved in your own timezone. Opening a session gives you its roster.
Checking people in
The roster is built for a phone held one-handed. Each row is a person; a tap or a swipe marks them here, and an undo puts it back. Opening a row gives a detail pane with the full name, a payment chip, the last four digits of their phone, their tags and a preview of your notes. A first-time visitor is marked as one.
Every roster and door open a live connection to the session, so a tap on one phone appears on the front desk laptop and on the door screen without anyone refreshing. If the connection fails three times the page falls back to polling every three seconds and keeps retrying the connection in the background. Taps made while offline are queued and replayed when the network returns, and each one carries an id so a replay cannot check the same person in twice or charge a second fee.
Any member of the workspace can do anything on any session. The front desk is rarely the instructor.
Close-out, no-shows and fees
A session can be closed by hand from the roster, or automatically a set number of minutes after the start time. Closing marks every booking that was never checked in as a no-show, through the same path a manual no-show uses: it schedules the card-on-file fee with your grace window, fires your webhooks and automations, and records a version of the booking.
A closed session can be reopened for 24 hours, which is how a late arrival is marked and their no-show cleared. A reopened session is not closed again automatically.
New group event types are created with a 10-minute automatic close and with package credits spent at check-in rather than at booking. Both are the Pro half of check-in, so on a plan without it a new class starts with manual close-out and booking-time credits instead. Nothing changes the behaviour of a class that already exists.
Credits at the door
With attendance credit timing, booking a class places a hold on a package session rather than spending it, check-in spends it, and a cancellation in time releases it. Whether a no-show consumes the credit is your setting, and it consumes it by default. With booking timing, which is the default on every event type that existed before this, the credit is spent when the booking is made.
Door screens
A door screen is a tablet showing a full-screen page at the entrance. It is paired, not logged in:
- Open
/dooron the tablet. It shows a six-character code, good for ten minutes. - In the dashboard, under Settings → Door screens, type the code, name the screen, and choose which event types it covers.
- The tablet then claims its own long-lived token. The token is stored hashed, the same way API keys are, and the dashboard can revoke it at any time.
The screen moves through four states on its own clock:
- Ambient between classes — your brand, the clock, what is on next.
- Arriving from 30 minutes before the start until the doors close — a tile per person, tapped to check in, with a 10-second window to undo a mistaken tap.
- Closing — a short sweep at the start time, then a 60-second ring at the grace mark.
- After hours — a dimmed state for the hours a studio is shut. The screen has the logic and the snapshot does not yet carry your opening and closing hours, so it never enters this state today.
A door screen shows a first name and a last initial and nothing else. No phone number, no payment state, no notes, no tags. When two people on one roster share both, the page lengthens the name for both of them rather than showing the same tile twice.
A door screen may check people in and may undo a check-in it made itself. It cannot close a session, reopen one, or see the staff detail pane. Pairing a screen requires the Studio plan; a screen that is already paired keeps working on every plan, and revoking one is never gated.
Not on the list? asks for the last four digits of a phone number. Booking a walk-in from the door is not built yet, so today that keypad always ends by sending the person to the front desk. See what is not built.
Standby
When a class is full, your booking page can offer a place in line instead of nothing. Standby is airline standby, not a mailing list:
- Join. Someone takes a numbered position on your booking page. The embedded widget does not offer standby; only the hosted page does.
- Offer. When a seat comes free, exactly one person — position 1 — is told, with a deadline. The window is your setting, two hours by default, between five minutes and a day. Inside 30 minutes of the start it collapses to five minutes, and it never outlives the class.
- Accept. The offer link books the seat through the ordinary booking path, which is the only thing that can decide a race. Two people offered the same seat cannot both get it; the one who loses keeps their position rather than being treated as having declined.
- Expire. A missed deadline sends that person to the back of the line and offers the seat onward. Positions are never reused.
- Promote. You can move someone in by hand from the roster while a seat is free, and the close-out promotes whoever is standing at the door first.
Offers go out by text and by email. A text is sent only when your workspace has text messaging on, the person gave a number and they ticked the consent box; the panel on your booking page names only the channels that will actually fire. Someone with neither still holds their place, appears on your roster, and can be promoted by hand. What actually went out is recorded against the entry.
Deadlines are always shown as a clock time on the studio's own clock, never as a countdown in a message. Turning standby on for an event type requires Pro; joining, offering, accepting and promoting are never gated, so a lapsed card does not strand a line of people already in it.
Who can do what
- A dashboard session — everything: the roster, the detail pane, close, reopen, mark a no-show, promote from standby, pair and revoke screens.
- A door token — check in, and undo a check-in the door itself made. It reads the same roster a stranger can see: first name, last initial.
- A self token — read the session and check in that one booking, nothing else.
- An API key or OAuth token — whatever its scopes allow, within the member's own role.
check_in:readreads a session,check_in:writechecks people in and undoes, andcheck_in:managemarks a no-show, closes and reopens.
Plans
- Every plan — sessions, the roster, tapping people in, undo, closing a session by hand, and every check-in a paired door screen performs.
- Pro — turning standby on, setting an automatic close-out, and attendance-timed package credits. The gate is on changing those settings, never on the tap itself.
- Studio — pairing a door screen.
Nothing is swept away by a downgrade. A screen already on a wall keeps working, a scheduled fee is still charged, and a standby line is still served. See Billing and plans.
Not built yet
- Walk-ins at the door. The keypad is there and the endpoint answers “not available”, so the screen tells the person to see the front desk. Booking someone in from the door, and the “Owes” chip and pay link that go with it, are not built.
- The self check-in text. The page a self-check-in link opens exists and the token is verified, but nothing in the product issues one — no reminder carries the link, and the door screen shows no QR code for it. Self check-in is not usable today.
- A geofence on self check-in.
- Attendance reporting. Visit counts are kept per person, and there are no analytics cards or attendance reports built on them.
- The first-timer nudge to the instructor. The roster marks a first-timer; nothing messages you about one.
- Taking a card when someone joins standby. A standby join collects no payment method.
- Hardware proof. Standby has not yet been exercised end to end on a real phone.
Related
- Family accounts — when the person on the roster is a child and the parent is the contact.
- Managing bookings — no-shows and what invitees can do themselves.
- Billing and plans — what each plan includes.
Last checked 2026-09-10.