# Discord (/docs/integrations/discord)

Connect a Discord server to Sift to pull every channel message, thread, DM, and reaction into a single inbox - then route, reply, and run support tickets without leaving Sift.

## At a glance [#at-a-glance]

| | |
| --- | --- |
| Inbound: Channel messages (per-channel opt-in) | ✅ |
| Inbound: Thread replies | ✅ |
| Inbound: Forum posts | ✅ |
| Inbound: DMs to the Sift bot | ✅ |
| Inbound: Mentions of the Sift bot or roles | ✅ |
| Inbound: Reactions (sentiment + bot triggers) | ✅ |
| Outbound: Reply in-channel or in-thread | ✅ |
| Outbound: Open a support ticket from a message | ✅ |
| Outbound: Slash commands (`/close`, etc.) from Discord | ✅ |
| Multi-server per workspace | ✅ |
| Role-based agent permissions | ✅ |
| Auto-reply bots | ✅ |
| Voice / stage channels (audio) | ❌ |

## Set it up [#set-it-up]

{/* setup-screenshot */}
<figure>
  <img src="/assets/screenshots/discord/setup.png" alt="The Discord settings page in Sift, showing connected accounts (account names redacted for the docs)." />
  <figcaption>Discord settings in Sift - manage connected accounts here.</figcaption>
</figure>

The 30-second overview:

<Embed url="https://www.loom.com/share/6c65abdca5b84af9ae598955d6fdd8c3?sid=61e273a5-84d1-4d72-93b1-3e8ce94bc8eb" />

The setup itself is split across a few sub-pages so each can be linked directly when you're walking through it with your security team or onboarding a new admin:

<Cards>
  <Card href="./setup-a-discord-integration" title="Setup a Discord Integration">
    Step-by-step: invite the Sift bot, pick which channels to monitor, assign queues. Where most admins start.
  </Card>
  <Card href="./discord-permissions" title="Discord Permissions">
    Every permission Sift requests and why. Least-privilege-by-default; useful for security review.
  </Card>
  <Card href="./discord-support-setup" title="Support Channel Setup">
    Configure a Discord channel as a support ticket queue - `/sift` to open a ticket, thread per conversation.
  </Card>
  <Card href="./discord-troubleshooting-and-tips" title="Troubleshooting and Tips">
    Patterns for AI analytics, support flows, and the fixes for the gotchas we've seen most often.
  </Card>
</Cards>

## What you can do [#what-you-can-do]

**Reply in-channel or in-thread** from the inbox - Sift posts back to Discord as the Sift Bot, threaded so the customer sees the answer in context. **Open a support ticket** from any message: turn a question in a community channel into a tracked Sift action with its own thread.

**Use slash commands from Discord** (`/close`, `/sift`, others) to triage without leaving the server. **Trigger workflows** off any signal - channel, role, sentiment, keyword, reaction - and route to the right team. **Apply auto-reply bots** for FAQ patterns or off-hours acknowledgements.

## What Sift ingests [#what-sift-ingests]

Once the Sift Bot is invited to a server and opted in per channel:

- **Channel messages**: top-level posts in any opted-in text channel
- **Thread replies**: both threads inside text channels and forum-channel posts
- **DMs to the bot**: direct messages users send to the Sift Bot
- **Mentions**: `@SiftBot` or any `@role` you've configured as a staff handle
- **Reactions**: captured as signal (sentiment + bot triggers)

Each message carries the author (with Discord roles), the channel + server, and the thread context - usable for filtering, routing, and bot triggers.

## Not supported today [#not-supported-today]

- **Voice + stage channels**: audio surfaces aren't ingested.
- **Reading historical messages older than the bot's join date**: Discord only delivers messages from after the bot was added to the server.
- **Cross-server identity**: Sift treats each server as its own space; the same Discord user in two connected servers is two distinct profiles in Sift today.
