If you're searching for a Discord ticket bot, Noria's Ticket Panel gets you a working support-ticket system in one node: post a panel, members click a button to open a private channel, support staff close it when it's resolved.
Why people look for a ticket bot
- Ticket Tool's free tier is limited — multiple ticket panels, transcripts, and some routing options sit behind a paid tier.
- One flat ticket type — many setups only support a single "Open Ticket" button, with no way to route Bug Report vs. Billing vs. General to different staff.
- No visibility — it's easy to lose track of who opened what, and when, without a dedicated log.
How Noria's Ticket Panel works
- One panel, multiple ticket types — add a row per type (Bug Report, Billing, General…), each with its own label; clicking a type's button opens a channel routed to that type's own category and support roles.
- Private by default — the channel is only visible to the member who opened it and the configured support role(s); everyone else can't see it.
- One ticket per member (configurable) — stop a member opening a second ticket while one is already open.
- A category for each type, or one for all — route tickets under Discord categories so they don't clutter your channel list.
- Staff controls inside each ticket — optional Claim, Hold, Escalate, Priority and Transcript buttons, staff-only, on top of the always-present Close.
- Optional audit log — a channel gets a line for every ticket opened and closed, so nothing gets lost.
- Free in beta — the whole feature is included at no cost while Noria is in open beta.
Running the queue: claim, priority, hold, escalate, transcripts
Tick the ones you want under Extra ticket controls and they appear as buttons inside every new ticket. Only members with a support role can use them.
- Claim — a staff member takes ownership so two people don't answer the same ticket. Clicking your own claim hands it back; clicking someone else's takes it over, so a ticket is never frozen behind whoever went offline first.
- Hold / Resume — pauses the opener's ability to post while they keep full read access. For the ticket that's waiting on a refund or a third party and filling up with "any update?".
- Escalate — pings your Escalation roles in the ticket. It doesn't grant them access, so add them to Support roles too if they need to read it.
- Priority — a dropdown from Low to Urgent.
- Transcript — exports the conversation to a text file at any time, without closing the ticket.
Claim, priority and hold also show up in the channel topic (Ticket by ada · 🟠 High · Claimed by grace), so a whole support queue can be triaged from the channel list without opening anything.
Closing a ticket deletes the channel for good. Turn on Save a transcript when a ticket is closed and the conversation is posted as a text file first — to your transcript channel, your log channel, whichever is set. Attachments are kept as links; the files themselves die with the channel, so download anything you need to keep.
Existing panels are unaffected until you tick something: a ticket opened before you enabled any of this keeps exactly the Close button it had.
Every Ticket Panel option, explained
- Server & channel — where the panel message is posted.
- Support roles — the staff roles that can see and close every ticket. Required, and you can list several.
- Panel message, as text or embed — the panel's pitch ("Need help? Click below…"). Flip Send panel as an embed for a card with a title like
🎫 Supportand an accent color. - Button label — the single button's text (default
🎫 Open Ticket) when you haven't configured ticket types. - Ticket types — optional rows, one per type. Each type gets its own button, and can override the category and support roles — so Billing lands with your billing team and Bug Report with your devs.
- Ticket channel name — a template like
ticket-{{author_username}}; add{{ticket_type}}to bake the type into the name. - Welcome message, as text or embed — the first message inside a new ticket.
{{author_id}}(wrap it as<@{{author_id}}>for a mention),{{author_username}}, and{{ticket_type}}resolve per ticket. A Close Ticket button is added automatically. - One open ticket per member — on by default; a second click points the member at their existing ticket instead of duplicating it.
- Category — the Discord category new tickets are created under. Used as the default, and as the fallback for any type without its own.
- Log channel — optional; one line per open and per close, with who and which type.
- Extra ticket controls — which staff-only buttons each ticket gets: Claim, Hold / Resume, Escalate, Transcript, Priority. Empty means Close only.
- Escalation roles — pinged when a staff member clicks Escalate. Required once Escalate is enabled.
- Transcript channel — where transcript files land. Falls back to the log channel, then to the ticket itself.
- Save a transcript when a ticket is closed — posts the conversation as a file before the channel is deleted. Works whether or not staff have the Transcript button.
Settings apply live. When someone clicks the panel, Noria reads the node's current settings — so changing support roles, the welcome message, or the ticket limit affects a panel you posted last month, no repost needed. Only the panel message itself and its buttons are fixed at post time; run the node again to refresh those.
Two exceptions worth knowing: the panel's buttons and each ticket's staff controls are rendered into a real Discord message, so changing Extra ticket controls, Escalation roles, Transcript channel or Save a transcript on close applies to the next ticket opened, not to tickets that are already open.
Build it in minutes
- Connect your own Discord bot to Noria.
- Open the Discord Support Ticket template or add a Ticket Panel node to a blank workflow.
- Set your support role(s), the channel to post in, and (optionally) one row per ticket type with its own category/roles.
- Test, then Activate — members can now open tickets by clicking the panel.
Three ticket flows that work
- Simple help desk — one button, one Support category, one support role, one log channel. Perfect for small servers.
- Routed support — three types on one panel: Bug Report → the Bugs category with your dev role, Billing → a private Billing category with admins only, General → your moderator team. Members see one clean panel; staff only see their lane.
- Applications — a panel in
#applywith a "Staff application" type, a channel name ofapply-{{author_username}}, and a welcome embed listing the questions. Close when reviewed.
Troubleshooting
- Staff can't see a ticket — they need one of the configured support roles; add the role and it applies to the next click immediately.
- "Your ticket is still open" — the one-ticket limit is doing its job. If the old channel was deleted by hand, the next click simply opens a fresh ticket.
- New tickets appear at the top level — set the Category field (or a per-type category); empty means no category.
- Tickets stop being created — Discord caps a category at 50 channels. Close resolved tickets (closing deletes the channel) or route types across several categories.
- "Only support staff can use this" — the Claim/Hold/Escalate/Priority/Transcript buttons are staff-only by design. The clicker needs one of the panel's support roles.
- Hold says it can't change permissions — the bot needs Manage Channels in the ticket's category to mute the opener.
- The channel topic is out of date — Discord rate-limits channel edits hard (a couple per ten minutes). The message posted in the ticket is always immediate; the topic catches up on its own.
- Escalate says no role is configured — set Escalation roles on the panel node, then open a new ticket: like the other control settings it's captured when the ticket is created, not read on every click.
Make it your own
- Route by type — a Billing ticket can go to a different category and staff than a Bug Report, from the same panel.
- Customize the welcome message — greet whoever opened the ticket by name inside their new channel.
- Log everything — point an optional log channel at your mod team's own channel for a running audit trail.
That's a ticket system you fully control — free during the beta, no code. Start building free, see what else you can build on the same bot in the MEE6 alternative guide, or build your first workflow to get started.