Helpdesk
Support tickets
What it is for
Receive and work through customer support requests with priority, severity and service-level targets. A typical use is an agent that reads new tickets and drafts a first triage while people keep ownership of the replies.
What the package does and does not do
Support tickets with priority, severity, service-level targets and an open, in progress, resolved and closed flow. Targets are recorded, not enforced or timed automatically.
Models
helpdesk_sla
A service-level policy: how fast tickets of a priority should be answered and solved
Read group: helpdesk.agent. Write group: helpdesk.manager.
| Field | Kind | Data class | Personal data | Group | Agents see | Description |
|---|---|---|---|---|---|---|
name | text | none | no | helpdesk.agent | in clear | Policy name, for example Urgent in 4 hours |
priority | select (low, normal, high, urgent) | none | no | helpdesk.agent | in clear | Ticket priority the policy applies to: low, normal, high, urgent |
first_response_minutes | number | none | no | helpdesk.agent | in clear | Target time to the first reply, in minutes |
resolution_minutes | number | none | no | helpdesk.agent | in clear | Target time to resolve the ticket, in minutes |
active | bool | none | no | helpdesk.agent | in clear | Whether the policy can be attached to new tickets |
helpdesk_ticket
A customer support request
Read group: helpdesk.agent. Write group: helpdesk.agent.
| Field | Kind | Data class | Personal data | Group | Agents see | Description |
|---|---|---|---|---|---|---|
subject | text | none | no | helpdesk.agent | in clear | One-line summary of the problem |
description | longtext | none | no | helpdesk.agent | in clear | Full description of the problem and what the customer tried |
requester_name | text | internal | yes | helpdesk.agent | masked | Name of the person asking for help |
requester_email | text | internal | yes | helpdesk.agent | masked | Email address of the person asking for help |
category | select (question, incident, problem, feature_request) | none | no | helpdesk.agent | in clear | What kind of request it is: question, incident, problem, feature_request |
priority | select (low, normal, high, urgent) | none | no | helpdesk.agent | in clear | How soon it should be handled: low, normal, high, urgent |
severity | select (minor, major, critical) | none | no | helpdesk.agent | in clear | How badly the customer is affected: minor, major, critical |
assignee | text | internal | yes | helpdesk.agent | masked | Name of the agent working on the ticket |
sla_id | ref → helpdesk_sla | none | no | helpdesk.agent | in clear | Service-level policy the ticket is measured against |
opened_on | date | none | no | helpdesk.agent | in clear | Date the ticket was received (YYYY-MM-DD) |
first_response_on | date | none | no | helpdesk.agent | in clear | Date of the first reply to the customer (YYYY-MM-DD) |
due_on | date | none | no | helpdesk.agent | in clear | Date by which it should be solved under the policy (YYYY-MM-DD) |
resolved_on | date | none | no | helpdesk.agent | in clear | Date the problem was solved (YYYY-MM-DD) |
resolution | longtext | none | no | helpdesk.agent | in clear | How the problem was solved |
state | select (open, in_progress, resolved, closed) | none | no | helpdesk.agent | in clear | Ticket status: open, in_progress, resolved, closed |
Workflows
helpdesk_ticket
| Action | Moves | Who may run it | Approval |
|---|---|---|---|
helpdesk_ticket.take | state: open → in_progress | helpdesk.agent | no |
helpdesk_ticket.resolve | state: in_progress → resolved | helpdesk.agent | no |
helpdesk_ticket.close | state: resolved → closed | helpdesk.manager | yes |
helpdesk_ticket.reopen | state: resolved → open | helpdesk.agent | no |
Permission groups
Groups used by this app:
helpdesk.agenthelpdesk.manager
Approval steps
Steps an agent can only propose:
helpdesk_ticket.close
What agents can and cannot do
An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.
It can only propose these steps, and a person must approve them: helpdesk_ticket.close, helpdesk_sla.delete, helpdesk_ticket.delete.
Personal data is masked as placeholder tokens: helpdesk_ticket.requester_name, helpdesk_ticket.requester_email, helpdesk_ticket.assignee.
Dependencies
None.
Install
Install it from the Customize app (Marketplace), or from the command line:
obop modules install-from helpdeskNeeds a database and administrator rights.