Onboarding staff and staff roles
The six roles, what each one can do, and how to invite, promote, and remove staff safely.
Updated October 3, 2026
Everyone at your gym holds exactly one role, and that role decides what they see and what they can change. There are no per-person permission checkboxes to maintain — pick the role that matches the job.
Staff live at Staff → Staff & roles. You need the owner or admin role to manage them.
The six roles
| Role | In one line |
|---|---|
| Owner | Full access, including billing and staff management |
| Admin | Manage billing, staff, and the schedule |
| Head coach | Manage the schedule and programming, and run the front desk |
| Coach | Run the front desk, view health notes, and coach the floor |
| Front desk | Check members in |
| Member | No staff access — books their own classes only |
What each role can do
| Owner | Admin | Head coach | Coach | Front desk | |
|---|---|---|---|---|---|
| Billing, plans, invoices, refunds | ● | ● | |||
| Staff, roles, and gym settings | ● | ● | |||
| Class schedule and programming | ● | ● | ● | ||
| Front desk: check-in, book for a member | ● | ● | ● | ● | ● |
| Check a member in over a membership problem | ● | ● | ● | ● | |
| Member health notes | ● | ● | ● | ● | |
| Reports | ● | ● | ● | ||
| Leads | ● | ● | ● | ● | ● |
| Member CRM: at-risk, announcements | ● | ● | ● | ● | |
| Marketing journeys | ● | ● | |||
| Staff tasks | ● | ● | ● | ||
| View payroll and hours | ● | ● | ● | ||
| Edit pay rates and run payroll | ● | ● | |||
| Edit time entries | ● | ● | ● | ||
| API keys and webhooks | ● | ● | |||
| Import member data | ● | ● |
Two things worth calling out:
- Head coach is the programming role. Managing the schedule and authoring workouts are the same permission — if someone writes your programming, they’re a head coach. See Using workouts and programming.
- Front desk can work the CRM but not the schedule. They can check people in, book on a member’s behalf, work leads, and send announcements — but they can’t change what the timetable is.
- Only a coach can wave a membership problem through. When the app refuses a check-in, a coach (or head coach, admin, owner) can check the member in anyway with a written reason, which is kept on the record. Front desk can’t: the desk’s answer is to sell a drop-in instead. That one line is the whole difference between the two floor modes on a phone or tablet — see Scheduling classes.
Invite someone
Staff → Staff & roles → Invite staff. Enter their email address, choose the role, and send.
They get an email invitation with a button that opens OurGym. From there they sign in the way everyone signs in — a one-time passcode sent to them, no password to create — and their invitation is waiting on the first screen.
That screen names your gym, who invited them, the role, and what the role can do, with Join and Decline. Joining places them in your gym at the role you chose and drops them straight into the app; declining marks the invitation as Declined on your list rather than deleting it, so you can see they were asked and said no. Either way, nothing further happens on its own — if you want to invite that person again (they changed their mind, or you meant to invite a different address by mistake), just send a new invite above; it replaces the old one.
Nothing in the email is a key to your gym. The button only opens the sign-in page, so a forwarded invitation is useless to anyone else: the invitation opens only for the address it was sent to, and only after that person proves they receive mail there.
Someone who already works at another gym on OurGym doesn’t get sent back to a sign-in screen — a notice appears at the top of their app with the same Join/Decline choice, and accepting adds your gym alongside their existing one. They switch between gyms from the switcher at the top of the sidebar.
Pending invitations are listed below the form with their expiry date, and each has a Revoke action. Revoking stops that invitation working; you can send a fresh one any time. Invitations expire on their own after 14 days — the ones a staff import creates included — so an old unaccepted one isn’t a standing key to your gym — and once one has expired it stops appearing on the invitee’s side, so nobody is left pressing a dead button. It stays on your list with its Revoke action, which is the way to clear it out and send a fresh one.
Every invitation that gets a response — accepted or declined — moves to Invitation history underneath the pending list instead of disappearing, so you always have a record of who was asked, whether they joined, and (if not) that they said no. It carries no action of its own — sending a new invite to that same address is how you invite them again, whatever it currently shows.
If the invitation email can’t be sent, we tell you so on the spot rather than reporting success — the invitation is still saved, and the person can join by signing in with that address anyway. To try the email again, revoke the invitation and send it once more.
Change someone’s role
Use the role selector on their row in the staff list. You’ll be asked to confirm, and the confirmation names the change — “Casey will change from Coach to Head coach” — because a promotion here is a real widening of access.
Changes take effect immediately, on their next screen load.
Remove someone
Remove on their row. They lose all access to your gym at once, and it can’t be undone from here — returning means a new invitation. If they have OurGym open at the time, it moves off your gym straight away and tells them they no longer have access to it. A role change takes effect on their screen without a reload.
An invitation stands on the authority of whoever sent it, so any invitations they sent that are still waiting stop working at the same moment and move to Invitation history as expired. The same happens when you change an owner or admin to a role that can’t invite staff. If you still want one of those people on your team, send them a fresh invite yourself.
The same goes for AI tools: any AI assistant they connected to your gym (see Connecting Claude or ChatGPT) is disconnected at once, and any change it asked for that was still waiting for a reviewer to confirm in the AI review inbox is withdrawn. Changing someone to a role that isn’t staff does the same.
Do this the day someone leaves, not the week after. If they were also a member of your gym, removing their staff access doesn’t cancel their membership; they’re just a member again.
One owner per gym
A gym has exactly one owner, enforced by the system. That’s why your second principal — a business partner, a general manager — is an admin: admins can do everything an owner can except be the owner. The exception covers the owner’s own row too: only the owner can change or remove it. An admin looking at that row sees its role selector and Remove button disabled, with a note saying why.
If you try to demote or remove yourself while you’re the only owner, you’ll be warned that it would leave the gym without one — and once it has none, nobody at the gym can make a new owner. To hand the gym over to someone else, contact the OurGym team: ownership transfers are done by us, so the gym is never left without an owner in between.
If the OurGym team set your gym up
During onboarding we can create your gym for you and add your first staff by email address — the same roles, the same one-owner rule. Anything we do that way lands in your gym’s activity trail, so you can see exactly what was changed and when. Once you’re signed in, staff are yours to manage at Staff → Staff & roles; we don’t need to be involved, and we don’t add or edit your members.
Staff who are also members
Most gym staff train at their own gym, and that works without any special setup. Staff roles carry the “manage my own…” powers everyone has — book my classes, log my results, manage my notifications, change my own membership — so a coach uses the member side of the app exactly like a member.
The distinction the system keeps is self versus others: a coach acting on their own membership is doing member self-service; a coach acting on someone else’s needs the matching staff permission. There’s no role where you can edit your own billing but not be trusted with anyone else’s.
Roles aren’t the only check
Worth knowing, because it explains behaviour you’ll otherwise find surprising:
- Roles decide verbs. Membership state decides bookings. A front-desk staffer has every right to book a member into a class, and the booking can still be refused because that member’s plan has expired, has no visits left, or is past due. The refusal names the reason and how to fix it.
- Hidden buttons are a convenience, not the security. Access is enforced at the data layer, per row, on every request. A role can’t reach another gym’s data or another member’s record by any route, including the assistant.
- The assistant has no authority of its own. It acts strictly as whoever is using it, with exactly their permissions, and every action that changes something stops at a confirmation the human presses. A coach asking it to change a price gets the same refusal they’d get from the UI.
- Pictures in an assistant reply load only when you ask. The assistant can
show a picture only when it found the address in your gym’s data, or you
pasted it yourself; a picture address it made up itself never loads and shows
just the website’s name. A loadable picture shows a card naming the website
it comes from (Show full address reveals the whole link, and it opens by
itself when the address carries extra details after a
?). Nothing is downloaded until you press Load image; OurGym then fetches it, checks it really is a picture (PNG, JPEG, GIF or WebP, up to 5 MB and 40 megapixels), and shows you a cleaned-up copy. Loading still sends the address — including anything after the?, which can carry details from the conversation — to that website, so only load pictures from sites you recognize.
Hours, tasks, and payroll
Once staff are in place:
- Staff → Tasks — assign and track staff to-dos (head coach and above).
- Staff → Hours & payroll — time tracking, pay periods, and rates. Head coaches can view hours and correct time entries; editing pay rates and running payroll is owner/admin only.
- Reports → Staff & labor — coaching hours against class attendance and labor cost.
Text messages to staff, and how they’re switched on
Each staff member controls their own text messages, on their account → Notifications. Nobody can switch these on for someone else, and both are off until the person turns them on:
- Assistant replies — text the OurGym assistant a question and get the answer back as a text.
- New-device sign-in alerts — a text when their own OurGym account is signed in on a device they haven’t used before.
They’re two separate switches on purpose: wanting one shouldn’t oblige anyone to take the other. Both send only to a mobile number that person already confirmed by receiving a sign-in code at it, and either can be switched off again on the same page, or by replying STOP to the message.
Neither is live yet. The settings are there now so that nobody is enrolled by default when they launch; turning one on today starts no messages. When the assistant line does go live, it will answer questions and can draft a change for you — but it will never make a change from a text message. Anything that alters your gym’s records is prepared and waits for you to confirm it, signed in, in the app.
Text messages are never required. Every OurGym sign-in screen accepts an email address instead of a mobile number, so a staff account works fine without a phone number at all.
Signing out of every device
Lost a phone, or signed in on a computer that isn’t yours? Open the menu under your name, choose Personal settings, and press Sign out of all devices on the Sign out everywhere card. After you confirm, every browser and phone signed in to your account is signed out — this one too — and any AI assistant you connected to a gym (Settings → Connected apps) is disconnected. OurGym tells you how many sign-ins and connected apps it ended. Sign back in with a new code wherever you need to. It only affects your own account: your gyms, your role and your staff are untouched.
What it doesn’t reach:
- Sign-ins from before this feature existed. They can’t be ended this way and expire on their own within 7 days of when they were made. OurGym says so in its confirmation while any could still be around.
- For up to a minute, a device that’s in use may keep working before it notices it was signed out.
- Text messages to the OurGym assistant come from your confirmed phone number, not from a sign-in; turn them off on Notifications.
- Calendar-feed links and API keys aren’t sign-ins. Revoke them where they were created.
Signing out in the app also ends that sign-in on our side, so a copy of it left behind on the device can’t be used again. A device that’s signed out because its sign-in ended elsewhere shows a notice saying so.
Practical setups
Solo owner-operator. You’re the owner. Add front-desk roles for part-time help.
Owner plus a business partner. Owner + admin.
Owner, a programming coach, and floor coaches. Owner; head coach for whoever writes the programming; coach for everyone else. Front desk for the people who only work the desk. If your programmer only ever writes programming, point them at programming.ourgym.app — the same account and the same gym, showing the programming screens and nothing else. It is a simpler view, not a weaker one: their role still decides what they can do, in either app.
Multi-location. Roles are gym-wide, not per location, so a head coach can manage the schedule at every site. If you need genuinely separate control per site, talk to us before you split — it’s a real question with real trade-offs.
Where to go next
- Onboarding from zero — the full first-run setup
- Scheduling classes — what your head coaches will spend their time in
Something here out of date, or a step that didn't work? Tell us at support@ourgym.app.