Docs
Admin Guide

Permissions

Define custom roles and manage the 65-key permission catalog in VoiceCenter.

Who should read this:Administrators

VoiceCenter includes a granular permission system built around custom tenant roles and a 65-key permission catalog. This allows you to define exactly what each role can access, down to individual features and actions.

How Permissions Work

Every API endpoint and navigation item in VoiceCenter is protected by a permission key. When a user performs an action, the system checks whether their assigned role includes the required permission key.

The permission flow:

  1. An administrator creates a custom role (TenantRole).
  2. The administrator assigns permission keys to that role.
  3. Users are assigned the role.
  4. The system enforces the role's permissions on every request and hides unauthorized navigation items.

The Permissions Page

Navigate to Settings > Permissions to manage roles and their permissions. The page has three tabs:

TabPurpose
RolesCreate, edit, and delete custom roles
Permission CatalogBrowse all 65 available permission keys with descriptions
AssignmentsView which users have which roles and make bulk changes

Creating a Custom Role

  1. Go to the Roles tab

    Open Settings > Permissions and select the Roles tab.

  2. Click Create Role

    Click the Create Role button and enter a name for the role (e.g., "Junior Agent", "Finance Viewer", "Team Lead").

  3. Select permission keys

    Check the boxes next to each permission key this role should have. Use the search bar and category filters to find specific keys quickly.

  4. Save the role

    Click Save. The role is now available for assignment to users.

Permission Key Categories

The 65 permission keys are organized into categories:

CategoryExample KeysControls
Usersusers.view, users.create, users.edit, users.deleteUser account management
Teamsteams.view, teams.create, teams.edit, teams.deleteTeam management
PBXextensions.manage, ivr.manage, queues.manage, ring_groups.managePBX configuration
Numbersnumbers.view, numbers.routing, numbers.requestNumber management and routing
Voicecalls.make, calls.receive, recordings.view, recordings.downloadCall operations
Monitoringmonitor.view_own, monitor.view_team, monitor.view_all, monitor.listen, monitor.whisper, monitor.bargeLive call supervision
Call Logscall_logs.view_own, call_logs.view_team, call_logs.view_all, call_logs.exportCall history access
Billingbilling.view, billing.invoices, billing.wallet, billing.plansFinancial data
Analyticsanalytics.view, analytics.exportReporting and dashboards
Settingssettings.general, settings.api_keys, settings.webhooks, settings.ip_allowlistTenant configuration
Operationscaller_id.manage, fraud_limits.manage, blocked_destinations.manageTelecom controls

Tiered visibility keys

Several permission keys support tiers: view_own, view_team, and view_all. For example, an agent with call_logs.view_own sees only their calls, while a supervisor with call_logs.view_team sees all calls from their team. The view_all tier grants cross-team access.

Built-In Roles vs. Custom Roles

VoiceCenter ships with three built-in roles that cannot be deleted:

RolePermissions
AdminAll 65 permission keys
SupervisorMonitoring, team-scoped logs, reporting, queue management
AgentMake/receive calls, view own logs, after-call work

Custom roles let you create variations. Common examples:

  • Finance Viewer -- billing.view and billing.invoices only, no call or PBX access.
  • QA Analyst -- recordings.view, call_logs.view_all, and analytics.view for quality review without call-making ability.
  • Junior Agent -- Same as Agent but without recordings.download or call_logs.export.

Assigning Roles to Users

You can assign roles in two places:

  1. User edit form -- When creating or editing a user under Settings > Users, select the role from the dropdown.
  2. Assignments tab -- On the Permissions page, the Assignments tab shows all users and their roles. Use it for bulk reassignment.

How Enforcement Works

Permission enforcement happens at two levels:

  • Frontend -- Navigation items, buttons, and page sections are hidden when the user lacks the required key. This prevents confusion but is not a security boundary.
  • Backend -- Every API endpoint checks the user's role permissions via the @RequirePermission decorator. Unauthorized requests return a 403 Forbidden response regardless of what the frontend shows.

Always test new roles

After creating a custom role, log in as a user with that role to verify the experience. Check that they can access what they need and that restricted areas are properly hidden.

Related Articles