Skip to content

Welcome & goodbye ​

Greet new members and wave off people who leave. SnowstormBot can post a welcome message to a channel, send the new member a direct message, attach a generated welcome card (their avatar over a gradient), and post a goodbye when someone leaves.

The Welcome & goodbye feature is off by default. Turn it on from the Features page, then open Welcome in the sidebar to configure it.

What you can set up ​

The Welcome page has three independent parts (and a goodbye message). Switch on only the ones you want:

  • Welcome message posted to a channel when someone joins.
  • Welcome card attached to that message: the member's avatar and your text over one of five gradient backgrounds.
  • Welcome DM sent privately to the new member.
  • Goodbye message posted to a channel when someone leaves.

Every message supports placeholders that fill in the member's name, the server name, the member count, and the member's join number. When a message is left blank, its built-in default is shown greyed-out in the editor as a placeholder and is what gets posted, so you always see what members will receive.

Welcome message ​

  1. Switch on Post a welcome message to a channel.
  2. Pick the welcome channel.
  3. Write the message. Leave it blank to use the default (Welcome to **{server.name}**, {user.mention}! 🎉).

By default the message is plain text. Turn on Send as an embed to post it as a rich embed instead, with an optional title and colour (a hex value like #5865F2; leave it blank for Discord's default).

Pinging the new member

{user.mention} mentions and pings the member who joined. Only that one mention is ever pinged, even in embed mode, so a stray role or @everyone in your text can never ping the whole server.

Welcome card ​

Turn on Attach a generated welcome card to add an image to the welcome message. The card shows:

  • The new member's avatar, circular, on the left (a coloured initial is drawn if they have no avatar).
  • A title (default Welcome {user.name}!).
  • A description (default You're member #{server.membernumber}).

Member number vs member count

{server.membernumber} is a per-server counter that only ever goes up: it starts at your server's current size and adds one for every join, so two people are never shown the same "member #N", even after others leave. {server.membercount} is the live count instead, which drops when someone leaves. Use {server.membernumber} for a join badge and {server.membercount} for "we're now N members".

Backgrounds ​

Pick one of five preset gradients: Aurora, Sunset, Ocean, Mauve, or Midnight. The page shows a live swatch and preview so you can see each one.

Emoji pattern ​

Sprinkle a faded emoji pattern tiles a subtle, semi-transparent pattern of emoji (🎉🍕🤖👻🎈✨) across the background. It sits on top of the gradient but below the avatar and text, so it adds texture without getting in the way. It's on by default, works with any of the gradients, and can be turned off with the toggle.

Two sliders fine-tune it (the live preview updates as you drag):

  • Pattern opacity (5%-50%): how strongly the emoji show through. Lower is more subtle.
  • Pattern size (50%-200%): how large the emoji are, and how spread out. The grid spacing scales with the size, so the density stays balanced.

Live preview ​

While you edit the card, the page renders a live preview using your own avatar and this server's member count, so you can see the real result without waiting for someone to join. It updates as you change the title, description, or background.

Emoji on the card

The card text uses its own fonts, which don't include emoji, so any emoji in the card title or description are dropped. Emoji in the welcome message, DM, or goodbye message show normally, because Discord draws those.

Welcome DM ​

Turn on Also send the joining member a direct message to DM the new member. Set the DM message (default Welcome to **{server.name}**, {user.name}! We're glad to have you.).

A DM is best-effort: if the member has DMs from server members turned off, the DM is skipped silently. A DM can't ping or link to channels, so prefer {user.name} over {user.mention} here.

Goodbye message ​

Turn on Post a goodbye message to a channel, pick the goodbye channel, and write the message (default {user.name} just left {server.name}. 👋). Like the welcome message, it can be sent as an embed.

A member who has already left can't be pinged, so {user.mention} shows their name without notifying anyone. Prefer {user.name}.

Send a test welcome ​

Once you've saved your settings, click Send a test welcome to run the whole join flow using your own account: the welcome message (and card) post to the configured channel, and the welcome DM is sent to you. Nobody has to actually join. Save your changes first; the test uses the saved settings.

Placeholders ​

These tokens work in every Welcome message and on the card. They're not case-sensitive.

TokenBecomes
{user.mention}A mention of the member (pings them on join; just their name on leave or in a DM).
{user.name}The member's display name, as plain text.
{server.name}The server's name.
{server.membercount}The server's current (live) member count; it rises and falls as members come and go.
{server.membernumber}The member's join number: a per-server counter that only ever goes up, so it never repeats after someone leaves. Great for a "you're member #N" badge.
{user.id}The member's numeric ID (unrelated to {server.membernumber}).

Welcome vs automations ​

You can already greet members with a MemberJoinedautomation. The Welcome feature is the friendlier, purpose-built option: it adds the welcome card, the welcome DM, the goodbye preset, the preview, and the test button without building an automation by hand. Use whichever fits; if you only need a simple text greeting, either works.

Tagging roles, members and channels ​

In the Welcome message and Goodbye message boxes you can type @ to tag a role or member, or # to link a channel, the same way as on Send a message. Each role and member tag gets a Ping switch underneath. Ping means Discord sends those people a notification, and Tag only shows the tag without notifying anyone. @everyone and @here start on Tag only, so nobody pings the whole server by accident.

If a member leaves, or a role or channel is deleted, the tag keeps showing its old name when you edit the message, but you can no longer pick it again. In Discord it then shows as a broken tag.

When a message is set to be sent as an embed, its tags still show but the Ping switches disappear, because Discord never pings from inside an embed. The DM message box offers members and channels only.