Docs / Core Services / Tickets
Built in Service id tickets 32 commands 6 settings

Tickets

Members open a ticket from a panel button or a right-click on a message, answer an intake form if you want one and land in a private channel with the right staff team already inside. Staff work it from Discord or from the Inbox on the dashboard. Every ticket ends with a transcript unless you set a panel to keep none.

Turn it onDashboard, Services, Tickets, switch to Enabled
First stepRun setup
PlanEvery feature included for every server: unlimited ticket panels, unlimited canned responses

Set it up

  1. Enable Tickets on the dashboard. Open the dashboard, choose the server and switch Tickets to Enabled on the Services page. Until it is on, every ticket command answers "❌ Tickets is not enabled for this server." and panel buttons answer "The Tickets service is not enabled." Tickets then has a menu of its own: Home and Inbox, the three steps of a ticket under "Set up" (1 Opening, 2 Answering and 3 Closing), the tools (Saved replies, Help articles and Automations), then History and Settings. "Find a setting", on top of that menu, searches every Tickets setting and takes you to it.

  2. Pick the fast path or the manual path. While the server has no panel, Home shows a "Run setup" button. It opens the Setup page, whose "Run setup" uses what the server already has and makes what is missing, in one go. Ticket categories: a category named Support Tickets, Tickets or Open Tickets for new tickets and one named Closed Tickets or Archived Tickets for closed ones, else it makes "Support Tickets" and "Closed Tickets", hidden from @everyone. A channel to open tickets from: a text channel named support or one with open-a-ticket or create-ticket in its name, else it makes #open-a-ticket; either way @everyone can read that channel but not type in it. A log channel: the one you already set, else a channel with ticket-log or support-log in its name, else a new #ticket-logs that is hidden from @everyone and only lets the bot in, so give your staff access to it in Discord. A team, when the server has none: "Support Staff", built from roles whose names contain mod, admin, staff, moderator, support or helper and that hold kick, ban, manage messages or manage server. A first panel, when the server has none: "General Support" (title "Need Help?", button "Open Ticket"). Setup then posts the panel in the channel to open tickets from. The bot needs the Manage Channels permission; without it setup stops before it changes anything. "Run setup again" keeps your panels and teams, makes a deleted category or channel again and posts your first panel (A to Z by name) again as a new message, so delete the older message in Discord. If you take this path, continue at step 7.

  3. Build a panel on 1 Opening ("New panel"). A panel is the message members click. Give it a "Name" and pick what to "Start from": "Blank", "Support" or "Applications". Its editor then opens, in these sections. "The message": the title, the text and the colour members see, plus an image, a thumbnail, a footer and an author if you want them. "Buttons": up to 25. Each has a label, an emoji and a colour. Each can send tickets to its own team, ask its own questions and open in its own place. "Members pick from" there turns the buttons into "A menu", one dropdown list on the panel message. "Dropdown menu": options members pick from after a click, up to 10 levels deep. "Where tickets open": each ticket opens as a "Private channel" in a category you pick, a "Private thread" under a channel you pick or an "Application", which opens no channel at all: staff accept or reject the answers in a review channel. The same section names each ticket (default "ticket-{number}") and titles it. Its "Closed tickets and pinning" part sets where closed tickets go, their name and "Pin the first message when a ticket opens". "Who answers by default": the team, the questions asked first and the response target. Under the editor come the panel's own rules: "Who can open tickets, and what they can do" (who may open tickets from the panel or from one button, what the member and staff may do in a ticket, whether the member can still read a closed ticket and the roles that can read every ticket), "When this panel takes tickets", "The first message in a new ticket" and "Help articles before the ticket opens". "Advanced" holds the review channel and replies for applications, the panel's limits, the default button, "Name, short name and note", "Copy this panel" and "Delete this panel". The rest of a panel's settings sit on the other pages: pick the panel under "Settings for" on 2 Answering ("Taking a ticket", "Staff thread" and, under Advanced, "Roles as a ticket moves" and "Passing a ticket on"), on 3 Closing ("Who can close", "Ask for a reason to close" and "Keep a copy of the conversation") and on Settings ("This panel's log channel").

  4. Create a team and pick it on the panel. On 2 Answering, the "Who answers" card lists your teams and its "New team" button opens the Teams page. Give the team a name and add people by user ID or pick a role. Pick a "Ping role" if the team should be pinged on new tickets. Then pick the team on the panel, under "Who answers by default" on 1 Opening. A button or a menu option can send its tickets to another team. Team members get access to every ticket channel opened for their team and count as staff for claim, close, note and the other staff commands. "How new tickets are handed out" stays "By hand" until you pick "In turn" or "Fewest first", which claim each new ticket for one member of the team. Without a team, a new ticket is opened to the roles with Manage Server, unless its button or menu option routes it to a role, so tickets are never invisible to staff.

  5. Put the panel in Discord. On 1 Opening, pick the panel. A bar on top of its editor says "Not in Discord yet": pick a channel and press "Post in Discord". The channel needs Send Messages and Embed Links for the bot. From then on the bar says whether members see your latest changes: button changes reach Discord by themselves, while text and look changes wait for "Update in Discord". You can do this from Discord too. /tickets panel opens a private builder: make a panel, change its text, its buttons, its team and where its tickets open, then press "Post in Discord" and pick a text or announcement channel. With a panel and a channel the command posts that panel straight away; the bot first checks that it has View Channel, Send Messages and Embed Links there. /tickets setup creates a "🎫 <panel name>" category and a "<panel slug>-tickets" channel where members can view but not type, then posts the panel there. /tickets setup needs Manage Server. /tickets panel needs Manage Server or the manager role on the dashboard's Access page.

    • Members can also reach your team without clicking a panel, by writing to the bot in a direct message. That is Tickets by DM, and it is off until you turn it on. In the "Every panel" view of 1 Opening, find the "Tickets by DM" card, switch on "Members can open a ticket by writing to the bot" and pick a panel under "A ticket by DM opens under". The panel has to be on and open a private channel or a private thread. A panel that opens tickets as threads also needs a channel for the threads, and a panel that takes applications cannot be picked. The panel does not have to be posted in Discord. A ticket by DM uses that panel's team, category, limits and hours. It skips the panel's questions and its dropdown menu. "What staff write in the ticket" decides how your team answers. "Goes to the member" (the default) sends every message your team types in the ticket to the member by DM. "Stays with staff" sends only replies made with /ticket respond or from the dashboard. Only managers can save the card. If that panel is turned off or deleted later, members can no longer open a ticket by DM. The dashboard and the /tickets panel builder tell you so right away, and the card says it until you turn the panel on again or pick another. On a server that runs its own bot, members write to that bot, not to the shared one.
    • The Modmail template does these steps for you. On Settings, under "Load a setup", find it under "Templates" and press "Use this template". It adds a panel called Modmail with a Contact mods button that opens a private channel, a Moderators team and one saved reply. It also turns Tickets by DM on under that panel, with "Goes to the member". The review screen says "Tickets by DM: on" before anything is saved, and "Load this setup" saves it. The panel is not posted and the team has no members yet. Add your moderators to the team: until you do, its tickets open to the roles with Manage Server. Post the panel when you want the button in a channel. On a server that already made its own choice on the card, the template adds the rest and leaves that choice alone: "Tickets by DM was not loaded: this server already has its own choice."
  6. Set the log channel on the Settings page. In the "Logs" card, "Post the log in" picks the channel: use a staff-only one. By default the bot posts there when a ticket closes: the transcript card, with the transcript as a web page file and a "View transcript" button, plus the files kept from the ticket. "What gets logged" in the same card switches 17 events on or off, in two groups. "Ticket changes": Ticket opened, Ticket claimed or assigned, Ticket unclaimed, Close requested, Ticket closed, Ticket reopened, Ticket renamed, Moved to another team, Ticket escalated, Member left the server, Ticket deleted and Transcript saved. "Team work and ratings": Priority changed, Someone added or removed, Staff note added, Rating received and Response target missed. Only Ticket closed and Transcript saved are on by default. Event posts never ping anyone. To give one panel a log channel of its own, pick it under "Settings for" on the same page ("This panel's log channel"). To send transcript cards and files to a channel of their own, use "Post transcripts in" under "Transcripts" on 3 Closing. Without any log channel, transcripts still reach History on the dashboard, but staff get no Discord post. The other everyday choices sit on the three steps. 1 Opening, "Rules for every panel": how many tickets each member can have open (1 unless you change it) and open in a day. 2 Answering, "Keep the member posted": DMs "When their ticket opens", "When staff claim it in Discord" and "When staff reply and the ticket waits on them", all off until you turn them on. A ticket by DM never sends the first and the third: the member already has the bot's receipt, and each answer reaches them by DM itself. 3 Closing: "Who can close a ticket" ("Staff and the member" unless you pick "Staff only"), "Staff must claim a ticket before closing it" and, under "After it closes", whether a closed ticket's channel is kept or deleted.

  7. Open a first ticket yourself. Click one of the panel's buttons or pick from its menu. Members can also run /ticket new in any channel. The bot first applies the rules under "Who can open tickets from this panel"; members with Manage Server always pass. Then it checks, in order, the blocked list, the opening hours, the panel's wait between tickets, the panel's limit of open tickets, the panel's own limit for each member, the daily limit and your open ticket limit. A block lasts until someone lifts it. One given a number of days under "For how long" ends by itself. Members with Manage Server and the "Roles that can open tickets at any time" skip the hours check, and the "Roles that skip these limits" skip the wait and the limits. Outside the hours, the choice under "Outside these hours" decides: no ticket opens and the member sees the closed message, or the ticket opens with a "🕒 Outside support hours" notice saying when the team is back. If the click leads to the panel's dropdown menu, a private picker asks "Select a category to open your ticket:". If the ticket has questions, they open in a Discord pop-up, 5 to a page; between pages a private message such as "✅ Page 1 of 2 done. Click Continue for the next questions." carries a Continue button. On a panel that opens private channels, the ticket's channel is then created, hidden from @everyone and visible to you, the bot, the team, a role the button or menu option adds and the roles under "Who else can read every ticket". The bot posts a message that mentions you, with the ticket card and its Claim, Close and Note buttons. Up to 3 matching help articles may follow, because "Suggest help articles when a ticket opens" on 1 Opening is on by default. When the panel has "Give each new ticket a private staff thread" on (2 Answering), the bot also opens a private staff thread inside the channel; the member who opened the ticket is never added to it. You get a private confirmation, "✅ Your ticket has been created! Head to #channel", which disappears after 5 seconds because "Remove them once the ticket opens" (1 Opening, Advanced, "Clean up the question messages") is on by default.

    • With Tickets by DM on, try that way in too: write to the bot in a direct message. Nothing is sent yet. The bot answers once, with a question and two buttons, Send and Cancel: "Send this to the <server> team? They will answer you here." When the panel has several buttons you may use, the menu "What is it about?" takes the place of Send. A pick from it sends. When you share several servers that take tickets by DM, the bot first asks "Which server is this for?". What you write while the question is open is kept, up to 10 messages for 30 minutes. It goes into the ticket in order when you send. Cancel throws it away. Send runs the same rules and checks as a click on the panel. A refusal shows above the question in the same words, and you can try again. The ticket then opens for your team only. You are not added to its channel or thread and no help articles are suggested there. The question turns into a receipt: "Sent to the <server> team (ticket #<number>). Write here to add more. Their answers arrive here." Each message that went in gets a ✅. While that is your only open ticket by DM, you are still in its server and no other server you share with the bot takes tickets by DM, everything you write to the bot goes straight into it until it closes. Otherwise the bot does not guess where a message belongs. It asks "Which conversation is this for?" and keeps what you write until you answer, as it does for the first question. Its menu lists your open tickets first, each as "<server>, ticket #<number>", then every other server that takes your DMs as "<server>: a new ticket". Pick a ticket and what you wrote goes into it. Pick a new ticket and the same message becomes that server's question, as for a first message. Your open ticket is not touched. The bot remembers your answer for 15 minutes after your last message that went into that ticket. While you have two conversations open, an answer from the other team makes it ask again before your next message goes anywhere. If you use Discord's Reply on one of the team's answers, your message goes into that answer's ticket without a question. A ticket on a server you have left takes no more of your messages and does not stand in the way of a new one.
    • If the bot does not answer your first message at all, no server you share with it takes tickets by DM. Check that the card is on, that its panel is on and that you wrote to the bot that runs this server. The bot keeps quiet there on purpose. Only someone who had a ticket by DM before is told, at most once a day: "I can't pass this on: no server we share takes tickets by DM. Open a ticket in the server instead."
  8. Work the ticket as staff. Claim it with the Claim button or /ticket claim, reply in the channel, add private notes with /ticket note and close it with the Close button or /ticket close. On the dashboard, the Inbox lists every ticket under "Needs a reply", "Mine", "All open" and "Closed". A ticket's own page shows the conversation, and managers can reply there, pick one of the "Saved replies", "Send as the team", add a "Staff note", claim the ticket, set its priority, hand it to a team, rename it, move it to another panel and close it. The close form takes an optional reason; the reason is required when the ticket's panel has "Ask for a reason to close" on. When "Staff must claim a ticket before closing it" is on, staff need the ticket claimed first; the member who opened it never does. /ticket add brings in another member or a role, /ticket transfer hands the ticket to another team and /ticket escalate moves it to another panel.

    • A ticket by DM is worked the same way, with one difference: the member is not in its channel or thread. Its first post is a card for your team. It starts "📨 Opened by DM by <member>." and says when the account was created, when the member joined the server and how many tickets they opened here before. The member's messages follow as posts by the bot. Each message starts with the member's name in bold. One that is too long for a single post goes on in more posts, which do not repeat the name. Their files come with the message, on its last post.
    • With "Goes to the member", every message a person types in the ticket is sent to the member by DM. Its first line names who wrote it and the server. While "Start replies as the team" is on it names the team instead of the writer. Files are attached again. A file over 8 MB goes as a link. A ✅ on your message means it arrived. A ⚠️ means it did not, and the bot's reply under the first message that failed says why, for example "Not delivered: <member> does not accept DMs from this server. They can still read this ticket and its answers on their My tickets page: <link>". The marks are reactions, so the bot needs the Add Reactions permission. A panel that opens private channels needs it for the whole server. A panel that opens threads needs it and Read Message History in the channel its threads open in. Without it the answers still arrive. The bot says once in the ticket that it cannot add the marks, and from then on it says there every time a message does not arrive. The Setup Check on the dashboard's Bot page lists the permission while Tickets by DM is on.
    • With either choice the member also gets by DM every reply made with /ticket respond or from the dashboard. What an automation posts for them goes by DM too: "Post a message" and "Post a canned response" of a rule that runs on "No staff reply after the member writes or the ticket opens", "No reply from the member after staff write" or "Time after the ticket opens". Such a post goes out under the team's name, or the server's when the ticket has no team. It gets the same ✅ or ⚠️. With "Stays with staff" these are the only answers that reach the member. What a person types stays in the ticket, and the bot says so under the first message typed in each ticket. Never sent: notes made with /ticket note, the staff thread, what "Ping the ticket's team" posts, what a rule posts when "The member who opened it leaves the server" and anything else a bot posts in the ticket. Editing a message changes the member's copy when it went out as one DM and the new text still fits in one. Otherwise the copy stays as it was and the bot says so under the message. Deleting a message removes its copy. Messages deleted several at a time, as a clean-up bot does, are not followed. Reactions and typing are not carried. Neither are the member's own edits and deletes. On the dashboard such a ticket has a "By DM" chip in the Inbox and on its page. Its reply box says "Goes to <member> by DM".
  9. Find the results. Every saved transcript is on the History page, newest first and 50 a page, each with "Preview", "Open" and downloads as HTML or text. History's "Insights" tab has the volumes, the reply times, the ratings and the comments members left. The closed ticket's first message shows a Reopen button, plus 🗑️ Delete and 📜 Transcript buttons for staff. Every close posts the same transcript card to the log channel when one is set, whether it came from Discord, the dashboard, a close request or an automation. The member receives a DM asking for a rating from 1 to 5 stars, unless "Ask members to rate their support" under "Rating" on 3 Closing is off or the member ran /ticket dms off. Members find their own tickets with /ticket mine and on the "My tickets" page of the website (/my/tickets), where a closed ticket shows the conversation as they saw it. When the server deletes closed ticket channels, the channel goes once the ticket has a saved transcript. Open tickets are worked from the Inbox.

    • The member of a ticket by DM cannot see its channel, so every close sends them one close message by DM: the rating request when one goes out, otherwise a short close notice, whatever "Send a close notice while ratings are off" and /ticket dms off say. A ticket that closes because someone deleted its channel by hand sends a shorter one: it says the ticket was closed and asks for no rating. While the server still takes tickets by DM and the member is still in it, the message ends with "Write here again to open a new ticket." A ticket thread that someone deletes by hand is not noticed: its ticket stays open until someone closes it, or until the member writes again and is told it is gone. On "My tickets" a ticket by DM shows the conversation while it is still open too, so a member whose DMs are closed can read the answers there. It shows the conversation only: their own messages and the replies sent to them, never notes, the card for your team or what staff wrote among themselves. Insights also says how many tickets came in by DM. They are not clicks on a button, so the table of buttons leaves them out.
1 optional features with their own switch
  • Log channel: ticket log

How it works

  1. Run setup. The wizard creates the channels, builds a Support Staff team from your moderator roles and posts a panel.
  2. A member opens a ticket. They click a panel button or right-click a message. A category picker and an intake form can come first. With Tickets by DM on, they can write to the bot in a direct message instead.
  3. Staff work it. In the private channel or on the dashboard: claim, reply, note, set priority, transfer or escalate. The status follows the conversation on its own.
  4. It closes with a record. Close with a reason, or let inactivity or an automation rule do it. A transcript is saved and the member can rate the help. The channel stays until you delete it, or goes right away, a set time after closing or after the number of days you set.

Permissions the bot needs

Generated

The invite link grants these. If one is missing the service page in the dashboard shows a re-grant banner, and the affected commands say what they cannot do instead of failing silently. The Setup Check on the Bot page, or /yourbot check in Discord, lists everything the bot is missing across your services.

Manage ChannelsView ChannelSend MessagesEmbed LinksRead Message HistoryManage RolesManage ThreadsCreate Private ThreadsSend Messages in Threads

What is included

GeneratedSee pricing

Every Tickets feature is included for every server, on the shared bot and on custom bots. A subscription adds a custom bot identity and marketplace access, not features here.

FeatureIncluded
OverviewYes
Ticket QueueYes
Ticket DetailYes
Panel BuilderYes
Staff TeamsYes
Intake FormsYes
TranscriptsYes
Ticket AnalyticsYes
Canned ResponsesYes
Settings & SLAYes
Limits
Ticket PanelsUnlimited
Canned ResponsesUnlimited

Commands

GeneratedEvery command in detail
CommandWhat it doesWho by default
/kb
/kb searchSearch this server's help articlesEveryone
/kb browseBrowse this server's help articles by categoryEveryone
/ticket
/ticket claimClaim the current ticketModerator roles
/ticket closeClose the current ticketModerator roles
/ticket reopenReopen the current ticketModerator roles
/ticket noteAdd an internal staff noteModerator roles
/ticket dmsChoose whether this server's ticket updates reach you by DMEveryone
/ticket mineList your own tickets on this serverEveryone
/ticket respondPost one of your server's canned responses in this ticketModerator roles
/ticket prioritySet ticket priorityModerator roles
/ticket assignAssign ticket to a staff memberModerator roles
/ticket statusShow this ticket's current statusEveryone
/ticket renameRename this ticketModerator roles
/ticket addAdd a member or a role to a ticketModerator roles
/ticket removeRemove a member or a role from a ticketModerator roles
/ticket transferTransfer this ticket to another teamModerator roles
/ticket closerequestRequest ticket close with a countdownModerator roles
/ticket transcriptGenerate a transcript for this ticketModerator roles
/ticket surveyRate your support experienceEveryone
/ticket deleteDelete this ticket's channel (an open ticket is closed first)Moderator roles
/ticket openOpen a ticket for a memberModerator roles
/ticket escalateEscalate this ticket to another panelModerator roles
/ticket newOpen a ticketEveryone
/tickets
/tickets panelCreate, edit and post ticket panelsServer managers
/tickets blacklist addBlock a member or a role from opening ticketsServer managers
/tickets blacklist removeLet a blocked member or role open tickets againServer managers
/tickets blacklist listShow who is blocked from opening ticketsServer managers
/tickets searchSearch tickets by keyword or numberModerator roles
/tickets setupAuto-create Discord channels for a ticket panelServer managers
/tickets statsYour team's ticket numbers for the last 7, 30 or 90 daysModerator roles
/tickets leaderboardStaff ranked by the tickets they closedModerator roles
Start ticket
Start ticketRight-click a message and pick Apps, then Start ticket.Moderator roles

Everything it does

Panels and entry points

A panel is the message with the buttons. You can run several, each with its own rules.

Three layouts per panel. A private channel, a private thread, or a form that goes to a review queue with no channel at all.
Up to 25 buttons on a panel. Each button has its own label, emoji and style and its own rules for who may press it. It can also override the form, team, role, category and channel name.
Nested categories. A dropdown menu up to 10 levels deep, and any level can override the routing and the form.
Channel names from a template. Use {number}, {panel}, {username}, {button} and {category}. {panel_number} counts each panel's tickets on its own, and {number:4} pads a number to four digits, like 0142. Ticket titles can also use {subcategory}.
Start a ticket from a message. Right-click any message, choose Apps, then Start ticket. The message is quoted, and you decide whether everyone, staff or only Manage Server can use it. When staff use it, the ticket can belong to the message's author.
Tickets by DM. Members open a ticket by writing to the bot in a direct message. Nothing is sent until the member confirms your server. The ticket opens in a channel or thread only your team sees, staff answer in it and the bot carries each answer back by DM, with a check mark when it arrived. It is off until you turn it on.
Staff open tickets for members. /ticket open lets managers and the panel's team open a ticket for a member, with an optional reason. It skips the blocklist, support hours, cooldown, limits and form.
Who may press each button. Let only chosen roles in, keep chosen roles out or keep a button for staff, on a whole panel or on one button. A block beats an allow, and the check runs before any form.
Applications with a review queue. A panel set to Application posts the answers to a staff channel with Accept and Reject buttons, an optional role on accept and a DM for each outcome.
Limits per panel and per member. Cap open tickets per panel, add a cooldown between a member's tickets, and set a per-member cap and a daily cap for the whole server, with roles that bypass the counting.

Intake forms

Ask the questions up front so the first staff reply is useful.

Eleven field types. Typed answers (short text, paragraph, number, date), choices (dropdown, multi-select, yes or no), a member, role or channel picked from the server and section headers.
Native Discord pop-ups. Every question opens in a Discord pop-up, five to a page and up to 25 per form. Members click Continue between pages.
Conditional fields. Show a field only when another answer equals, contains or has a value.
Prefilled from Discord. Username, display name, join date, roles, booster status and more, shown for the member to change or filled in without being shown.

Working a ticket

Most of the bookkeeping happens without anyone touching a status.

Six statuses that track themselves. Open, claimed, awaiting user, awaiting staff, close requested and closed. A member's message flips it to awaiting staff, a reply flips it back, and the first reply time is recorded for the SLA.
Claim, priority, notes. Claim or unclaim with a button or a command, set low, normal, high or urgent, and leave internal notes members never see.
Claiming your way. Per panel, a claim can rename the ticket, move it to a claimed category, make it read-only or hidden for other staff, keep actions to the claimer and show who holds it. You can also allow take-overs, and a server rule can make staff claim a ticket before they close it.
Close request with a countdown. Ask to close with a countdown, 24 hours by default. The request comes with Close now and Keep it open buttons, and a reply from the member cancels it.
Move and reshape. Add or remove a member or a role, rename the channel or transfer the ticket to another team, which re-permissions the channel and pings that team.
Escalate to another panel. /ticket escalate or the ticket page moves a ticket to another panel. Each panel can list up to 25 panels to escalate to. It can move and rename the channel, hand it to that panel's team and release the claim, and SLA targets not met yet restart under that panel's policy.
An Awaiting Reply category. Tickets waiting on the member can move to their own category and come back when they answer.
Tidy channels. The category picker and confirmation messages clear themselves after a delay you set, up to 30 seconds, so the panel stays at the top.
A private staff thread. Turn on a private thread inside each ticket channel for staff talk the member never sees. It stays out of the transcript and locks when the ticket closes.
Roles that follow the ticket. Give the member roles or take them away when their ticket opens, is claimed, is unclaimed or closes.
A new name on close. A closed ticket can take a name of its own, like closed-0142, and gets its open name back if it reopens.

Teams, hours and access

Who answers, when, and who is not allowed to ask.

Staff teams. Each team has a ping role, members added by user or role and a way to hand out new tickets: by hand, in turn or fewest first. The number of tickets each member has claimed shows next to their name.
Support hours. Up to 6 windows a day for each weekday, closed dates and a schedule per panel, with roles that bypass it. Out of hours a ticket is refused or opens with a note saying when staff are back. The hours follow the server timezone set on the Bot page unless you give them a zone of their own.
A blocklist. Block a member or role from opening tickets, with a reason only staff see.
Member DMs, opt-in. Three notifications, opened, claimed and staff replied, each a switch. Members can turn all of them off with /ticket dms off. A ticket by DM skips the opened and the staff replied notice: the bot's receipt and the answers themselves arrive by DM.
Observers and closed access. Give roles read-only access to a panel's tickets, and choose whether the member keeps read-only access to a closed ticket or loses it.

Knowledge base and canned responses

Answer the common questions before a ticket is even needed.

Staff-written articles. Title, body up to 4,000 characters, keywords and categories, with drafts and view counts.
Search from Discord. /kb search returns the top five matches and /kb browse lists a category. Open to everyone.
Suggested on open. When a ticket opens, up to three matching articles are posted right after the welcome message. A ticket by DM gets none, because its member is not in the channel.
Canned responses. Reusable replies grouped by category and editable any time, with placeholders, a use counter and one-click copy on the dashboard. /ticket respond posts one as the bot, and a reply can be set to go to the member by DM instead.

Messages and look

Make the bot sound and look like your server.

Messages you write. Rewrite the claimed, unclaimed, closed, reopened, close request and auto-close messages and the DMs members get. Each has a reset, and a blank box keeps the translated default.
Placeholders. Use {member}, {claimer}, {ticket.number}, {reason}, an intake answer with {form:field_key} and a fallback like {claimer|nobody yet}. A message never pings @everyone or @here.
Panel and welcome embeds. Set the colour, title, description, image, thumbnail and footer of each panel's message and its welcome message, and ping up to 10 roles when a ticket opens.
Pin the welcome. Pin the welcome message when a ticket opens, so its details are always in the channel's pins.

Transcripts, ratings and the web chat

The record of each ticket, and the ways staff can work it without opening Discord.

A transcript for every ticket. An HTML transcript styled like Discord, with display names, avatars, replies, embeds, reactions, stickers, date dividers, links and attachment chips, kept in an archive you can view or download as HTML or plain text.
Attachments kept. Up to 10 files and 8 MB per ticket travel with the transcript, and can be DMed to the member on close.
Star ratings. A 1 to 5 star survey by DM when a ticket closes, with an optional written comment. Members can also rate with /ticket survey, and one switch turns the survey off.
Reply from the web. The ticket page mirrors the Discord channel. Staff send, edit and delete their own messages there and attach files up to 8 MB. In a ticket by DM a reply also goes to the member by DM, and the page shows whether it was delivered.
Buttons on a closed ticket. Staff get Reopen, Transcript and Delete on a closed ticket, and Delete asks before the channel goes.
A log that posts what you pick. Choose which of 17 events reach the log channel, from opened and claimed to escalated, deleted and transcript saved, and give a panel its own log channel.

Backup and reuse

Build the setup once and carry it to the next server.

Share codes. Snapshot panels, buttons, categories, forms, teams, SLA policies, canned responses and the knowledge base into a code like TKT-XXXXX-XXXXX, or start from one of the platform's ready-made templates.
JSON export and import. Up to 2 MB, as an alternative to codes, and it carries your automation rules too.
Imports add to what you have. Panels, teams, forms, SLA policies, canned responses and automation rules come in as new ones next to yours, and nothing is deleted. Only a help article or an article category that matches one of yours is replaced, and server settings load only when the server has none saved. You map the source server's channels, roles and users to yours first, and imported panels stay unpublished until you post them.
No IDs leak. Exports strip channel, role and user IDs, so a code is safe to hand to another server.
Duplicate a panel. Copy a panel with every setting, button, category and look, ready to change before you post it.

In the dashboard

Home Whether members can open tickets right now and what needs you: the tickets waiting on your team with the longest wait first, the three steps of a ticket in a few sentences, the last 30 days in four numbers, a preview of your panel and the command reference.
Inbox Every ticket under four tabs: Needs a reply, Mine, All open and Closed. Search by title or number and filter by panel, team, status, priority, claimer, category and opened date. Managers can claim or close several tickets at once. A ticket that came in by DM carries a By DM chip.
Ticket One ticket's page: the member's answers, the conversation mirrored from Discord, a reply box with your saved replies and Send as the team, staff notes and the activity log. A manager can claim the ticket, set its priority, hand it to a team, move it to another panel, rename it, close it with a reason, reopen it or delete its channel. On a ticket by DM the reply box says that the reply goes to the member by DM, and each reply shows whether it was delivered.
Opening Step 1, how members open a ticket. Each panel has an editor for its message, up to 25 buttons or one menu, the dropdown menu, the three layouts, name templates, extra categories for when one is full, the default team and questions, who can open tickets, its hours, the first message of a ticket and help articles shown before a ticket opens. You post or update a panel in Discord from here. For every panel it holds Tickets by DM, the limits for each member, the opening hours, the blocked list, tickets started from a message and the clean-up of the question messages.
Questions The sets of questions a panel, a button or a menu option asks before a ticket opens. Each question has a type, required or not, a hint, help text, number ranges, answer lengths, choices, how many members, roles or channels to pick, an answer filled in from Discord and a rule for when to ask it. Each set shows the pop-up page by page. A set can also give the ticket's first message its own colour, image and footer and change the reply the member gets.
Answering Step 2, who answers and how fast. Your teams, the response targets for a first reply and for solving a ticket, the three DMs that keep the member posted, replies sent as the team and the messages the bot posts while a ticket is answered. For each panel it holds what a claim changes, a private staff thread, roles given or taken as a ticket moves and the panels a ticket can be passed on to.
Teams Create teams with a ping role and members by user or role, choose how new tickets are handed out (by hand, in turn or fewest first) and see how many tickets each member has claimed.
Closing Step 3, how tickets end. Who can close a ticket, claim before close, closing when the member leaves, the close request for quiet tickets, what happens to a closed channel, transcripts and where they post, the rating request, the close notice and the messages the bot posts when a ticket closes. For each panel it holds who can close, a required reason and whether a transcript is kept.
Saved replies The canned responses your team sends with /ticket respond or from a ticket's reply box, grouped by category, with placeholders, a use count, a copy button and the choice to send one by DM.
Help articles The knowledge base behind /kb search and /kb browse: articles with keywords, categories and drafts. Trigger words let an article answer matching messages in the channels you pick.
Automations Up to 10 rules, each for every panel or only the ones you pick, ready-made ideas to start from and what the rules did in the last 30 days.
History Every saved transcript, newest first and 50 to a page, with a preview, the whole transcript in a new tab and downloads as HTML or plain text.
Insights A tab of History, over the last 7, 30, 90 or 365 days and for one panel or all of them: average first reply, time to close and rating, tickets opened per day, open tickets at the end of each day, the busiest weekdays and hours, top close reasons, your team's numbers, a row of numbers for each button, how many tickets came in by DM, every rating with its comment and a CSV or JSON download.
Settings The log channel, the ticket events that post in it and a log channel for one panel. Share codes, backup files and templates, with a step that matches a loaded setup's channels and roles to your server before anything is saved. Deleting old tickets, after you see the count and tick a confirmation.
Setup The one-click setup and the state of your setup, with a way to run it again. It reuses the categories, channels and team you have and makes what is missing. If the bot can no longer see an existing Support Tickets or Closed Tickets category, it says so and creates new ones instead of failing.
My tickets The member's own page on the website, outside the dashboard. It lists every ticket they opened on any server. A closed ticket shows the conversation as they saw it, without staff notes. A ticket opened by DM shows the conversation while it is still open too.

Settings

GeneratedAll 6 settings
Log channel The staff channel the bot posts about tickets in, picked in the sentence "Post the log in" on the Settings page. While one is set, every close posts the same card there, however the ticket closed: creator, status, priority, close reason, who closed it, when it opened, the first response, staff notes and answers to the questions, with a View transcript button that opens the transcript on the dashboard, plus the files kept from the ticket. In a channel @everyone cannot see, the card also carries the transcript as a web page file. "What gets logged", in the same card, switches each of the 17 ticket events on or off; only Ticket closed and Transcript saved start on. A panel can post to a log channel of its own: pick the panel under "Settings for" on the same page. "Post transcripts in" on 3 Closing sends the transcript cards and files to another channel. A transcript is saved to History on the dashboard whether or not a log channel is set, unless the ticket's panel keeps no copy. No default.
How many tickets one member can have open at once How many tickets one member can have open at the same time across all panels. On the page it is the first number in "Each member can have ... tickets open and open ... a day." Closed tickets, tickets waiting to close and applications do not count. The field on the dashboard takes 1 to 20. Default 1. Members with one of the "Roles that skip these limits" are not held to it. A panel can add a limit of its own for each member.
Close it when the member leaves the server Closes every ticket a member opened when they leave the server, with the reason "Creator left the server". While it is on, automations for a member who left never act, because the ticket is already closed. While it is off, a ticket by DM whose member left stays open, and the bot says in the ticket that messages can no longer be delivered. Off by default.
Who can close a ticket "Staff and the member" (on, the default) lets the member who opened a ticket close it, with the Close button or /ticket close. With "Staff only" (off) the Close button is still shown, but the member's close is refused with "You don't have permission to close this ticket." and they cannot ask to close it either: /ticket closerequest is for staff. Staff closing someone else's ticket also have to claim it first while "Staff must claim a ticket before closing it" is on. A panel can make its own choice: pick it under "Settings for" on 3 Closing and use "Who can close a ticket from this panel". The member of a ticket by DM is not in its channel: they close it with the "Close ticket" button under the bot's receipt in their DMs, which is only there when they may close.
Remove them once the ticket opens After a ticket opens, removes the private messages the member got while opening it: the menu picker and the "ticket created" reply. Only that member ever saw them, and the panel message itself is never touched. The box sits under "Advanced" in the "Every panel" view of 1 Opening. On by default.
Seconds the "ticket created" reply stays Seconds the "ticket created" reply stays visible before it is removed. The field on the dashboard takes 0 (at once) to 30, and the bot never waits longer than 30 seconds whatever is stored. Default 5. It only applies while "Remove them once the ticket opens" is on.

Runs on its own

SLA watch every 5 minutes. Staff get one warning 30 minutes before a breach, and the policy's breach role is pinged when it happens.
Inactivity to close. A ticket idle past your limit gets a close request with a countdown of 1 to 168 hours. Any member reply cancels it.
Auto-close every 2 minutes. Due close requests are carried out, an auto-closed notice is posted and a transcript archived.
Channel retention. About once an hour, channels of tickets closed longer than the number of days you set are deleted, after a kept transcript is saved. At 0, where a new server starts, they are kept.
Delete after close. Delete a closed channel right away or a set time after closing, up to 7 days, instead of waiting for the retention period. The transcript is saved first, and reopening the ticket cancels the delete.
Automation rules. Up to 10 rules react when staff or the member stop replying, when the member leaves or at a set time after a ticket opens. After a wait of 5 minutes to 30 days they ping the team, post a message or a canned response, start the close countdown, close the ticket or delete it. Applications are never touched.
Orphan repair. A ticket channel deleted by hand closes its ticket, so the member's open-ticket count is freed.
Close on leave. Optionally close a member's open tickets when they leave the server.

Limits

WhatValueNotes
Buttons per panel25Discord's limit for one message.
Category menu depth10 levels
Questions per form25Five to a page of the Discord pop-up. Questions filled in for the member do not count.
Open tickets per member1 to 20Default 1. Bypass roles skip the count.
Tickets per member per day0 to 1000 turns the daily cap off.
Open tickets per panel0 to 5000 means unlimited.
Cooldown between a member's ticketsup to 7 daysPer panel.
Attachments per ticket10 files, 8 MBKept with the transcript.
Messages held for a ticket by DM10For up to 30 minutes, until the member answers the bot's question or cancels.
Files in a ticket by DM8 MB eachUp to 10 files and 24 MB on one message. Anything over goes as a link.
Inactivity before a close request0 to 720 hours0 turns it off.
Close countdown1 to 168 hoursDefault 24.
Closed channel retention0 to 365 daysA new server starts at 0, which keeps channels until someone deletes them.
Intake cleanup delay0 to 30 sDefault 5.
SLA warning30 minutes before breach
Support hours windows6 a dayPer weekday, plus up to 100 closed dates.
Automation rules10Per server, each waiting 5 minutes to 30 days.
Escalation targets25Panels one panel can escalate to.
Delete after closeup to 7 daysOr right away. The transcript is saved first.
Roles per list25Access rules, observer roles and the roles given or taken on a ticket. The welcome message can ping up to 10 roles.
Channel renames2 per 10 minutesDiscord's limit. A rename past it is skipped with a note in the ticket.
Config export2 MB JSONUp to 20 panels, 20 forms, 25 teams, 10 SLA policies, 200 canned responses, 500 articles and 10 automation rules.

What it watches

Generated

The Discord events Tickets reacts to while it is enabled. It does not read history from before it was turned on.

Direct messages to the bot (Tickets by DM)Channel deletionsMembers leavingNew messagesMessage deletionsMessage edits

Safety

Fails closed. If the bot cannot hide a new ticket channel from everyone, it refuses to create the channel rather than open a public one.
Who counts as staff. Manage Server, membership of the ticket's team, or a route role granted when the ticket opened.
Least privilege. Channel permissions the bot writes are trimmed to what it holds, so a bot with fewer permissions still creates the channel.
Purge is deliberate. Deleting old tickets removes records, transcripts, notes and ratings but never panels, teams, forms, responses or SLA policies. You see how many tickets it deletes and tick a confirmation first.
A DM opt-out for every notification. /ticket dms off stops the opened, claimed and replied DMs and the rating survey for that member. The conversation of a ticket by DM is not a notification: its answers and one close message still arrive.
A direct message goes nowhere unasked. With Tickets by DM, what a member writes to the bot is sent to no server until they confirm which one. With a ticket open, a message goes straight into it only while no other ticket of theirs and no other server could be meant. Otherwise the bot asks which conversation it is for and remembers the answer for 15 minutes after their last message that went into that ticket. The bot keeps quiet when someone who shares no server that takes tickets by DM writes to it. Only someone who had a ticket by DM before is told so, at most once a day. The member's My tickets page and the transcript sent to them hold only that conversation, never staff notes or what staff wrote among themselves.
A transcript before a channel is deleted. Retention cleanup, delete after close, /ticket delete and automation rules all save a transcript before a channel goes. The one exception is a panel you set to keep no transcript.
Every action is logged. Opened, claimed, closed, reopened, priority, assignment, renames, participants, transfers, escalations, deletes, form decisions, blocklist changes, SLA events, automation runs and auto-closes all write to the audit log.

What it does not do

  • The web chat mirror refreshes by polling, not a live socket.
  • One breach ping per SLA policy. Escalating to another panel is a staff action, never automatic.
  • Text channels and threads only. No voice or video tickets.
  • The knowledge base is searched from Discord. There is no public web help centre.
  • Automation rules react to replies, time and members leaving, not to what a message says.
  • No email or SMS channel.
  • One claimer per ticket. Adding a member grants access but is not a claim.
  • Staff cannot start a ticket by DM. The member writes to the bot first.
  • A member cannot start a second ticket by DM with your server while their first is open.
  • In a ticket by DM, reactions, typing and the member's own edits and deletes are not carried across.

Questions

Do tickets use channels or threads?

Your choice per panel: a private channel, which is the default, a private thread, or no channel at all for application-style forms that go to a review queue.

Can members open a ticket from a message?

Yes. Right-click any message, choose Apps, then Start ticket. The message is quoted in the new ticket, and you choose who may use it.

Can members open a ticket by writing to the bot?

Yes, once you turn on Tickets by DM on the Opening page and pick the panel those tickets open under. The Modmail template on the Settings page adds a panel with a Contact mods button and turns Tickets by DM on under it, unless your server already made its own choice. The member writes to the bot in a direct message, the bot asks them to confirm your server and a ticket opens that only your team sees. The bot carries your team's answers back by DM: every message they type in the ticket, or only replies sent with /ticket respond and from the dashboard, as you choose. A member who blocks DMs from your server can still read the answers on their My tickets page.

What happens to closed tickets?

Each one gets an HTML transcript, unless you set its panel to keep none. The channel stays until you delete it. You can also have closed channels deleted right away, a set time after closing or after a number of days, and a kept transcript is saved first.

Can staff reply without opening Discord?

Yes. The ticket page on the dashboard mirrors the channel. Staff can send, edit and delete their messages there and attach files up to 8 MB.

Which timezone do support hours use?

The server timezone from the Bot settings page, which the other services follow too. Give the hours a zone of their own only if your support team keeps different hours from the server.

How do I move my setup to another server?

On the Settings page, make a share code or download a backup file. On the other server, load it from the same page and match its channels and roles to that server before anything is saved. Loading adds to what the server has. Only a help article or an article category that matches one of yours is replaced.

Will members get too many DMs?

Three DMs exist, opened, claimed and staff replied, and each is a server-side switch. Any member can run /ticket dms off to stop all of them, including the rating survey. A ticket the member opened by DM is the exception: its answers and one close message still arrive, because the DM is where that conversation is.

Can closed tickets delete themselves?

Yes, once you turn it on. A closed channel can go right away or a set time after closing, up to 7 days, and a kept channel can go after a number of days you set, up to 365. Until you choose one of them, closed channels stay. Automation rules can also close or delete a ticket when the member goes quiet or leaves. A kept transcript is saved first every time.

Can staff escalate a ticket?

Yes. /ticket escalate or the ticket page moves it to another panel you allow, with a reason. It can move to that panel's category, be renamed with that panel's name template and go to its team, and SLA targets not met yet restart.

Can I change what the bot says?

Yes. The bot's ticket messages and DMs are edited on the Answering and Closing pages, each with a live preview, and every panel sets its own panel message and the first message of its tickets on the Opening page. Placeholders fill in the member, the claimer, the ticket number, form answers and more.

YourBot docs Reference tables are generated from the code that is running. Ask in Discord Suggest a correction