An instant messaging and VoIP social platform.
An instant messaging and VoIP social platform. On Nagent, Discord is exposed as a fully-configurable team chat integration that any agent can call — 28 actions, 1 trigger, and OAuth authentication. No code is required to wire Discord into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Discord to automate the kinds of tasks team chat teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Discord also supports 1 event trigger ("New Discord Message Trigger"), which lets your Nagent agents react to Discord activity in real time — for example, kicking off a downstream workflow the moment a relevant event fires.
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Discord into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Triggers are the entry points of agents built on Nagent — pick one to fire your agent the moment a Discord event happens. Webhook triggers run instantly; poll triggers check on an interval you configure. Each shows its configuration parameters and the payload your agent receives.
DISCORD_NEW_MESSAGE_TRIGGERPolls a specific Discord channel for new messages.
Configuration
The ID of the Discord channel to monitor for new messages.
Periodic Interval to Check for Updates & Send a Trigger in Minutes
The number of messages to fetch per poll.
Payload
Type of Discord message event
The Discord message that was created
Every operation an agent can call against Discord, with input parameters and output schema. Drop these into any step of an agent built in Helix.
DISCORD_CONSUME_ENTITLEMENTMarks a one-time purchase consumable entitlement as consumed for a given application. Only applicable to entitlements backed by one-time purchase consumable SKUs.
Input parameters
The ID of the application that owns the entitlement.
The ID of the entitlement to mark as consumed.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_DELETE_TEST_ENTITLEMENTDeletes a currently active test entitlement for a given application. Use this to clean up test entitlements that are no longer needed.
Input parameters
The ID of the application that owns the test entitlement.
The ID of the test entitlement to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_DELETE_USER_APPLICATION_ROLE_CONNECTIONDeletes the current user's application role connection for the specified application. Removes the platform metadata and linked role connection.
Input parameters
The ID of the application to delete the role connection for.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_EDIT_APPLICATION_COMMAND_PERMISSIONSEdits the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error). The authorizing user must have MANAGE_GUILD and MANAGE_ROLES permissions in the target guild.
Input parameters
The unique identifier (snowflake ID) of the guild.
The unique identifier (snowflake ID) of the application command.
List of permission overrides to set for the command in the guild.
The unique identifier (snowflake ID) of the application.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_APPLICATION_COMMAND_PERMISSIONSRetrieves the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error). The authorizing user must have MANAGE_GUILD and MANAGE_ROLES permissions in the target guild.
Input parameters
The unique identifier (snowflake ID) of the guild.
The unique identifier (snowflake ID) of the application command.
The unique identifier (snowflake ID) of the application.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_BATCH_APPLICATION_COMMAND_PERMISSIONSRetrieves permissions for all commands of an application in a guild. Returns a list of permission objects for each command. Requires OAuth2 Bearer token (Bot tokens will error).
Input parameters
The ID of the guild.
The ID of the application.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_CURRENT_USER_APPLICATION_ENTITLEMENTSTool to retrieve entitlements for the current user for a given application. Use when you need to check what premium offerings or subscriptions the authenticated user has access to.
Input parameters
Retrieve entitlements after this entitlement ID (snowflake). Used for forward pagination.
Maximum number of entitlements to return (1-100, default 100).
Retrieve entitlements before this entitlement ID (snowflake). Used for backward pagination.
Optional list of SKU IDs to filter entitlements by.
Whether ended entitlements should be omitted. Defaults to false.
The ID of the application to retrieve entitlements for.
Whether deleted entitlements should be omitted. Defaults to true.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_GATEWAYTool to retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord. Use when you need to connect to the Discord Gateway for real-time events.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_GUILD_TEMPLATETool to retrieve information about a Discord guild template using its unique template code. Use when you need to get details about a guild template for creating new servers.
Input parameters
The unique template code identifier for the guild template to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_GUILD_WIDGETTool to retrieve the guild widget in JSON format. Use when you need to get public information about a Discord guild's widget that can be displayed on external websites. The widget must be enabled in the guild's server settings.
Input parameters
The unique identifier of the guild (snowflake ID).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_GUILD_WIDGET_PNGTool to retrieve a PNG image widget for a Discord guild. Use when you need a visual representation of the guild widget that can be displayed on external websites. The widget must be enabled in the guild's server settings.
Input parameters
Customizes the visual appearance of the widget image. Options: 'shield' (compact badge-style), 'banner1', 'banner2', 'banner3', 'banner4' (various horizontal banner formats).
The unique identifier of the guild (snowflake ID).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_INVITEDEPRECATED: Use DISCORD_INVITE_RESOLVE instead. Tool to retrieve information about a specific invite code. Use when you need to get details about a guild or channel associated with an invite. Response may be null or partial for expired, revoked, or inaccessible invites; do not infer guild membership or channel access from the response.
Input parameters
A single Discord invite code (e.g., "0vCdhLbwjZZTWZLD"). Can be provided as a bare code or as a full URL like "https://discord.gg/0vCdhLbwjZZTWZLD". Only one invite code should be provided. If multiple codes or URLs are present, only the first one will be used.
Whether to include approximate member and presence counts in the response (approximate_member_count and approximate_presence_count fields).
Whether to include the expiration date (expires_at field) in the response. Note: expires_at is typically returned regardless of this parameter.
The ID of a guild scheduled event to include with the invite. When provided, the response will include guild_scheduled_event details.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_MY_GUILD_MEMBERRetrieves the guild member object for the currently authenticated user within a specified guild, including roles, nickname, join date, and permissions.
Input parameters
The unique identifier (snowflake ID) of the Discord guild (server) from which to fetch the member object.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_MY_OAUTH2_AUTHORIZATIONRetrieves current OAuth2 authorization details for the application, including app info, scopes, token expiration, and user data (contingent on scopes like 'identify').
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_MY_USERFetches comprehensive profile information for the currently authenticated Discord user, including email if the 'email' scope is granted.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_OPENID_CONNECT_USERINFORetrieve OpenID Connect compliant user information for the authenticated user. Returns standardized OIDC user claims (sub, email, nickname, picture, locale, etc.) following the OpenID Connect specification. Requires OAuth2 access token with 'openid' scope; additional fields require 'identify' and 'email' scopes.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_PUBLIC_KEYSTool to retrieve Discord OAuth2 public keys. Use when you need to verify OAuth2 tokens or access public keys for cryptographic operations.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_SKU_SUBSCRIPTIONRetrieves a specific subscription by ID for a given SKU. Use to check details of a single user subscription.
Input parameters
The ID of the SKU the subscription belongs to.
The ID of the subscription to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_USERRetrieve information about a Discord user. With OAuth Bearer token authentication, this returns the authenticated user's information (use '@me'). With Bot token authentication, you can query any user by their ID. Use this when you need user details like username, avatar, email (if email scope is granted), locale, premium status, or other profile information.
Input parameters
The ID of the user to retrieve. Use '@me' to get the current authenticated user. Note: With OAuth Bearer token authentication, only '@me' is supported. With Bot token authentication, you can query any user ID (snowflake format). If you're unsure, start with '@me'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_GET_USER_APPLICATION_ROLE_CONNECTIONRetrieves the application role connection for the currently authenticated user for a specified application. Requires the role_connections.write OAuth2 scope.
Input parameters
The unique identifier (snowflake ID) of the application to get the role connection for.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_INVITE_RESOLVETool to resolve and retrieve information about a Discord invite code. Use when you need to get details about a guild, channel, or event associated with an invite code.
Input parameters
The invite code to resolve (e.g., "discord-api" for vanity URLs, "abc123xyz" for regular invite codes, or a full URL like "https://discord.gg/abc123xyz").
Whether to include approximate member counts (approximate_member_count and approximate_presence_count) in the response.
Whether to include the expiration date (expires_at) in the response. Note: This parameter is deprecated as expires_at is now always returned.
The guild scheduled event ID to include with the invite. When provided with a valid event ID, returns guild_scheduled_event data in the response.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_LEAVE_GUILDLeaves a Discord guild (server) on behalf of the currently authenticated user.
Input parameters
The unique identifier (snowflake ID) of the guild to leave.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_LIST_MY_CONNECTIONSRetrieves a list of the authenticated user's connected third-party accounts on Discord.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_LIST_MY_GUILDSLists the current user's guilds, returning partial data for each; primarily used for displaying server lists or verifying memberships.
Input parameters
Get guilds after this guild ID.
Max number of guilds to return (1-200, default 200).
Get guilds before this guild ID.
Include approximate member and presence counts for each guild.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_LIST_SKU_SUBSCRIPTIONSLists all subscriptions for a given SKU. When using a Bot token, the user_id query parameter is required. Returns paginated subscription objects.
Input parameters
Retrieve subscriptions after this subscription ID for forward pagination.
Maximum number of subscriptions to return (1-100, default 100).
Retrieve subscriptions before this subscription ID for backward pagination.
The ID of the SKU to list subscriptions for.
The user ID to filter subscriptions for. Required when using a Bot token; not needed for OAuth2.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_LIST_STICKER_PACKSTool to retrieve all available Discord Nitro sticker packs. Use when you need to list or browse official Discord sticker packs.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_MODIFY_CURRENT_USERModifies the currently authenticated Discord user's profile. Can update username (limited to 2 changes per hour) and avatar.
Input parameters
New avatar as a base64-encoded image data URI (e.g., 'data:image/png;base64,...').
New username for the user. Limited to 2 changes per hour by Discord.
Set to true to remove the user's avatar (sends null to Discord API). Cannot be used together with avatar.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
DISCORD_UPDATE_USER_APPLICATION_ROLE_CONNECTIONUpdates the application role connection for the currently authenticated user for a specified application. Requires the role_connections.write OAuth2 scope.
Input parameters
Object mapping application role connection metadata keys to their string-ified values.
The vanity name of the platform a bot has connected (max 50 characters).
The unique identifier (snowflake ID) of the application to update the role connection for.
The username on the platform a bot has connected (max 100 characters).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 98 agents privately built on Nagent that already use Discord.
Build on Nagent
Connect Discord to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Discord, and click "Connect Now." You'll authenticate with OAuth — Nagent handles credential storage and refresh automatically. Once connected, Discord is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Discord is connected, you configure its 28 actions and 1 trigger directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Discord steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Discord event fires, the agent kicks off automatically.
Every Discord action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Discord ships with 28 pre-built team chat actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Discord together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Discord-based workflows tailored to your business.