> ## 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.

# Import data from other apps

> Choose the right way to bring Slack, Buzz, Discord, Teams, and other history into Ando.

Ando has a few import paths. Choose based on whether you need an ongoing sync,
an attributed history migration, or a lightweight bridge.

| Source or job | Best path | Use it when |
| - | - | - |
| Slack public channels | [Slack sync](/docs/importing-from-slack) | You want selected public Slack or public Slack Connect channels to keep syncing into Ando, with up to 180 days of history backfilled automatically. |
| Buzz communities | [Buzz import CLI](#buzz-import) | You want to move Buzz members, channels, messages, reactions, and files into Ando with original authors and timestamps. |
| Discord or another chat export | [History import API](#history-import-api) | You can shape the source data into members, conversations, messages, and reactions and want imported records to keep original authors and timestamps. |
| Teams, Telegram, support tools, or live event streams | [MCP bridge](/docs/other-messaging-bridges) | You want an agent or automation to forward selected messages into an Ando conversation, usually as a live mirror or a simple backfill. |

## Buzz import

Buzz import is built on Ando's history import API, but the
`@andocorp/buzz-import` CLI handles the Buzz export format, local validation,
safe retries, identity mapping, and resumable uploads.

Create an API key from **Studio** -> **API & Webhooks** with **Import history**
enabled. If the import includes files, also enable file writes. Then run the
CLI from your own machine so your Buzz key stays local:

```bash theme={"system"}
BUZZ_PRIVATE_KEY=nsec1... npx @andocorp/buzz-import export \
  --relay wss://buzz.example.com \
  --out buzz.jsonl

npx @andocorp/buzz-import import --from buzz.jsonl --dry-run

BUZZ_PRIVATE_KEY=nsec1... ANDO_API_KEY=... npx @andocorp/buzz-import import \
  --from buzz.jsonl \
  --map-self \
  --self npub1...
```

Run the dry run first. It previews what will be imported without writing to
Ando. Rerun the same import after an interruption or later to bring over new
messages; stable source IDs prevent duplicates. Keep `BUZZ_PRIVATE_KEY` set for
the write import when the snapshot includes Buzz relay-hosted files. Without it,
the importer can preserve those file references only as links.

## History import API

Use the history import API when you have source history that should become
imported Ando history, not new live messages. It preserves source authors and
timestamps, does not notify anyone, and is idempotent by source record ID.

The API accepts `buzz`, `discord`, or `generic` as the source. Use `generic` for
another tool after you have transformed its data into Ando's import records.

The flow is:

1. `POST /v1/imports` with `source`, `source_workspace_id`, and optionally
   `source_workspace_name`.
2. `POST /v1/imports/{importId}/records` for members and conversations first.
3. Upload attachments with `POST /v1/files` and complete them.
4. `POST /v1/imports/{importId}/records` for messages that reference the ready
   `file_id` values, then post reactions.
5. Inspect skipped records, fix source data if needed, and
   `POST /v1/imports/{importId}/complete`.

History import requires an owner or admin API key with `imports:write`.
Attachment uploads also require `files:write`. See
[Import history](/developers/api-reference#import-history) for the endpoint
details, limits, and Buzz CLI example.

## MCP bridges

Use an MCP bridge when you want an agent to read another app and post selected
messages into Ando with `send_message`. This is the most flexible path for
live forwarding, small backfills, or tools where preserving exact source
identity is less important than making the content available in a channel.

For large one-time migrations, prefer the history import API when you can. It
keeps authorship and timestamps as import metadata instead of formatting them
inside a new message body.

## Slack sync

Slack sync is the first-party Slack path. It brings selected public Slack
channels into mapped Ando channels and continues syncing supported new messages.
Use it instead of a custom bridge when your source is Slack and the channels
you need are supported.


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