Discord Embed Builder
Build a message with text, images, link buttons and a coloured accent bar. The preview shows it the way Discord will, and you can send it through a webhook. The builder is free and needs no account.
Send to Discord
Send it from your own bot instead
With Ruination Bots your message comes from a bot with your server's name and avatar, not from a webhook. The same builder writes its welcome messages, ticket panels, giveaways and custom commands. Your bot can edit a message after it is posted, schedule announcements and add buttons that open tickets or give roles.
You get the whole product for 14 days without a card, once per account and once per Discord server. Afterwards the bot stops, nothing is charged and your setup is kept.
How to send an embed with a webhook
- Create a webhookIn Discord, open Server Settings, then Integrations, then Webhooks. Choose New Webhook and pick the channel it posts in. You need the Manage Webhooks permission.
- Copy the webhook URLOpen the webhook and choose Copy Webhook URL. It starts with
https://discord.com/api/webhooks/. - Build the messageAdd text, a container with an accent colour, images or link buttons. Start from a template if you prefer. The preview updates while you type.
- Send itPaste the webhook URL, set a name and an avatar if you want them, and send. The message appears in the channel straight away.
Embeds and Components V2
Discord's newer message format, Components V2, does what classic embeds did and more. A container with an accent colour looks like an embed. Inside it you can stack text, sections with a thumbnail beside them, galleries, separators and buttons in any order.
| Part | What it does | Limit |
|---|---|---|
| Text display | Markdown text: headings, lists, links, mentions, timestamps | 4,000 characters across the message |
| Container | The embed look: a box with an optional accent colour | Counts toward the 40 components |
| Section | Up to three text blocks with a thumbnail or a button beside them | 3 text blocks |
| Media gallery | A grid of images | 10 images |
| Link button | Opens a website | 5 buttons in a row |
| Separator | Space or a line between parts | None of its own |
A message can hold 40 components in total, nested ones included. The builder counts them for you and flags anything Discord would refuse before you send.
What a webhook cannot do
A webhook posts a message and stops there. A button that opens a ticket, gives a role or enters a giveaway waits for a bot to answer the click. A webhook has no bot behind it, so the builder offers link buttons only.
- No buttons that do something, and no select menus.
- No replies to commands or to members.
- No scheduled posts. A webhook sends when you press send.
A bot can do all three. If you would rather not write one, Ruination Bots runs one for you under your own name. See the ticket bot guide for an example of buttons that do something.
Using the JSON in your own bot
The JSON view shows the components array this page sends. Add flags: 32768 to the message, which tells Discord it is a Components V2 message, and post it with discord.js, discord.py or a plain HTTP request. Use Import to load JSON you already have.
Questions
Is the embed builder free?
Yes. It needs no account, and nothing you build is sent to us.
Where do I find my webhook URL?
In Server Settings, Integrations, Webhooks. Open a webhook and choose Copy Webhook URL.
Why can I only add link buttons?
Every other button and every select menu waits for a bot to answer the click. A webhook message has no bot behind it, so members would see "This interaction failed".
Can I change the name and avatar of the message?
Yes. Set a name and an image URL before you send. They apply to that one message.
Is my message saved?
Your draft is kept in this browser, so it is still here when you come back. It is not stored anywhere else. Your webhook URL is never saved.
What is the difference between an embed and Components V2?
Classic embeds have fixed fields: title, description, fields, image, footer. Components V2 lets you place text, images and buttons in any order, and a container gives you the embed look.