Roles & permissions
Access in Cradlen is decided by two things working together: a person's role and their job function. Understanding the difference explains why two people with the same title can see different screens.
Roles vs. job functions
- Role is the kind of account: owner, staff, or branch manager. It sets the broad shape of what someone can do.
- Job function is what they actually do day to day: doctor, receptionist, or accountant. It refines access on top of the role, and the doctor job function is the clinical one.
This pairing produces the personas the app recognizes — for example an owner who is also a doctor sees clinical workspaces, while an owner who doesn't practice does not.
Why a clinical job function matters
Clinical surfaces — examination workspaces and patient clinical detail — are gated on a clinical job function, not just the role. An owner without one manages the clinic but won't open exam screens.
The roles
- Owner — full clinic setup: organization and branch settings, staff, the service catalog and pricing, and reports.
- Branch manager — operational oversight of a branch.
- Staff — a team member who works within their job function and permissions.
The job functions
- Doctor (clinical) — the examination workspace: schedule, visits, examinations, and patient history.
- Receptionist — day-to-day operations: booking visits, checking patients in, creating invoices, and collecting payment.
- Accountant — invoices, payments, cash sessions, and financial reports.
Role and job function combine: an owner or branch manager who also holds the doctor job function gets the clinical workspace on top of their management access — while the same role without it stays purely operational.
How this shows up in the app
The sidebar only lists what your persona can reach — there are no dead links to screens you can't open. The same permission rules are enforced again on the server, so the menu is a convenience, not the security boundary.
Setting roles
Assign roles and job functions when you invite or edit a team member under Staff. See Getting started for the invite flow.
