Skip to main content
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.
1

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

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.
Replace @Mods with whichever role your team uses. You can run this command multiple times to add more than one role.
3

(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.
This keeps your main staff role free from notification noise while ensuring the right people are alerted immediately.
4

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 below for both options.

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:
Component script — use tag-based blocks to build a structured, branded message:
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.
Haze will respond with a rendered preview visible only to you, so you can iterate freely without affecting your live ticket panel.
The examples above only scratch the surface of what the script builder can do. Head to the Scripting overview for the full list of supported tags, variables, and layout options.