// welcome
Welcome messages
kesarAI greets new members on three independent surfaces: a public channel message, a DM on join, and a DM on verification. Each has its own enable switch, its own message, and its own look — turn on one, two, or all three. The same system handles leave messages and auto-roles on join.
Overview
Everything is off until you enable it. In Discord, /welcome-setup opens a one-click quick-setup wizard the first time (sensible defaults, posts in your system channel) and the full panel afterwards. The dashboard at /dashboard/welcome configures all three variants side by side with a live preview that updates as you type.
The three variants are deliberately independent. A public-facing community might want only the channel greeting; a gated server might skip the channel entirely and rely on the join DM to route newcomers into verification, then the verified DM to welcome them properly once they’re in.
Public channel messageA greeting posted in a channel of your choice the moment someone joins.
Rendered as an embed or plain text, with an optional title, colour, footer, banner image, member-avatar thumbnail, and an account-age field. This is the only variant the three presets apply to, and it shares its enable switch with the matching leave message — one toggle covers both announcements.
Auto-roles ride along with this surface but fire independently of it — an empty role list is the off switch, so you can hand out roles on join without announcing anything (or vice versa).
Join DMA direct message sent to the member as soon as they join — before they can see anything.
When ticket verification is enabled, the join DM appends an open-a-ticket call to action with a deep link straight to your verify panel ({verify_link}), so a member who lands in a locked server knows exactly what to click. When ticket verification is off, there's nothing to gate — the join DM simply is the full welcome.
The CTA line is its own toggle with editable text; it only appears when ticket verification is configured and a panel link can be built. Closed DMs are dropped silently — the join DM is best-effort by design.
Verified DMA congratulations DM the moment a member passes verification — by any method.
Fires on every verify path: /v, the Verify button inside a ticket, the public button panel, a /ticket tinder swipe, and approvals from the website's verify queue. One enable switch covers all of them, so the welcome is identical no matter which moderator (or surface) did the approving.
Servers that used the old “DM on verify” ticket setting are migrated automatically — until you touch the new switch, the legacy setting keeps deciding whether the DM sends.
Tokens
Every message, title, and footer field supports placeholder tokens that are substituted when the message sends:
{user}— mentions the member (@Name).{username}— their account name.{displayname}— their server nickname or display name.{server}— the server name.{count}— the current member count (“Member #1,204”).{vanity}— the server’s vanity invite code. DM variants only; substitutes to nothing if the server has no vanity URL.{verify_link}— the deep link to your verify panel. Join-DM CTA only.
Appearance
Each variant carries its own title, embed colour, and footer. The public message can additionally show the joining member’s avatar as a thumbnail, a banner image, and an “account created” field for catching day-old accounts at a glance. The two DM variants show your server iconas the thumbnail instead (on by default — it’s the visual proof of which server is DMing), and offer a vanity footnote that appends discord.gg/yourcode to the footer when the server has a vanity URL. Default colours differ so the DMs read distinctly: blurple for the join DM, green for the verified DM.
Presets
Three presets — Minimal (clean one-liner, no embed), Standard (short embed with member count, the recommended default), and Fancy(full embed with avatar, fields, and footer) — give you a finished look in one click. Presets only affect the public channel message (join and leave); the two DM variants are always configured directly. Picking a preset overwrites the public message fields, so customise after choosing, not before.
Configuration
/welcome-setup(Administrator only) covers the public surface in Discord: preset picker, join/leave channels, message editors, embed toggle, and the auto-roles picker (up to ten roles assigned on join — managed roles and roles above the bot are skipped automatically). The dashboard’s welcome pageis the full editor: all three variants, every appearance field, the join-DM CTA text, and a live Discord-style preview of each embed as you type. If the join DM’s verify CTA never appears, check that ticket verification is actually configured — see verification & tickets.