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

# Customizing Haze Tickets: Panels, Names, and Messages

> Personalize your ticket panel text, channel naming templates, open messages, per-button overrides, and role assignments to match your server's style.

Haze gives you fine-grained control over every part of the ticket experience — from the embed your members see on the panel to the first message that greets them inside a new ticket. All customisation commands take effect immediately; use `,ticket refresh` to push panel changes live.

## Panel Appearance

Set the title and description shown on the panel embed, then refresh to update the message:

```bash theme={null}
,ticket message title Need help?
,ticket message description Pick a category. A moderator will join shortly.
,ticket refresh
```

## Channel Names and Topics

Control how ticket channels are named and what topic they display using variable templates:

```bash theme={null}
,ticket name ticket-{user}
,ticket topic Support · {user.display_name} ({user.id})
```

Variables are interpolated when the channel is created. Common variables include `{user}` (username), `{user.display_name}`, `{user.id}`, `{guild.name}`, and `{ticket}` (the ticket ID).

## Open Message

The welcome message is the first thing a member sees after their ticket channel is created. You can keep it as plain text or use the haze component script syntax for a richly formatted card.

### Plain text

A plain-text welcome interpolates variables into the default open card alongside the **Claim** and **Close** buttons:

```bash theme={null}
,ticket welcome Hey {user.mention}! Describe your issue below.
```

### Component script

If your welcome text contains component tags, haze runs the full script builder instead and renders a custom formatted message:

```text theme={null}
,ticket welcome {color: haze}
{title: Ticket opened}
{text: Welcome {user.mention}.}
{text: Guild **{guild.name}** · id `{ticket}`}
{separator}
{link: Website && https://haze.rest}
```

<Tip>
  See the [Scripting overview](/scripting/overview) for the complete list of component tags and available template variables.
</Tip>

## Per-Button Overrides

Every button on your panel can have its own welcome message, channel topic, and category — independently of the server defaults. Use the button's ID (from `,ticket button list`) to target it:

```bash theme={null}
,ticket button welcome <id> {title: Billing} {text: Include your invoice id.}
,ticket button topic <id> Billing · {user.name}
,ticket button category <id> Billing
```

Per-button settings take precedence over the server-wide defaults for any ticket opened through that specific button.

## Role Management

Configure which roles can manage tickets, which get pinged, and who is blocked from opening them.

| Setting      | Command                  | Effect                                                     |
| ------------ | ------------------------ | ---------------------------------------------------------- |
| Staff        | `ticket staff @Role`     | Role can view, claim, close, and add/remove ticket members |
| Support ping | `ticket support @Role`   | Role is mentioned inside the channel when a ticket opens   |
| Ping toggle  | `ticket ping on/off`     | Enable or disable staff mention on ticket open             |
| Blacklist    | `ticket blacklist @User` | Prevents a user or role from opening any tickets           |

Run `ticket staff @Role` or `ticket support @Role` again with the same role to remove it.
