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.

When it beats a ticket channel

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

The setup, step by step

1

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.

2

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.

If panels were posted by the shared bot, post them again from Ticket Panels once you remove it, so your own bot owns those messages.
3

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.

4

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.

5

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.

6

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 Reply button, 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:

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.

Tell your team about this once, on day one. The most common surprise is a staff member typing a reply in the channel and wondering why the member never answers.

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.

DM tickets are part of Premium and need the Whitelabel bot add-on. Panels, transcripts, staff roles, ratings, internal notes and ten canned responses are on the free plan. See pricing.

When something does not work

The full reference is in the docs: DM tickets, Whitelabel bot and DM appearance. Still stuck? Ask on the SUPREO support server.

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.