Plugins

Tickets

Premium
Support tickets from a panel button or dropdown — categories, staff roles, limits, transcripts and channel naming.

A ticket panel is a message with a button. A member clicks it and Cloudy creates a private channel under a Discord category, visible to that member and your staff roles.

LicensePremium
NeedsManage Channels, Manage Roles, Send Messages

Creating a panel

Panel channel

Required · fixed after creation

Where the panel message is posted. Members need to see this channel to open a ticket.

Ticket category

Required

The Discord category new ticket channels are created under. Create an empty category for this — do not point it at a category that already holds normal channels.

Staff roles

1–10 roles · required

Roles that can see and respond to every ticket on this panel. At least one is mandatory: a ticket nobody can read is useless.

Log channel

Optional

Transcripts and ticket events are posted here. Strongly recommended — without it, a closed ticket is gone.

Ticket categories

One panel can offer several kinds of ticket. This is the feature that changes how the panel looks:

CategoriesPanel renders as
1A single button
2–25A dropdown with one option per category

25 is Discord's cap on select-menu options.

Each category has its own settings, and empty fields inherit from the panel:

FieldLimitEmpty means
Discord categoryrequired
Labelup to 100 characters
DescriptionoptionalNo second line in the dropdown
EmojioptionalNo icon. A malformed emoji is skipped and the option still works
Staff rolesoptionalThe panel's staff roles apply
Opening messageoptionalThe panel's welcome message is used
Give each category its own Discord category if the ticket types need different staff visibility — support, reports and applications rarely want the same audience.

Removing a category from a panel leaves tickets already opened under it untouched.

Panel branding

All optional; empty uses the built-in default.

FieldLimitDefault
Panel title256 charactersCloudy • Ticket System
Panel description2000 charactersClick 'Create Ticket' to open a support ticket.
Button label80 charactersCreate Ticket
Button emoji64 characters📧 — unicode or <:name:id>

The panel can also be built as a full embed with the embed builder.

Inside a ticket

Welcome message

Up to 2000 characters · optional

Posted inside a newly created ticket. Supports {user} to mention the opener.

Hello {user}, please describe your issue — include screenshots if you have them.

Use it to ask for the information your staff always ends up asking for anyway.

Channel name template

Up to 100 characters · optional

How new ticket channels are named. Placeholders {user} and {number}, where {number} is a counter that increments per panel.

Default: {number}-ticket-{user}7-ticket-nova

Discord lowercases channel names and replaces spaces with dashes. A template with capitals or punctuation still works, it just does not look the way you typed it.

Intake form

Up to 5 questions asked in a modal before the ticket channel exists. The answers are posted as the first message inside the new ticket.

This is the single highest-value setting on the page. Without it every ticket starts with "hi", then "what's your problem", then a wait. With it, staff opens a channel that already contains the answer.

Field propertyNotes
LabelUp to 45 characters — Discord's limit
PlaceholderOptional grey hint inside the input
StyleShort (one line) or paragraph (multi-line)
RequiredWhether it can be left empty
Max length1–4000 characters

Forms can be set per panel and per category. A category's own form replaces the panel's, so a "Report a member" category can ask different questions than "Billing".

Five is Discord's hard cap on inputs in one modal, not a Cloudy limit. Ask the questions that change what staff does first; the rest belongs in the conversation.

Priority

Every ticket carries a priority: low, normal, high or urgent. It shows in the channel name and in the dashboard's ticket list, and it is what lets a queue be worked in the right order.

Set the default priority per panel or per category — a "Report a raid" category can open at urgent while general questions open at normal. Staff changes it later with /ticket priority.

Inactivity handling

Two independent timers, both off by default (0), that close tickets nobody is answering.

SettingEffect
Warn after (minutes)Cloudy posts a reminder in the ticket
Close after (minutes)Cloudy closes the ticket

Both count from the last message in the ticket, by anyone. Any new message resets them.

A common pair is a warning after 24 hours and a close after 72. It clears the abandoned tickets without cutting off anyone who is still replying.

Limits and cleanup

Open tickets per member

1–25 · default 1

How many tickets one member may have open at the same time.

Count that limit

category or panel · default category

ValueMeaning
Per categoryThe limit applies within each category — one support ticket and one report ticket at once
Per panelEvery category on the panel counts together — one open ticket, full stop

Auto-delete after close

0–10080 minutes (7 days) · default 0

How long a closed ticket channel survives before Cloudy deletes it. 0 keeps the built-in 5-second default, i.e. the channel disappears almost immediately after closing.

Set a log channel before raising this above zero, or set it high. Once the channel is deleted the conversation exists only in the transcript — if there is no log channel, it exists nowhere.

Useful values: 0 if you always want a clean category, 1440 (24 h) if staff sometimes needs to reread a ticket the next day.

Commands

CommandDoesRequires
/ticket addAdd a member to the current ticketManage Messages
/ticket removeRemove a member from the current ticketManage Messages
/ticket priorityChange this ticket's priorityManage Messages
/ticket transferHand the ticket to another staff memberManage Messages
/ticket-statsResponse times and volume per staff memberManage Server

Panels themselves are created and edited in the dashboard, not through commands.

Claiming and transferring

A staff member claims a ticket to signal they are handling it; /ticket transfer passes it on without losing the history or the claim record. Both are recorded on the ticket itself, which is what /ticket-stats reads.

/ticket-stats reports volume, average first-response time and average resolution time per staff member. Use it to find the queue that is quietly not being worked, not to rank people.

Behaviour notes

  • The bot posts a new panel within about 30 seconds (Pending badge).
  • Editing branding re-renders the existing message — the button keeps working.
  • Deleting a panel takes the Discord message down first, then the entry. Tickets already open stay.
  • Cloudy needs Manage Channels on the ticket category and its role above the staff roles it grants access to.