Clients

Student records. Guest seats stay on the paying member.

Clients are the studio’s students and leads.

The Membership column shows the current plan or pack name. Someone who bought a drop-in and has not used it yet shows Drop-in. After it is used they show Previously drop-in. If they also have a membership, the membership is the main line and Previously drop-in stays as a second line.

On the Clients table (/shop/clients), each row has a ⋯ menu (View profile, Send email, Send text, Send membership link). Send email is staff-only (same invite-sender roles as invites; instructors cannot send). It opens a 1:1 dialog with subject and message. Rate limit: 12 sends per staff user per company per minute. Bulk email from this list is not included. A small red dot next to the name means there is an unread text from that student.

Send text is a one-to-one SMS to that student. It is enabled only when they have agreed to texts on their current phone, they have not opted out, and texting is set up for the studio. Otherwise the action is disabled with a short reason (Hasn't agreed to texts, Opted out of texts, No phone number, Phone number changed since they agreed, or Texting isn't set up for this studio). The composer shows a masked number, a character/segment count, and a preview of the exact message (studio name at the start, Reply STOP to opt out. at the end). One text per student per minute. The client page shows Texts: Opted in / Opted out / Not opted in; the Clients table can filter by that.

The client page Messages tab lists emails and texts with that student (newest first): Email or Text, Received or Sent, what it was, a short preview (not the full email layout), time in your timezone to the minute, status for sent notes, and who sent it (or Automatic / Student / Auto-reply). Filter All / Email / Text. Resend appears when the studio can send that same note again — not on received texts or auto-replies. Resending a text still requires they are opted in. Send email and Send text are on this tab. Incoming STOP / START / HELP replies also show here. Empty list: No messages yet. A dot on the Messages tab clears when you open it. The studio contact email is notified when a student sends a regular (non-STOP/START/HELP) text. Studios can turn on a once-a-day auto-reply for those regular texts in Settings → Integrations.

The message toolbar Insert link writes markdown [link text](https://url). The sent email (and the live Where it appears preview) turns those into <a href> tags. Bare http/https URLs still auto-link. Other HTML is escaped. An empty subject shows Enter a subject. under the field. Optional buttons: leave the toggle on with no custom rows to keep View classes; hide them; or add up to three custom label + http/https URL buttons. An invalid URL (for example notaurl) shows Use an http or https URL. under the field on blur and on Send, and Send does not go out. On narrow screens the row ⋯ stays sticky on the right with extra padding so a floating feedback/dev control does not cover it. Add Client sits in the top toolbar with extra right padding on small screens (max-sm:pr-16) so it does not sit under that same floating control. Search and the tags / class filters stack (flex-col until lg) so they do not overlap at high browser zoom.

Each row can show a system stage tag (Waitlist, Account, no class, Booked a class, Member) derived from login, waiver, bookings, and membership. Color is the pill fill only. It is not a custom tag: lock pill, tooltip, not removable. Filter System and Custom tags separately. Use View → Show system tags (default on, saved per admin) to hide those pills and the System filter group. See System client tags.

The All classes in / not-in filter is hidden on this page for now. When shown, it groups a class session, class type, and weekly series.

The Clients list Created Date column and the Details Created line show when the record was added, with local date, time to the second, and a short timezone label. Older records may show a date only.

A class reservation, including a guest seat, is stored on the paying member’s client. The guest does not need a client row. On the session roster the guest row names that member (Booked by …). See Classes and guests.

Year in Review Date Added for new customers uses the same formatter.

Invite a student when you want them to create their own login. Whether they must enter a 6-digit email code is the same Require clients to verify their email at sign-up toggle as storefront sign-up (App & Site). Off (default): no code. On: they enter the code like any other student sign-up. The invite form can collect an optional phone (saved on the client record, same as Profile) and an optional SMS marketing checkbox. A used invite link does not open the form again; it says the invite was already used and offers Sign in instead. On Clients, a sent invite shows Invited and the date; use Resend invite (confirm first) to send again. Each send opens a personal message pop-up with a live email preview (same modal as class invites, not-selected notes, and free-credit grants). The box always starts from the studio default for that email type (not the last person you emailed). The preview greeting matches the selected recipient; bulk emails say Hi {first name},. Filter Waitlist (or any tag), select rows, and use Invite selected. Not selected sends a different note (memberships button) to people you did not pick for an invite-only class. The list row shows Not selected even if they already Has account. That badge, the already-notified warning/opt-in in the send modal, and skip all read the same stamp from the clients list API (including notes sent before the latest deploy). Bulk send skips people who already got that note (you’ll see “N skipped, already notified”) unless you check resend. On a single client, Resend not selected warns with the previous send time in your timezone, then sends. Set studio defaults under Settings → Email Templates. When they have an account, the Waitlist tag is removed so the row never shows both Waitlist and Has account. Public studio self sign-up still follows the Online Store verification toggle.

Students who already have a login can open Profile on your public studio (/s/{slug}/profile) and change their own name and email, or request a password reset email. Name changes show up on the client record you see here. Email changes wait for them to confirm the new address. If their login email is still unverified, Profile shows a small notice with Send verification code. It does not block booking or purchases. This does not turn on sign-up email verification; that toggle stays under App & Site.