Guide · 8 minutes
Discord modmail: support tickets in DMs
Some people will never open a ticket in a channel. They will message a bot, though. DM tickets let a member write to your bot like they would to a friend, while your staff answer from a private channel with every tool a ticket has. Here is how to set it up in SUPREO, and how to run it.
What a DM ticket is
A classic ticket is a private channel: the member and your staff talk in it, side by side. A DM ticket splits the conversation in two. The member stays in their direct messages with your bot. Your staff work in a ticket channel the member never sees. The bot carries every message across, both ways.
- The member writes to the bot, picks a category from a menu, and keeps writing in the same DM. Staff replies arrive there too.
- Your staff get a normal ticket channel: the opening card, the buttons, claims, notes, canned responses, the transcript on close.
When it beats a ticket channel
- Reports and appeals. Reporting a member or contesting a timeout feels safer in a DM than in a channel with your name on it.
- Big servers. Members do not need to find a panel or a support channel: they message the bot from its profile or the member list.
- Keeping support off the main server. With a support server, the ticket channels live somewhere else entirely, and your community never sees a ticket category.
Keep channel tickets too, if you like. Both run side by side: the panel in #support opens channel tickets, a DM to the bot opens a DM ticket, and your staff handle both the same way.
Before you start
Manage Serveron the Discord server, and a ticket panel already set up. If you have neither yet, follow how to set up a Discord ticket bot first. It takes ten minutes.- Premium and the Whitelabel bot add-on. A DM is not attached to any server, so DM tickets run on a bot that belongs to your server alone, with your name and avatar.
- Access to the Discord Developer Portal, where you create that bot. Any Discord account can.
The setup, step by step
Create your bot application
In the Developer Portal, press New Application and give it the name members will see: your server's name, or something like Acme Support. Open Bot and set the avatar.
Still on Bot, under Privileged Gateway Intents, tick Message Content Intent and Server Members Intent, then save. Message Content is the one that matters here: without it, every DM reaches the bot empty.
Connect it to the dashboard and start it
Copy two values: the token, from Bot → Reset Token (it is shown once), and the Application ID, from General Information. In the dashboard, open Bot Settings, paste both, and save. The token is encrypted at rest and never sent back to your browser.
Press Invite Bot to add your bot to the server, then Start. The process status turns Online within a few seconds. Every setting you already had now applies to your bot.
Ticket Panels once you remove it, so your own bot owns those messages.Turn on DM tickets
Go to Ticket setup → DM tickets and enable DM-based ticket system. You will see Allow multiple tickets switch itself off: each DM has to land in exactly one open ticket, so a member has one DM ticket at a time.
Choose where the channels go, and who sees them
Support server decides where ticket channels are created. Leave it on This server and they open here, like your other tickets. Or pick another server you manage, where your bot is also present, and they open there instead. Save after choosing: the role pickers reload with that server's roles.
Then set DM ticket staff roles: the roles that can see DM ticket channels. If you chose a support server, these are roles from that server.
Pick the panel members choose from
On Ticket Panels, DM ticket panel chooses whose categories a member is offered after their first message. Use the panel your members already know, so "Report a member" means the same thing in a DM as it does in #support.
Test it from a second account
Message your bot from an account that is not staff, and check the whole loop:
- The bot answers with the category menu, and picking one confirms the ticket is open.
- A ticket channel appears where you expect it, visible to the DM ticket staff roles only.
- A staff reply, sent with the
Replybutton, arrives in the DM. - A message typed directly in the channel does not arrive in the DM.
- Closing the ticket sends the close notice and, if ratings are on, the rating prompt.
What the member sees
They send your bot a message, and that message becomes the ticket's subject. The bot replies with the categories of the DM panel. Once they pick one, the ticket is open and they get the usual confirmation. From then on, anything they send, text or files, goes to your staff. Replies come back into the same DM, and on close they get the close notice.
Pre-ticket questions are not asked in DMs: the first message is the context. If a category usually needs details, such as an order number or a username, say so in your server's rules or the bot's profile, so members include them up front.
How your staff answer
The ticket channel opens with the usual card, plus a Reply button. To reach the member, use:
- The
Replybutton, which opens a text box. /ticket reply, with an optional file.- A canned response, from the
Canned replymenu on the card or/ticket tags send. - The conversation view in the dashboard.
Everything else typed in the channel stays between staff. That makes the channel a natural place to discuss a case ("I think this is the same person as last week") without opening a separate thread, and those messages are kept in the transcript.
Make the replies feel right
DM appearance, under Ticket setup, decides how the three messages a member receives look: the staff reply, the ticket-opened confirmation and the close notice. Each can be a card, with your colour, or plain text that reads like a person typing. Many servers keep the close notice as a card and send replies as plain text.
With Premium you also choose who a reply says it is from: (Support) Alex, Alex, Support, or simply Support team. Moderation teams usually pick the last one, so no individual name ends up in a reported member's DMs.
A separate support server
For large communities, the support server option is the real reason to use DM tickets. Your main server keeps its channel list clean, and your staff work in a server built for it, with its own roles and channels. That server shows open tickets and history on its dashboard, takes its settings from the main server, and inherits its Premium. Your bot needs to be in both.
When something does not work
- The member is told to contact the server instead. They messaged the shared SUPREO bot, not yours. Point them to your bot's profile, and check your bot is online in
Bot Settings. - The bot does not answer at all. The Message Content intent is missing. Tick it in the Developer Portal, then
Restartthe bot fromBot Settings. - Replies do not reach the member. They closed their DMs or blocked the bot after opening the ticket. The channel shows a delivery failure for each reply.
- The channel opens but staff cannot see it. Set
DM ticket staff roles(from the support server, if you use one) and save. New tickets get the access; existing channels keep what they had.
Frequently asked questions
Is a DM ticket the same thing as modmail?
Yes, in practice. Modmail is the common name for a bot that turns direct messages into staff conversations. DM tickets are that, built into a full ticket system: the same staff roles, canned responses, internal notes, transcripts, ratings and analytics as your channel tickets.
Why do DM tickets need my own bot?
A direct message is not attached to any server. The shared SUPREO bot sits in many servers and cannot tell which one a DM is meant for, so DM tickets run on a Whitelabel bot that belongs to your server alone. It also means members talk to a bot with your name and avatar.
Can staff reply anonymously?
Yes. In DM appearance, the identity setting signs replies with the staff member's name and role, the name only, the role only, or simply Support team. Moderation teams often choose the anonymous option so individual names never appear in a member's DMs.
Can members send screenshots and files?
Yes. Text and files a member sends in the DM are relayed into the ticket channel, and staff can attach a file to a reply with /ticket reply.
Do messages typed in the ticket channel reach the member?
No, and that is deliberate. Plain messages in the channel stay between staff and are kept in the transcript. Only the Reply button, /ticket reply, a canned response or a reply from the dashboard is sent to the member.
Can I keep DM tickets out of my main server?
Yes. Point DM tickets at a support server — a second Discord server you manage — and the ticket channels are created there. It inherits your main server's Premium and needs no settings of its own.
Do DM tickets count in team analytics?
Yes. Replies, first-response times, claims and ratings from DM tickets are counted with your channel tickets, on the server the tickets belong to.
Open your inbox
Add the bot, sign in with Discord, and give your members a ticket system they can reach from a DM.
New to ticket bots? Start with how to set up a Discord ticket bot, then come back here.
