DM on Join

Send every new member a direct message that turns into a ModMail ticket when they reply

DM on Join sends a direct message to each member who joins your server. The message invites them to reply if they need help, and because it comes from your bot, a reply is handled by ModMail and opens a ticket for them. It is for communities that want newcomers to know where support is before they go looking for a channel.

DM on Join needs the Basic plan or higher. On Free the toggle is locked with the hint "Upgrade to Basic or higher to use DM on Join", and the bot skips the DM even if the setting was saved earlier. ModMail must also be enabled on the server for replies to become tickets; see ModMail.

Setting up

Open the Messages tab

Go to Dashboard → Bots, pick your bot, choose the server, and open Messages under the Messaging group. In the Automatic messages card, the DM to new members row is under When a member joins.

Turn it on

Turn on the switch on the DM to new members row ("Sent when someone joins the server").

Write the message

Click the row to open it, and fill in DM text, or leave it empty to use the default text. Use {server} for the server name and {username} for the member's name.

Save

Click Save or press Ctrl/⌘ + S. The next member to join receives the DM.

Settings

SettingAllowed valuesDefault
DM to new memberson or offoff
DM textplain text, up to 500 characters; Discord markdown allowedempty (uses the default below)

The default message:

👋 **Welcome to {server}!**

Need help? Just reply to this message and I'll create a support ticket for you automatically.

Variables

VariableRenders asIf unavailable
{server}The server namethe server
{username}The member's display name, or their username if they have nonethere

Only these two variables exist. Anything else in braces is sent as typed.

Example

Hey {username}, welcome to {server}! 🎉

Grab your roles in #roles and say hi in #introductions. If anything is broken or you have a question, just reply to this message and a private ticket will be opened with our team.

What happens

  1. A member joins. Bot accounts are ignored.
  2. The bot checks the owner's plan and that DM to new members is on for that server.
  3. The message is queued. Each bot sends at most 5 join DMs per 10 seconds, so a wave of joins is delivered in order over a short period instead of all at once.
  4. The member receives the DM. If they reply, ModMail opens a ticket in the server (or, if they already have an open ModMail ticket anywhere, the reply goes there).

Limits and gotchas

  • One DM per member per 24 hours. A member who leaves and rejoins within a day does not get a second DM. The 24-hour marker is set when the DM is queued, not when it is delivered, so it also applies if the first attempt could not be delivered.
  • Closed DMs are not retried. If the member does not allow DMs from server members, the message is dropped silently and nothing else is sent. There is no fallback channel message.
  • Stale sends are discarded. A queued DM that could not go out within an hour (for example because the bot was offline) is dropped rather than sent late.
  • The message is plain text. It cannot be an embed or a Components V2 container, and there is no delay, condition, or role targeting.
  • The dashboard text box accepts more than 500 characters, but the save is rejected with "DM on join message cannot exceed 500 characters". Keep it short.
  • The reply only becomes a ticket when ModMail is enabled on that server. With ModMail off, replies to the bot are ignored.

A join DM reads as spam to some members and Discord may limit bots that send many unsolicited DMs. Keep the text short, useful, and clearly from your server, and prefer this feature on servers where newcomers genuinely need a way to reach staff.

Troubleshooting

SymptomCauseFix
New members get no DMThe setting is off, the bot owner is on Free, or members have DMs closedCheck the toggle and plan; ask a test member to allow DMs from server members
Your own test account got one DM and never anotherThe 24-hour ruleWait a day or test with a different account
Members reply but no ticket opensModMail is not enabled on the serverTurn ModMail on in the ModMail tab
The reply landed in an older ticketThe member already had an open ModMail ticket, possibly on another server that uses the same botClose the old ticket first
"DM on Join requires Basic, Pro, or Enterprise plan."Free planUpgrade at ticketcord.com/pricing
"DM on join message cannot exceed 500 characters"The message is too longShorten it
The DM shows {username} literallyA typo such as {user} or {name}Use exactly {username} and {server}
DMs arrive a few seconds late during a raid or eventThe 5 per 10 seconds send rateExpected; they are delivered in order

Common questions

What does the new member see? A direct message from your bot with your DM text (or the default). If they reply, a ModMail ticket opens with your staff.

Can I add buttons or an embed to the DM? No. The join DM is plain text with {server} and {username} variables.

Why did a returning member not get the DM again? Each member receives at most one join DM per 24 hours per server, even if they leave and rejoin.

What if the member has DMs disabled? Nothing is sent and nothing else happens. The bot does not post in a channel instead.

Does this need ModMail? The DM itself does not, but replies only become tickets when ModMail is enabled on the server. Without it the invitation to reply leads nowhere.

Which plan do I need? Basic or higher. The card is locked on Free.

Can I delay the DM or send it only to some members? No. It is sent shortly after every non-bot join, with no delay or targeting options.

Last updated on

On this page