discord-bots

n8n community node package for building Discord bots with messages, reactions, slash commands, and interactions

Package Information

Released: 2 mo ago
Downloads: 291 weekly / 1,154 monthly
Latest Version: 1.9.2

Documentation

# n8n-nodes-discord-bots

n8n community node for building Discord bots using discord.js.

Requirements

  • n8n with community node support

Install

n8n Community Nodes (recommended)

  1. In n8n go to Settings > Community Nodes.
  2. Select Install.
  3. Enter n8n-nodes-discord-bots.
  4. Accept the risk notice and install.

Manual install

In your n8n installation directory:

npm install n8n-nodes-discord-bots

Discord Bot Setup

  1. Create an app in the Discord Developer Portal.
  2. Add a bot user under Bot.
  3. Enable the following Gateway Intents:
    • Message Content Intent (Privileged) - required to read message body text
    • Server Members Intent (Privileged) - required to use role filters and the Fetch Member action
    • Presence Intent (Privileged) - required for status and clientStatus fields on the Fetch Member action
    • Guild Message Polls - required for poll vote triggers
  4. Invite the bot to your server using OAuth2 with scopes:
    • bot
    • applications.commands
  5. Grant the bot the required permissions:
    • Read Messages / View Channels
    • Send Messages
    • Send Polls (if using poll operations)
    • Read Message History
    • Add Reactions (if using reaction events)
  6. Create Discord Bot API credentials in n8n:
    • Client ID - from the OAuth2 section of your application
    • Bot Token - from the Bot section of your application

Features

Feature Area Description
Message Triggers Trigger on new channel messages, DMs, or poll votes
Interaction Triggers Trigger on slash commands, button/select interactions, context menu commands, and modal submissions
Member & Message Event Triggers Trigger on member join/leave/update, bans, and message edits/deletes
Messaging Operations Send and update messages with a visual builder or raw JSON - supports embeds, buttons, select menus, polls, and Discord Components v2 layout blocks
Command Registration Register slash commands and context menu (right-click) commands, guild-scoped or global
Interaction Responses Respond to slash commands, buttons, select menus, context menus, and modal submissions
Thread Management Create, edit, and manage threads; triggers for thread creation, updates, and deletion
Voice State Trigger on users joining, leaving, moving between, or changing state in voice channels
Scheduled Events Create, edit, delete, and list guild scheduled events; triggers for event lifecycle
Bot Presence & Status Set bot online status and activity text (Playing/Watching/Listening/Streaming/Competing)
Workflow Patterns Common workflow patterns and example setups

Notes

  • One Discord WebSocket connection is maintained per unique bot token. All n8n workflows sharing the same credentials reuse that single connection. To run a second independent bot, create a second Discord application with its own token.
  • Discord interaction responses must be sent within 3 seconds of receipt. Enable Auto Acknowledge Interactions on the trigger so the workflow has up to 15 minutes to respond via Respond to Interaction.
  • Embeds and Discord Components v2 layout blocks cannot be mixed in the same message or interaction response; the node will reject mixed payloads with a clear validation error.
  • Guild-scoped slash commands register instantly. Global commands can take up to 1 hour to appear in Discord.
  • The Message Content Intent must be enabled in the Discord Developer Portal for the bot to receive message text.

Telemetry

This node includes a minimal telemetry feature to help me understand how many active installations and updates occur.

What is collected?

  • Version: The version of the node currently installed.
  • Node Type: Whether it's the regular node or the trigger node.
  • Instance ID: A persistent, anonymous unique identifier stored locally in your n8n configuration directory (~/.n8n/n8n-nodes-discord-bots-telemetry.json).

Privacy

  • No private data (credentials, message content, guild IDs, user IDs, etc.) is ever collected.
  • Enabled by default: Telemetry is opt-out and is enabled unless the user explicitly disables it in the Discord Bot API credential settings.
  • Minimal impact: Telemetry only pings the server once per version update. It does not ping every time a workflow runs.

Changelog

Version Highlights
v1.9.2 Forum and Media channel support - channel filters on triggers now match forum posts; new Create Forum Post action (#26)
v1.9.1 Refactor pass — ~600 lines removed (zero behaviour change): shared schema consts, helper extraction, dead code deletion
v1.9.0 Discord Components v2 layout blocks (Text Display, Section, Separator, Container, Media Gallery, File) in Send Message, Update Message, and Respond to Interaction; slash command fixes (#21–#24)
v1.8.0 Message Polls - send native polls and trigger on poll votes
v1.7.0 Bot Presence & Status - set bot online status and activity text
v1.6.1 Docs restructure - slim README with feature-area sub-docs; encoding fixes
v1.6.0 Context Menu Commands - register and trigger on right-click user/message commands
v1.5.4 Reply features - Bot Mentioned or Replied To pattern; referencedMessage field on message events
v1.5.3 Fetch Member enhancements - globalName, accountCreatedAt, presence data, and more
v1.5.2 AI Tool support - Discord Bot node exposed as an n8n AI Agent tool
v1.5.0 Channel & Role Management - 7 new operations
v1.4.0 Guild Scheduled Events - triggers and CRUD operations
v1.3.0 Voice State Trigger
v1.2.0 Thread Management - triggers and operations
v1.1.4 Message management, Send Modal, Member management, member/message triggers

See ROADMAP.md for the full feature gap analysis and upcoming milestone planning.

Discussion