How to set up a Discord ticket bot
Set up TicketCord on a Discord application you own: create the bot, connect it, choose staff roles, post a ticket panel, then open, claim, and close a test ticket.
This guide takes you from an empty Discord Developer Portal to a closed test ticket with a transcript. It uses the same steps as the setup assistant you see after signing in to TicketCord, and it needs no code or server of your own.
Your own bot, not a shared one
Many Discord ticket bots are one shared bot: you add it with the vendor's invite link, and it shows the vendor's name and avatar in every server that uses it. TicketCord works differently. You create a Discord application in your own Developer Portal account, connect its token, and TicketCord runs the bot for you. Members see your bot's name and avatar, and the application stays in your Discord account.
That is why TicketCord has no public invite link and why this guide starts in the Developer Portal. It adds a few minutes to setup. On the Free plan, bot messages also carry a Powered by TicketCord.com footer; paid plans remove it.
What you need
- A Discord account with Administrator, or ownership, on the target server (Discord itself also requires Manage Server to add any bot)
- A TicketCord account. New accounts start with a 14-day Enterprise trial, and no card is required.
- A web browser signed in to Discord
Watch the walkthrough
The same setup on video, from the Developer Portal to a closed test ticket and its transcript.
Recorded June 7, 2026 · 9:24 · Watch on YouTube
The player loads from YouTube only after you press play.
What changed since the recording
- Connecting the bot now needs only its token. The client secret pasted in the video is no longer asked for.
- The last setup screen can now post the ticket panel for you. The /embed command shown in the video still works.
- Server settings are grouped differently. Auto-close, closing, and claiming settings are under Ticket Lifecycle instead of Automation.
- New accounts now start with a 14-day Enterprise trial with no card required, instead of the trial and discount code mentioned at the end.
- The website moved from ticketcord.net to ticketcord.com.
Chapters
- 0:00 Prepare ticket categories and channels
- 1:02 Create the Discord application
- 1:26 Turn Public Bot off
- 2:14 Reset and copy the bot token
- 2:31 Sign in and connect the bot
- 3:10 Invite the bot through TicketCord
- 3:42 Choose staff roles, categories, and channels
- 4:37 Post the ticket panel with /embed
- 5:38 Open a test ticket
- 6:02 Reply from the dashboard
- 6:45 Closing and claiming settings
- 7:56 Close the ticket and read the transcript
Step by step
1. Create a Discord application
Go to Discord's Developer Portal, sign in with the account that should own the bot, and click New Application. The name and avatar you set become the bot identity your members see, and you can change either later since TicketCord always reads them live from Discord. Turn off Public Bot so strangers cannot add your bot to their own servers.
2. Add a bot user and copy the token
Open the Bot tab, reset the token, and copy it immediately: Discord shows it only once. Treat it like a password. Paste it only into TicketCord's dashboard, never share it elsewhere, and reset it again if you lose it or suspect it leaked.
3. Enable the required intents
Still on the Bot tab, enable Server Members Intent and Message Content Intent under Privileged Gateway Intents. TicketCord needs both to verify staff roles and read ticket messages for transcripts, ModMail, and AI features. Presence Intent is not required. Discord returns gateway error 4014 until required privileged intents are enabled; TicketCord makes one automatic attempt to enable them, and if the bot still will not connect, enable them by hand and restart it from the dashboard.
4. Connect the bot to TicketCord
Sign in to TicketCord with Discord. A new account opens the setup assistant; on an existing account, choose Add a bot. Paste the token, choose Check token / Continue, check the bot name and avatar that TicketCord read from Discord, and choose Connect bot / Add this bot. TicketCord encrypts the token before it is written to storage.
5. Invite the bot through TicketCord
Choose Add bot in the setup assistant, or Invite on the bot's page, pick a server you own or administer, and authorize the bot in Discord. TicketCord detects the join by itself. Do not invite the bot with a link built in the Discord Developer Portal: a manual invite usually misses permissions or the slash command scope. If that already happened, kick the bot and invite it again from TicketCord; the token stays valid.
6. Fix the bot's role position
Discord places a newly invited bot's role at the bottom of the role list. Open Server Settings, then Roles, and drag the bot's role above your staff roles so it can manage per-ticket permissions for them. A bot role sitting below the roles it needs to manage is one of the most common causes of a ticket channel opening with the wrong permissions.
7. Choose staff roles, categories, and channels
In the configure step, choose the staff roles that see new tickets, the category tickets open in, optionally a category for closed tickets, and the transcript and logs channels, then choose Save and continue. TicketCord may suggest a starting configuration; review it first. If you need roles or channels, press Create them for me to create the missing ones in your server and pick them in the form. If a role or channel you just created is missing, choose Refresh. You can also run /setup in Discord to create a default set of categories, channels, and roles, then select them under Staff, Opening tickets, Closing tickets and General in the server settings and save. /setup alone does not save anything in TicketCord.
8. Post the ticket panel
On the last setup screen, pick the Panel channel where members should open tickets and choose Post ticket panel. Later you can post panels from Panels & messages in the server settings, or with the /embed command in Discord. Pick /embed from Discord's command menu: pasting the command as text does not run it.
9. Open and claim a test ticket
Press the panel button as a member would. The bot opens a private ticket that only the member, your staff roles, and the bot can see, and posts a message with Claim and Close buttons. Choose Claim, or run /claim, to take the ticket. Staff can also reply from the TicketCord dashboard, and the reply is posted in the ticket through your bot.
10. Close the ticket and check the transcript
Choose Close and confirm, or run /close. The logs channel records the close. Run /transcript in a ticket to save an HTML transcript to your transcript channel. To archive every ticket automatically, turn on Post a transcript when a ticket closes under Closing tickets in the server settings. If Delete the channel on close is also on, the transcript is posted before the channel is deleted. To message the member when their ticket closes, turn on Enable DM on Close in the same place.
Common problems and fixes
Gateway error 4014 when connecting the bot
One of the two privileged intents is still off. Enable Server Members Intent and Message Content Intent on the Bot tab in the Developer Portal, then reconnect the bot from the dashboard.
Discord will not let you turn Public Bot off
Discord blocks private applications that still have a default install link. Set Installation, Install Link to None, save, then turn Public Bot off.
The bot validates but the invite fails with "Integration requires code grant"
Requires OAuth2 Code Grant is switched on for the application. Open the Bot tab in the Developer Portal, switch it off, save, and invite the bot again from the dashboard.
Setup keeps waiting for the bot to join
Invite the bot with the Add bot or Invite button in TicketCord, on a server you own or administer, and allow pop-ups so Discord's authorization window can open.
A role or channel is missing from the setup lists
Choose Refresh after creating it in Discord. If it still does not appear, check that the bot's role can see that channel or category.
/setup or /embed is missing from Discord's command menu
Reload Discord after inviting the bot (Ctrl+R, or Cmd+R on a Mac). Discord shows /setup only to members with Administrator, or with both Manage Channels and Manage Roles, and /embed only to members with Manage Messages.
Slash commands do not appear in the server
The invite was missing the applications.commands scope, usually from a manually built invite link instead of the dashboard's. Kick the bot, invite it again from the dashboard, and reload Discord.
The panel button does nothing
The bot is missing View Channel, Manage Channels, Manage Permissions, Send Messages, or Embed Links on the ticket category. Fix the category's permission overwrites for the bot's role, then run /diagnose.
Staff cannot see the tickets they should
Their role is not selected under Staff in the dashboard, or the bot's role sits below theirs in Server Settings, then Roles. Select the role in the dashboard and drag the bot's role above it in Discord.
"This server hasn't been set up yet"
The dashboard essentials, staff roles, ticket categories, and the closed-ticket category, were never saved. Save them under Structure and Staff in the dashboard, then try again.
Every TicketCord error code and its fix
Your ticket workflow is ready
Members can open tickets from the panel, and staff can reply in Discord or the dashboard inbox. The bot keeps running once you close this tab: there is nothing to deploy or host yourself. Pro and Enterprise can also use Atlas drafting and knowledge-base features once those controls are enabled.
Next steps
- Add staff roles and permissions
- Turn on automatic transcripts
- Train Atlas on approved knowledge sources
- Customize ticket panels and embeds
- See what the TicketCord Discord ticket bot includes
- Compare plans and prices