Skip to content

Ticket Detail

The Ticket Detail page is where an agent works a ticket end-to-end. It exposes the full record across three tabs (Overview, Conversation, Attachments) and the lifecycle actions (close, reopen, reassign, soft-delete).

Ticket Detail page on the Overview tab showing assignee, priority, source, due date, and the inline description editor

  • Route: /service-desk/tickets/:id
  • Menu path: open any row from Tickets List
  • Primary audience: Agents, supervisors, and admins (service-desk.view to read, service-desk.manage to edit).

The tab is reflected in the URL hash so the page is deep-linkable (#overview, #conversation, #attachments).

The Overview tab displays the immutable header (ticket number, created timestamp, source, requester card) and the editable mid-form (assignee, priority, due date, status, inline description editor).

FieldEditableNotes
Ticket numberNoTenant-scoped, generated at create time
SubjectYesInline edit
DescriptionYesInline rich-text editor with Save / Cancel
PriorityYesTriggers escalation if changed to urgent and Escalate urgent immediately is on
AssigneeYesReassignment requires service-desk.manage
StatusYesSee lifecycle below
SourceNoLocked after create
Due dateYesEditable; cleared on close
RequesterYesClick the requester card to swap mode (bp / account / manual)

The Conversation tab shows the chronological thread of replies and internal notes.

Entry typeAudienceNotes
Public replyInternal + externalVisible on the My Ticket Detail view
Internal noteInternal onlyHidden from the external customer; agents can @mention other users (max 25 mentions per entry)
System entryAllAuto-generated on status change, assignment change, escalation, etc.

The composer supports:

  • Switching reply visibility (Reply vs Internal note) before posting.
  • Inserting a canned response via the dropdown; variables ({{actor.name}}, {{ticket.number}}) are substituted before the body is inserted.
  • Clicking Draft with AI to generate a reply draft with the AI reply endpoint. If the composer already has text, the page asks before replacing it. Insufficient credits show an error and leave the current draft untouched.
  • Attaching files inline — files attach to the thread entry rather than the ticket header.

Ticket Detail Conversation tab with the canned-response menu open

The Attachments tab lists every file attached to the ticket (header + every thread entry). Delete is permitted with service-desk.manage.

graph LR
    open --> pending
    open --> resolved
    pending --> open
    pending --> resolved
    resolved --> open
    resolved --> closed
    closed --> open
  • Close sets status to closed, stamps resolved_at if it is not already set, and clears the due date. Closing is reversible.
  • Reopen clears resolved_at and resets SLA timers so breach metrics start fresh.
  • Soft-delete (Delete action) sets deleted_at and deleted_by. Soft-deleted tickets disappear from the list but remain in the platform Trash drawer. Restore from there with service-desk.admin.
ActionPermissionDescription
Saveservice-desk.managePersists field-level edits made on Overview
Reply / Internal noteservice-desk.managePosts a thread entry; broadcasts notifications
Close / Reopenservice-desk.manageStatus transition
Reassignservice-desk.manage (own queue) / service-desk.admin (any queue)Re-routes to another agent or queue
Deleteservice-desk.adminSoft-delete; recoverable via Trash
  • A mention cap of 25 user UUIDs per thread entry protects against accidental DoS via large @all style mentions.
  • Closing a ticket does not strip its replies or attachments; agents can still reopen it later.
  • Reopening a ticket clears resolved_at so the SLA breach math runs fresh from the reopen timestamp.
  • When the requester is a business partner and the BP is later merged, the ticket follows the surviving partner record.