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.
| Message | What sends it | Turning it off |
|---|---|---|
| The ticket closed | Any close, by staff, by the member, by the AI or by a timer | Not switchable |
| A close request | Staff asking the opener first, instead of closing over their head | Do not use the command |
| A reply is waiting | The ticket went quiet on the member's side, on a paid plan | The reminder switch, per panel |
| The ticket closes soon | A quarter of the close window before an automatic close | The same switch |
| Added to, or removed from, a ticket | Staff adding or removing that person | Do not add people |
| A staff nudge | A staff member running the ping command | The 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.
- 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
- Three days
One activation nudge
Only if no panel was ever published. Direct message only, never a channel post
- 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
- Trial minus three days
Your free Premium is ending
Only on a server that started the 14 day trial
- 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.
Keep reading
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.
Keep reading.
All articlesDiscord Ticket Bot for Multiple Servers: What Carries Over
One ticket bot can serve many Discord servers, but each keeps its own panels, staff roles, AI memory and blocklist. What carries over, and how to run several.
9 min read
Discord Ticket Bot Audit Log: Every Change, and Who Made It
The audit log records every change anyone makes to your ticket system, free on every plan and kept for a year. It holds no messages, and that is deliberate.
9 min read
Discord Ticket Claiming: What the Claim Button Actually Does
Claiming moves a ticket into the claimer's own category, names them in the channel, and on most servers switches the AI off. It never locks other staff out.
9 min read