Files
vibn-frontend/CHATGPT_IMPORT_GUIDE.md

9.4 KiB

📥 Import ChatGPT Conversations into Vibn

What I Built

A complete system to import ChatGPT conversations into Vibn using OpenAI's official Conversations API!


🎯 What It Does

Import your ChatGPT project planning into Vibn:

  • Pull full conversation history from ChatGPT
  • Store all messages and context
  • Connect conversations to specific projects
  • Reference ChatGPT discussions in Vibn's AI
  • Keep project planning synced with actual coding

🏗️ Architecture

1. OpenAI Conversations API

Endpoint: GET /v1/conversations/{conversation_id}

What we fetch:

  • Full conversation history
  • All messages (user + assistant)
  • Conversation title
  • Timestamps
  • Metadata

2. Vibn Import API

Endpoint: POST /api/chatgpt/import

What it does:

  1. Accepts conversation ID + OpenAI API key
  2. Fetches conversation from OpenAI
  3. Parses and formats messages
  4. Stores in Firestore (chatgptImports collection)
  5. Links to project (if provided)

3. Firestore Storage

Collection: chatgptImports

{
  userId: string,
  projectId: string | null,
  conversationId: string,
  title: string,
  createdAt: string,
  importedAt: string,
  messageCount: number,
  messages: [
    {
      role: 'user' | 'assistant',
      content: string,
      timestamp: string
    }
  ],
  rawData: object // Full OpenAI response
}

4. UI Component

Component: ChatGPTImportCard

Features:

  • Dialog modal for import
  • OpenAI API key input (with show/hide)
  • Conversation URL or ID input
  • Smart URL parsing
  • Success feedback
  • Import history display

📋 User Flow

Step 1: Get OpenAI API Key

  1. User goes to: https://platform.openai.com/api-keys
  2. Clicks "Create new secret key"
  3. Copies the key: sk-...

Step 2: Find Conversation ID

  1. User opens ChatGPT conversation
  2. Looks at URL in browser:
    https://chat.openai.com/c/abc-123-xyz
    
  3. Copies either:
    • Full URL: https://chat.openai.com/c/abc-123-xyz
    • Just ID: abc-123-xyz

Step 3: Import in Vibn

  1. Goes to: /your-workspace/connections
  2. Scrolls to "Import ChatGPT Conversations" card
  3. Clicks: "Import Conversation"
  4. Enters OpenAI API key
  5. Pastes conversation URL or ID
  6. Clicks: "Import Conversation"

Step 4: Success

Toast notification shows:

Imported: "My App Planning" (42 messages)

Conversation is now stored in Vibn!


🔐 Security & Privacy

API Key Handling:

  • User's OpenAI API key is NOT stored
  • Key is only used during import request
  • Sent directly from user's browser to OpenAI
  • Never logged or persisted

Data Storage:

  • Conversations stored in user's own Firestore
  • Scoped to userId (can't see other users' imports)
  • User can delete imported conversations anytime
  • Raw data preserved for future reference

Firestore Rules:

match /chatgptImports/{importId} {
  // Users can read their own imports
  allow read: if userId == request.auth.uid;
  // Only server can create (via Admin SDK)
  allow create: if false;
  // Users can update/delete their imports
  allow update, delete: if userId == request.auth.uid;
}

🎯 Use Cases

1. Connect Project Planning with Coding

  • Scenario: You planned your app architecture in ChatGPT
  • Solution: Import that conversation into Vibn
  • Benefit: Vibn's AI can reference your original vision

2. Product Requirements Sync

  • Scenario: You discussed features and requirements in ChatGPT
  • Solution: Import the conversation to your Vibn project
  • Benefit: Link requirements to actual coding sessions

3. Design Decision History

  • Scenario: You made key architecture decisions with ChatGPT
  • Solution: Import those conversations
  • Benefit: Track why you made certain choices

4. Brainstorming Sessions

  • Scenario: You brainstormed ideas with ChatGPT
  • Solution: Import the creative discussion
  • Benefit: Keep all project context in one place

🧪 Testing

Test the API Directly:

# Get your Firebase ID token (from browser console)
const token = await firebase.auth().currentUser.getIdToken();

# Import a conversation
curl -X POST https://vibnai.com/api/chatgpt/import \
  -H "Authorization: Bearer YOUR_FIREBASE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "conversationId": "abc-123-xyz",
    "openaiApiKey": "sk-...",
    "projectId": "your-project-id"
  }'

Test in UI:

  1. Go to /your-workspace/connections
  2. Click "Import Conversation"
  3. Use a real ChatGPT conversation ID
  4. Check Firestore to see imported data

📊 Data Format

What Gets Imported:

From OpenAI API:

{
  "conversation_id": "abc-123",
  "title": "My App Planning",
  "created_at": "2024-11-01T10:00:00Z",
  "messages": [
    {
      "role": "user",
      "author": { "role": "user" },
      "content": { "parts": ["How do I build a web app?"] },
      "create_time": "2024-11-01T10:00:00Z"
    },
    {
      "role": "assistant",
      "author": { "role": "assistant" },
      "content": { "parts": ["Here's how to build a web app..."] },
      "create_time": "2024-11-01T10:01:00Z"
    }
  ]
}

Stored in Vibn:

{
  "userId": "firebase-user-123",
  "projectId": "project-abc",
  "conversationId": "abc-123",
  "title": "My App Planning",
  "createdAt": "2024-11-01T10:00:00Z",
  "importedAt": "2024-11-14T15:30:00Z",
  "messageCount": 2,
  "messages": [
    {
      "role": "user",
      "content": "How do I build a web app?",
      "timestamp": "2024-11-01T10:00:00Z"
    },
    {
      "role": "assistant",
      "content": "Here's how to build a web app...",
      "timestamp": "2024-11-01T10:01:00Z"
    }
  ],
  "rawData": { /* Full OpenAI response for reference */ }
}

🔄 URL Parsing

The system automatically extracts conversation IDs from various URL formats:

Supported formats:

https://chat.openai.com/c/abc-123-xyz
https://chatgpt.com/c/abc-123-xyz
https://chat.openai.com/share/abc-123-xyz
abc-123-xyz (just the ID)

Regex patterns:

const patterns = [
  /chat\.openai\.com\/c\/([a-zA-Z0-9-]+)/,
  /chatgpt\.com\/c\/([a-zA-Z0-9-]+)/,
  /chat\.openai\.com\/share\/([a-zA-Z0-9-]+)/,
];

🎨 UI Components

ChatGPTImportCard

Location: components/chatgpt-import-card.tsx

Features:

  • Import dialog modal
  • OpenAI API key input (masked)
  • Show/hide key toggle
  • Conversation URL/ID input
  • Smart URL parsing
  • Loading states
  • Success feedback
  • Error handling
  • Import history display
  • Links to OpenAI docs

Props:

{
  projectId?: string;              // Optional project to link import to
  onImportComplete?: (data) => void; // Callback after successful import
}

📁 Files Created/Modified

New Files:

app/api/chatgpt/import/route.ts       ← Import API endpoint
components/chatgpt-import-card.tsx    ← UI component
CHATGPT_IMPORT_GUIDE.md               ← This file

Modified Files:

app/[workspace]/connections/page.tsx  ← Added import card
firestore.rules                       ← Added chatgptImports rules

🚀 What's Live

Import API: /api/chatgpt/import
UI Component: ChatGPTImportCard
Connections Page: Import card visible
Firestore Rules: Deployed
Security: API key not stored
Data: Full conversation preserved


💡 Future Enhancements

Potential additions:

  • List view: Show all imported conversations
  • Search: Find messages across imports
  • Highlights: Mark important messages
  • Export: Download imported data
  • Sync: Auto-update conversations
  • AI Integration: Let Vibn AI reference imports
  • Batch Import: Import multiple conversations at once

🎯 Next Steps for Users

To Use This Feature:

  1. Get your OpenAI API key:

  2. Find a conversation to import:

    • Open ChatGPT
    • Find a project-related conversation
    • Copy the URL
  3. Import in Vibn:

    • Go to: /your-workspace/connections
    • Click "Import Conversation"
    • Paste your API key and conversation URL
    • Click import
  4. View imported data:

    • Check Firestore console
    • Or build a "View Imports" page

🆚 MCP vs Import

MCP (Export Vibn → ChatGPT):

  • ChatGPT queries Vibn data
  • Real-time access
  • For ChatGPT power users

Import (ChatGPT → Vibn):

  • Vibn pulls ChatGPT conversations
  • One-time import (can re-import)
  • For consolidating project context

Both are useful for different workflows!


🎉 Benefits

For Users:

  • All project context in one place
  • Link planning with actual work
  • Reference past decisions
  • Track project evolution

For Vibn AI:

  • More context = better suggestions
  • Understand user's original vision
  • Reference requirements accurately
  • Provide more personalized help

For Projects:

  • Complete history (planning + coding)
  • Better documentation
  • Easier onboarding for team
  • Audit trail of decisions

Built and ready to use! 🚀

Try it: Visit http://localhost:3000/your-workspace/connections and click "Import Conversation"