ITSM Ticketing
ITSM Ticketing
The ITSM module brings classic service management directly into HGE Uslimato: end users report incidents or service requests, agents work tickets in a dedicated workflow, and reporters track the status of their requests in their own desk portal.
What is the ITSM module?
The module covers two ticket types:
- Incident — a disruption or outage affecting regular operations.
- Service Request — a routine request (e.g. access, hardware, information).
Agent flow: Tickets land in a central queue. Agents pick up tickets, work them via comments and status changes, and close them. Internal notes and external replies are kept separate.
Desk portal: End users access a reduced interface under /desk. They see only their own tickets and can file new requests — without agent-level functionality.
Licensing
ITSM is a separate add-on license and is not part of the standard plans (Free, Starter, Professional, Enterprise). Activation is performed exclusively by the HGE Uslimato team through the HGE Uslimato platform.
Configurable feature flags (granular per tenant):
| Feature flag | Effect |
|---|---|
agent_portal | Access to the agent UI at /tickets |
end_user_portal | Access to the desk portal at /desk |
asset_integration | "Report issue" button on asset detail pages |
email_notifications | Automated email dispatch on ticket events |
email_templates | Custom email templates per event |
public_api | Ticket endpoints in the Public API (/public/v1/tickets) |
movement_link | Link a ticket to an asset movement |
Quotas (defined on the add-on license, not on the standard plan):
max_agents— maximum number of agents (users withtickets:manage)max_emails_month— maximum outbound notifications per month
Overruns are rejected with an error and recorded by automatic background checks.
Roles and Permissions
The ITSM module introduces three new named permissions into the existing RBAC system:
| Permission | Meaning |
|---|---|
tickets:create | Create new tickets (self-service and agents) |
tickets:manage | Assign, comment on, and change the status of tickets — the agent role |
tickets:close | Move tickets to resolved / closed and reopen them |
System group "ITSM Agent": Created automatically per tenant on license activation. Contains tickets:create, tickets:manage, and tickets:close.
Assignment: Administrators add users to the "ITSM Agent" group under Settings → Permissions or create custom groups with the desired ticket permissions. Changes take effect immediately, as with any other permission change.
Workflow
Tickets follow a fixed state machine:
open ───▶ in_progress ───▶ resolved ───▶ closed
│ │ │
└──▶ cancelled ◀─┴─────────────────── cancelled ◀─┘
| Status | Meaning |
|---|---|
open | Newly created, not yet assigned to any agent |
in_progress | Being worked on — an agent is actively handling the ticket |
resolved | Solution proposed, awaiting reporter confirmation |
closed | Finally closed — no further changes allowed |
cancelled | Aborted without a resolution (e.g. duplicate, not reproducible) |
Only agents (tickets:manage) may change status. Closing additionally requires tickets:close.
Ticket prefix and number range
Every tenant has its own ticket number range. The number is generated on creation from a prefix plus a six-digit sequential counter:
TKT-000001
TKT-000002
TKT-000003
The prefix is configurable under Settings → ITSM → Ticket prefix. The default is TKT. The counter starts at 1 and is concurrency-safe per tenant.
Email notifications
When email_notifications is enabled, the system sends automated emails on six events:
| Event | Recipient |
|---|---|
ticket.created | Reporter + agent queue |
ticket.assigned | Assigned agent |
ticket.comment_added | Reporter (on external comments) |
ticket.status_changed | Reporter |
ticket.resolved | Reporter (asking for confirmation) |
ticket.closed | Reporter |
Custom templates: With email_templates enabled, a custom HTML and plain-text template can be stored per event under Settings → ITSM → Email templates. Placeholders: {{ticket_number}}, {{ticket_title}}, {{ticket_status}}, {{assignee_name}}, {{reporter_name}}, {{comment_body}}.
Monthly quota: Outbound mail volume is checked against max_emails_month. Once the quota is reached, further mails are dropped and a quota alert is raised for the HGE Uslimato platform team.
Desk portal
The desk portal under /desk is the end-user view of ITSM. Only visible when end_user_portal is enabled.
- Reduced navigation — no asset, process, or settings tabs.
- The list shows only tickets that the signed-in user has reported.
- "New ticket" dialog with required fields title, description, and type.
- Status display and history are visible; comments can be added.
Agents continue to access the full queue via /tickets.
Asset integration
When asset_integration is enabled, a "Report issue" button appears on every asset detail page. Clicking it opens the ticket dialog and automatically links the asset to the ticket.
- The link is bidirectional: tickets appear in the "Tickets" tab of the asset history.
- Deleting an asset is blocked while open tickets reference it.
- With the feature flag disabled the button is hidden and the asset link is ignored.
Public API
With public_api enabled, ticket endpoints are available under /public/v1/tickets. Authentication via API key, as with any other Public API route; see API authentication.
Scopes:
| Scope | Allowed operations |
|---|---|
tickets:read | GET /public/v1/tickets, GET /public/v1/tickets/:id |
tickets:write | POST, PATCH on ticket resources |
Rate limits and usage metering apply in the same way as for the existing Public API resources.