Discord Welcome Message Template
Greet every new member with a polished welcome message instead of a wall of text. This template leads with a banner image, then points newcomers straight to your rules, roles and general chat in three quick steps — everything they need to settle in fast. For longer and themed versions — gaming, creator, study and support servers — use the copy-and-paste welcome messages guide linked below.
👋 Welcome to the server!
We're really glad you found us. Here's everything you need to settle in.

Get started in three steps
- 📜 Read the #rules so everyone stays on the same page
- 🎭 Pick up your roles in #get-roles
- 💬 Say hi and introduce yourself in #general
Stuck on anything? A friendly mod is only a message away.
Glad to have you — enjoy your stay! 💜
Copy and paste the Discord Welcome Message text
This is the template's text as Discord markdown. Paste it into any channel and the headings, bold text, lists and subtext format exactly as they do in the preview; the card, buttons and menus come with the full template when you open it in DWEEB. The Discord text formatting guide explains every piece of syntax it uses.
# 👋 Welcome to the server!
We're really glad you found us. Here's everything you need to settle in.
**Get started in three steps**
- 📜 Read the **#rules** so everyone stays on the same page
- 🎭 Pick up your roles in **#get-roles**
- 💬 Say hi and introduce yourself in **#general**
Stuck on anything? A friendly mod is only a message away.
-# Glad to have you — enjoy your stay! 💜
When to use it
- Posting a warm intro in your #welcome channel
- Onboarding new members with a clear first action
- Replacing a plain-text greeting with a branded card
What's inside
Built with Discord's Components V2 layout system — the accent-striped card the Discord embed builder produces in place of a legacy embed:
- Container with accent stripe
- Formatted text
- Media gallery
- Separator
- Buttons
Tips
- Every piece of text, colour, emoji and link is editable — open it in DWEEB and make it yours.
- It posts through any Discord webhook. No bot or application-owned webhook is required for this static message.
- Use the measured, high-fidelity preview to check the layout before you send.
How to use this template
- Open it in DWEEB. Click “Use this template free” to load the template into the visual editor — no sign-up, no install.
- Make it yours. Edit the text, colours, emoji, links and images to match your server. The live preview updates as you type.
- Paste your webhook URL. In Discord, go to Server Settings → Integrations → Webhooks, copy a webhook URL, and paste it into DWEEB. See the full webhook workflow.
- Send it. Review the live preview, then hit Send. You can also save it, share it as a link, schedule it, or export the message JSON.
Template JSON and compatibility
This example contains 2 top-level blocks and 10 components including nested blocks. Its text fields use 423 characters of the editor's message budget. The JSON below is exported from the same template that opens in DWEEB.
Import it through DWEEB's JSON panel, or adapt it for your own application. This is a Components V2 payload with flags: 32768, not a legacy embeds array. When executing a webhook yourself, include with_components=true in the request URL. See the Components V2 JSON reference for delivery requirements.
The layout can be sent through an ordinary incoming webhook. Link buttons open their URLs; they do not run a bot action.
Replace example text, images, links and any server placeholders before posting. Discord does not expand DWEEB placeholders when you send raw JSON from your own code. Review allowed mentions before sending text that names users or roles.
Download Discord Welcome Message JSON
View the complete template JSON
{
"username": "Welcome",
"components": [
{
"type": 17,
"accent_color": 5793266,
"components": [
{
"type": 10,
"content": "# 👋 Welcome to the server!\nWe're really glad you found us. Here's everything you need to settle in."
},
{
"type": 12,
"items": [
{
"media": {
"url": "https://dweeb.faizo.net/media/defaults/dweeb-welcome-banner.jpg"
},
"description": "Welcome banner"
}
]
},
{
"type": 14,
"divider": true,
"spacing": 2
},
{
"type": 10,
"content": "**Get started in three steps**\n- 📜 Read the **#rules** so everyone stays on the same page\n- 🎭 Pick up your roles in **#get-roles**\n- 💬 Say hi and introduce yourself in **#general**"
},
{
"type": 10,
"content": "Stuck on anything? A friendly mod is only a message away."
},
{
"type": 1,
"components": [
{
"type": 2,
"style": 5,
"label": "📖 Community guide",
"url": "https://example.com/guide"
},
{
"type": 2,
"style": 5,
"label": "💬 Jump into chat",
"url": "https://discord.gg/2wB7rHRDg2"
}
]
}
]
},
{
"type": 10,
"content": "-# Glad to have you — enjoy your stay! 💜"
}
],
"flags": 32768
}Use this template in a bot
The same message as a discord.js or discord.py bot sends it. Both are generated from the template above by DWEEB's code generator; for a cURL, JavaScript or Python webhook request, open the template with the Code tab.
discord.js code
// Components V2 message — discord.js v14.19 or newer.
// Designed in DWEEB (https://dweeb.faizo.net). Edit the text, then send.
const {
ActionRowBuilder,
ButtonBuilder,
ButtonStyle,
ContainerBuilder,
MediaGalleryBuilder,
MediaGalleryItemBuilder,
MessageFlags,
SeparatorBuilder,
SeparatorSpacingSize,
TextDisplayBuilder,
} = require("discord.js");
const container = new ContainerBuilder()
.setAccentColor(0x5865f2)
.addTextDisplayComponents(
new TextDisplayBuilder().setContent(
[
"# 👋 Welcome to the server!",
"We're really glad you found us. Here's everything you need to settle in.",
].join("\n"),
),
)
.addMediaGalleryComponents(
new MediaGalleryBuilder().addItems(
new MediaGalleryItemBuilder()
.setURL("https://dweeb.faizo.net/media/defaults/dweeb-welcome-banner.jpg")
.setDescription("Welcome banner"),
),
)
.addSeparatorComponents(
new SeparatorBuilder().setDivider(true).setSpacing(SeparatorSpacingSize.Large),
)
.addTextDisplayComponents(
new TextDisplayBuilder().setContent(
[
"**Get started in three steps**",
"- 📜 Read the **#rules** so everyone stays on the same page",
"- 🎭 Pick up your roles in **#get-roles**",
"- 💬 Say hi and introduce yourself in **#general**",
].join("\n"),
),
new TextDisplayBuilder().setContent(
"Stuck on anything? A friendly mod is only a message away.",
),
)
.addActionRowComponents(
new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setStyle(ButtonStyle.Link)
.setLabel("📖 Community guide")
.setURL("https://example.com/guide"),
new ButtonBuilder()
.setStyle(ButtonStyle.Link)
.setLabel("💬 Jump into chat")
.setURL("https://discord.gg/2wB7rHRDg2"),
),
);
const text = new TextDisplayBuilder().setContent(
"-# Glad to have you — enjoy your stay! 💜",
);
// The design also sets username "Welcome" — webhook-only options that
// channel.send() has no equivalent for. WebhookClient#send accepts them.
// Send it from any async context: a command handler, an event, a script.
await channel.send({
components: [container, text],
flags: MessageFlags.IsComponentsV2,
});discord.py code
# Components V2 message — discord.py 2.6 or newer.
# Designed in DWEEB (https://dweeb.faizo.net). Edit the text, then send.
import discord
from discord import ui
def build_view() -> ui.LayoutView:
view = ui.LayoutView(timeout=None)
view.add_item(
ui.Container(
ui.TextDisplay(
"# 👋 Welcome to the server!\n"
"We're really glad you found us. Here's everything you need to settle in.",
),
ui.MediaGallery(
discord.MediaGalleryItem(
"https://dweeb.faizo.net/media/defaults/dweeb-welcome-banner.jpg",
description="Welcome banner",
),
),
ui.Separator(visible=True, spacing=discord.SeparatorSpacing.large),
ui.TextDisplay(
"**Get started in three steps**\n"
"- 📜 Read the **#rules** so everyone stays on the same page\n"
"- 🎭 Pick up your roles in **#get-roles**\n"
"- 💬 Say hi and introduce yourself in **#general**",
),
ui.TextDisplay("Stuck on anything? A friendly mod is only a message away."),
ui.ActionRow(
ui.Button(
style=discord.ButtonStyle.link,
label="📖 Community guide",
url="https://example.com/guide",
),
ui.Button(
style=discord.ButtonStyle.link,
label="💬 Jump into chat",
url="https://discord.gg/2wB7rHRDg2",
),
),
accent_colour=0x5865f2,
),
)
view.add_item(ui.TextDisplay("-# Glad to have you — enjoy your stay! 💜"))
return view
# The design also sets username "Welcome" — webhook-only options that
# channel.send() has no equivalent for. discord.Webhook.send accepts them.
# Send it from any coroutine: a command, an event listener, a task.
await channel.send(view=build_view())Ready to use this template?
Open it in the visual Discord message builder, customize it for your server, and review the result before sending.
Use “Discord Welcome Message” →Frequently asked questions
Can I copy and paste this welcome message?
Yes. The text is plain Discord markdown — a heading, a short greeting and three numbered steps — so you can copy it from the template and paste it into any channel. Posting it through a webhook instead keeps the banner image, the accent colour and a named sender such as "Welcome" rather than a personal account. The welcome messages guide linked on this page has ready-to-paste versions for gaming, creator, study and support servers.
What should a Discord welcome message say?
Three things: who the server is for, the first action to take (read the rules, pick a role, say hello), and where to go with questions. Keep it under a screen tall. Long welcome messages get scrolled past; a banner plus three steps gets read.
Do I need a bot to use this template?
No. This template contains only layout, text, media and link buttons, so any Discord webhook can post it. No application-owned webhook is required.
How do I use this Welcome template?
Click “Use this template free” to load it into the visual editor, change the text, colours and links to fit your server, then pick a channel or paste your Discord webhook URL and hit Send. You can also share it as a single link or export the message JSON.
Is DWEEB free?
Yes. DWEEB's full visual builder is free and needs no account. Working drafts and browser saves are local by default; optional connected features such as schedules, server libraries, AI, and plugins use the data required to work.