Skip to main content

Roles

A role is a set of permissions. Under Settings → Roles you see what each role allows and who holds it, and make roles of your own. You give roles on a person's page under Users.

Units and roles work together. A person sees the cases of the units they work in (and every unit below); their roles say what they may do there.

A role is held everywhere, or in a unit and everything below it: someone can be an Agent in Billing only, or an Analyst everywhere.

References​

Every role and permission has a technical reference next to its friendly name, for troubleshooting, the audit log and the API:

ReferenceFormatExamples
Permission keys<area>.<what>case.read, case.write, incident.send_update
Role keysThe desk's roles by name; <area>.<role> for a plugin's; custom.<name> for your ownadmin, agent, viewer; incident.manager; custom.second-line
Role idsThe database ids the API uses/api/v1/roles/{id}

Most areas have read (see it), write (change it), delete and settings (configure the area); a few steps have a named permission of their own, like case.merge or incident.change_priority. Areas are singular, and a plugin that extends another sits under its area: Major Incident Management's incident.major.declare, the Status Page's incident.status.publish.

A role's page shows its key and id, each with a copy button, and every permission with its key.

What read permissions do​

Read permissions decide what someone sees, inside the units they work in. Without case.read someone sees no cases, wherever they work; with it only in Billing, they see Billing's cases only. The same goes for incident.read, account.read, contact.read, user.read, team.read and role.read.

[!NOTE] Seeing is not working: someone who holds case.read but not case.write in a unit reads its cases, can't change them, and isn't offered as an assignee.

Built-in roles​

Built-in roles come with the desk and its plugins. Each holds a whole area, so the role is easy to reason about. Nobody can change or delete them, Administrators included, and no role of your own can take their names.

RoleKeyAllows
AdministratoradminEvery permission, everywhere, including those of plugins added later. Administrators see every unit. At least one person always has the role.
AgentagentEveryday case work: case.read, case.write, case.create, case.merge; account.read, contact.read, contact.write; with Incident Management, incident.read and incident.write; with Service Configuration, service.read. New people get it.
ViewerviewerReads and changes nothing: case.read, account.read, contact.read, report.read, incident.read and service.read. For stakeholders and auditors.
Analystanalystreport.read, and case.read for the cases behind them.
Account Manageraccount_managerEverything about accounts and contacts: account.read, account.write, account.delete, contact.read, contact.write, privacy.export, privacy.erase; and agreement.read and agreement.write: agreements from templates.
Service Delivery Managerservice_delivery_managerAgreements with accounts: agreement.read, agreement.write and agreement.manage (agreements without a template, deleting them, and the templates under Settings → Agreements); with account.read and contact.read.
Service Level Managersla_managersla.settings: service levels and business hours.
AuditorauditorReads everything an audit needs and changes nothing: case.read, account.read, contact.read, agreement.read, report.read, audit.read (the audit log and the export log), user.read, team.read, role.read, and audit.evidence, audit.config and audit.logged; with their plugins, incident.read, problem.read, change.read, service.read and access.read. Everything they open or export is logged. Give it for the engagement's period (roles for a period), in the units in the audit's scope. See compliance and audit.
Access Manageraccess_manageruser.read, user.write, team.read, team.write, role.read, role.write, everywhere: every role except Administrator. With Access Management, access.read, access.write and access.settings.

Plugins add built-in roles of their own:

RoleKeyAllows
Problem Manager (Problem Management)problem.managerProblems: problem.read, problem.create, problem.edit, problem.manage (owner, close, merge, risk acceptance, sign-off) and problem.settings.
Change Manager (Change Management)change.managerChanges: change.read, change.write, change.approve, change.manage (override the risk, reschedule and cancel others' changes, proceed without a customer's answer), change.template and change.settings.
Change Approver (Change Management)change.approverchange.read and change.approve: approves the changes a policy asks them to (a CAB member).
Service Manager (Service Configuration)service.managerThe service catalogue: service.read, service.write (records and the accounts using them), service.approvers (accounts' change approvers and notice contacts) and service.settings (add services and offerings, change their status, delete unused ones).
Incident Manager (Incident Management)incident.managerEvery incident permission, and those of Major Incident Management and the Status Page when they are on: work on incidents, send updates, change priority, delete, declare and run major incidents, publish on the status page, and all their settings.
Incident Responder (Incident Management)incident.responderincident.read, incident.write, incident.send_update, and incident.major.write to work on major incidents.

People who were agents before roles existed are Agents and Analysts, so they kept their reports. Admins became Administrators (and Agents).

Permissions​

The desk's permissions, by area. Settings → Roles lists them with their hints, and plugins' under their own area.

AreaKeyLets them
Casescase.readSee the cases of the units they work in, with their conversations
case.writeReply, add notes, change status, priority, assignee, team, labels and unit; accept or reject held requests
case.createNew case: phone calls, walk-ins and everything else
case.mergeMerge a case into another from the same requester
case.legal_holdSet and lift a legal hold on a case, problem or change
case.approveGive the approval a process control asks for on a case they don't handle themselves
view.shareViews everyone sees in their sidebar (sharing with people, teams and units needs nothing)
Customersaccount.readSee accounts
account.writeCreate and edit accounts, and move contacts between accounts
account.deleteDelete an account (its contacts and cases stay)
contact.readSee contacts
contact.writeCreate contacts and edit their details
privacy.exportExport everything about a contact (an access request)
privacy.eraseErase a contact and everything about them (an erasure request)
Insightreport.readReports, counting the cases they can read
audit.readSettings → Audit log, and the export log (Settings → Exports)
audit.evidenceAudit evidence: the controls and their results, the exceptions, populations, samples and evidence packs
audit.configRead the configuration: Settings → Configuration, and conflicts of duties
audit.loggedReading is logged: every record and list they open goes in the audit log, their exports in the export log (for auditors)
control.settingsProcess controls: define, change and switch them off, and explain exceptions
Servicesla.settingsService levels and business hours
rule.settingsSettings → Automations
survey.settingsSatisfaction surveys, and which units send them
Channelsform.settingsForms, their security and IP allowlists
portal.settingsPortals, their pages and domains
brand.settingsBrands: names, logos, colours, senders and signatures
email.settingsInbound email settings and the review of refused emails
People and organizationunit.settingsOrganizations and units
user.read, user.writeSee users; invite, edit and disable them
team.read, team.writeSee teams; create, change and delete them, their members and units
role.read, role.writeSee roles and who holds them; your own roles, and giving and taking away roles
Installationtoken.settingsSee and revoke anyone's API tokens and AI assistant connections
webhook.settingsWebhooks and their deliveries
housekeeping.settingsWhat is deleted when
property.settingsData properties: add, change and archive them
installation.settingsInstallation settings, languages and plugins

Plugin permissions:

PluginKeyLets them
Incident Managementincident.readSee the incidents that affect the units they work in
incident.writeDeclare incidents, change status, commander, category and units, add notes, link cases, write the review
incident.send_updateSend updates to the requesters of the linked cases
incident.change_priorityChange priority, impact and urgency after declaring
incident.deleteDelete an incident for good
incident.settingsSettings → Incident Management
Major Incident Managementincident.major.writeWork on major incidents: roles, steps, stakeholder updates, child incidents
incident.major.declareDeclare and stand down major incidents
incident.major.settingsSettings → Major Incident Management
Status Pageincident.status.publishPut an incident on the status page and send updates there
incident.status.settingsSettings → Status Page
Access Managementaccess.readAccess history
access.writeRun access reviews
access.settingsAccess Management's settings

A permission counts when it is held everywhere or in one of the units the case or incident belongs to.

[!NOTE] A plugin's permissions and built-in roles show only while the plugin is on. Turned off, they leave this page and people's pages, but stay on the roles and people that have them: saving a role keeps them, and they count again when the plugin is turned on again.

Roles for a period​

When you give a role on a person's or a team's page, Until (optional) sets the last day it counts: for an auditor's engagement, a temporary stand-in or a project. The role is shown with “until” and the date.

  • It stops counting at the end of that day, and the hourly job removes it. Access Management's history records it as revoked, like a role taken away by hand.
  • Giving the same role again changes the date (or, with no date, removes the end).
  • Role holders under Settings → Configuration lists every role with its end.
  • Over the API: endsAt on POST /api/v1/role-assignments (the audit API).

Your own roles​

New role, or Duplicate on any role but Administrator, opens the role:

FieldWhat it is
NameUnique, and not a built-in role's.
KeyMade from the name (custom.second-line) until you change it: custom. and lower-case words joined by dashes. It can't be changed after the role is made, so scripts and notes that use it keep working.
DescriptionOptional.
The permissionsBy area. Pick a whole area with its checkbox, or exactly the permissions a job needs; Find a permission searches names and keys.

Edit and the delete button are on your own roles only.

[!WARNING] Deleting a role takes it from everyone who held it.

Who may give which role​

Administrator is given only by an Administrator, and only everywhere. The other roles:

WhoMay give
Someone who manages roles everywhere (Access Manager)Any other role, everywhere or in any unit, and makes roles of their own.
Someone who manages roles only in a unitRoles there and below, and only roles whose permissions they hold there themselves.

[!IMPORTANT] Nobody but an Administrator gives a role to themselves.

Every role given or taken away is in the audit log, and in Access Management's history when that plugin is on.

When a plugin's role has your role's name​

The built-in roles of every plugin in your installation are known even while the plugin is off, so their names are already taken. A plugin added to the installation later could bring a role with the name of one of yours. Then Settings → Roles says so, and an Administrator chooses Use the built-in role: your role becomes the built-in role, and everyone who held it keeps it, with the built-in role's permissions instead of yours.