← Documentation

Onboarding staff and staff roles

The six roles, what each one can do, and how to invite, promote, and remove staff safely.

Updated September 14, 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

RoleIn one line
OwnerFull access, including billing and staff management
AdminManage billing, staff, and the schedule
Head coachManage the schedule and programming, and run the front desk
CoachRun the front desk and view health notes
Front deskCheck members in
MemberNo staff access — books their own classes only

What each role can do

OwnerAdminHead coachCoachFront desk
Billing, plans, invoices, refunds
Staff, roles, and gym settings
Class schedule and programming
Front desk: check-in, book for a member
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.

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 removes the invitation and tells you nothing further is coming.

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, 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.

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.

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.

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. Handing the gym over means promoting the new owner first.

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.

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.

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


Something here out of date, or a step that didn't work? Tell us at support@ourgym.app.