DWEEB
Practical guide · Webhook identity

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

SymptomLikely causeFix
Avatar shows the default silhouetteavatar_url is not a direct image, or the host blocks Discord's fetchUse a direct https://….png/jpg/webp URL you can open raw in a browser
400 error mentioning usernameThe name breaks a substring or length ruleRemove clyde/discord fragments and stay within the length cap
Old avatar keeps appearingCDN caching of the previous image at the same URLPublish the new image under a new URL (or add a version query)
Identity reverts on editEdits cannot carry username/avatar_urlDelete 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 →

Primary sources

Keep learning