Execute Webhook

discord.execute_webhook
ActionChat & messagingconnection required

Calls the Discord API with the connection's credentials.

Post to a Discord webhook URL — the full-surface send that needs no bot.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Discord
Secret shape
the bot token (sent as "Authorization: Bot <token>") for every op except discord.execute_webhook, whose secret is the webhook URL
Resolved by
config.connection_id, else node.connection_id

Configuration

9 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
content
Message text, up to 2000 characters. Supports {{ }} expressions.
stringNo—≤ 2000 characters—
embeds
Discord embeds as a JSON array of at most 10 embed objects, each with any of title, description, url, color, footer, image, author and fields.
arrayNo—array of object—
username
Override the webhook's display name for this message.
stringNo———
avatar_url
Override the webhook's avatar for this message.
stringNo—url format—
tts
Read the message aloud for members with TTS on.
booleanNo———
allowed_mentions
Which mentions may actually ping, as a JSON object — {"parse": []} suppresses every @everyone and @role ping in the message.
objectNo——{"parse":[]}
thread_id
Post into this existing thread in the webhook's channel.
stringNo———
thread_name
In a forum or media channel, create a thread with this name.
stringNo—≤ 100 characters—
wait
Wait for Discord to confirm and return the created message.
booleanNotrue——
  • At least one of content, embeds must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "allowed_mentions": {
    "parse": []
  },
  "wait": true
}

Output

One shape.

result

FieldTypeExample
ok
True once Discord accepted the post.
booleantrue
id
Id of the created message (only when 'wait' is on).
string—
channel_id
Channel the message landed in.
string—
content
The message text, as Discord stored it.
string—
timestamp
When the message was posted (ISO-8601).
string—
{
  "channel_id": "",
  "content": "",
  "id": "",
  "ok": true,
  "timestamp": ""
}

Notes

  • This is the no-bot path: the connection's secret is a webhook URL (Channel → Integrations → Webhooks → Copy Webhook URL) and the token inside that URL is the whole credential — no bot, no invite, no permissions, and it can only post to the one channel it was made in.
  • discord.send_message is the older, smaller version of this op and stays unchanged; use this one for threads, avatars, TTS or mention control.
  • With 'wait' off Discord answers 204 and the output carries only ok.

See Execute Webhook run in a workflow.

In a technical demo we add the Discord connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.