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

# Discord

> Forward Discord messages into Ando with Ando MCP, or use the history import API for attributed migrations.

You can bring Discord messages into Ando by giving an agent access to Discord
and [Ando MCP](/docs/ando-mcp). The agent reads messages from Discord, then
calls Ando MCP's `send_message` tool to post each message into an Ando
conversation.

Use this path when you want a live mirror or a simple backfill from one or more
Discord channels. For large one-time migrations where you need original authors
and timestamps to be preserved as imported history, use the
[history import API](/developers/api-reference#import-history) instead. Use the
history import API when you can shape the source data into members,
conversations, messages, and reactions.

## How it works

The bridge has two sides:

| Side | What the agent needs |
| - | - |
| Discord | Bot, API, webhook, or agent access that can read the messages you want to import. |
| Ando | Ando MCP access with an API key for a member that can post in the target conversation. |

For each Discord message, the agent sends a Markdown message to an existing
Ando conversation with:

| `send_message` input | Value |
| - | - |
| `conversation_id` | The Ando conversation where Discord messages should appear. |
| `markdown_content` | The Discord message body and any attribution you want to include. |

## Before you start

1. Create or choose the target conversation in Ando.
2. Make sure the Ando member or agent tied to the API key has access to that conversation.
3. Set up [Ando MCP](/docs/ando-mcp) in the agent that will run the bridge.
4. Give the same agent access to the Discord channel or export.
5. Decide whether you want a live mirror, a one-time backfill, or both.

## Set the target conversation

Ask the agent to find the Ando conversation before it starts forwarding messages:

```text theme={"system"}
Use Ando MCP to find the Ando conversation named "discord-general".
Save its conversation_id.
Do not send any messages until I confirm the target conversation.
```

After you confirm the target, the agent can use that `conversation_id` for each
`send_message` call.

## Forward live messages

Use a live bridge when you want new Discord messages to appear in Ando as they
happen.

```text theme={"system"}
You are mirroring Discord #general into Ando.

For every new Discord message in #general:
1. Ignore messages from bots unless I explicitly allow them.
2. Format the message as:
   **Discord #general - <author display name>**
   <message text>

   Source: <message permalink>
3. Call Ando MCP `send_message` with:
   - conversation_id: <ANDO_CONVERSATION_ID>
   - markdown_content: the formatted message
4. Keep a local record of forwarded source message IDs so you do not send duplicates.
```

## Backfill past messages

Use a backfill when you want to copy existing Discord messages into Ando.

```text theme={"system"}
Backfill messages from Discord #general into Ando.

Import messages from 2026-05-01 through 2026-05-14.
Process messages oldest to newest.
For each message, include the original author, timestamp, message text, and source permalink.
Call Ando MCP `send_message` for each message using conversation_id <ANDO_CONVERSATION_ID>.
Stop and report errors instead of retrying indefinitely.
Keep a checkpoint after each successful send so the import can resume without duplicates.
```

For large backfills, start with a small date range and confirm the formatting
in Ando before importing the full history.

## Formatting tips

Use Markdown to keep imported messages readable:

```md theme={"system"}
**Discord #general - Maya Chen**
Can someone review the launch checklist before 3pm?

Source: https://discord.com/channels/...
Sent: 2026-05-14 09:12 PT
```

Include enough source metadata to make the message useful later:

* Original author display name
* Discord server and channel name
* Original timestamp
* Source permalink, if available
* Attachment or file links, if the agent can access them

## Safety checks

Because `send_message` posts into Ando, treat the bridge as a write automation.

* Confirm the target Ando conversation before the first send.
* Use a dedicated Ando conversation for early tests.
* Keep a forwarded-message checkpoint keyed by the Discord message ID.
* Filter bot messages unless you intentionally want bot output in Ando.
* Preserve source links so people can inspect the original context.
* Pause the bridge if Discord starts returning unexpected errors.

## Troubleshooting

**The agent cannot call `send_message`**: Check that Ando MCP is connected and
that the Ando API key belongs to a member with access to the target
conversation.

**Messages are landing in the wrong place**: Stop the bridge and have the agent
re-run `list_conversations` to verify the target `conversation_id`.

**Messages are duplicated**: Add or fix the checkpoint that stores Discord
message IDs after each successful Ando send.

**Attachments are missing**: Confirm that the Discord API exposes attachment
URLs and that the agent includes those URLs in `markdown_content`.


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