Tickets

The request queue: triage, assignment, SLA countdowns, internal notes and time.

/admin/tickets — the request queue. A ticket is one thing a client has asked for. Clients raise them from their portal, your staff raise them on a client's behalf, and the SEO module raises them from findings. Everything about a ticket is visible to the client except internal notes.

#The queue

The ticket queue with All, Open, In Progress and Resolved filters, a client filter, a search box, a sort control and one row per ticket.
Filters carry counts. The sort control includes SLA, which puts what is about to breach at the top.
ControlWhat it does
All / Open / In Progress / Resolved Status filter, each showing its own count.
Client filterNarrows to one client.
Search tickets…Matches on title and body.
Sort Oldest, most recent, SLA, priority or status. SLA is the one to use when you are triaging: it puts what is closest to breaching first.
Previous / NextPagination.

#Working on several at once

Needs ticket.manage.

Tick the checkbox on each row you want — or the one in the header to select the page — and a bar appears with three dropdowns:

  • Set status… — Open, In Progress or Resolved.
  • Set priority… — High, Medium or Low.
  • Assign to… — Unassigned, or a member of your team.

Clear drops the selection without applying anything.

#A ticket

A ticket detail page with its description, an SLA countdown, the comment thread, an internal-note toggle, and a manage panel for status, priority and assignment.
The comment thread is shared with the client. The internal-note toggle is not.

#Status

A segmented control: Open, In Progress, Resolved. Every change appears in the activity timeline with who made it and when, and the same is true of assignment.

A client can reopen a resolved ticket themselves — the button in their portal reads This isn't fixed — reopen. They cannot reopen one that has been converted to a project, because the work has moved somewhere the ticket no longer describes.

#The SLA countdown

When the client has a response time set, the ticket shows a live countdown to its deadline. The hours come from the client's Settings tab; a client with no SLA set has no countdown and never appears in the dashboard's Needs attention table.

Offboarding a client clears the deadlines on whatever was still in flight.

#Priority and assignment

The manage panel on the right holds priority and Assigned to; press Save to apply. Both are also available in bulk from the queue.

#Comments and internal notes

The comment box has an internal note toggle. With it off you are talking to the client; with it on you are talking to your own team, and the button changes to Post internal note to make that unmistakable.

Internal notes are never rendered in the portal Not hidden behind a permission, not collapsed — the client's version of the page does not receive them at all.

#Attachments

Pick files or drag them onto the drop area. Both sides can attach: a client adding a screenshot of what is wrong is the common case. The × removes one.

#Logging time

Needs ticket.manage.

Hours, an optional note, the date the work was done, and a billable checkbox. Time logged here flows into Time and billing and, from there, onto an invoice. Entries can be deleted.

Log against the date the work happened rather than the date you are typing — the time report is built on that field, and an invoice generated for last month will miss anything dated today.

#Turning a ticket into a project

Needs ticket.manage and agency.manage_projects.

Convert to project creates a project seeded from the ticket, for a request that has turned out to be bigger than a single job. Afterwards:

  • The ticket shows a Converted to project → badge linking to it.
  • The project shows a Converted from ticket → badge linking back.
  • The client can no longer reopen the ticket.

#Raising one on a client’s behalf

New ticket on the queue, for the request that arrived by phone or email instead of through the portal. Needs ticket.create.

Pick the client, write a summary and the details, set the urgency, and assign it if you can. Attachments work the same as anywhere else.

It lands in the client’s portal exactly as if they had raised it Same SLA, same shared comment thread, attributed to whoever took the call. That is deliberate: an agency logging “you asked us for this” somewhere the client cannot see it is how the two sides end up disagreeing about what was asked for.

#Tickets raised from SEO findings

Two places in the SEO module create tickets: the Open ticket button on an alert, and Create ticket on an AI recommendation. Both need ticket.create alongside seo.manage, and both link the alert or recommendation to the ticket they produced so nobody raises it twice.

#What the client sees

In their portal, tickets are called Requests. They can raise one, comment on one, attach files, and reopen a resolved one. They see status, priority, the shared comment thread and the SLA countdown. They do not see internal notes, logged time, or your assignment. See The client portal → Requests.

Search the documentation

↑↓ to move · Enter to open · Esc to close

Sign in to your workspace

Every agency has its own address. Enter yours and we'll take you there.

Platform administrator? Sign in at admin.agencydash.cloud