Skip to main content

Mass DMs

Sending one direct message to everybody who asked to receive them.

Who gets it​

Whoever holds the opt-in role. That is the whole audience rule.

The opt-in is a role rather than a list the bot keeps, so somebody can see whether they are signed up by looking at their own roles, and leave by removing one. A subscriber table nobody can see is a list people forget they are on.

Sending one​

/massdm does not send anything.

It counts the audience and shows you the message exactly as it will arrive, footer and all. Nothing goes out until you press the button.

That is deliberate, and it is the most important thing on this page. A broadcast cannot be recalled. Once it has reached four hundred people it has reached them, and Discord has no unsend. So the preview is the last point at which a typo is still cheap.

The button carries the audience it was shown to you. So the people counted in the preview are the people messaged, rather than whoever happens to hold the role by the time the run finishes.

While it runs​

Sending is paced at roughly one message a second, which for a real audience takes minutes. That is far longer than Discord lets a command reply stay alive, so the run detaches and posts its result to the broadcast log channel instead of editing a reply that has expired.

Expect the result there, not where you typed the command.

What it is not for​

Announcements everybody should see. Those belong in a channel, where people can read them in their own time and where somebody joining next week can still find them. A DM is for something the recipient has to act on.

When you are stuck

The audience count is zero

Nobody holds the opt-in role, or the role is not the one configured. Check the setting before assuming nobody wants your messages.

I pressed send and the reply expired

Expected. The run is longer than an interaction lives. The result goes to the broadcast log channel.

Fewer people received it than the preview counted

Some of them have DMs closed, or they share no server with the bot any more. Neither is something the bot can route around, and both are counted in the result.

I need to take a broadcast back

You cannot. Nobody can. This is why the preview step exists.