Ticket Bot

Button, topic-menu or topic-button panels that open private support channels — with templates, claim, close, transcripts, reminders and team stats.

The Ticket Bot lets members open a private support channel by clicking a button. Each ticket is a hidden channel only the opener and your support team can see, with built-in claim, close and transcript.

Beta — tested, but still young.

Paid plugin — included from Link. The Ticket Bot needs a Link subscription ($3.99/mo) or higher on that network; Network and Grid include it too. See pricing.

Re-invite required. Tickets create channels, so the bot needs the Manage Channels permission (and Attach Files for transcripts). If your bot was invited before this feature, re-invite it from the dashboard — the button uses the updated permissions.

Start from a template

The quickest way in: six ready-made ticket types, each with an emoji, a button colour, a first message and a few questions.

TemplateQuestions asked before the ticket opens
🚨 Report a userwho, what happened, where, links or screenshots
🐛 Bug reportwhat went wrong, how to reproduce it, what you expected, device / version
💡 Feature requestthe idea, which problem it solves
⚖️ Ban appealwhy you were punished, why we should reconsider, when
🤝 Partnership requestserver or project, invite link, member count, what you have in mind
📝 Staff applicationage, timezone, why you want to join, moderation experience

The staff application template is a quick way in. For full applications — up to 25 questions, review buttons and trial periods — use the Application Forms plugin instead.

  • Tickets page, no panel yet — tick one or more templates, pick the channel and click Create panel. You get one panel with a button for each template. CloudMod opens the editor right away so you can pick the support roles.
  • New panel — the editor starts with Start from a template. The topics you pick are added as buttons; nothing is saved until you click Create panel.
  • Existing panel — in the topic list, Add from template adds more. Topics that are already on the panel can't be picked twice.

A template is only a starting point: afterwards every topic is a normal topic you can rename, recolour or give its own team.

Create a panel

On the Tickets page → New panel:

  • Title / Text — shown on the panel embed.
  • Post it in — the channel where the panel lives.
  • How members open a ticket — One button, a Topic menu, or A button per topic (see below).
  • Button text / Emoji — e.g. "Open a ticket" 🎫. With a topic menu this is the Menu placeholder.
  • Support roles — these roles see every ticket and can claim and close it. Members with Manage Server always can.
  • Ping the team when a ticket opens — mentions the support roles in the new channel. On by default.
  • Reminders — see Reminders.
  • Channel category — new ticket channels are created under this category.
  • Channel name — ticket-0001, or ticket-username, which becomes ticket-<username>-<number>.
  • Open tickets per member — 1 to 10, default 1. Stops one person opening dozens. A member at the limit is told so, with a link to the ticket they already have open.
  • Show the status in the channel name — off by default. When on, ticket channels carry their status: 🟢-ticket-0001 while open, 🟠-… once claimed, 🔒-… when closed. Discord only allows about two renames per channel every 10 minutes, so after a quick claim–unclaim–claim the name can lag a few minutes behind; CloudMod always applies the latest status and skips changes that cancel each other out. The Status line in the ticket's first message is updated immediately either way.
  • First message in the ticket — posted inside each new ticket ({user} mentions the opener).
  • When a ticket is closed — see below.
  • Transcript channel — where the HTML transcript is posted on close.
  • Reply snippets — saved answers your team posts with /ticket reply (see below).
  • Panel is active — switch it off to stop the panel from opening new tickets. The panel message is removed from the channel and comes back when you switch it on again.

The bot posts the panel automatically (once the Ticket Bot plugin is switched on) and the button keeps working across restarts.

Deleting a panel removes its message from Discord. A panel that still has open tickets can't be deleted — close those tickets first, or switch the panel off so no new ones open.

Topics, questions and auto-close

  • Topic menu — members pick what their ticket is about from a menu, up to 25 topics. Each topic can have its own support roles (Handled by) and Channel category; if you leave them empty, the panel's are used.
  • A button per topic — every topic gets its own button under the panel, up to 25 (five per row), each in its own Button colour (Blurple, Grey, Green or Red) and with its emoji. The buttons keep working after a restart.
  • Per topic — a topic can also have its own First message in the ticket and its own Questions (up to 5). Left empty, the panel's first message and the panel's questions are used. A topic's own questions are always asked, even if the panel's form is off.
  • Ask questions before the ticket opens — up to 5 questions, each Short or Long, optionally Required. Members fill in the form first, and the answers appear in the ticket's first message.
  • Close inactive tickets after — a number of hours (up to 720). 0 keeps tickets open until someone closes them. CloudMod checks every 15 minutes.
  • Close requests — staff run /ticket closerequest to ask the opener to confirm. The opener gets a Confirm close button; if nobody confirms, the ticket closes on its own after 24 hours. If the opener writes anything in the ticket after the request, the request is cancelled and the ticket stays open.
  • Blocked from tickets — members and roles on this list can't open tickets. Manage it on the Tickets page or with /ticket blacklist.

Opening, claiming, closing

  • A member clicks the button (or picks a topic) → if you set up questions, the form opens first. Then the bot creates a private channel, pings the support roles if that's switched on, and posts the ticket's first message with a Status line and the Claim, Transfer and Close buttons.
  • Claim marks a staff member as the owner of the ticket. Only one person can claim it — if two click at the same moment, the second is told who was faster. A closed ticket can't be claimed.
  • Unclaim (shown once a ticket is claimed) releases the claim. Only the person who claimed it, or someone with Manage Server, can release it.
  • Transfer opens a member picker; the ticket is handed to the support team member you choose.
  • Close archives the ticket (see below) and then, depending on When a ticket is closed:
    • Lock it, then delete with a button — the channel is locked (the opener loses access) and staff get Transcript, Reopen and Delete buttons. Transcript sends the staff member who clicks it a private copy. Reopen gives the opener access back and sets the ticket to open again. The channel itself stays as the record until someone deletes it.
    • Delete the channel right away — the channel is deleted right away. Only what was archived beforehand survives. If a transcript channel is set but the transcript can't be saved in full, CloudMod keeps the channel instead and tells staff why.
  • If someone deletes a ticket channel by hand, CloudMod marks that ticket as closed — it no longer counts towards the opener's open tickets.

Commands

All of these run inside an open ticket. Support staff can use them; the opener can also use /ticket close.

CommandWhat it does
/ticket add target:@usergive a member or role access to the ticket
/ticket remove target:@usertake a member's or role's access away
/ticket rename name:billingrename the ticket channel
/ticket claimclaim the ticket
/ticket unclaimrelease your claim (server managers can release anyone's)
/ticket transfer staff:@modhand the ticket to another support member
/ticket reply snippet:Need more infopost one of the panel's reply snippets — start typing to pick one
/ticket closerequest reason:doneask the opener to confirm closing (reason optional)
/ticket close reason:solvedclose the ticket (reason optional)

Anyone can run this anywhere on the server:

CommandWhat it does
/ticket minelist your open tickets, with links (only you see the answer)

These need Manage Server and work anywhere on the server:

CommandWhat it does
/ticket blacklist add target:@user reason:spamblock a member or role from opening tickets (reason optional)
/ticket blacklist remove target:@userunblock them
/ticket blacklist listshow everyone who is blocked
/ticket diagnosecheck why tickets can't be opened on this server

Reply snippets

Answers your team gives again and again — "please send a screenshot", "we'll get back to you within 24 hours" — can be saved on the panel under Reply snippets: up to 25 per panel, each with a Name and a Text of up to 2,000 characters. Inside a ticket, support staff run /ticket reply and pick a snippet by name; CloudMod posts its text in the ticket. {user} in the text mentions the member who opened the ticket.

Ticket log

With a log channel set up on the Logging page, CloudMod posts an entry whenever a ticket is opened, claimed, unclaimed, transferred, closed or reopened — and when a ticket channel is deleted by hand. They go to the Tickets category (group Support), so you can route them to a channel of their own. The entries only say who did what to which ticket; message content never goes there.

Transcripts & privacy

A transcript is generated as an HTML file and posted to your transcript channel — and, if you turn on Send the member a copy, DM'd to the opener as well. Message content is never stored in CloudMod's database; the transcript only ever lives in the file posted to Discord. Transcripts cover the first 2,000 messages. If the file is still too large for Discord, CloudMod says so in the ticket instead of posting it.

Set a transcript channel before using "Delete the channel right away"

A transcript channel is optional and not set by default. Without one — and without the DM copy — nothing is archived anywhere.

With Lock it, then delete with a button that is survivable: the ticket channel stays, so the history is still there. With Delete the channel right away it is not: closing a ticket discards its history for good, with nothing to recover it from.

The panel editor warns you when you pick that combination. Run /ticket diagnose to check that CloudMod can actually post in the channel you picked — it needs View Channel, Send Messages, Embed Links and Attach Files there. Missing any one of them means the transcript never arrives.

Ratings

Turn on Ask for a rating in the panel editor and the opener gets a DM right after the ticket closes. They rate the support from 1 to 5 stars — once overall, or once per criterion if you set up to five — and can add a short comment. Results go to the Feedback channel (or the transcript channel if you don't set one) and feed the average rating on the Tickets page. The DM only arrives if the opener is still on the server and accepts DMs.

The rating is open for 48 hours after the ticket closes. After that the DM says the rating has closed, and nothing is saved. That keeps the average about the support people actually remember — not a rating given weeks later. Only the person who opened the ticket can rate it.

Reminders

Two optional reminders per panel, both off by default (0) and up to 168 hours:

  • Remind the team after — the member wrote last and nobody from the team has answered for that many hours. CloudMod posts one reminder in the ticket and pings whoever claimed it — or, if nobody did, the support roles of the ticket's topic (or of the panel). Only they are pinged.
  • Nudge the member after — the team answered and the member has been quiet for that many hours. CloudMod posts one friendly message in the ticket that mentions only the member. While a close request is open, there is no nudge — the request already asks.

Each reminder comes at most once per wait: it only comes again after the other side has written. Opening a ticket counts as the member's message, so a ticket nobody has answered gets its reminder even if the member never writes again. CloudMod checks every 15 minutes.

Statistics

The Tickets page shows open tickets, tickets closed in the last 30 days, the average first response (time from opening to the team's first message, tickets opened in the last 30 days), the average resolution time and the average rating.

Below it, the Team table lists everyone who worked on tickets in the last 30 days:

  • Claims — tickets opened in that time that they claimed (a transferred ticket counts for whoever has it now).
  • Closed — tickets they closed, and the average rating of those tickets.
  • First response — how fast they answered when they were the first one from the team to write, and how often.

A "first response" is the first message in the ticket from a support team member who isn't the person who opened it. CloudMod only stores when it happened and who wrote it — never what was written.

Requirements: Manage Channels, Manage Roles, Send Messages, Embed Links and Attach Files.