---
title: Slack Workspace Import (migrate your Slack into Team Chat)
---
# Slack Workspace Import (migrate your Slack into Team Chat)

## What it is

**Status:** In-development (gated behind `slack-import` unreleased feature). Reveal via **Settings -> Lab -> Slack Workspace Import**, or launch with `AMC_SHOW_SLACK_IMPORT=1`.

A guided 6-step wizard that imports an entire Slack workspace into Team Chat: channels, messages, threads, reactions, pins, files, and members. It maps Slack users to existing Omniscio accounts by email, and anything unmapped is attributed to the importer. All import writes go through a Cloud Function batch relay (admin SDK); the desktop never writes import data directly to Firestore.

This is distinct from the [Slack integration](slack-integration.md), which triages live Slack messages from the inbox. The import wizard is a one-time migration tool that moves historical Slack data into Team Chat permanently.

## Where to find it

Reveal it from **Settings → Lab → Slack Workspace Import**, then use it from Team Chat's import entry.

## How it behaves

### How to use it

1. **Open Team Chat** and look for the import entry point (visible only when the `slack-import` feature flag is on).
2. **Welcome step** -- confirms your workspace and identity; an "Add Token Now" shortcut navigates to Slack OAuth settings if you haven't connected yet.
3. **Discover** -- Omniscio fetches your Slack workspace's channels and members.
4. **Select Channels** -- toggle which channels to import (all selected by default).
5. **Map Users** -- auto-matches Slack users to existing Omniscio accounts by email; unmapped users are attributed to you (the importer).
6. **Import Progress** -- live progress updates via push events; cancel is available (with confirmation).
7. **Report** -- summary of what was imported: channels, messages, threads, reactions, pins, files, members, skips, and errors.

### What's built vs what's left

**Built (renderer + IPC + schemas):**

- Complete 6-step wizard UI (`SlackImportWizard.tsx` + step components)
- IPC channels: `SLACK_IMPORT_DISCOVER`, `SLACK_IMPORT_START`, `SLACK_IMPORT_CANCEL`, `SLACK_IMPORT_PROGRESS` (push)
- Zod schemas for discover response, user mapping, import request, progress, and report
- Cloud Function batch relay schema (`slackImportBatchSchema`)
- Double-gating (feature flag on both the entry point and the wizard itself)
- Fresh state on every open (no stale data from a previous attempt)
- Cancel with confirmation dialog

**Not yet deployed / remaining:**

- Cloud Function batch relay (authored, needs deployment)
- Testing with real Slack workspace data at scale
- Manual user mapping UI (currently auto-match only, unmapped fall to importer)

### Scope and limits

- **Desktop only** -- the wizard is a renderer-side feature inside Team Chat.
- **One-time migration** -- not a continuous sync; run it once to move your history.
- **No undo** -- a cancelled import keeps whatever was already written; start fresh to retry.
- **Admin SDK boundary** -- all writes are server-side via the Cloud Function relay.

## For agents

### How it works (for agents / engineers)

- **Wizard container**: `src/renderer/src/features/team-chat/slack-import/SlackImportWizard.tsx` -- owns all wizard state; step components are presentational.
- **IPC schemas**: `src/shared/ipc-schemas/slack-import.ts` -- Zod schemas for all payloads.
- **Cloud Function**: batch relay that writes via admin SDK (the desktop never writes Firestore directly for imports).
- **User matching**: the admin user directory provides email-based auto-matching scoped to the active org. Non-admin or large org degrades gracefully to "everyone unmapped."
- **CLI parity**: classified as `feature-scoped-surface` (no CLI route -- wizard-only).

## Related

- [team-chat.md](team-chat.md) -- the Team Chat feature this imports into
- [slack-integration.md](slack-integration.md) -- the live Slack triage integration (separate feature)
- Contract: [team-chat-slack-import-contract.md](../../.claude/memory/contracts/team-chat-slack-import-contract.md)
