> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neoagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord API

> Post messages and approval requests in your Discord channels and direct messages, read the answers, and manage your server

The common use is a ticket alert or an approval request in your team's Discord: an agent posts in a channel or messages a technician directly, and on a later run reads the replies and reactions that answer it.

> [!NOTE]
>
> Automatically enabled when you configure Discord permissions in your agent workflow.

## What It Does

* Post a message in a channel, a thread or a forum, with embeds, mentions and files, and edit or delete it
* Send a person a direct message about a ticket
* Post an approval request, add ✅ and ❌ reactions to it, and on a later run or turn read who reacted or replied, counting only the approvers your instructions name
* Read and search messages, replies, reactions, pins and threads
* Find servers, channels, members and roles by name
* Create, change and delete channels and threads; time out, kick and ban members; give and take roles; create invites; schedule server events
* Read the server's audit log, its webhooks and the bot's own application

## Approvals in Discord

Discord answers an approval request with a reaction or a reply, which the agent reads on its next run or turn. Neo does not wait inside a run for it, and Neo does not receive clicks on Discord buttons. The agent writes the request's channel and message ids in an internal note on the ticket, so the next run finds it, and acts only when an approver your instructions name has approved and none has declined.

This is a decision your team makes in Discord. A write your agent's permissions mark as needing a technician's approval still asks for it through Neo's own approval step.

## Permission Groups

| Group | Covers |
| - | - |
| Messages & Threads | Messages in channels, threads and direct messages: read, search, send, edit and delete them, reactions, pins, polls, threads and their members |
| Channels | Channels and categories: read them, and create, rename, move and delete them |
| Members & Moderation | Members and users: read and search them, nicknames, timeouts and voice moves, kicks, bans, pruning inactive members, and AutoMod rules |
| Roles & Access | Roles and the roles each member holds, channel permission overwrites, invites, join requests and onboarding |
| Server Settings | The server and its settings, the servers the bot is in, the audit log, widget, welcome screen, templates and other apps' integrations |
| Events, Emojis & Stickers | Scheduled events, stage instances, emojis, stickers and soundboard sounds |
| Webhooks | Webhooks of a channel or a server, and following an announcement channel |
| Bot & Application | The bot's own user and application, slash commands and their permissions, entitlements, lobbies and gateway information |

A member update that sets roles, and a channel change that sets permission overwrites or syncs them with the category, need **Roles & Access**, whatever path they use.

## Access Profiles

| Profile | What runs on its own | What asks a technician |
| - | - | - |
| **Read Only** | Every read | No write is allowed |
| **Helpdesk** | Every read, and every Messages & Threads write: sending, editing and deleting messages, reactions, pins and threads | No write outside Messages & Threads is allowed |
| **IT Admin** | Every read, and changes to messages, channels, members and events outside [Safety Controls](#safety-controls) | Changes to roles and access, webhooks, server settings and the bot's application, and the changes in [Safety Controls](#safety-controls) |
| **Full Automation** | Every read and write outside [Safety Controls](#safety-controls) | The changes in [Safety Controls](#safety-controls) |

## Safety Controls

| Control | Behavior |
| - | - |
| **Always asks** | Pruning inactive members, and a write that sends a token, a secret or a webhook URL, always ask a technician, whatever the profile |
| **Mentions** | A message Neo sends pings the people and roles it names, and pings @everyone or @here only when the request says so |
| **Credentials in answers** | Neo hides every field named like a token, secret or password, and the token in any webhook URL, before the agent reads an answer, and refuses a change that sends a hidden value back |
| **Refused calls** | Neo never makes its bot leave a server, and does not exchange a game sign-in for a Discord access token |

## Setup

See [Connecting Discord to Neo](/integrations/discord/connecting-to-neo.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.