Banner

Ticket panels

Create one or many panels. Each can have its own embed, buttons, and form. Clone and rename from the dashboard.

📝

Custom embeds

Title, description, color, thumbnail, image, author (name, icon, URL), footer, and embed fields. Full control over how your panel looks.

🔘

Create ticket button

One primary button per panel. Custom label and emoji. We add the close-ticket button automatically in every ticket channel.

🔗

Link buttons

Add extra buttons that open URLs (rules, docs, FAQ). Up to 5 per row alongside the create-ticket button.

📋

Panel forms

Optional modal form before opening a ticket: short or paragraph fields, placeholders, required. Answers show in the ticket channel.

📂

Category

Choose the Discord category where new ticket channels are created. Set per panel.

📤

Slash command deploy

Use /ticket panel send panel_id:<id> channel:#channel to post the panel. No manual message editing.

Ticket experience

What happens when someone opens a ticket: welcome message, variables, and closing with transcripts.

💬

Ticket message

Custom embed when a ticket is created. Same builder as the panel: title, description, color, thumbnail, image, author, footer, fields.

🔤

Variables

Use {user}, {user.tag}, {server}, {server.name}, {server.id} in panel and ticket text. Replaced when the message is sent.

🚪

Close ticket button

Every ticket gets a close button. Staff with Manage Channels can close; transcript is saved and the channel is deleted.

📜

Transcripts

On close: last 100 messages are saved. Sent to a server transcript channel (if set) and to the customer’s DMs as a receipt.

Dashboard

One place for server info, panel configs, ticket settings, and subscription status.

🖥️

Server picker

Switch between servers you manage. See server icon and name. Premium status shown in the sidebar.

🎛️

Panel configs

Panel selector, clone, rename, send, update, delete. Card-based navigation: General, Category, Ticket message, Buttons, Forms, Transcript.

⚙️

Ticket settings

Set the transcript channel ID. Every closed ticket is posted there and DMed to the customer.

🎨

Themes

Dashboard accent: Indigo, Emerald, Rose, or Amber. Stored in the browser.

Giveaways & stock files

Run giveaways that automatically distribute prizes from a stock file. One winner = one unique prize.

🎁

Stock file

Upload a text file with one prize per line (codes, links, keys). Lines starting with # are ignored. Prizes are pulled in order when winners are picked.

📤

Auto DM winners

When a giveaway ends, each winner is automatically DM'd their unique prize from the stock. No manual copying—first winner gets first line, second winner gets second, and so on.

🔄

Reroll support

Use /giveaway reroll to pick a new winner. If using a stock file, the new winner gets the next available prize from the file.

AI Assistant (Premium)

Let AI help answer tickets. Enable the AI Assistant in the dashboard and optionally train it with your own documentation. Premium only.

🤖

AI replies in tickets

When a customer sends a message in a ticket, the AI can reply automatically. Uses recent ticket context and your custom system prompt. Typing indicator shows while the AI is thinking. Runs in a queue so the bot stays responsive.

📚

AI Knowledge (train the AI)

Upload your docs, FAQs, or product info in the dashboard. The AI uses this content only for your server—instanced per guild, no cross-server leakage. Content is truncated per request to keep responses fast and costs bounded.

Smart debounce & rate limits

Bursts of customer messages produce one AI reply (5-second debounce). Per-guild and per-ticket rate limits prevent abuse. The AI does not reply after staff or the bot has already posted in the ticket.

🎛️

Dashboard config

Enable or disable AI Assistant per server. Set a custom system prompt and optional model. Configure how many AI replies per hour. Save and load AI Knowledge from the AI Assistant page in the dashboard.

Automatic discount roles

Track lifetime spend per customer and automatically apply roles and discounts based on customizable spend ranges.

📈

Track amount spent

BetterTicket tracks every receipt and sums each customer's total lifetime spend in your server. No manual counting—it's automatic.

📐

Customizable spend ranges

Define your own ranges: e.g. $0–$49, $50–$99, $100–$249, $250+. Set min and max for each tier. Overlapping ranges are prevented.

Roles applied automatically

When a customer's spend crosses into a range, the matching Discord role is assigned—and the discount (% or flat) applies. Roles update after each new receipt.

Receipts, vouches & tracking

Create receipts, collect reviews, and track every transaction from the dashboard.

🧾

Receipt system

Use /receipt new to create orders. Sends customizable embeds to your receipt channel and the customer's DM. Supports buyer, amount, type, payment, and description.

Auto vouch

Receipts include a Vouch button. Customers can leave 1–5 star ratings and comments. Reviews post to your vouch channel for social proof and trust.

📊

Track receipts & transactions

Dashboard History lists all receipts. Update status, tracking, and notes. Revenue Overview shows totals and trends. Statistics shows vouches and order counts.

Subscriptions & admin

Optional per-server subscription. Bot can stop working after expiry; admins can set or extend expiry and use Stripe.

📅

Expiry per server

Set an expiry date (or leave empty for “never”). Bot checks before handling commands and ticket creation.

Add time

Admin dashboard: set expiry or add days to a guild. Stripe webhook can add days on payment using metadata.

🔐

Admin panel

Separate admin layout and color. Overview stats, subscriptions table, webhook URL, and settings. Restricted by Discord user ID.

Open Dashboard Pricing