Setting up a Discord ticket system that doesn’t fall apart
A support ticket system’s job is simple to describe and easy to get wrong in practice: get a member’s problem to a staff member, keep a record of it, and don’t let it sit forgotten in a channel nobody’s watching. A few things separate a ticket setup that holds up from one that quietly rots:- Claiming. Without it, three staff members open the same ticket and none of them commit to answering. Claim/unclaim from the ticket channel itself keeps ownership visible.
- Per-button permissions. Claim, unclaim, close, and voice-channel requests each get their own staff-or-not toggle, an allow-list for specific extra roles, and a block-list, instead of one server-wide “staff” role deciding everything.
- Auto-close rules. A ticket with no reply in the given time, or one whose author already left the server, should close on its own instead of sitting in the list forever.
- Verifiable transcripts. Anyone can screenshot a chat log. A transcript that’s signed the moment it’s created, and can be verified later, is the difference between “trust me” and proof.
- Per-category staff permissions. A billing category and a bug-report category usually don’t need the same people in them. Locking staff roles per category, not server-wide, keeps that separation without a second bot.
- Structured intake. A question flow before the ticket opens (what’s the issue, which product, any files) saves the first three messages of every ticket.
Setting up a leveling system people actually engage with
XP-for-messages is the easy 80%. What makes people notice and stay engaged is the other 20%:- Role rewards on level-up, so leveling up means something concrete, not just a number going up in an embed.
- Chat and voice XP, since a voice-heavy community shouldn’t be invisible to the leveling system.
- Your own XP curve, not a fixed formula that makes level 40 either trivial or unreachable for your server’s activity level.
- Multipliers for boosted roles or event channels, so a double-XP weekend or a booster perk doesn’t need a manual recalculation.
- A rank card, since a
/rankembed with a progress bar is worth more to most members than a leaderboard entry alone.
Sending messages without hand-written JSON
Discord’s modern message components (buttons, select menus, sectioned layouts with thumbnails, dividers) look better than a plain embed, but hand-writing them as raw JSON is slow and easy to get wrong. A Discord embed builder with a real editor fixes that:- A live preview while you build, so you’re not sending a test message to see if a button’s label fits.
- Components that actually do something. A button embedded in a message someone else’s bot isn’t listening for is just a static image with a border.
- Reusable output. JSON import/export means a message you built once can be versioned, shared with another staff member, or dropped into a different channel without rebuilding it.
- The ability to reload and edit a message you already sent, instead of deleting and resending every time the copy changes.
What “up to date” means in the code
Components V2, not legacy embeds
Components V2, not legacy embeds
Rank cards and panels are
Container → Section → Thumbnail, not an embed with an image field.Modals with typed inputs
Modals with typed inputs
Ticket/application questions have a real input type: text, number, file (8MB cap), channel, user, role. A number question rejects letters before it’s ever saved.
Blocks, not a JSON textarea
Blocks, not a JSON textarea
text, divider, gallery, section, container, buttons, selects, each with its own editor and live preview. Direct manipulation, no hand-edited JSON.Picking your setup
1
Decide what you actually run
A moderation/music server needs different things than a support server with applications and jail.
2
Check the free tier honestly
What’s gated vs. just limited. See Premium.
3
Try it in one category first
See the Quickstart.
Quickstart
Live in five steps: invite, create a category, configure, send the panel.
FAQ
Staff permissions, transcript verification, prefixes and premium limits.
