Last updated 2026-07-31
Roles & access
OtiumWork separates org-hierarchy roles (who reports to whom, who approves timesheets) from module access (who sees Finance, HR, Legal). Roles live on a hierarchy; modules are independent on/off flags.
The three roles
Each employee has one role, set in Manage โ Employees. Roles are about org hierarchy and approval rights โ they do not unlock any module by themselves.
| Role | Sees own time | Sees team time | Approvals | Admin settings |
|---|---|---|---|---|
| employee | โ | โ | โ | โ |
| manager | โ | direct reports | โ for own team | โ |
| admin | โ | full company | โ | โ |
- Employee โ the default. Captures their own time, taps tiles in My Day, edits their own events. Never sees dollar figures.
- Manager โ leads a team. Approves timesheets, sees their direct reports' hours, billable %, capacity, scenarios, utilization. Full Team / Capacity / Scenario / Utilization / Reports access.
- Admin โ owns the workspace. Full settings, employees, rules, integrations, billing. Implicitly has all three module flags.
One exception worth knowing: an employee who is named a project's Project Manager (or carries a PM / Lead role on the project team) can edit and plan that project โ see Projects and clients. It's per-project authority, not a role change: no team time, no approvals, no dollar figures.
The three module-access flags
Finance, HR, and Legal are gated by independent per-employee flags, not by role. Admin always has all three. Anyone else โ manager or employee โ sees the corresponding sidebar section (and can reach the routes) only if their flag is set.
| Flag | Unlocks |
|---|---|
| has_finance_access | Finance sidebar section: dashboard, profitability, departments, sales, commissions, R&D report, monthly snapshots, finance inbox, QuickBooks, entities & FX. Also: ability to edit hourly_cost on the employee form, and access to billing settings. |
| has_hr_access | HR sidebar section: dashboard, org chart, checklists, all per-employee HR tabs (docs, key dates, certs, reviews, goals, 1:1s, salary history, disciplinary). |
| has_legal_access | Legal sidebar section: dashboard, contracts, compliance, IP, insurance, litigation, DSR/GDPR, templates. |
The flags are fully independent: granting Finance does not grant HR or Legal. Someone with all three sees all three; someone with none sees none. Without a flag, the section is invisible in the sidebar and direct URL access returns 403.
Admin without the money โ "Block Finance"
Admin normally implies Finance. When you need someone to administer people โ add employees, set roles, grant module flags โ without seeing company money, tick Block Finance โ even for admins on the employee form (directly under the Finance grant, admin-only).
It is a hard veto that beats both the admin role and the Finance flag:
- No Finance section, billing, invoices, quotes, expenses, or commissions.
- No cost / rate / $ column anywhere โ reports, team, projects, customer P&L.
- Direct URLs return 403, and
hourly_costcannot be written even by a hand-crafted POST. - Ticking it clears the Finance grant, so the row can't say two things at once.
What it does not do โ the difference from a developer account: the person stays real staff. They still count in utilization, headcount, the org chart and survey denominators, they still appear in team rosters and people pickers, and they get no extra integration-config visibility. They also keep the employment-terms fields that are HR, not money: employment type, annual vacation entitlement, and business entity.
Typical use: an HR or Legal director who is also the workspace people-admin.
Role = admin, has_hr_access + has_legal_access on, Block Finance ticked.
Two things worth knowing before you use it:
- Sales and Marketing are not covered. Deal amounts and pipeline values stay visible, because OtiumWork does not classify them as Finance โ sales reps see their own pipeline without any finance flag. If you need those hidden too, that is a separate change.
- An admin can untick the box on their own record. This is a separation-of-duties control, not a security boundary against a hostile admin โ the change is written to the audit log either way.
Why flags instead of more roles
Roles encode the org hierarchy (who manages whom). Module access encodes responsibility areas (who handles money, people files, contracts). They are orthogonal: a manager might also handle HR, or a finance person might also be the legal contact. Flags compose; roles can't.
Setting a role and granting access
Admins manage both at Manage โ Employees โ [person] โ Edit:
- Role โ dropdown (employee / manager / admin).
- Module access (admin-only) fieldset โ three checkboxes: "Grant Finance access", "Grant HR access", "Grant Legal access". Tick the ones this person needs. Save.
Managers can edit their direct reports' name, dept, etc. but cannot toggle the access flags or grant the admin role.
Sidebar by role + flags
| User | Sidebar sections shown |
|---|---|
| employee, no flags | Your work ยท Projects ยท Market intel |
| employee + Finance flag | Above ยท Team (incl. Utilization) ยท Reports ยท Finance |
| employee + HR flag | Your work ยท Projects ยท Market intel ยท HR |
| manager, no flags | Your work ยท Projects ยท Team ยท Reports ยท Market intel |
| manager + Finance flag | Above ยท Finance |
| manager + HR + Legal flags | Manager view ยท HR ยท Legal |
| admin | Everything: Manage, Finance, HR, Legal |
Developer accounts
A developer account is a special login for the Otium engineering team to debug
and support the product. Tick Account type โ Developer account on the employee
form (admin-only). It is not a fourth role โ it's a flag layered on top of admin:
- Admin-equivalent read + act across this workspace โ sees and can edit almost everything an admin can.
- Full integration visibility โ Salesforce, Outlook/MS Graph, and company-API data and config pages, so integration bugs can be reproduced. Secret values (client secrets, API keys) stay masked, same as for everyone.
- Never sees any financial data โ Finance, billing, invoices, quotes, expenses, commissions, and every cost / rate / $ column (reports, team, projects, customer P&L) are blocked, even though the account is technically an admin.
- Excluded from people analytics โ does not count toward utilization, headcount, org-chart, or survey response rates, and never appears in team rosters or people pickers (a developer is a real login, not real staff).
- No platform owner access โ can never reach the
/opsplatform area (Stripe / Anthropic keys, cross-tenant billing), even if its email is on the owner allowlist.
Ticking the box forces the role to admin and clears any Finance flag. Do not
also add a developer's email to the platform owner allowlist (OPS_ACCESS_EMAILS).
Common combinations
- CFO / controller โ role =
employee(ormanagerif they lead an FP&A team),has_finance_accessonly. - HR director โ role =
employeeormanager,has_hr_accessonly. - General counsel โ role =
employee,has_legal_accessonly. - Operations lead handling money + people โ role =
manager, bothhas_finance_accessandhas_hr_access. - HR/Legal director who also administers the workspace โ role =
admin,has_hr_access+has_legal_access, Block Finance ticked. Full employee and permission management, zero visibility into costs or margins. - Workspace owner โ role =
admin. All three flags implicit.
See something wrong or outdated in this article? Report it โ