Discord Send icon

Discord Send

Sends messages, embeds and prompts to Discord

Overview

The "Discord Send" node allows you to send messages, embeds, and interactive prompts (such as buttons or selects) to Discord channels directly from your n8n workflows. It supports sending plain messages, rich embeds, interactive button/select prompts, and performing certain actions like removing messages or managing user roles. This node is useful for automating notifications, collecting responses from users, moderating channels, or updating bot status/activity in Discord.

Practical examples:

  • Sending automated alerts or updates to a Discord channel.
  • Creating interactive polls or feedback prompts using buttons or select menus.
  • Moderating channels by bulk-removing recent messages.
  • Assigning or removing roles from users based on workflow logic.
  • Updating the bot's activity status dynamically.

Properties

Name Meaning
Replace the trigger placeholder If enabled, replaces a previous placeholder message set by this or another Discord node.
Send to the trigger channel Sends the message to the same channel where the workflow was triggered.
Send to Lets you specify which text channel(s) to send the message to. Options are loaded dynamically.
Type Selects the type of interaction: Message, Button Prompt, Select Prompt, Action, None.
Action When "Action" type is selected, choose what action to perform: Remove messages, Add role to user, Remove role from user.
User ID The ID of the user to add/remove a role from (used with relevant actions).
Which roles Specify one or more roles to add/remove from the user (used with relevant actions).
How many? Number of last messages to remove when using the "Remove messages" action (max 150, <4 weeks old).
Content The text content of the message or prompt. Required for button/select prompts.
Embed Enables creation of rich embed messages.
Color Sets the color of the embed sidebar.
Title Title of the embed message.
URL URL linked to the embed title.
Author name Name displayed as the author in the embed.
Author icon URL or base64 Image for the author (URL or base64).
Author URL Link for the author name.
Description Description text in the embed.
Thumbnail URL or base64 Thumbnail image for the embed (URL or base64).
Fields Add multiple fields to the embed, each with a title, value, and inline option.
Image URL or base64 Main image for the embed (URL or base64).
Buttons Add up to 5 interactive buttons (label, value, style) for button prompts.
Select Add options for select prompts (label, description, value).
Persistent Keeps button/select prompts visible after workflow completion.
Min select Minimum number of options that must be selected in a persistent select prompt.
Max select Maximum number of options that can be selected in a persistent select prompt.
Message ID ID of the message to update (for persistent prompts); if not set, sends as new.
Footer text Text shown in the embed footer.
Footer icon URL or base64 Icon for the embed footer (URL or base64).
Displayed date Date/time to display in the embed.
Timeout Time (seconds) to wait for a response to button/select prompts; 0 means wait indefinitely.
Restrict to triggering user Only the user who triggered the workflow can interact with the prompt.
Restrict to mentioned roles Only users with specified roles can interact with the prompt.
Files Attach up to 5 images to the message (URL or base64).
Mention roles Roles to mention in the message.
Placeholder Placeholder message shown while waiting for a prompt response.
Bot customization Enable to customize the bot's activity and status.
Bot activity Text for the bot's "Now Playing" activity.
Bot activity type Type of activity: Playing, Streaming, Listening, Watching.
Bot status Bot's online status: Online, Idle, Do not disturb, Invisible.

Output

The node outputs an array of objects, each with a json field containing:

{
  "value": "...",        // Value returned by the operation (e.g., user selection, action result)
  "channelId": "...",    // Channel ID where the message/action occurred
  "userId": "...",       // User ID involved (if applicable)
  "userName": "...",     // Username involved (if applicable)
  "userTag": "...",      // User tag (e.g., username#1234)
  "messageId": "...",    // ID of the sent/updated message
  "action": "..."        // Action performed (if applicable)
}
  • Not all fields will be present for every operation; their presence depends on the chosen type and action.
  • If the node is used for prompts (button/select), the value field contains the user's response.
  • For actions, action describes what was performed.

If binary data is output (e.g., file attachments), it is handled internally and not exposed directly in the output structure.


Dependencies

  • External Service: Requires a Discord bot and valid Discord API credentials (discordApi).
  • n8n Configuration: The bot must be running and have access to the target channels/roles.
  • Environment: No special environment variables required beyond standard n8n credential setup.

Troubleshooting

Common Issues:

  • Missing Credentials: If Discord API credentials are not set or invalid, the node will throw an error during execution.
  • Bot Permissions: The bot must have appropriate permissions in the target channel (send messages, manage roles, etc.).
  • Channel/Role Not Listed: If channels or roles do not appear in dropdowns, ensure the bot is running and has access; try reopening the node modal.
  • Message Not Sent: If neither a channel nor a trigger channel is specified, the node may not send a message.
  • API Limits: Removing too many messages at once or trying to remove messages older than 4 weeks will fail due to Discord API restrictions.

Error Messages:

  • "Error: [error details]": Indicates a problem with the Discord API connection or request. Check credentials and bot status.
  • "Cannot read property '...' of undefined": Likely caused by missing required input properties for the selected operation/type.

Resolution Steps:

  • Double-check all required fields for the selected type/action.
  • Ensure the bot is online and has necessary permissions.
  • Reopen the node configuration modal to refresh dynamic options.

Links and References

Discussion