Early on, it's tempting to give everyone the same access — there's no time to configure permissions, and the whole team is small enough that nothing bad happens. That approach quietly stops working the moment a field employee can see every colleague's attendance history, or every customer's full contact list, or approve their own expense claim.
Three roles, not twenty toggles
Org Admin, Manager, and Field Employee cover the actual shape of a field team without turning role management into a spreadsheet of individually-toggled permissions. An Org Admin has full control — every module, every setting. A Manager assigns and approves work across their team, with visibility into everyone's day. A Field Employee sees exactly their own tasks, visits, and history — nothing more.
The subtle trap: a permission that's technically correct but too broad
The real failure mode isn't usually "no permission at all" — it's a permission that's legitimately needed but scoped too wide. A Field Employee needs to see their own attendance history, so they're granted an attendance-viewing permission. If that permission isn't also scoped to "their own records only," they can now see everyone's. The permission itself wasn't wrong to grant — it just needed a narrower boundary than the broad version implies.
Getting this right means every list endpoint checks not just "does this person have the permission" but "whose records is this permission actually supposed to cover" — self-scoped by default, widened explicitly for the roles that need team-wide visibility.
What this buys you as the team grows
Assign a role once, and the right screens, approvals, and data follow automatically — a new hire doesn't need a custom access review, and a promotion to Manager doesn't require re-configuring a dozen individual toggles. Role-based access is what lets a field team scale from five people to fifty without access control becoming its own ongoing project.
