Discord
September 12, 2026 · View on GitHub
The Discord node sends a message to a Discord channel via an Incoming Webhook. Use it for alerts, workflow notifications, bot-like replies, and error reporting.
Overview
| Property | Value |
|---|---|
| Inputs | 1 |
| Outputs | 1 |
| Output | $nodeLabel.status, $nodeLabel.response, $nodeLabel.message, $nodeLabel.username, $nodeLabel.avatar_url |
Parameters
| Parameter | Type | Description |
|---|---|---|
credentialId | UUID | discord credential containing the incoming webhook URL |
message | expression | Outgoing message text. Supports expressions. |
username | expression | Optional display name override for this message |
avatarUrl | expression | Optional avatar URL override for this message |
Setup
- Create a Discord Webhook credential
- Add the Discord node to your workflow
- Select the credential
- Set
messageto the outgoing text or a template built from upstream data - Optionally override the display
usernameandavatarUrl
Example
{
"type": "discord",
"data": {
"label": "notifyDiscord",
"credentialId": "discord-credential-uuid",
"message": "Workflow completed: $input.text",
"username": "Heym Bot",
"avatarUrl": "https://example.com/heym.png"
}
}
Output Fields
| Expression | Description |
|---|---|
$nodeLabel.status | HTTP status code returned by Discord, usually 204 on success |
$nodeLabel.response | Raw response body returned by the Discord webhook |
$nodeLabel.message | Message text that Heym sent |
$nodeLabel.username | Username sent with the webhook, if provided |
$nodeLabel.avatar_url | Avatar URL sent with the webhook, if provided |
Common Patterns
- Use it alongside Discord Trigger when you want an extra channel post beyond the interaction reply
- Send failure notices from Error Handler
- Post summaries generated by LLM or Agent
Egress Safety
- The webhook URL stored in the credential must use
http://orhttps://and resolve only to public addresses. Loopback, private, link-local, multicast, and cloud-metadata destinations are blocked. - Heym validates the resolved addresses and pins the connection target before sending, so a DNS answer cannot move the request onto an internal address after the check. Environment proxies are disabled while the guard is active, and redirects are not followed.
- Deployments that post to an internal webhook receiver can set
HEYM_HTTP_ALLOW_PRIVATE_URLS=trueon a trusted self-hosted instance. Keep the default on hosted or multi-tenant deployments.
Upgrade note for v0.0.109: this check is new for Discord. A credential whose webhook URL points at loopback or a private address is refused unless the setting above is enabled.
Related
- Discord Trigger – Start a workflow from incoming Discord interactions
- Third-Party Integrations – Discord credential setup
- Credentials Tab – Add and manage
discordcredentials - Node Types – Overview of all node types