> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mira.party/llms.txt
> Use this file to discover all available pages before exploring further.

# Tickets overview

> How panels, options and tickets fit together — and the fastest way to get a working system.

The ticket system has three layers. Understanding them makes everything else obvious.

<Steps>
  <Step title="Panel" icon="window-maximize">
    The **message members interact with**. It lives in a channel and shows either buttons or a dropdown. A server can have several — one in `#support`, one in `#staff-applications`.
  </Step>

  <Step title="Option" icon="list">
    A **reason for opening a ticket** — one button or one dropdown entry. "General Help", "Report a User", "Billing". Options belong to a panel, and carry almost all the configuration: which roles can open them, which roles can see them, what category the channel goes in, what messages get sent.
  </Step>

  <Step title="Ticket" icon="hashtag">
    The **channel created when someone picks an option**. It gets a case number, controls for claiming and closing, and produces a transcript when it's done.
  </Step>
</Steps>

```
#support                          ← channel
 └─ "Support" panel               ← panel  (dropdown mode)
     ├─ "General Help" option     ← option (support role: @Staff)
     ├─ "Report a User" option    ← option (support role: @Moderator)
     └─ "Billing" option          ← option (support role: @Admin, requires @Customer)
```

## The fast way

```javascript theme={null}
!tickets setup
```

An interactive interface that walks you through creating a panel, adding options and setting staff roles without typing a single subcommand. Aliases: `configure`, `config`. Requires ticket staff or **Administrator**.

If you'd rather do it by hand, the manual version is:

<Steps>
  <Step title="Set your staff roles">
    ```javascript theme={null}
    !tickets staff @Support @Moderator
    ```

    Requires **Administrator**. These roles can configure the ticket system and see every ticket.
  </Step>

  <Step title="Create a panel">
    ```javascript theme={null}
    !tickets panel add #support dropdown Support
    ```

    See [Panels](/setup/tickets/panels).
  </Step>

  <Step title="Add options">
    ```javascript theme={null}
    !tickets option add Support general "General Help"
    !tickets option add Support report "Report a User"
    ```

    See [Options](/setup/tickets/options).
  </Step>

  <Step title="Post it">
    ```javascript theme={null}
    !tickets resend Support
    ```

    Publishes the panel message with its current options. Run it again any time you change them.
  </Step>
</Steps>

## Day-to-day commands

For staff, once tickets are running:

| Command                         | What it does                                    |
| ------------------------------- | ----------------------------------------------- |
| `tickets claim`                 | Take responsibility for the current ticket      |
| `tickets unclaim`               | Release it                                      |
| `tickets close [reason]`        | Close it, save a transcript, delete the channel |
| `tickets delete [reason]`       | Delete it, respecting the delete delay          |
| `tickets reopen`                | Reopen a closed ticket                          |
| `tickets move <panel> <option>` | Move it to a different option                   |
| `tickets allow <target>`        | Let a member or role into this ticket           |
| `tickets deny <target>`         | Revoke that access                              |
| `tickets list`                  | Every open ticket in the server                 |
| `tickets stats [member]`        | Server or per-member statistics                 |

For members:

| Command                                   | What it does                          |
| ----------------------------------------- | ------------------------------------- |
| `tickets open <panel> <option> [subject]` | Open a ticket without using the panel |
| `tickets transcripts`                     | Your own past transcripts             |

## Access control

Three levels, set **per option**:

| Level              | Can do                                                                          |
| ------------------ | ------------------------------------------------------------------------------- |
| **Support roles**  | See the ticket, reply, claim, close                                             |
| **Trainee roles**  | See the ticket; claiming, closing and speaking are each toggled separately      |
| **Required roles** | Not staff — these are roles a *member* needs in order to open the option at all |

Plus the global staff roles from `!tickets staff`, which apply everywhere.

Full detail in [Access & permissions](/setup/tickets/access).

## Lifecycle automation

Options can manage themselves. All of these are per-option, and `0` turns each off:

<CodeGroup>
  ```javascript Close after silence theme={null}
  !tickets option autoclose Support general 3d
  ```

  ```javascript Nudge before closing theme={null}
  !tickets option inactivity Support general 1d
  ```

  ```javascript Delete after closing theme={null}
  !tickets option autodelete Support general 7d
  ```

  ```javascript Close if the member leaves theme={null}
  !tickets option closeonleave Support general on
  ```
</CodeGroup>

A common shape: remind at 1 day of silence, close at 3 days, delete 7 days after closing.

## Where to go next

<CardGroup cols={2}>
  <Card title="Panels" icon="window-maximize" href="/setup/tickets/panels">
    Modes, categories, naming formats, case numbers, limits.
  </Card>

  <Card title="Options" icon="list" href="/setup/tickets/options">
    Labels, emojis, styles, categories, lifecycle timers.
  </Card>

  <Card title="Access" icon="lock" href="/setup/tickets/access">
    Support roles, trainees, requirements, blacklists.
  </Card>

  <Card title="Messages" icon="message" href="/setup/tickets/messages">
    Greetings, DMs, close notices, and the forms system.
  </Card>

  <Card title="Transcripts" icon="file-lines" href="/setup/tickets/transcripts">
    Where they're stored and how to pull them back.
  </Card>
</CardGroup>
