✦ Documentation

Learn how to use
STicketBot

Everything you need — whether you're a user opening your first ticket, a staff member managing support, or an admin configuring the full system.

👋 Introduction

STicketBot is a Discord ticket system that creates private support channels inside your server. Members can open tickets directly from a panel embed, or using /new anywhere in the server.

This guide covers every feature — from opening your first ticket to managing the full web dashboard as an admin.

🔄 How Tickets Work

When a ticket is opened, STicketBot creates a private text channel that only the user and support staff can see. They can chat normally, share files, and get help. When resolved, the channel is deleted and a full HTML transcript is saved automatically.

🔒

Private Channels

Only the ticket owner and staff can see the channel — nobody else in the server.

📋

Categories & Dropdowns

Users choose from a dropdown so the ticket goes to the right team automatically.

Form Questions

Categories can ask up to 5 custom questions before a ticket is created.

📜

Auto Transcripts

A full HTML log is saved and sent to the log channel when a ticket closes.

Ratings

Users can rate their support experience after the ticket is closed.

🌐

Arabic & English

Bot responses can be set to Arabic or English per server.

🎫 Opening a Ticket 👤 User

Tickets are opened by interacting with a panel embed in a support channel (usually named #open-a-ticket or #support).

1

Find the panel channel

Go to the channel your server set up for support. You'll see an embed with a dropdown or button.

2

Select a category

Pick the option that best describes your issue from the dropdown menu.

3

Answer form questions (if any)

Some categories show a quick form — fill it in and submit. Your answers appear at the top of the ticket.

4

Go to your ticket channel

STicketBot creates a private channel and sends you a link. Click it to jump in and describe your issue.

You can also open a ticket at any time by typing /new in any channel — no need to find the panel.

💡

Tip: Most servers only allow one open ticket per user. Close your current ticket before opening a new one.

💬 Inside Your Ticket 👤 User

Once inside your ticket channel you can chat normally with staff. You'll also see a control panel with action buttons at the top:

🔒

Close

Request to close the ticket. Both you and staff confirm before it closes.

Add User

Invite another Discord member to view and reply in your ticket.

📋

Transcript

Download an HTML file of the full conversation at any time.

You can also use /add user @user to add someone, or /topic to update the ticket's subject line.

⚠️

Note: Staff are notified when you open a ticket. Please be patient and avoid sending multiple messages back-to-back.

Rating Support 👤 User

After a ticket closes, STicketBot sends you a DM with 1–5 star buttons to rate your experience. You can also leave an optional written comment. Ratings are optional — you can ignore the DM.

Your rating is only visible to server admins and staff in the web dashboard.

💬

Make sure your DMs are open from server members, otherwise STicketBot can't send the rating request.

🛡️ Staff Overview 🛡️ Staff

Staff members are pinged when a ticket is opened (based on the panel's configured support roles). Inside each ticket channel you'll find a button control bar at the top with everything you need:

Claim

Take ownership so the team knows who's handling it.

🔒

Close

Close the ticket when the issue is resolved.

Add User

Add a regular user or another staff member to the ticket.

📝

Note

Leave a private internal note only staff can see.

All the same actions are also available as slash commands if you prefer typing over buttons.

Claim & Release 🛡️ Staff

Click the Claim button (or use /claim) to assign the ticket to yourself. The ticket embed is updated so everyone knows you're handling it.

Use /release or click Claim again to drop the ticket back into the pool so another staff member can pick it up.

💡

Best practice: Claim a ticket before replying so your team doesn't accidentally send duplicate responses.

🚨 Priority Levels 🛡️ Staff

Use /priority [level] to set how urgent a ticket is. The ticket embed updates to reflect the current priority.

Low
Non-urgent, can wait
Normal
Standard priority
High
Needs prompt attention
Urgent
Immediate response needed

📝 Staff Notes 🛡️ Staff

Click the Note button inside the ticket to leave an internal comment that the ticket user can never see. Use notes to coordinate with your team or flag important context.

👤

You (note author)

See an ephemeral confirmation in the ticket channel. It disappears when dismissed and is invisible to others.

🛡️

Other staff & admins

The note is silently forwarded to the configured log channel where all staff can read it.

🙅

The ticket user

Never sees the note — not in the channel, not in their DMs, not in the transcript.

Notes are also visible in the web dashboard under each ticket.

📜 Transcripts 🛡️ Staff

When a ticket closes, STicketBot automatically generates a full HTML transcript — including staff notes — and sends it to the log channel. You can also generate one manually at any time using /transcript inside an open ticket.

📂

All transcripts are saved in the web dashboard under each ticket's history, accessible by admins at any time.

Closing Tickets 🛡️ Staff

Click the Close button or use /close [reason] to close a ticket. A confirmation prompt appears before the ticket closes.

When closed:

  • The ticket channel is deleted
  • An HTML transcript is sent to the log channel
  • The ticket creator receives a DM with a rating request
  • The ticket is archived in the web dashboard
⚠️

Heads up: Closing a ticket is permanent. The channel is deleted but the transcript is always saved.

🔓 Reopening Tickets 🛡️ Staff

After a ticket is closed, the owner receives a DM with a Reopen button alongside the rating prompt. Staff can also reopen any ticket using /reopen [ticket_id].

If you run /reopen inside a closed ticket channel, the ticket ID is detected automatically — no need to look it up.

Reopening restores the channel and moves it back to the open tickets category (if configured).

🔔 Notify 🛡️ Staff

Use /notify inside a ticket to alert the user that staff has replied and is waiting for them. The command does two things at once:

1

In-channel ping

Mentions the ticket owner directly in the channel with an embed so they see it as soon as they open Discord.

2

DM notification

Sends a private message with a link back to the ticket. Works even if the in-channel ping was missed.

Add a custom message: /notify message: We need your order number to continue.

🏷️ Tags 🛡️ Staff

Tags are saved quick-response messages you can send with one command instead of typing the same text every time. Common uses: "please-provide-logs", "resolved", "escalated-to-dev".

/tag [name]
Send a saved tag to the current ticket channel. Optionally use for: @user to ping a specific member with the tag.
🛡️ Staff
/tag-manage create
Create a new tag with a name (no spaces) and content.
⚙️ Admin
/tag-manage edit
Edit the content of an existing tag.
⚙️ Admin
/tag-manage delete
Delete a tag permanently.
⚙️ Admin
/tag-manage list
List all tags configured for this server.
⚙️ Admin

Tags are managed entirely through commands or from the web dashboard.

🖥️ Web Dashboard ⚙️ Admin

The web dashboard gives admins a visual interface to manage everything without touching Discord. Log in with your Discord account and select your server.

📋

Panels

Create, edit, and send panels visually. Set colors, emojis, images, footer text, support roles, and more.

🎫

Tickets

Browse all open and closed tickets. View full transcripts, messages, and staff notes per ticket.

📊

Analytics

7-day ticket volume charts, staff leaderboards, and average rating scores.

📜

Logs

A chronological feed of every action taken in the system (opens, closes, claims, etc.).

🌐

Bot Language

Switch the bot's response language between Arabic and English per server.

⚙️

Settings

Configure per-panel settings: auto-close timer, support roles, log channels, and more.

🧩 Panels & Categories ⚙️ Admin

A panel is the embed message users interact with to open tickets. You can have multiple panels for different departments (General Support, Reports, Applications, etc.).

1

Create a panel in the dashboard

Go to Panels in the dashboard and click New Panel. Set the name, description, embed color, emoji, images, footer, support roles, and other options.

2

Add categories

Click Categories on a panel to add dropdown options. Each category can have its own name, emoji, welcome message, and support roles. Users will see a dropdown when they click the panel.

3

Send to a channel

Click Send on the panel card and select the channel. STicketBot posts the embed and stores the message ID so it can edit it automatically if you change settings.

💡

You can also create panels via /ticket-setup in Discord and configure them with /panel-config, but the dashboard gives you more options and a live preview.

Form Questions ⚙️ Admin

Each panel category can have up to 5 custom questions (Discord modal limit). When a user opens a ticket in that category, a form pops up asking those questions. Their answers are posted at the top of the ticket channel so staff immediately have context.

/add-question
Add a question to a category. Options: label text (max 45 chars), placeholder hint, input style (short or paragraph), required toggle, and max answer length.
⚙️ Admin
/manage-questions list
List all questions for a category.
⚙️ Admin
/manage-questions delete
Delete a specific question by ID.
⚙️ Admin
/manage-questions clear
Remove all questions from a category at once.
⚙️ Admin

Questions can also be managed from the Categories modal inside the web dashboard — click any category's questions icon.

Auto-Close ⚙️ Admin

Auto-close automatically closes tickets that have been inactive for a set number of hours. Configure it per panel from the dashboard settings or with /panel-config auto_close_hours: 24. Set to 0 to disable.

Before closing, STicketBot posts a warning inside the ticket so the user has a chance to respond. If there's still no activity, the ticket closes.

💡

Auto-close is great for keeping your ticket list clean and preventing forgotten tickets from piling up over time.

🚫 Blacklist ⚙️ Admin

Block specific users from opening new tickets. Blacklisted users are silently blocked — no error message, the ticket simply won't open.

/blacklist add @user
Add a user to the blacklist. Include an optional reason for your records.
/blacklist remove @user
Remove a user from the blacklist and restore their ability to open tickets.
/blacklist list
View all currently blacklisted users in this server.

📊 Stats & Analytics ⚙️ Admin

Use /stats for a quick Discord overview of ticket counts and a top-5 staff leaderboard. For full analytics, open the web dashboard.

📈

Ticket Volume

Total, open, closed, and today's count at a glance.

📅

7-Day Trend Chart

Visual bar chart of ticket volume over the past week.

👥

Staff Leaderboard

See who's handling the most tickets across your team.

Rating Averages

Average satisfaction score per staff member over time.

🔨 Force-Close ⚙️ Admin

/force-close lets admins instantly close tickets without a confirmation prompt. Unlike /close, there's no rating request sent to the user.

ticket
The ticket number to close. Leave blank to close the channel you're currently in.
reason
Optional reason logged with the closure.
time
Bulk-close all tickets inactive for this long. Examples: 1w 3d 12h 30m
panel_id
Combine with time to only close inactive tickets from a specific panel.

🔀 Transfer & Move 🛡️ Staff

/transfer @member changes the owner of a ticket to another Discord member. The new owner is added to the channel automatically. Use this when a ticket was opened by the wrong person, or to reassign responsibility.

/move [panel_id] moves the ticket channel into the Discord category of the target panel. Useful when a ticket belongs to a different department than it was opened under.

Related: use /release to drop a claimed ticket back into the pool so another staff member can pick it up.

💬 Topic 👤 User 🛡️ Staff

Use /topic inside a ticket to update its subject. A modal appears with the existing topic pre-filled — edit it and submit. The Discord channel topic is also updated so it's visible at the top of the channel.

Add / Remove Users 🛡️ Staff

/add user @user
Gives a regular member view and reply access to the ticket. No notification is sent — they just gain channel access.
🛡️ Staff
/add admin @staff reason: ...
Adds a staff member, posts the reason visibly in the ticket channel, and DMs the added staff member with the ticket link and reason.
🛡️ Staff
/remove @user
Remove a user from the ticket channel, revoking their access.
🛡️ Staff

🔁 Panel Resend ⚙️ Admin

Use /panel-resend [panel_id] to re-send or refresh a ticket panel after a bot restart. The old message is deleted and a fresh one is posted with the correct buttons and categories.

panel_id
The ID of the panel to re-send. Get IDs with /panels.
channel
Optional — send the panel to a different channel. Leave blank to use the saved channel.
💡

Use this whenever the panel embed stops responding after a restart or the message gets accidentally deleted.

🔀 Panel Type ⚙️ Admin

Use /panel-type [panel_id] [type] to switch a panel between dropdown and button display modes. The panel message is updated automatically.

dropdown
Shows a select menu — recommended when you have multiple categories.
button
Shows individual buttons for each category (up to 5 per row).

✏️ Edit Category ⚙️ Admin

Use /edit-category [category_id] to update an existing panel category's name, description, emoji, or image. The panel embed refreshes automatically after saving.

category_id
The ID of the category to edit. Get category IDs with /panels or from the dashboard.
name
New display name for the category.
description
New description shown in the dropdown.
emoji
New emoji for the category.
image_url
New image URL to display in the ticket embed, or leave blank to remove.

🌐 Bot Language ⚙️ Admin

STicketBot supports Arabic and English. The language setting is per-server — all bot messages (welcome messages, embeds, button labels, etc.) switch to match.

/lang arabic
Switch all bot responses for this server to Arabic (العربية).
/lang english
Switch all bot responses for this server to English.

You can also change the language from the web dashboard under Settings → Bot Language.

All Commands

Complete reference of every slash command in STicketBot.

👤 User Commands

/new
Open a new ticket. If multiple panels exist, a selector appears so you can pick the right category.
👤 User
/close [reason]
Request to close the current ticket. A confirmation prompt is shown before it closes.
🛡️ Staff
/tickets [member]
List your own open and closed tickets. Staff can view another member's tickets by passing member:.
👤 User 🛡️ Staff
/add user @user
Add a member to the current ticket channel.
🛡️ Staff
/topic
Update the subject / topic of this ticket. A modal appears with the current topic pre-filled.
👤 User 🛡️ Staff
/transcript
Download an HTML transcript of this ticket at any time.
👤 User 🛡️ Staff
/help
Show available commands. Staff see additional commands in the response.
👤 User

🛡️ Staff Commands

/claim
Claim this ticket. The embed updates to show you as the handler. Run again to unclaim.
🛡️ Staff
/release
Release (unclaim) the ticket so any other staff member can pick it up.
🛡️ Staff
/priority [level]
Set ticket priority: 🟢 Low, 🟡 Normal, 🟠 High, 🔴 Urgent.
🛡️ Staff
/notify [message]
Ping the ticket owner in-channel and send them a DM to let them know staff has replied.
🛡️ Staff
/add admin @staff reason: ...
Add a staff member to the ticket with a visible reason and automatic DM notification.
🛡️ Staff
/remove @user
Remove a user from the ticket channel.
🛡️ Staff
/rename [name]
Rename the current ticket channel.
🛡️ Staff
/transfer @member
Transfer ticket ownership to another member.
🛡️ Staff
/move [panel_id]
Move this ticket's channel into the Discord category of another panel.
🛡️ Staff
/tag [name]
Send a saved quick-response tag. Optionally use for: @user to ping them.
🛡️ Staff
/reopen [ticket_id]
Reopen a closed ticket. Leave blank if you're inside the closed ticket channel.
🛡️ Staff

⚙️ Admin Commands

/force-close
Instantly close a ticket or bulk-close by inactivity time (e.g. 1w, 3d, 12h). No confirmation, no rating DM.
⚙️ Admin
/blacklist
Subcommands: add / remove / list. Block users from opening new tickets.
⚙️ Admin
/stats
View server ticket stats and top-5 staff leaderboard in Discord.
⚙️ Admin
/ticket-setup
Create a new ticket panel in the current or specified channel.
⚙️ Admin
/panel-config
Configure a panel's support roles, auto-close timer, welcome message, log channel, name format, and more.
⚙️ Admin
/add-category
Add a dropdown category to a panel with a name, emoji, description, and optional image.
⚙️ Admin
/add-question
Add a form question to a category (max 5 per category). Supports short and paragraph styles.
⚙️ Admin
/manage-questions
Subcommands: list / delete / clear. Manage form questions for a category.
⚙️ Admin
/panels
List all configured panels in this server with their IDs.
⚙️ Admin
/tag-manage
Subcommands: create / edit / delete / list. Manage quick-response tags for your server.
⚙️ Admin
/lang
Switch the bot's response language between Arabic and English for this server.
⚙️ Admin
/panel-resend [panel_id]
Re-send a panel after a bot restart. Deletes the old message and posts a fresh one. Optional channel to send it somewhere else.
⚙️ Admin
/panel-type [panel_id] [type]
Switch panel display between dropdown (select menu) and button mode. Panel updates automatically.
⚙️ Admin
/edit-category [category_id]
Edit a category's name, description, emoji, or image. The panel embed refreshes automatically.
⚙️ Admin