How Do You Welcome New Discord Members When DMs Are Off? (2026)
Send your welcome in a public channel, not a DM. Post an in-channel welcome embed that @mentions each new member and points them to a start-here channel. Because many new joiners have direct messages from server members turned off, an in-server greeting is the one that is guaranteed to reach everyone.
If your server still relies on bot DMs to greet new members, some of those messages are silently failing. When a member has DMs closed, your bot's "hello" never arrives, and neither you nor the member sees an error. The fix is to stop depending on DMs entirely and build a welcome flow that lives inside your server. Here is exactly how to do that in 2026.
Why bots can't DM many new members anymore
A bot can only DM a user if that user shares a server with the bot and has direct messages from server members enabled. That second condition is the problem. Many accounts have "Allow direct messages from server members" turned off — some by default after touching their privacy settings, others deliberately to cut spam from random servers. When that setting is off, your welcome DM can't get through.
When a bot tries to DM someone who has DMs closed, the message simply fails. There is no second chance and, on the member's side, no indication anything was ever sent. If your only welcome is a DM, those people land in your server, see nothing, and often leave within minutes. The first minute after someone joins is when they decide whether to stay, so a missed greeting is a real cost.
How Discord's closed-DM and teen settings change things
Two factors matter here.
First, privacy settings. Accounts that have closed server-member DMs — whether on purpose or as a side effect of adjusting privacy options — are unreachable by your bot. You can't detect this in advance, so you have to assume a meaningful share of new joiners fall into this bucket.
Second, teen and minor protections. Discord applies tighter messaging defaults to accounts flagged as belonging to teens, including restrictions on who can DM them. If your community skews young, expect an even higher share of closed DMs. You cannot detect or override any of this from a bot, and you shouldn't try to.
The takeaway is simple: treat DMs as a nice-to-have that might reach some members, and make your real welcome something every single joiner sees regardless of their settings. That means an in-channel message.
Step 1: Set up an in-channel welcome that always lands
The in-channel welcome is the one that never silently fails. When someone joins, your bot posts a message in a public channel (commonly #welcome or #general) that @mentions the new member by name.
A good in-channel welcome includes:
- The new member's @mention so they get a ping and feel acknowledged
- One line of genuine greeting, not hype
- A direct link to your start-here or rules channel
- Optionally, an embed with your server's branding so it stands out
Keep the copy plain. "Welcome, @user. New here? Start in #start-here." beats a wall of emoji and exclamation marks. If you want a full walkthrough of building the message itself, see our guide on how to set up a Discord welcome message, which covers embeds, variables, and channel choice in detail.
One more advantage: a public welcome gives existing members a natural cue to say hi back. A DM is invisible to everyone else, so it does nothing for the social momentum that actually keeps people around.
Step 2: Use onboarding questions to greet people instead
Discord's built-in Onboarding (Server Settings → Onboarding) runs before a new member ever sees your channels, and it doesn't depend on DM settings at all. This makes it one of the most reliable ways to greet and orient newcomers.
With onboarding you can:
- Show a welcome screen that explains what the server is about
- Ask a few questions ("What are you here for?") that assign roles based on the answers
- Unlock channels that match each member's interests so they land somewhere relevant instead of a generic dump
Because onboarding is part of Discord's join flow, every eligible new member walks through it. Pairing onboarding with an in-channel welcome means a person is greeted twice in two different ways, and both reach them. If you haven't set this up yet, our walkthrough on how to set up Discord onboarding questions shows the full configuration.
Step 3: Point new members to a start-here channel
Greeting someone is only half the job. The other half is telling them what to do next. A dedicated start-here channel does that, and it works no matter what their DM settings are.
Build a single, read-only channel (call it #start-here, #read-me, or #welcome-guide) that contains:
- A one-paragraph description of what the server is for
- The three or four channels a new person should visit first
- Any rules or verification steps, kept short
- Reaction roles so people can self-select interests in one click
Then make every welcome touchpoint — the in-channel message and the onboarding screen — link straight to it. The goal is that a confused newcomer is never more than one click from knowing where to go. Reaction roles turn that start-here channel into something interactive rather than a static notice board.
Step 4: Test your welcome flow as a fresh joiner
This is the step most server owners skip, and it's the one that catches the silent failures.
Use a second Discord account — or ask a friend — that is not already in your server, and go through the entire join as a brand-new member would:
- Set that test account's DMs to closed (Privacy & Safety → turn off "Allow direct messages from server members"), so you're simulating the strictest realistic case.
- Join the server with it.
- Watch what actually happens: Does the onboarding screen appear? Does the in-channel welcome fire and mention you? Can you reach the start-here channel and see it?
- Note anything that didn't happen. If the only thing that fired was a DM, you've just proven why DM-only welcomes fail.
Re-run this test any time you change channel permissions, because a welcome channel a new member can't see is as broken as a DM they never receive. For the copy itself, our notes on welcome messages that convert new members cover what to actually say so the greeting earns a reply instead of being scrolled past.
How PeakBot greets members even with DMs disabled
PeakBot is built around the reality that DMs often don't deliver. Its welcome system supports three layers so at least one always reaches a new member:
- In-channel welcome embeds that @mention the new member in a public channel — this is the layer that lands for everyone, regardless of their DM settings.
- Auto-role on join, so a new member immediately gets the right base role and can see the channels meant for them.
- Welcome DMs as an optional extra for the members who do have DMs open — used as a bonus, never as the only greeting.
Because the in-channel welcome and auto-role don't rely on a member's privacy settings, the greeting still works for accounts with closed DMs, including teen-protected accounts. PeakBot also pairs cleanly with Discord's native onboarding and with free reaction roles, so the start-here channel from Step 3 becomes interactive without any extra cost.
Welcome messages, auto-role, reaction roles, and the analytics dashboard to see how new members are doing are all part of PeakBot's 30+ free features — no trial, no time limit. PeakBot is a free, AI-powered Discord bot that also replaces MEE6, Carl-bot, Dyno, and TidyCord with one tool, and it's powering 500+ Discord communities. If you'd rather not hand-build channels and roles, the AI Server Builder (a Pro feature at $8.25/month, or $69/year) can generate a complete server — including a welcome channel and start-here flow — from a plain-English description in under 60 seconds.
To be fair to the alternatives: MEE6 has a long-established welcome plugin (premium $11.95/month), Carl-bot is known for flexible reaction-role and autorole handling (premium $7.99/month), and Dyno is a dependable, lightweight choice for basic greetings (premium $4.99/month). Any of them can post an in-channel welcome. PeakBot's edge is bundling the in-channel welcome, auto-role, onboarding-friendly reaction roles, and analytics together for free, so you don't stitch the flow across multiple bots.
You can see the full welcome and auto-role setup on the PeakBot features page, or compare it against other bots on the comparison page.
FAQ
Why didn't my new member get the welcome DM?
Almost always because that member has "Allow direct messages from server members" turned off, which is common on many accounts and on teen-flagged ones. The DM fails silently, so neither you nor the member sees an error. Use an in-channel welcome instead, since it doesn't depend on DM settings.
Can a Discord bot force-send a DM to someone with DMs closed?
No. There is no bot, permission, or setting that lets you bypass a user's closed DMs — that's a privacy protection Discord enforces on the user's side. The only reliable greeting is one posted inside a channel the member can see.
What's the most reliable way to welcome new members in 2026?
An in-channel welcome message that @mentions the new member, combined with Discord's native onboarding screen. Both run regardless of the member's DM settings, so every joiner is greeted. Treat welcome DMs as an optional bonus, not your main channel.
Does PeakBot's welcome system cost anything?
No. Welcome embeds, auto-role on join, reaction roles, and the analytics dashboard are part of PeakBot's 30+ free features with no time limit. Only the AI Server Builder, which can generate an entire welcome-ready server from a description, is a Pro feature at $8.25/month (or $69/year).
Should I delete welcome DMs entirely then?
No need to remove them — just don't rely on them. Keep an optional welcome DM for the members who have DMs open, but make sure your in-channel welcome and onboarding carry the real greeting so nobody is missed.
