> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/integrations/communication/discord.md).

# Discord

Add an AI chatbot to Discord. It answers your team's @mentions in a thread from your docs and past tickets, and works your other apps from there.

eesel's AI agent for Discord is an AI Discord bot your team @mentions in any channel. It answers in a thread from your connected knowledge, and it can also look things up and do work in your other apps from that thread.

Add your AI teammate to your Discord server and it answers your team's questions from your help docs, past tickets and wiki pages. It keeps the conversation going in the thread, so a question and the work that follows it stay in one place.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-d62d26ff3cb84cd90922f35bc722747bac300b27%2Fdiscord-hero.png?alt=media" alt="A Discord server where a player mentions eesel in #support, eesel answers in the thread, and a teammate asks it to tag the thread, which posts an approval card with Approve, Deny and Review in eesel"><figcaption><p>Your agent answering a mention in a Discord thread.</p></figcaption></figure>

## Set up eesel in Discord

{% stepper %}
{% step %}

### Ask your agent to connect Discord

Open the chat in your dashboard and ask your agent to connect Discord. It replies with a link to add eesel to Discord. **Integrations > Discord** has the same link as an **Add to Discord** button.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-03a092ed76f6f0d83a063302821947ff64b011f3%2Fdiscord-connect-chat.png?alt=media" alt="The dashboard chat where the user asks to connect Discord and the agent replies with a link to add eesel to Discord and says it will offer to say hello once connected"><figcaption><p>The agent handing you the link to add it to Discord.</p></figcaption></figure>
{% endstep %}

{% step %}

### Check the workspace and agent

Open the link. eesel first shows which eesel workspace the server joins and which agent answers in it, the agent you started from. Click **Continue to Discord**.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-5849c6d99f535417118dee0955777c3a4398d5c8%2Fdiscord-connect-confirm.png?alt=media" alt="The Add eesel to Discord page showing the eesel workspace and the agent that answers in the server, with Cancel and Continue to Discord buttons"><figcaption><p>eesel confirming the workspace and agent before Discord opens.</p></figcaption></figure>

Each Discord server answers as one agent. Adding eesel to the same server again from a different agent moves the server to that agent.
{% endstep %}

{% step %}

### Pick your server

Discord asks which server to add eesel to. Pick it under **Add to server** and click **Continue**. Discord only lists the servers where you have the Manage Server permission.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-e600998338d0f4e7e73fcd5ca93654c526d21980%2Fdiscord-server-picker.png?alt=media" alt="Discord&#x27;s screen asking to add the eesel app, with the Driftline server picked under Add to server and a Continue button"><figcaption><p>Discord asking which server to add eesel to.</p></figcaption></figure>
{% endstep %}

{% step %}

### Click Authorize

Discord lists what eesel can do in that server, such as view channels, send messages, create threads and read message history. Leave them ticked and click **Authorize**.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-01234aa6364d25fd4092dc2b41b839fb056d0112%2Fdiscord-authorize.png?alt=media" alt="Discord&#x27;s permission screen for eesel on the Driftline server, with View Channels, Send Messages, Send Messages in Threads, Create Public Threads, Embed Links, Read Message History and Add Reactions ticked, and an Authorize button"><figcaption><p>The permissions eesel asks for in your server.</p></figcaption></figure>
{% endstep %}

{% step %}

### Confirm the connection

Back in the dashboard, your agent says Discord is connected, and your server shows under **Integrations** in the sidebar. Connecting changes nothing in your server. eesel only reads until someone mentions it, or you ask it to act. It then offers to say hello in a channel you pick.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-6906fd0f03f6f947cad85c9f50e038b37759a8a9%2Fdiscord-connected-chat.png?alt=media" alt="The dashboard chat where the agent confirms Discord is connected and offers to say hello in the eesel-asks channel, in general, or not at all"><figcaption><p>The agent confirming the connection and offering to say hello.</p></figcaption></figure>

If you say yes, eesel posts one short hello in that channel, telling your team how to reach it.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-1bbf9eb087328b8c9703f88d27f41fa7b3da65ef%2Fdiscord-hello.png?alt=media" alt="The eesel-asks channel in Discord with eesel&#x27;s hello message saying to mention it in any channel and it will reply in a thread"><figcaption><p>eesel's hello in the channel you picked.</p></figcaption></figure>

**Check it worked.** Open **Integrations > Discord**. It shows **Connected** with your server's name. The person who installed eesel is already listed under **Admin permissions**.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-a03b2a4cdda5e5800121c7526705f72260eeaaef%2Fdiscord-settings.png?alt=media" alt="The Discord page in the eesel dashboard showing Connected with the Driftline server, the Admin permissions section with the installer listed by person, and the start of Who eesel can ping"><figcaption><p>The Discord page in eesel, with the installer already listed.</p></figcaption></figure>
{% endstep %}

{% step %}

### Ask it a question

In any channel eesel can see, type @ and pick **eesel**, then ask a question. eesel puts 👀 on your message as soon as it starts working, opens a thread off it, and answers there. Keep asking in that thread and it keeps answering, without another mention.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-554967beabce1350dfbe5691d8e0cf87213d6fd1%2Fdiscord-question.png?alt=media" alt="A Discord channel where a member asks eesel for the best selling products, with eyes on the message and eesel&#x27;s answer in the thread pane, ranked by units sold from the connected store"><figcaption><p>A question answered in a thread, with live data from a connected store.</p></figcaption></figure>
{% endstep %}

{% step %}

### Ask it to do work in your other apps

Mention eesel and ask it to work a ticket in a connected helpdesk, such as drafting a reply, tagging the ticket or assigning it. If an action needs a person's approval, eesel posts an approval card for it in the thread, with what it is about to do.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-d13735cac227fe9805c0df4ecb10cfd3fa00f76a%2Fdiscord-action-request.png?alt=media" alt="A Discord thread where a member asks eesel to draft a reply for a Gorgias ticket, tag it and assign it, and eesel posts an approval card for an internal note with the draft as context"><figcaption><p>An approval card for the drafted reply, posted in the thread.</p></figcaption></figure>

Each action gets its own card, followed by a short summary of what eesel found.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-0514158bac14968c86d82b42e39e4cad7d1647c2%2Fdiscord-approval-cards.png?alt=media" alt="Three approval cards from eesel in a Discord thread, to leave an internal note, tag the ticket and assign it, each with Approve, Deny and Review in eesel, then eesel&#x27;s summary of the ticket"><figcaption><p>One approval card per action, then eesel's summary.</p></figcaption></figure>

Click **Approve** or **Deny** on each card. The card turns green or red and says who decided it. **Review in eesel** opens the same action on your **Approvals** page in the dashboard.

Only somebody who can change things may decide an approval. See [Admin permissions](#admin-permissions). Anybody else gets a private note saying so.
{% endstep %}

{% step %}

### Check the result in the app

Open the app the action ran in and look at the record. In this example, the drafted reply is on the Gorgias ticket as an internal note, and the tags are applied.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-04dd239f0deed68f234f75fa689b36767c179ac9%2Fdiscord-action-result.png?alt=media" alt="A Gorgias ticket with the reply eesel drafted posted as an internal note, signed Left by eesel AI, with callouts on the note and on the eesel-draft and gift-card tags"><figcaption><p>The drafted reply and tags on the Gorgias ticket.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

One Discord server belongs to one eesel workspace. If somebody has already connected that server to a different workspace, eesel refuses and tells you to ask them to disconnect it first.

## Admin permissions

eesel answers anybody in the server. Changing things is different: instructions, files and settings can only be changed from Discord by people you have said count. Everyone else gets answers only.

There are four ways somebody counts, and you can use them together:

| Who                                    | What they can do                                 | Set up where                                             |
| -------------------------------------- | ------------------------------------------------ | -------------------------------------------------------- |
| The person who installed eesel         | Everything, straight away                        | Nothing to do. The install adds them under **By person** |
| Someone added by their Discord user ID | Everything, as the eesel user they are linked to | **By person**, under Admin permissions                   |
| Someone holding a role you picked      | Everything, attributed to their Discord user ID  | **By Discord role**, under Admin permissions             |
| Server admins                          | Everything, while no role is picked              | Discord's own Administrator or Manage Server permission  |

When one of these people asks for an admin change from Discord, such as new instructions or a new automation, it runs straight away, the same as in the dashboard chat. An action you set to ask first still asks.

Both lists sit under **Admin permissions** on the Discord page in eesel. Here a role and a person are added.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-505511144f3a19c8a7b3eb4627c1d1d2c9099564%2Fdiscord-admin-permissions.png?alt=media" alt="The Admin permissions section on the Discord page in eesel, with the Design role under By Discord role and one person under By person, each with a bin to remove it"><figcaption><p>A role and a person added under Admin permissions.</p></figcaption></figure>

### Add a person by their Discord user ID

On the Discord page in eesel, under **Admin permissions**, click **Add person**. Paste their Discord user ID and pick who they are in eesel.

To get somebody's Discord user ID, right-click them in Discord and choose **Copy User ID**. If you do not see that option, turn on **Developer Mode** in Discord's settings, under **Advanced**.

There is no code to send and nothing for the other person to do. Removing a row takes their access away on their next message. An editor can also ask eesel in a Discord thread who can change things, or to add or remove a person.

### Add a role instead

Under **By Discord role**, click **Add role** and pick one. The list is read live from your server. Each role you add gets its own row, and the bin removes it. Changes save on their own.

While no role is picked, server admins count, meaning anyone with Administrator or Manage Server. Adding a role replaces that, so add your admin role too if admins should keep their access. Somebody who counts through a role may have no eesel login, so what they change is attributed to their Discord user ID, not to a named person.

## Who eesel can ping

eesel's messages notify only the people and roles on its ping list. Anyone else it mentions shows as a name with no notification, and @everyone and @here never notify. Editors change the list under **Who eesel can ping** on the Discord page, or by asking eesel.

A role on the list only gets notified if **Allow anyone to @mention this role** is on in that role's settings in Discord.

## How it answers

**In a channel.** Mention **@eesel** in any channel it can see. It puts 👀 on your message, opens a thread off it, and answers in the thread. It never replies at the top level of the channel.

**In the thread.** Keep asking in that thread and it keeps answering, without being mentioned again. Other people can join in too.

**Approvals.** When an action needs a person to say yes, eesel posts a message in the thread with **Approve**, **Deny** and **Review in eesel**. Only somebody who can change things may click Approve or Deny. Anybody else gets a private note saying so. The message then turns green or red and says who decided it.

## Sources, triggers and actions

### Sources

Discord is a place your agent answers, not a knowledge source it indexes. eesel reads the thread it is answering in, as it answers. It does not index your channels, and you cannot search Discord history through eesel.

Its answers come from what else you have connected. See [Integrations](/integrations/overview.md).

### Triggers

| Trigger                                 | Fires when                                                                                                                        | Key                       |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| **When @eesel is mentioned in Discord** | Someone mentions eesel in a channel or thread of the connected server, and on later replies in a thread eesel already answered in | `discord_eesel_mentioned` |

Discord has one trigger, and connecting turns it on. You can add instructions to it, such as which questions to take and how to answer, or pause it, from your **Automations** page.

### Actions

|                       | Action                      | What it does                                                                 |
| --------------------- | --------------------------- | ---------------------------------------------------------------------------- |
| **Respond**           | Send message                | Posts in a thread or channel. Long replies are split into up to six messages |
|                       | React to a message          | Adds an emoji reaction to a message                                          |
| **Read**              | Read thread                 | Reads a thread's recent messages                                             |
|                       | Read channel                | Reads a channel's recent messages                                            |
|                       | List channels               | Lists the text and forum channels eesel can see                              |
|                       | Look up person              | Finds who a Discord user ID belongs to, and their roles in the server        |
|                       | List roles                  | Lists the server's roles, and whether eesel can mention each one             |
| **Admin permissions** | See who can configure eesel | Lists the editor roles and each person added by user ID                      |
|                       | Choose editor roles         | Sets which roles count as editors                                            |
|                       | Add a person                | Links a Discord user ID to an eesel user                                     |
|                       | Remove a person             | Takes a person off the **By person** list                                    |
| **Ping list**         | Read ping list              | Shows who eesel may notify                                                   |
|                       | Choose who eesel can ping   | Adds or removes people and roles on the ping list                            |

The work it does in your other apps comes from their own actions, such as the [Shopify](/integrations/e-commerce/shopify.md) or [Gorgias](/integrations/helpdesks/gorgias.md) actions, with their own approval settings. See [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md).

## Limitations

* **No direct messages.** eesel does not send or answer Discord DMs. It only works in a server.
* **Nothing from Discord becomes knowledge.** It reads the thread it is answering in, and indexes nothing.
* **It only speaks where it is invited.** eesel answers in channels it can see, and joins nothing on its own.
* **One server, one eesel workspace.** A server connected to one eesel workspace cannot be connected to another until it is disconnected there.

## Troubleshooting

<details>

<summary>eesel does not reply to a mention?</summary>

Type @ and pick **eesel** from the list, so Discord sends it a real mention. Check eesel can see the channel: in the channel's settings, its role needs to view the channel and send messages. Check your **Automations** page shows the Discord mention automation on and not paused. Then open the **Activity** page in your dashboard, where every Discord run appears.

</details>

<details>

<summary>Your server is not in Discord's Add to server list?</summary>

Discord only lists servers where you have the Manage Server permission. Ask a server admin to add eesel, or to give you that permission.

</details>

<details>

<summary>eesel says the server is already connected to a different workspace?</summary>

A server answers to one eesel workspace. Ask whoever connected it to disconnect it from their workspace first, then add eesel again from yours.

</details>

<details>

<summary>Clicking Approve says only editors can decide?</summary>

Only people under [Admin permissions](#admin-permissions) can decide an approval. Add them by person or by role on the Discord page in eesel, or ask someone who is already on the list.

</details>

<details>

<summary>A person or role is not notified when eesel mentions them?</summary>

eesel's messages only notify people and roles on its ping list. Add them under **Who eesel can ping**. For a role, also turn on **Allow anyone to @mention this role** in that role's settings in Discord.

</details>

## FAQ

<details>

<summary>How do I add an AI agent to Discord?</summary>

Ask your agent in the dashboard chat to connect Discord, open the link it gives you, pick your server and click **Authorize**. Your team can then @mention eesel in any channel it can see. The steps are in [Set up eesel in Discord](#set-up-eesel-in-discord).

</details>

<details>

<summary>Does connecting Discord change anything in my server?</summary>

No. eesel posts nothing until someone mentions it or you ask it to act. After connecting it offers to say hello in a channel you pick, and posts only if you say yes.

</details>

<details>

<summary>Can the Discord bot answer without being mentioned?</summary>

Only in a thread it has already answered in. There it keeps answering follow-ups without another mention. Anywhere else, mention it. It does not answer direct messages.

</details>

<details>

<summary>Can I use the Discord AI bot for community support?</summary>

Yes. Anyone in the server can mention eesel and get an answer from your knowledge, in a thread off their message. Only people under [Admin permissions](#admin-permissions) can change its instructions, files or settings from Discord. Everyone else gets answers only. See [Internal operations](/use-cases/internal-operations.md).

</details>

<details>

<summary>Does eesel read my Discord messages?</summary>

It reads the thread it is answering in, as it answers, and can read a channel's recent messages when asked. Nothing is copied into eesel as knowledge, and it does not search your server's history.

</details>

<details>

<summary>Can I connect Discord to Claude or ChatGPT?</summary>

Yes, through eesel. Once Discord is connected, you can talk to the same eesel agent from Claude, ChatGPT or Cursor, and it works with the same knowledge and apps. See [Use eesel from Claude and other assistants](/apis-and-developer-resources/use-eesel-from-claude-and-other-assistants.md), [Use eesel from ChatGPT](/apis-and-developer-resources/use-eesel-from-chatgpt.md) and [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).

</details>

<details>

<summary>How do I disconnect Discord from eesel?</summary>

On the Discord page in eesel, open the **⋯** menu at the top right and choose **Uninstall integration**.

</details>

## Related pages

* [Slack](/integrations/communication/slack.md), [Google Chat](/integrations/communication/google-chat.md) and [Microsoft Teams](/integrations/communication/microsoft-teams.md) for the other team chat apps
* [Internal operations](/use-cases/internal-operations.md) for the job your agent does for your team
* [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md) for choosing what your agent may do
* [Integrations overview](/integrations/overview.md) for how sources, triggers and actions fit together
* [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.eesel.ai/integrations/communication/discord.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
