Skip to main content
Normalized for Mintlify from knowledge-base/aiconnected-os/aiConnectedOS-import-migration-prd-addon.mdx.

Part XX — Import & Migration


XX.1 Overview

aiConnectedOS is designed to be a long-term home for a user’s AI relationships — a place where personas grow, conversations accumulate meaning, and memory deepens over time. But most users arriving on the platform are not starting from zero. They have months or years of prior AI conversations stored in ChatGPT, Claude.ai, Gemini, and other tools. They have context, preferences, and work history that already exists — it just lives somewhere else. The Import & Migration system allows users to bring that history into aiConnectedOS, either as browseable conversation records or as seed material for CogniGraph memory. This closes a critical adoption gap: users no longer have to choose between starting fresh or abandoning prior AI-assisted work. Import is intentionally non-destructive and non-mandatory. It is an opt-in enrichment pathway, not a required onboarding step.

XX.2 Design Philosophy

History is a first-class asset. Conversations from other platforms carry real informational value — prior decisions, preferences, writing style, domain expertise, and context. The system should treat imported data with the same respect as natively generated data. Import does not equal training. Importing a conversation does not automatically alter persona behavior. Memory ingestion is a deliberate, user-controlled action, separate from simply archiving the conversation. Imports are sandboxed by default. Imported conversations land in a designated Import Archive and do not mix with live chats unless the user explicitly promotes content. This prevents noise and preserves the integrity of active Instances. Transparency over automation. The system shows users exactly what it found, what it understood, and what it plans to do before executing. No silent imports, no surprise memory writes.

XX.3 Supported Import Sources

Phase 1 (Launch)

SourceFormatNotes
ChatGPTconversations.json (inside OpenAI export ZIP)Standard export from chat.openai.com → Settings → Export
Claude.aiconversations.json (Anthropic export format)Standard export from claude.ai → Settings → Export
aiConnectedOS.aicos export packageFull-fidelity round-trip restore, including memory snapshots
Plain text / Markdown.txt, .mdManual paste or file upload; treated as unstructured conversation transcript

Phase 2 (Post-Launch)

SourceFormatNotes
Gemini / Google AI StudioJSON exportSubject to Google export format stability
Notion AIPage exportExtracts AI-assisted content blocks
Microsoft CopilotWord/OneNote exportsDetected via document metadata
Custom / GenericCSV, JSONLFor power users importing from custom tools or pipelines

XX.4 Import Entry Points

Users can trigger an import from two places: Onboarding Flow: During account setup, after the user creates their first persona, a non-intrusive card appears: “Already have AI history from another platform? Bring it with you.” This is skippable with a single click and does not block progress. Settings → Import & Migration: Available at any time post-onboarding. Located under Settings in the left nav rail, as a dedicated sub-section. Users can perform multiple imports over time — the system handles deduplication.

XX.5 Import Flow (UX)

Step 1: Source Selection

The user selects their source platform from a list of supported options, or chooses “Generic / Other” for unstructured files. Each option shows a brief note on how to obtain the export file from the originating service, with a link to that platform’s export instructions.

Step 2: File Upload

A drag-and-drop upload target accepts the export file or ZIP archive. The system extracts and validates the file client-side before upload, surfacing any format errors immediately (e.g., “This doesn’t look like a ChatGPT export — expected conversations.json inside a ZIP”). File size limits: 500MB per import package. Larger archives can be split and imported in batches.

Step 3: Preview & Summary

Before any data is written, the system presents a summary of what was found:
Found 847 conversations spanning March 2022 – February 2026
Estimated 124,000 messages
Detected topics: software development, business strategy, writing, travel

[Preview sample conversations →]
The user can browse a sample of the detected conversations in a read-only preview pane before proceeding.

Step 4: Import Configuration

The user makes three decisions: Archive destination: Which Instance should receive the imported conversations? Default is a system-generated “Import Archive” Instance, isolated from active workspaces. Advanced users can route to a specific existing Instance. Persona attribution: Who should be shown as the AI sender in imported messages? The user selects from their existing personas or creates a generic “Archived AI” placeholder persona. This is cosmetic — it does not affect how the persona actually behaves. Memory ingestion (optional): Should the system analyze imported conversations and extract memories into CogniGraph? This is off by default. When enabled, the user can further choose which personas receive the extracted memories and set a confidence threshold (low / medium / high — controlling how aggressively the system infers memories from ambiguous content).

Step 5: Processing

Import processing runs as a background job. The user is not blocked from using the platform during processing. A progress indicator appears in the notification tray. For large imports, an email notification is sent on completion. Processing stages:
  1. Parse and normalize conversation format
  2. Deduplicate against existing imported content (by content hash)
  3. Write conversations to the Import Archive
  4. If memory ingestion is enabled: run semantic analysis, extract candidate memories, queue for user review

Step 6: Review & Confirmation

On completion, the user receives an import summary:
Import complete

847 conversations imported
0 duplicates skipped
3 conversations could not be parsed (view errors →)

Memory candidates: 214 items ready for review
[Review memories →]  [Skip for now]
Memory candidates are surfaced in a review queue (see Section XX.7), not written automatically.

XX.6 Import Archive

The Import Archive is a read-only Instance automatically created on first import. It behaves like a standard Instance in the following ways: conversations are browseable, searchable, and can be referenced in active chats. It differs in the following ways:
  • Conversations cannot be replied to. They are historical records, not live chats.
  • The archive is labeled distinctly in the UI with an “Archived” badge to prevent confusion with live workspaces.
  • Imported conversations display a banner: “Imported from ChatGPT · March 2022”
  • Users can promote specific conversations to a live Instance by selecting them and choosing “Move to Instance.” This creates a copy in the destination Instance, leaving the original in the archive.
Users can have multiple Import Archives if they import from multiple sources over time. Each archive is labeled by source and import date.

XX.7 Memory Ingestion Review Queue

When memory ingestion is enabled, the system extracts candidate memories from imported conversations and surfaces them for user review before writing them to CogniGraph. This is intentional — automated memory extraction from a stranger’s raw conversation history is noisy, and trust should be earned through review. The review queue is accessed from Settings → Import & Migration → Review Memories, or from the notification shown at import completion. Each candidate memory is shown as a card:
┌─────────────────────────────────────────────────────────┐
│ Extracted from: ChatGPT import · June 2023              │
│                                                         │
│ "User prefers TypeScript over JavaScript for all        │
│ production code and finds JavaScript 'sloppy'."         │
│                                                         │
│ Confidence: High    Type: Preference                    │
│ Assign to persona: [Sally ▾]                            │
│                                                         │
│ [✓ Accept]  [✗ Reject]  [Edit before accepting]        │
└─────────────────────────────────────────────────────────┘
Users can process candidates one at a time, or use bulk actions (“Accept all high-confidence,” “Reject all,” etc.). Accepted memories are written to the selected persona’s CogniGraph layer at the episodic level with an imported source tag. This tag allows them to be filtered or weighted differently from organically grown memories if the system logic requires it. Rejected memories are discarded. Edited memories are written with the user’s amended content.

XX.8 Deduplication

The system prevents double-importing the same content across multiple import attempts. Deduplication is handled by content hash at the conversation level. If a conversation’s hash matches an already-imported record, it is silently skipped and counted in the “duplicates skipped” summary. For memory candidates, deduplication is semantic rather than exact. If a candidate memory is substantially similar to an existing CogniGraph memory for the same persona, the system flags it as a potential duplicate and asks the user to confirm before writing.

XX.9 aiConnectedOS Native Export & Restore

The platform’s own export format (.aicos) supports full-fidelity round-trip migration. This is the only format that preserves:
  • CogniGraph memory graphs, including edge relationships and confidence scores
  • Persona configuration, boundaries, and skill assignments
  • Chat metadata (pins, tags, Instance assignments)
  • Memory checkpoints
This format is intended for: platform migrations (e.g., moving from cloud to self-hosted), disaster recovery, and power-user backups. It is not human-readable — it is a structured binary archive optimized for restore fidelity, not portability. The .aicos export is initiated from Settings → Export & Backup (a separate section from Import). Restore from .aicos is a privileged action that prompts a confirmation dialog warning the user that restoring will merge data and that the operation cannot be automatically undone.

XX.10 Privacy & Data Handling

Imported conversation data is:
  • Stored in the user’s own Supabase database partition, subject to the same RLS policies as all other user data
  • Never used to train Anthropic or aiConnectedOS models
  • Never shared across users or instances
  • Deletable at any time via Settings → Import & Migration → Manage Archives → Delete
Imported data from third-party platforms (ChatGPT, Claude.ai, etc.) is the user’s own export of their own data. The user is responsible for ensuring they have the right to import and store that data in accordance with the originating platform’s terms of service.

XX.11 Error Handling

Error conditionSystem behavior
Unrecognized file formatImmediate client-side validation error before upload
Partially malformed exportImport continues; malformed conversations are skipped and listed in an error report
File too large (>500MB)User is prompted to split the archive and import in batches
Duplicate import detectedDuplicates silently skipped; count reported in summary
Memory ingestion failureImport completes without memory candidates; user is notified and can retry ingestion separately
Import job timeout (>2 hours)Job is marked as failed; partial results are preserved; user is notified with option to retry

XX.12 Settings Panel: Import & Migration

Located at Settings → Import & Migration. Contains: Import History: A chronological list of all past imports, showing source, date, conversation count, and status. Each entry links to its Import Archive Instance. Pending Memory Review: Badge showing count of unreviewed memory candidates. Links to the review queue. Manage Archives: List of all Import Archive Instances with options to rename, view, or permanently delete. Start New Import: Entry point to the import flow described in Section XX.5.

XX.13 Build Phase Placement

This feature is scoped to Phase 6 (Polish & Analytics) of the 18-week build roadmap. It is not on the critical path for launch and should not block earlier phases. However, the database schema for Import Archives (a variant of the standard instances table with an is_import_archive flag) should be included in the Phase 1 migration to avoid schema changes later. The memory ingestion pipeline reuses the generate-embedding Edge Function and the persona_memories table already built in Phase 4, requiring no new backend infrastructure for that component. Estimated engineering effort: 3–4 weeks for a complete Phase 1 implementation (ChatGPT + Claude.ai + aiConnectedOS native formats, full UX flow, review queue).
Last modified on April 18, 2026