Skip to content

BlogGuides

Discord Ticket Bot DMs: Every Message Your Members Can Get

A ticket bot cannot cold message anybody. The six direct messages a ticket opener can receive, what stops them arriving, and what your admins get.

Dani, Founder, AI Ticket Bot

9 min read

"Will it DM my members?" is a fair thing to ask before adding any bot to a server of a few thousand people, and the answers on most listing pages are a feature bullet rather than a list. So here is the list, in full, with what triggers each message and what stops it.

Two things shape all of it. Discord itself refuses to deliver a bot message to somebody the bot shares no server with, which rules out cold messaging as a category. And every message below is the tail end of something the member did: they opened a ticket, they were added to one, they stopped replying to one. Nothing here is a newsletter.

Can a Discord bot DM your members at all?

Only the ones it can reach. Discord answers a message to anybody else with "cannot send messages to this user due to having no mutual guilds", and that check runs at the moment of sending rather than when the bot was invited. There is no list of member IDs a bot can work through, and no way to buy one.

Inside that limit, a Discord ticket bot still has to decide who it speaks to and when, and that part is a product choice rather than a platform rule. The choice here is narrow: a member hears from the bot about a ticket they are in, and about nothing else. No announcements, no plan offers, no "we miss you". A member who never opens a ticket never receives a direct message.

Every DM a ticket opener can get

Six, and the first two are the only ones almost every server will ever see.

MessageWhat sends itTurning it off
The ticket closedAny close, by staff, by the member, by the AI or by a timerNot switchable
A close requestStaff asking the opener first, instead of closing over their headDo not use the command
A reply is waitingThe ticket went quiet on the member's side, on a paid planThe reminder switch, per panel
The ticket closes soonA quarter of the close window before an automatic closeThe same switch
Added to, or removed from, a ticketStaff adding or removing that personDo not add people
A staff nudgeA staff member running the ping commandThe staff permission

The closing message is the substantial one. It names the channel and the server, who closed it and why, and carries a View Transcript button, a rating button where the ticket can be rated, and on the free plan a vote button. It is sent even when a server has transcripts switched off, minus the button, because being told your ticket closed is worth a message on its own.

The quiet-ticket reminder is the one that surprises people, so it is worth being exact. It quotes the reply the member has not read and who wrote it, then offers three buttons: jump back in, it is solved, or I still need help. It is timed from that member's own usual answer speed rather than a fixed clock, and unlike the staff side of the same system it is not held back by working hours, so it can land at any time of day. Auto-close settings covers the timing in full, and close requests cover the polite version your staff send by hand.

Those three buttons are the only thing a member can do from a direct message, and they are worth knowing before you switch reminders on. It is solved closes the ticket where your server lets members close their own, recorded as solved by the member so it is visible in your stats; where it does not, the ticket gets a note saying they consider it solved and your team still owns the close. I still need help keeps it open, says so in the ticket, and flips the ticket onto the staff side, so your team gets the normal staff ping next. Only the person the message was addressed to can press them, and every press re-reads the ticket first, so a button on a week-old message answers honestly instead of acting twice.

When the DM does not arrive

Closed DMs are normal, not an error, and each surface handles it differently instead of pretending it worked.

What happens on a refused message

Quiet-ticket reminder
The in-ticket notice mentions the member instead
Staff ping command
The staff member is told it was not delivered
Close request
The question stays in the ticket, where it was also posted
Closing message
It simply does not arrive
Transcript, log channel, webhooks
Unaffected in every case

The reminder case is the one worth knowing about, because it is where a silence could otherwise cost somebody their ticket. A notice goes into the ticket either way: silent when the message landed, and a mention of the member when it did not. So the ticket always shows that they were told before it closed.

Why leaving your server stops the DM

One function decides whether the opener hears about their own ticket, and it asks a single question: are they in this server right now.

That sounds obvious until you notice it is not what Discord would do. The bot is in thousands of servers, so a member who leaves yours often still shares another one with it, and the message would go through: a close notice, a transcript of a conversation in a server they walked away from, and a rating button for support they no longer care about. Leaving is treated as the opt-out it plainly is.

Four details follow from asking at send time rather than at close time:

  • A leftover ticket closed by hand days later behaves the same as the automatic close that fires when somebody leaves.
  • Somebody who leaves and rejoins before the close gets their message back.
  • Only the message is skipped. The transcript is built, stored and still reaches your staff through the dashboard, the log channel and any webhooks.
  • If Discord cannot be asked, during an outage or a failed lookup, the message is sent. An infrastructure problem never costs a real member their record.

Web chat visitors sit outside the rule, because they were never members of your server: they arrived from your site, and a linked Discord account is how they asked to be reached. A visitor who never signed in has nobody to message, so the reminder reaches them as a bubble in the chat instead.

The messages an admin gets, and how often

Separate from all of the above, the person who added the bot can get up to five messages, ever, and then nothing.

  1. On joining

    An introduction

    To whoever added the bot, falling back to the owner. Posted once in a writable channel instead if their DMs are closed

  2. Three days

    One activation nudge

    Only if no panel was ever published. Direct message only, never a channel post

  3. Thirty days

    One last nudge

    Same condition, and rationed per person rather than per server, so somebody with a dozen dormant servers gets one message rather than twelve

  4. Trial minus three days

    Your free Premium is ending

    Only on a server that started the 14 day trial

  5. After a trial ends

    What switched off

    Names the features that stopped, rather than listing them in the abstract

Each of those stamps its own record whether the message was delivered or not, which is what makes "once, ever" true rather than hopeful, and removing the bot stops all of them. Two more can reach a server owner, both operational rather than promotional: an outgoing webhook that kept failing has been switched off, and the bot has lost access to a channel it was told to post in. One more goes out on the way out, a few minutes after the bot is removed, asking why, and it usually cannot be delivered at all, because the server we shared is the one it was just removed from.

What you cannot switch off

Under your control

  • The quiet-ticket reminder and the closing warning, per panel
  • Whether staff can use the ping command, through the staff permission
  • Whether staff ever send a close request
  • The wording of the closing message and the reminder, per panel

Not under your control

  • The closing message itself, which has no server switch
  • What a member sees in their own Discord privacy settings
  • Whether a delivered message is ever read
  • Which of your admins the activation messages go to, beyond who invited the bot

Two limits are worth stating plainly rather than leaving to be discovered. Blanking every field of the reminder message in the panel's message editor does stop that direct message, but the ticket then gets the mention instead, so it turns a private nudge into a public one rather than removing it. And on a white-label server the message still arrives under the bot's own name, because the custom name is a per-server nickname and a direct message is not in a server. Your server's name and icon are inside the card, which is the part a member actually reads.

The DM the bot will never send

It will never message a member first. That is worth publishing in your own server, because the most common Discord support scam is an impersonator who watches for new tickets and messages the opener within seconds, claiming to be staff. If your members know that neither your team nor the bot opens a DM, an unsolicited one is self-evidently fake.

The bot has a setting for the timing half of that attack, and stopping spam tickets covers it alongside the rest of your defences. The policy half is free and costs one line in your welcome message.

It also means this is not a DM-based support tool. Everything happens in a channel or a thread your staff can see, and the messages above are notifications about that channel rather than the conversation itself. If you want the conversation to happen in DMs, Modmail is built that way and this is not.

Frequently asked questions

Only the ones using it. Discord will not let a bot message somebody it shares no server with, and this one adds a rule of its own: a member only ever hears from it about a ticket they opened or were added to. There is no announcement, no broadcast to the member list, and no marketing message. A member who never opens a ticket never gets a direct message at all.

Not per member, and there is no server switch for the closing message. What you can switch off is the features that send the optional ones: the reminder for quiet tickets, the close request your staff send by hand, and the staff ping command. The closing message with the transcript link always goes out, because it is the record of the conversation the member just had. The member's own Discord privacy setting is the real off switch.

Nothing breaks and nothing is retried. Discord refuses the message, the bot treats that as normal, and each surface degrades on its own: the quiet-ticket reminder becomes a mention inside the ticket instead, the staff ping command tells the staff member it could not be delivered, and the closing message simply does not arrive. The transcript is still built, still stored, and still reaches your team.

No. The bot checks whether the opener is in your server at the moment it sends, and skips the message if they have left, even when the ticket is closed by hand days later. Only the message is skipped: the transcript is still written and stored, and your staff can still open it. Somebody who rejoins before the close gets their message as normal.

Only one, and it is fixed in shape. The ping command sends the opener a jump button back into their ticket with an optional note of up to 200 characters. It is limited to one per ticket per minute, counted per ticket rather than per staff member, so two people cannot double it. There is no way for staff to hold a free conversation with a member through the bot.

No. On joining it sends one introduction to whoever added it, falling back to the server owner, and posts it in a channel instead if that person has DMs closed. Two later messages can follow if nobody ever publishes a panel, and two more relate to a free trial. That is five to one admin over the life of the server, then silence. No other member is contacted.

It’s not just an AI, it’s your AI.

See it on your own server.

Add the bot free, teach it a few of your most common answers, and watch it clear the repeat tickets on its own.

Free plan, no card. Your first panel starts 14 days of Premium.