Agents & Roles
The Agents directory, how Deskuss maps WordPress users to staff, and the four access scopes (All Access, Expanded, Limited, View only) that control what an agent can see and do.
Two Distinct Concepts
Deskuss has two separate role systems, and they're easy to confuse:
| Concept | What it is | Where it lives |
|---|---|---|
| WordPress roles | The standard WordPress role system. Determines if a user can log into /wp-admin at all. | WordPress core (wp_user_roles) |
| Access scopes | Deskuss-specific. Determines what an agent can do inside the helpdesk — see all tickets, manage departments, etc. | {prefix}dk_role table |
Both are needed. A user must have a WordPress role that includes the deskuss_staff capability and be assigned a Deskuss access scope before they can effectively work in the helpdesk.
WordPress Roles
Deskuss registers two custom WordPress roles on activation and adds the deskuss_staff capability to two built-in roles:
| Role | Type | Capabilities |
|---|---|---|
deskuss_staff | Custom | read, upload_files = true. Grants access to the Deskuss admin panel. |
support_client | Custom | read only. Front-end portal access; cannot reach /wp-admin. |
administrator | Built-in (auto-enhanced) | Standard WP admin capabilities plus deskuss_staff |
editor | Built-in (auto-enhanced) | Standard editor capabilities plus deskuss_staff |
Deskuss auto-grants the deskuss_staff capability to administrator and editor during activation. This means a new WP user with either of those roles can immediately log into the helpdesk at /deskuss/.
To grant access to a custom role, add the capability programmatically (must-use plugin):
add_action('init', function () {
$role = get_role('custom_support_role');
if ($role && !$role->has_cap('deskuss_staff')) {
$role->add_cap('deskuss_staff');
}
});
Access Scopes
Access scopes are Deskuss-internal. They determine what a staff member can see and do inside the helpdesk. They are separate from WordPress roles — a WP administrator with the "View only" access scope can still access WordPress core, but inside Deskuss can only read tickets.
Deskuss ships with four seeded scopes:
| Scope | What the agent can do | Typical user |
|---|---|---|
| All Access | Everything: manage departments, staff, SLAs, forms, reports, tickets, settings, system logs | Helpdesk admin / owner |
| Expanded Access | Manage tickets across all departments, including transfers and assignments; view reports; cannot edit global settings | Support manager |
| Limited Access | View and reply to tickets within assigned departments; create internal notes; cannot transfer or assign | Front-line agent |
| View only | Read-only access to tickets, KB, and dashboards | Read-only auditor or new hire in training |
The Agents List
The Agents top-level menu shows every WordPress user with the deskuss_staff capability. From here you can:
- View all staff in a sortable, filterable table
- Add a new agent (creates a WP user + Deskuss access record)
- Edit an existing agent's access scope and department assignments
- Deactivate an agent (keeps the WP user but revokes staff access)
Adding an Agent
- Go to Deskuss → Agents
- Click Add New Agent
- Search for an existing WP user, or fill in name + email to create a new one
- Choose an access scope (default: Limited)
- Assign to one or more departments
- Optionally assign to a team
- Click Save
Editing an Agent
- Go to Deskuss → Agents
- Click the agent's name
- Modify the access scope, department assignments, or team
- Click Update
Removing an Agent
Removing an agent from Deskuss does not delete their WordPress user account. It only revokes the deskuss_staff capability and marks the Deskuss staff record as inactive. Any tickets previously assigned to that agent remain assigned — reassign them to another agent before removal for continuity.
Teams
Teams group agents for collaboration. A team can span multiple departments and is useful when you want a set of agents to work on related tickets collectively. The "Level I Support" team is seeded by default.
Creating a Team
- Go to Deskuss → Agents → Teams (or via Manage → Teams)
- Click Add New Team
- Enter a team name (e.g., "Escalation Team", "Enterprise Support")
- Select a Team Lead — this agent receives notifications when tickets are assigned to the team
- Add agents to the team
- Click Save
Teams vs. Departments
Teams are for internal grouping; departments determine customer-facing routing. A ticket is assigned to a department, not a team. Teams help with collaboration, escalation, and workload balancing within and across departments.
Permission Matrix
What each access scope can do:
| Action | All Access | Expanded | Limited | View only |
|---|---|---|---|---|
| View tickets in assigned departments | ✓ | ✓ | ✓ | ✓ |
| Reply to tickets | ✓ | ✓ | ✓ | — |
| Add internal notes | ✓ | ✓ | ✓ | — |
| Assign tickets | ✓ | ✓ | — | — |
| Transfer tickets across departments | ✓ | ✓ | — | — |
| Close / reopen tickets | ✓ | ✓ | ✓ | — |
| Bulk actions on tickets | ✓ | ✓ | — | — |
| View all departments' tickets | ✓ | ✓ | — | — |
| Create / edit departments | ✓ | — | — | — |
| Create / edit SLA plans | ✓ | — | — | — |
| Create / edit forms & lists | ✓ | — | — | — |
| Manage staff & teams | ✓ | — | — | — |
| Access dashboard & reports | ✓ | ✓ | ✓ (own depts) | ✓ (read only) |
| View system logs | ✓ | — | — | — |
| Edit global settings | ✓ | — | — | — |
Where to Find Agents in the Sidebar
The "Agents" top-level menu is a single page that combines the list of agents, the team list, and the access-scope editor. Use the dropdown at the top of the page to switch between views.