> ## 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.

# Quickstart: Get Haze Tickets Running in 60 Seconds

> Follow these four steps to create a private ticket channel, wire up staff roles, enable open pings, and customize your welcome message with haze.

Getting haze's ticket system live takes less than a minute. Run four commands and you'll have a private Tickets category, a transcripts channel, a working panel with an **Open ticket** button, and your staff roles fully wired — no dashboard required.

<Steps>
  <Step title="Run ticket setup">
    Run `,ticket setup` in any channel where haze has permission to send messages. Haze will automatically create a private **Tickets** category and a **#transcripts** channel inside it, then post a panel with an **Open ticket** button.

    ```bash theme={null}
    ,ticket setup
    ```
  </Step>

  <Step title="Add your staff role">
    Grant your moderation role access to all tickets so staff can see and respond to every private channel as soon as it's opened.

    ```bash theme={null}
    ,ticket staff @Mods
    ```

    Replace `@Mods` with whichever role your team uses. You can run this command multiple times to add more than one role.
  </Step>

  <Step title="(Optional) Add a support ping">
    If you want a specific role pinged whenever a ticket is opened, add a support role and turn pings on.

    ```bash theme={null}
    ,ticket support @Support
    ,ticket ping on
    ```

    This keeps your main staff role free from notification noise while ensuring the right people are alerted immediately.
  </Step>

  <Step title="Customize the open message">
    Set the message haze posts inside every new ticket. You can use plain text with variables, or a full component script for a richer layout — see [Customize the open message](#customize-the-open-message) below for both options.
  </Step>
</Steps>

## Customize the open message

The `,ticket welcome` command accepts either a plain text string or a full component script. Both support dynamic variables like `{user.mention}` and `{guild.name}`.

**Plain text with variables:**

```bash theme={null}
,ticket welcome Hello {user.mention}! A mod will be with you soon.
```

**Component script** — use tag-based blocks to build a structured, branded message:

```text theme={null}
,ticket welcome {color: #A78BFA}
{title: Ticket opened}
{text: Hey {user.mention} — thanks for reaching out.}
{separator}
{link: Docs && https://docs.haze.rest}
```

Each `{tag: value}` block maps to a component element. The `{color:}` tag sets the accent color, `{separator}` adds a visual divider, and `{link:}` renders a clickable button using `label && url` syntax.

## Preview scripts

Before applying a script to your ticket welcome message, you can preview exactly how it will render using `,script preview`. This works with any component script and is great for experimenting with layouts.

```bash theme={null}
,script preview {title: Hello {user.display_name}} {text: From **{guild.name}**}
```

Haze will respond with a rendered preview visible only to you, so you can iterate freely without affecting your live ticket panel.

<Tip>
  The examples above only scratch the surface of what the script builder can do. Head to the [Scripting overview](/scripting/overview) for the full list of supported tags, variables, and layout options.
</Tip>
