Appearance
Who can see what
Three things decide whether a page appears in your menu. Understanding them turns "the page is missing" from a mystery into a two-minute check.
The three gates
| Gate | Set by | Effect when closed |
|---|---|---|
| Plan / module | Your subscription tier, in Marketplace | The whole module is absent for everybody in the workspace |
| Role permission | Permissions per role | The page is absent for people holding that role |
| Record scope | The data itself — your team, your tickets, your tasks | The page is there, but shows fewer rows |
Typing the address by hand does not open a closed gate: the workspace redirects you to the dashboard, and the server refuses the underlying request as well.
Reading a permission name
Every article in this guide names the permission its page needs, in the Where to find it box. They follow one pattern:
employees_list:view
└── area ──┘ └ action| Action | Means |
|---|---|
view | Open the page and read it |
create / edit / delete | Change the data |
* | Everything — administrator |
Permissions by page
Use this table when somebody asks for access: find the page, then switch on the permission
for their role.
| Menu | Page | Address | Permission |
|---|---|---|---|
| Overview | Overview dashboard | /dashboard | dashboard_overview:view |
| HR | Employees | /employees | employees_list:view |
| HR | Employee invitations | /users/invitations | employees_invitations:view |
| HR | Events | /employees/events | employees_events:view |
| HR | Teams / Departments | /teams | teams:view |
| HR | Org chart | /org-chart | org_chart:view |
| HR | Contracts | /employees/contracts | employees_contracts:view |
| HR | Contract types | /employees/contract-types | employees_contract_types:view |
| HR | Job titles | /employees/job-titles | employees_contracts:view |
| HR | Attendance management | /attendance | attendance_list:view |
| HR | Timesheet (weekly) | /timesheet | timesheet:view |
| HR | Timesheet (monthly) | /timesheet/monthly | timesheet_monthly:view |
| HR | Shift | /shifts | shifts:view |
| HR | Work schedule | /attendance/roster | attendance_list:view |
| HR | Adjustment approvals | /corrections | corrections:view |
| HR | Attendance settings | /attendance/policies | attendance_list:view |
| HR | Form templates | /attendance/forms | attendance_list:view |
| HR | Submitted forms | /attendance/submissions | attendance_list:view |
| HR | Leave | /leaves | leaves:view |
| HR | Annual leave | /leave-balance | leave_balance:view |
| HR | Holidays | /holidays | holidays:view |
| HR | Asset list | /assets | assets:view |
| HR | Handover & return | /assets/assignments | asset_assignments:view |
| HR | Inventory | /assets/audit | asset_audit:view |
| HR | Digital assets | /digital-assets | digital_assets_list:view |
| HR | Fee tracking | /digital-assets/billing | digital_assets_billing:view |
| HR | Alerts | /digital-assets/alerts | digital_assets_alerts:view |
| HR | Late penalties | /penalties | penalties:view |
| HR | Locations | /locations | locations:view |
| Chat | Team chat | /chat | module must be enabled |
| Support | Tickets | /tickets | support_tickets:view |
| Support | Dashboard | /tickets/dashboard | support_dashboard:view |
| Support | Support types | /tickets/categories | ticket_categories:view |
| Support | SLA | /tickets/sla | ticket_sla:view |
| Support | Assignments | /tickets/rules | ticket_rules:view |
| Support | Reply templates | /tickets/canned-responses | support_templates:view |
| Support | Widget | /tickets/widget | support_widget:view |
| Support | Ticket settings | /tickets/settings | support_settings:view |
| Tasks | Assignments | /tasks | tasks:view |
| Approve | Approval inbox | /approvals | approvals:view |
| Approve | Approval template | /approvals/templates | approval_templates:view |
| Automation | Automation | /automation | module only |
| Report | Report hub | /reports | per report |
| Utilities | Suppliers | /utilities/suppliers | suppliers:view |
| Utilities | Export | /utilities/exports | exports:view |
| Utilities | Print library | /utilities/print-library | print_library:view |
| Utilities | Notification templates | /utilities/notification-templates | noti_templates:view |
| Utilities | Email Template | /settings/email-templates | email_templates:view |
| Utilities | General chat group | /utilities/company-room | company_room:view |
| Utilities | Pipeline library | /settings/pipelines | recruitment_pipelines:view |
| Utilities | Bot | /settings/bots | int_bot:view + chat module |
| System | General settings | /settings | settings:view |
| System | Notification history | /settings/notification-logs | notification_logs:view |
| System | AI costs | /settings/ai-usage | ai_usage:view |
| System | Claude | /settings/integrations/claude | int_claude:view |
| System | ChatGPT | /settings/integrations/chatgpt | int_chatgpt:view |
| System | /settings/google | int_google:view | |
| System | API Keys | /api-keys | api_keys:view |
| System | Webhooks | /webhooks | webhooks:view |
| System | Role | /roles | roles:view |
| System | Permissions | /permissions | permissions:view |
| System | Storage | /settings/storage | storage:view_all |
| System | Plans & billing | /settings/billing | settings:view |
| System | Switch workspace | /select-workspace | everyone |
| Marketplace | App modules | /marketplace | marketplace:view |
Diagnosing an access problem
- Is the module in your plan? Check Marketplace — if the module is not in your tier, nobody in the workspace has the page.
- Does the person's role have the permission? Look the page up in the table above, then check the switch in Permissions.
- Does the person hold the role you think? Open their employee record and read it there. This is the most common answer.
- Is the data scoped? Some pages show only your own team's records by design; the page opens, but the rows are filtered.
Notes
- Administrators bypass permission filtering entirely, so testing "does this role work?" with an administrator account proves nothing. Use a real account with that role.
- Permission changes apply on the next page load; the person does not need to sign out.
