Guides
Embed Builder
Build, save, and send rich Discord embeds with the dashboard. No JSON, no IDs.
The dashboard embed builder is the richest way to build, edit, and send embedded messages with Zira. On top of what the /embed slash command offers, it adds live preview, save-and-edit, and a join/leave variant with placeholder substitution.
Open it from your server's dashboard at Tools → Embed Builder, or jump straight to a typed flow from the Reaction Roles, Button Roles, or Messages pages.
Prefer slash commands? /embed is still supported: use /embed builder for an interactive builder in Discord, or /embed json <json_content> to post an embed from raw JSON. Existing Zira-sent embeds remain editable from the dashboard, the support server, or with /edit on the bot.
Modes#
The builder runs in three flavors. Each one shares the same option set; what differs is how the message is delivered and where it lives.
| Mode | When | Destination | Wire-up |
|---|---|---|---|
| Standalone | Tools → Embed Builder | A channel you pick | Just send, or pin as the active message for reaction or button roles |
| Join Message | Messages page → Add → Embed | Your configured join channel | Saved into the join message pool |
| Leave Message | Messages page → Add → Embed | Your configured leave channel | Saved into the leave message pool |
Plain Content vs Embed#
Every Zira message has two parts: the plain content above the embed (up to 2000 characters, supports markdown and mentions) and the embed itself. You can ship either alone, or both together.
The Include embed toggle at the top of the builder controls whether the embed is part of the payload. Turning it off lets you send a plain text message without losing your embed draft.
Embed Options#
Every option below is supported in every mode.
Color#
Hex color (#rrggbb) on the left edge of the embed. Default is Zira's cyan (#00e5ff). The color picker accepts a typed hex or a click-to-pick swatch.
Title#
Up to 256 characters. Optional URL turns the title into a link. Markdown is not supported in titles.
Description#
Up to 4096 characters. Full Discord markdown: bold, italics, strikethrough, code blocks, hyperlinks, lists, quotes.
Author#
| Field | Limit | Notes |
|---|---|---|
| Name | 256 | Shown above the title |
| URL | (URL) | Optional; turns the name into a link |
| Icon URL | (URL) | Optional; rendered as a circular avatar |
Image and Thumbnail#
| Field | Position | Notes |
|---|---|---|
| Image URL | Full-width below the description | Loaded by Discord, so direct hot-link links work best |
| Thumbnail URL | Small, top-right of the embed | Same caveat |
Fields#
Up to 25 fields per embed. Each field has:
- Name, up to 256 characters
- Value, up to 1024 characters (markdown supported)
- Inline toggle. Inline fields lay out three-per-row; non-inline fields span the full width and break the row.
Empty fields (blank name and blank value) are stripped before send. You can leave a draft slot empty without it shipping.
Footer#
| Field | Limit | Notes |
|---|---|---|
| Footer text | 2048 | Bottom-left of the embed |
| Footer icon URL | (URL) | Small circular icon next to the text |
| Show timestamp | toggle | Adds the current ISO timestamp to the footer at send time |
Live Preview#
The right pane is a Discord-faithful preview that updates as you type. It lays out inline fields three-per-row, applies your color, renders markdown, and clamps every field to the same limits Discord enforces.
In Join and Leave modes the preview also substitutes placeholders against your own profile so you see what a real message will look like.
Placeholders (Join and Leave only)#
These tokens get replaced when Zira sends the message.
| Placeholder | Replaced with | Example |
|---|---|---|
$user | The member's username | JakeyPrime |
$mention | A clickable user mention | @Profit |
$id | The member's user ID | 165047934113677312 |
$guild | The server's name | Team Hydra |
$membercount | Member count after the join or leave | 30847 |
The placeholder legend in the builder is click-to-insert: focus a text field, then click the token to drop it at the cursor.
$discriminator was removed in 2023 when Discord retired four-digit discriminators. Use $user for the username or $mention for a ping.
Importing An Existing Message#
Already have an embed somewhere you'd like to fork or edit? Open the builder in edit mode (the Edit existing card on the Tools → Embed Builder page) and paste either:
- A full Discord message URL, like
https://discord.com/channels/.../... - A message ID, with the source channel selected from the dropdown
The builder pulls the message and loads it into the form. If Zira sent the message originally, Edit current message is checked by default. Saving will edit the live message in place. Uncheck it to fork the embed into a new send to a different channel.
Wire-up Options (Standalone Mode)#
When you send from the standalone builder, pick one of three follow-ups:
- Just send. Posts the message and returns to Tools.
- Use as reaction-role target. Posts the message, marks it as the active reaction-role message, and jumps you to the Reaction Roles page.
- Use for button roles. Posts the message and drops you into the Button Roles builder with it selected, ready to add buttons (or a select menu) that run chains of role actions.
These shortcuts are equivalent to setting /channel and /message set by hand.
Permissions Zira Needs#
The embed builder uses Zira's standard permissions. Same as the slash commands:
Send MessagesandEmbed Linksin the destination channel.Read Message Historyin the destination channel for the import flow.Manage Messagesis only needed if you also use the message for reaction roles (so Zira can clean up consumed reactions).
See Permissions for the full list.
Tips#
Zira's embed builder accepts hex colors, but you can also paste in a hex from a brand kit or another bot's embed and the swatch will match.
In Join and Leave modes, switching the Type between join and leave does not lose your draft. The form persists; only the destination changes.