---
title: "Tickets"
description: "Work the ticket queue in the Outpost console, reply to requesters, merge and link tickets, attach files, and take tickets from the tray app."
url: "https://support.outpostplatform.com/service-desk/tickets/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "Enterprise and MSP. Ticket statuses, priorities normal, high, urgent, critical (no low), category and subcategory, New ticket, public replies and internal notes with attachments up to 3 MB, merge (ticket:admin), one-level parent and child tickets that cascade public replies and solving, Files, Time and Related tabs, Schedule and My day, shortcuts, tray tickets, and contact alerts (MSP)."
availability:
  plans: ["enterprise", "msp"]
  permission: "ticket:write"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/service-desk/tickets.md"
license: "CC BY 4.0"
---

# Tickets

A ticket is one person's request or problem, tracked from the moment it is
raised until it is solved. End users open tickets from the Outpost tray app,
and technicians open them in the console. This page explains what a ticket
holds and how to work the queue: pick up a ticket, reply, attach files, merge
or link related tickets, and solve it.

## What a ticket holds

| Field | Values |
| --- | --- |
| Status | **New**, **Open**, **Pending**, **On hold**, **Solved**, or **Closed**, plus any statuses you add. See [Desk settings](/service-desk/desk-settings/#statuses). |
| Priority | **normal**, **high**, **urgent**, or **critical**, from least to most urgent. |
| Category | What the ticket is about: **Incident** (something that worked has stopped), **Service request** (someone needs something), **Question**, **Problem** (the cause behind incidents), **Change** (planned work), or a category you add. A ticket with no category chosen is an **Incident**. |
| Subcategory | Optional. Narrows the category, such as **Printer** under a **Hardware** category. Only categories that have subcategories offer one. |
| Queue | Where the ticket lands and who it goes to. See [Queues and canned responses](/service-desk/queues-and-automation/). |
| Assignee | The technician who owns it, or **Unassigned**. |
| Requester | The person who asked. They are sent the ticket's notification emails. See [Ticket notification emails](/service-desk/ticket-notifications/). On the MSP plan, the requester card shows their contact tags. |
| Endpoint | The endpoint the ticket came from, for tickets raised in the tray app. |
| Parent | Optional. The ticket this one is a child of. See [Link parent and child tickets](#link-parent-and-child-tickets). |

There is no **low** priority. Tickets that had it are **normal**, saved views
and links that filter on low show normal tickets, and a tray app that still
sends low files the ticket as normal.

**Pending**, **On hold**, **Solved**, and **Closed** stop the SLA clock. See
[Service level agreements](/service-desk/sla/).

A ticket from the tray app is filed under the person Outpost has matched to
the endpoint's signed-in account. When that account is not yet tied to a known
person, the ticket shows **Unverified requester**. The ticket can be worked as
usual, but Outpost sends the requester no email, including no satisfaction
survey. To tie the account to a person, use **Users** > **Merge
suggestions**. See [End users](/endpoints/end-users/#merge-duplicate-people).

## Before you begin

- Your plan must include the service desk: Enterprise or MSP. See
  [Plans and limits](/account/plans-and-limits/).
- You need these permissions. See
  [Roles and permissions](/depot/roles-and-permissions/).

  | Permission | Lets you |
  | --- | --- |
  | `ticket:read` | Read tickets. |
  | `ticket:write` | Create tickets, reply, attach files, change fields, and set or remove a parent ticket. |
  | `ticket:assign` | Assign tickets. |
  | `ticket:admin` | Merge a ticket into another. |
  | `project:calendar` | Schedule an appointment from a ticket (MSP plan). |

## Work the queue

1. Select **Tickets** > **All tickets**. On the MSP plan, open a client, or
   select **Inbox** > **All tickets** to see every client's tickets together.
2. Choose a view. The list opens on **Needs attention**: open tickets ordered
   by whichever SLA runs out first.

   | View | Shows |
   | --- | --- |
   | **Needs attention** | Open tickets, soonest SLA first. |
   | **Urgent and critical** | Tickets with priority urgent or critical. |
   | **Aged over a week** | Open tickets raised more than 7 days ago. |
   | **Missed SLA** | Tickets that have breached an SLA target. |

3. Narrow the list with filters on **Status group**, **Status**, **Priority**,
   **SLA**, **Category**, **Queue**, **Assigned to**, **Endpoint**, **Tag**, or
   **Raised**. **Status group** matches a stage such as Open or Pending;
   **Status** matches your exact statuses, such as "Awaiting parts". You can
   save your own views from the toolbar.
4. Select a ticket to open it.

The **Next SLA event** column shows the next SLA deadline or warning for each
ticket.

## Create a ticket

Create a ticket in the console to record a request that arrived by phone or
in person.

1. Select **Tickets** > **All tickets**, then **New ticket**.
2. In **Requester**, type the start of the person's name or email address,
   then choose them. Search matches the start of a word, so "jor" finds
   Jordan but "dan" does not. People someone has confirmed are listed first.
   Accounts Outpost has seen signed in on endpoints but nobody has confirmed
   are under **Seen on endpoints, not confirmed**. Leave **Requester** empty,
   or select **Clear**, when there is nobody to email.
3. Enter a **Subject** and a **Description**.
4. Choose a **Priority**.
5. Choose a **Category**, and a **Subcategory** if the category offers one.
   **Incident (default)** files the ticket as an incident.
6. Choose a **Queue**. **Default queue** sends the ticket to your default
   queue.
7. Select **Create ticket**.

From then on the requester is sent the ticket's notification emails,
starting with **Ticket created** when that email is turned on. See
[Ticket notification emails](/service-desk/ticket-notifications/).

## Reply to a requester or add a note

1. Open the ticket. The **Conversation** tab shows every message.
2. Choose **Public reply** to write to the requester, or **Internal note** to
   write for your team only. An internal note is marked as such, and the
   requester is never sent it.
3. Write the message. To insert a canned response, type `//` and choose one.
4. To attach files to the message, select **Attach files** and choose one or
   more files of up to 3 MB each.
5. Select **Send reply** or **Add note**, or press
   <kbd>Ctrl</kbd>+<kbd>Enter</kbd>.

The message is sent first and its files are attached after it. If a file
fails, the console names it and says the message was sent, and you can retry
that file. An unsent draft is kept in your browser and restored when you come
back to the ticket.

## Change status, priority, or category

- **Status** and **Priority** are at the top of the ticket. **Status** lists
  the client's statuses, including any you added in
  [Desk settings](/service-desk/desk-settings/), grouped by status group.
- **Category** and **Subcategory** are in the **Category** panel beside the
  conversation. Changing the category clears the subcategory, because each
  subcategory belongs to one category.
- **Assign to me** makes you the assignee.

To solve a ticket, set its status to **Solved**. The requester is then sent a
[satisfaction survey](/service-desk/satisfaction-surveys/).

Use **Previous** and **Next** to move through the list without going back to
it.

## Merge a ticket into another

Merge a ticket when two tickets are about the same request, so the
conversation continues in one place. A merge cannot be undone.

1. Open the ticket that should go away.
2. Select **More** > **Merge into...**.
3. In **Find a ticket**, enter words from the subject, a reference, or a
   requester's email, and press <kbd>Enter</kbd>.
4. Choose the ticket to keep.
5. Optional: enter a **Note (optional)**. It is kept with the merge record.
6. Select **Merge**.

The console opens the ticket you kept. What the merge does:

| Item | After the merge |
| --- | --- |
| Messages and their files | Move to the ticket you kept. |
| Time entries | Move, except entries already on a sent invoice, which stay. |
| People | The merged ticket's requester and participants become participants on the ticket you kept. Its requester does not change. |
| Activity history | Stays on the merged ticket. |
| SLA | The merged ticket's SLA timers close. The kept ticket's timers do not change. |
| Satisfaction survey | A survey the merged ticket was waiting on is canceled. |
| The merged ticket's address | Opens the ticket you kept, so old links and references still lead to the conversation. |

Merging needs `ticket:admin`. A ticket that has child tickets cannot be merged:
unlink them first, and the console says **Unlink its child tickets before
merging it.** A ticket cannot be merged into itself or into a ticket that was
already merged.

## Link parent and child tickets

Make tickets children of one parent when one problem affects several
requesters, such as an outage reported by five people. You then work the
parent, and each child's requester hears about it.

1. Open the ticket that should be a child.
2. Select **More** > **Set parent...**.
3. Find and choose the parent ticket.
4. Select **Set parent**.

The parent shows a **Child tickets** panel above its tabs, with each child's
status and **Unlink** to remove it. On a child, the parent appears in the
breadcrumb, and **More** > **Remove from parent** unlinks it.

What the parent passes to its children:

- **Public replies.** A public reply on the parent is copied to each open
  child, that is each child not solved or closed. Each child's requester is
  sent the **Public reply** email.
- **Solving and closing.** Setting the parent to a solved or closed status
  moves each open child to the same status. Each child's requester gets the
  emails and satisfaction survey they would get if a technician had changed
  the child's status. Reopening the parent does not reopen its children.
- **Nothing else.** Internal notes, time, priority, and assignee stay on the
  parent.

The rules for linking:

- Tickets are one level deep. A parent cannot have a parent, and a ticket
  that has children cannot become a child.
- A parent and its children belong to the same client.
- A merged ticket cannot be a parent or a child.

## Files

The **Files** tab lists every file on the ticket: files attached to replies
and notes, with who added them and a link to the message, and files added to
the ticket itself, marked **Added to the ticket**.

- To add a file to the ticket without a message, use **Add a file**. Each
  file can be up to 3 MB.
- Files always download. They never open in the browser.
- To delete a file, select **Remove** and confirm. Anyone who kept a link to
  it finds it gone.

## Schedule an appointment from a ticket

On the MSP plan, **More** > **Schedule** books an appointment for the ticket
on the dispatch calendar. The booking starts filled in with the ticket's
subject, its client, and its assignee, or you when the ticket is unassigned,
for one hour from the next half hour. Change what you need and save it.
Scheduling needs `project:calendar`.

Each technician sees today's appointments in **Projects** > **My day**,
earliest first, and selects one to open its ticket. See
[Time tracking and dispatch](/msp/time-and-dispatch/#book-technicians-on-the-dispatch-calendar).

## Log time

Record time worked on the ticket in its **Time** tab. See
[Time tracking and dispatch](/msp/time-and-dispatch/#log-time-on-a-ticket).

## Use the endpoint context

When a ticket came from an endpoint, the panel beside the conversation shows
that endpoint: its status, who is signed in, its network, serial number, and
last seen time, with **Remote control** to start a remote session. It also
shows the requester, **Their other tickets**, **Recent commands**, **Recent
remote sessions**, and **Documentation** for the endpoint. If the endpoint is
offline, a session cannot start.

## Contact alerts

On the MSP plan, a ticket warns you when someone on it holds a contact tag
that alerts, such as **VIP**. One banner for each person and tag sits under
the ticket's title. It reads the tag's label and the person's name, such as
**VIP:** followed by their name, with the tag's description below. The
banner's edge and icon use the tag's color.

Outpost checks the requester and every participant on the ticket. Tags that
do not alert show on the requester card but never as a banner. To define a tag
or give one to a person, see
[Client contacts, sites, and contact tags](/msp/contacts-and-sites/).

## See history and related work

- The **Activity** tab lists every change to the ticket. A change made by a
  workflow or an automation rule carries a chip with its name. The
  conversation also shows an internal line, such as **Workflow "Untouched
  urgent ticket: escalate after 24 hours" ran.**, each time one acts. See
  [Workflows](/service-desk/workflows/).
- An internal note with an **AI draft** chip is a reply a workflow's AI step
  wrote. Select **Use as reply** to copy it into your reply, edit it, and send
  it. See [AI steps in workflows](/service-desk/workflow-ai-steps/).
- The **Related** tab shows **Linked tickets**, **Participants**, the
  **Incident** the ticket is attached to, and the endpoint's
  **Documentation** and **Credentials for this endpoint**. To attach the
  ticket to an incident, select **Attach to incident**. See
  [Incidents](/service-desk/incidents/).

## Keyboard shortcuts

Press <kbd>?</kbd> in a ticket to show these shortcuts. The ticket list has
its own set: there, <kbd>r</kbd> opens the selected ticket and the
<kbd>s</kbd> and <kbd>p</kbd> sequences filter the list. Press <kbd>?</kbd> in
the list to see it.

| Keys | Action |
| --- | --- |
| <kbd>j</kbd> | Next ticket |
| <kbd>k</kbd> | Previous ticket |
| <kbd>a</kbd> | Assign to me |
| <kbd>r</kbd> | Reply |
| <kbd>n</kbd> | Internal note |
| <kbd>s</kbd> then <kbd>o</kbd>, <kbd>p</kbd>, <kbd>h</kbd>, <kbd>s</kbd>, or <kbd>c</kbd> | Status: open, pending, on hold, solved, or closed |
| <kbd>p</kbd> then <kbd>1</kbd>, <kbd>2</kbd>, <kbd>3</kbd>, or <kbd>4</kbd> | Priority: normal, high, urgent, or critical |
| <kbd>Ctrl</kbd>+<kbd>Enter</kbd> | Send |
| <kbd>Esc</kbd> | Close the overlay or the composer |

## Tickets from the tray app

End users open tickets from the **Support** view of the tray app with **Open
Ticket**. Their tickets appear in the console with the endpoint attached, and
they see your public replies in the tray app. See
[Use the Outpost tray app](/tray/using-the-tray/#tickets).

- **Offline.** When the endpoint is offline, the agent saves the ticket on the
  endpoint and sends it when the endpoint reconnects. The tray app says **This
  PC is offline. A new ticket is saved and sent when it reconnects.**
- **Who it is filed as.** The tray app shows **Tickets are filed as** with the
  name Outpost matched to the signed-in account. When Outpost cannot confirm
  who is signed in, **Open Ticket** is unavailable.
- **Priority.** The tray app offers **Normal** and **High**.
- **Plan.** On a plan without the service desk, the tray app refuses the
  ticket and shows why.

## Tickets from email {#tickets-from-email}

Mail sent to a [support mailbox](/service-desk/mailboxes/) opens a ticket, and
a reply to the ticket's email joins it. Messages that came by email carry an
**Email** label.

- **Show original.** Outpost removes quoted history and signatures from each
  email, so the ticket shows what the person wrote this time. **Show
  original** under a message shows the full text as it arrived, and
  **Download the .eml file** downloads the message.
- **Unverified sender.** When Outpost cannot verify who sent the email, the
  requester card shows **Unverified sender**, and no email goes out on the
  ticket, to the sender or to anyone they copied. Check who sent it, for
  example by calling the person, then select **Verify sender**. From then on
  the ticket's emails are sent as usual. Verifying needs `ticket:write`. See
  [Sender verification](/service-desk/mailboxes/#sender-verification).
- **Replies.** Your public replies go out through the mailbox the ticket
  arrived on and thread in the customer's mail app. See
  [Ticket notification emails](/service-desk/ticket-notifications/#email-and-threading).

## If something goes wrong

| Symptom | Cause | Fix |
| --- | --- | --- |
| A requester gets no email about their ticket | The ticket shows **Unverified requester** or **Unverified sender**, the requester has no email address, or that email is turned off. | Tie the account to a known person in **Users** > **Merge suggestions**, and check [Ticket notification emails](/service-desk/ticket-notifications/). |
| **Merge into...** is unavailable | You lack `ticket:admin`, or the ticket has child tickets. | Ask an owner, or unlink the child tickets first. |
| **Set parent...** is unavailable | The ticket has child tickets, so it cannot be a child. | Unlink its children, or make the other ticket the child instead. |
| **Open Ticket** is unavailable in the tray app | Outpost cannot confirm who is signed in at the endpoint. | Check the endpoint's signed-in user, or ask the person to contact you another way. |
| A tray ticket has not arrived | The endpoint is offline. | It is sent when the endpoint reconnects. Check the endpoint's last seen time. |

## Next steps

- [Desk settings](/service-desk/desk-settings/)
- [Client contacts, sites, and contact tags](/msp/contacts-and-sites/)
- [Ticket notification emails](/service-desk/ticket-notifications/)
- [Queues and canned responses](/service-desk/queues-and-automation/)
- [Service level agreements](/service-desk/sla/)
- [Satisfaction surveys](/service-desk/satisfaction-surveys/)
- [Live chat](/service-desk/live-chat/)
