Change a Discord Webhook's Name and Avatar
A webhook's name and avatar are what your members actually see, and Discord gives you two layers of control: a stored profile on the webhook itself, and per-message overrides in the payload. Use the stored profile for a stable identity and overrides when one webhook speaks as several personas.
Two layers of identity
The stored profile is set where the webhook was created — Server Settings → Integrations → Webhooks — or through the Modify Webhook API. It is what any plain payload posts as.
Per-message overrides are the username and avatar_url fields on the execute-webhook payload. They change how that one message appears and nothing else: the stored webhook keeps its own name and avatar, and the next plain payload uses the stored profile again.
Override the identity per message
DWEEB exposes both override fields in the builder, validates their lengths and shows the result in the live preview before anything posts. The raw payload shape:
{
"username": "Release Notes",
"avatar_url": "https://example.com/release-bot.png",
"content": "Version 2.4 is live."
}The rules Discord applies
- Usernames are 1–80 characters; names containing the substrings "clyde" or "discord" (case-insensitive) are rejected.
- avatar_url accepts up to 2048 characters and must be a direct HTTPS image URL — a page that merely contains the image will not work.
- Overrides apply at send time only. Editing an already-posted webhook message cannot change its name or avatar; the edit endpoint does not accept those fields.
- The avatar is served through Discord's CDN, so a changed image behind the same URL can stay cached for a while.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Avatar shows the default silhouette | avatar_url is not a direct image, or the host blocks Discord's fetch | Use a direct https://….png/jpg/webp URL you can open raw in a browser |
| 400 error mentioning username | The name breaks a substring or length rule | Remove clyde/discord fragments and stay within the length cap |
| Old avatar keeps appearing | CDN caching of the previous image at the same URL | Publish the new image under a new URL (or add a version query) |
| Identity reverts on edit | Edits cannot carry username/avatar_url | Delete and repost only if the identity itself must change |
Pick the right layer
Give each long-lived purpose its own webhook with a stored profile — announcements, starboard, build alerts — so the identity survives any tool that posts through it. Reach for per-message overrides when a single pipeline legitimately speaks as multiple voices, such as one CI webhook reporting per-project names and icons.
Put the guide into practice
Open the exact workflow in DWEEB. Nothing posts until you review and confirm it.
Set a webhook identity visually →