Bot type
Discord ticket bot maker
A support ticket system with a button panel, private channels and a close button, written to your rules.
A ticket system gives members a private place to talk to your staff. The usual design is one panel message with a button, one private channel per ticket, and a close button. The details are what differ between servers: which role sees tickets, how channels are named, how many tickets a member may have and where transcripts go.
With BotsMaker you describe those details once. The bot is generated with buttons, permission overwrites and a record of open tickets so that a restart does not lose track of them.
Example description
A ticket bot: /ticketpanel posts a message with an Open ticket button. Clicking it creates a private channel named ticket-username visible only to the user and the Support role, with a Close button that deletes the channel after 5 seconds. Limit one open ticket per user.
Commands and parts
/ticketpanelposts the panel with the Open ticket buttonOpen ticket (button)creates a private channel for the member and the staff roleClose (button)closes the ticket after a short delay/ticketadd @memberadds someone to the current ticket
Buttons and permission overwrites
The private channel works through permission overwrites: everyone is denied View Channel, and the ticket owner and the staff role are allowed. The bot needs Manage Channels to create it. The Open ticket button is a component, so it works on slash-command-only bots and does not need the Message Content intent.
Limits that avoid spam
Ask for one open ticket per member and a cooldown. The bot stores which member has which ticket in a JSON file, so after a restart it knows what is still open.
Transcripts and closing
A simple close deletes the channel. If you want a record, ask for a transcript: the bot collects the messages, writes a text file and posts it in a staff log channel before deleting the channel. For large tickets, the collection is limited to the last messages to stay within Discord rate limits.
Naming and categories
Say in the description where the channels should be created, for example under a category named Tickets, and how to name them. Using the member name or an incrementing number both work.
Questions
Does a ticket bot need privileged intents?⌄
Not for the button flow. Transcripts that read message content need the Message Content intent, which you switch on in the Developer Portal.
Can members have more than one ticket?⌄
You decide. Say "one open ticket per member" or "up to three" in the description.
Will the panel survive a restart?⌄
Yes. The panel is a normal message with a button, and the bot handles the button by its custom id after every start.
Related guides
- How to make a Discord bot with AI, without coding7 min read
- Create a Discord bot token and invite link, step by step6 min read
- Discord slash commands explained: how bots receive them7 min read