A school's dashboard is rarely a one-person job. The head's office sets direction; the admissions lead handles inquiries; the comms person sends broadcasts. The platform supports up to five roles with distinct permissions so each person has exactly what they need and nothing more.
This article covers the role model, how to invite team members, what each role can do, and the operational rules that prevent the classic "we removed her account and now no one owns those inquiries" mess.
The five roles
| Role | What they can do | |---|---| | Owner | Everything. Manage billing, change roles, delete the school, transfer ownership. One per school (transferable). | | Admin | Manage content + team + settings (except billing). Invite/remove editors and viewers. Send broadcasts. | | Editor | Edit school profile, programs, media, photos. Respond to inquiries. Manage bookings. Cannot invite teammates or change settings. | | Viewer | Read-only access to dashboard + analytics. Cannot edit, reply, or send anything. | | Demo viewer | Sandbox-only role for trial/demo accounts. School admins shouldn't see this in practice. |
The decision rule: pick the lowest role that lets the person do their actual job. A board member who wants to "check on the school" is a Viewer, not an Admin. A parent volunteer who helps with comms during admissions season is an Editor, not an Admin.
Inviting a team member
Settings → Team → Invite member.
Fill in:
- Email address — what we'll send the invitation link to
- Role — pick from the table above (Admins can invite Editors and Viewers; only Owners can invite other Owners)
- Language for the email — en, fr, de, or it. We send the invitation in whichever language they'll be most comfortable reading
They get an email with a magic link valid for 7 days. Clicking it logs them in (no separate signup step needed) and adds their school_accounts entry. Their status flips from "Pending" to "Active" the moment they click.
If they don't click within 7 days
The link expires. From Settings → Team you can:
- Resend the invitation — generates a new 7-day link, the old one stops working
- Cancel the invitation — removes it from the list, doesn't send any notification
If they say "I never got it" — first check their spam folder, then
resend. The send goes from admin@swissprivate-schools.ch so
schools that have allowlists in their email security should
whitelist that address platform-wide.
Changing someone's role
Settings → Team → click the role dropdown next to a team member. Pick the new role. Change is immediate; the affected person sees the new permissions the next time they refresh the dashboard.
Only Owners can change roles — Admins can invite and remove people, but can't promote an Editor to Admin or demote an Admin to Viewer. This is intentional: a single rogue Admin shouldn't be able to lock the Owner out.
Removing a team member — read this carefully
Settings → Team → ... → Remove from school. The user's school_accounts entry is deleted; they lose access immediately.
What does NOT happen automatically (and this is the gotcha):
- Their assigned inquiries stay assigned to them. The inquiry shows the assignee's name but the assignee no longer has access. Result: the inquiry sits in "assigned but unactionable" limbo until someone manually reassigns.
- Their confirmed bookings remain on the calendar. No reassignment there either.
- Internal notes they wrote are preserved with their authorship attribution. Past work history isn't deleted.
The right way to remove a team member:
- First, reassign anything they own: inquiries, applications, bookings. Use the bulk-assign action from the relevant tab.
- Then remove their account.
- Send the next-shift person a quick note explaining what's now on their plate.
Skipping step 1 is the #1 cause of "we have inquiries we forgot about" complaints 3 months after someone leaves.
Transferring ownership
When the head of school changes, or the founder hands off operations, you'll want to transfer Owner. This is a one-step action — not a deletion + reinvitation.
Settings → Team → Ownership → Transfer ownership.
- Pick an existing team member (they must already be on the team with any role)
- Confirm — the swap is atomic: they become Owner, you become Admin
- Both of you can keep working immediately; no re-login needed
Only the current Owner can initiate this. If the Owner is unavailable or has left the organization without transferring, email admin@swissprivate-schools.ch with proof you're authorized (e.g. new head of school's contract, board minutes) and we can transfer on your behalf.
What about platform admin actions?
Some operations happen at the platform level — billing changes made by us, account suspensions, deletion requests. These are logged in our internal admin audit log but not surfaced in your school dashboard.
This means: if a platform admin changes your tier or modifies something on your account, you'll see the result in the dashboard but not a "platform admin X did Y at time Z" history. For school-level actions (your team members doing things), the relevant detail lives in the related record's notes / decision log (e.g. internal notes on an inquiry, decision rationale on an application).
If you need to understand exactly what changed and when — for compliance, board reporting, or post-mortem — email us at admin@swissprivate-schools.ch and we can pull the audit trail from the platform side.
Common team patterns
After seeing dozens of schools structure their team, three patterns work well:
- Solo school (1 person). Head of school is the Owner, runs everything. Add a second account anyway — even a Viewer — so you have an "emergency access" person if you lose your password on a critical day.
- Small team (2-3 people). Head as Owner, admissions lead as Admin, comms/marketing as Editor. Owner does billing + strategy; Admin runs day-to-day; Editor produces content.
- Larger team (5+ people). Head as Owner, second-in-command (deputy head or admissions director) as Admin, individual contributors as Editors, board members + advisors as Viewers. Don't give Editor to people who only need to look at numbers — Viewer exists for that reason.
Common mistakes
- Defaulting everyone to Admin. Convenient on day 1, security liability by month 3. The role model exists for a reason; use it.
- Inviting personal-email addresses. Personal email + magic link works fine, but when the person leaves the school you have to remember to remove them. Role-based addresses (admissions@yourschool.ch) survive personnel changes.
- Not transferring ownership when the head changes. A retired head still showing as Owner is a documentation nightmare for whoever inherits the role. Transfer the moment the new head is in place, not "we'll sort it later."
- Removing accounts without reassigning. See the gotcha section above — reassign first, remove second.
When to escalate to us
Email admin@swissprivate-schools.ch if:
- The Owner has left and didn't transfer — we'll do it for you with proof of authorization
- You can't find a former team member's work (inquiries, bookings) that should be in the system — we can search by user account
- You suspect unauthorized access — we can audit recent sessions and revoke if needed
- You need to bulk-invite a large team (10+) for an organizational rollout — we have a CSV import workflow for this
We respond within 2 business days.