返回 Skill 列表
extension
分类: 开发与工程无需 API Key

granola-migration-deep-dive

从其他会议笔记工具迁移到Granola的深度迁移指南。当您从Otter.ai、Fireflies、Fathom或其他工具迁移,计划数据迁移或执行转换策略时使用。触发短语如“迁移到granola”,“切换到granola”,“从otter迁移到granola”,“从fireflies迁移到granola”,“granola迁移”。

person作者: jakexiaohubgithub

Granola Migration Deep Dive

Overview

Comprehensive guide for migrating to Granola from other meeting note-taking tools.

Migration Sources

Supported Source Tools

| Tool | Export Format | Migration Complexity | |------|--------------|---------------------| | Otter.ai | TXT, SRT, PDF | Medium | | Fireflies.ai | TXT, JSON, PDF | Medium | | Fathom | Markdown, CSV | Low | | Zoom Native | VTT, TXT | Low | | Google Meet | SRT, DOCX | Low | | Microsoft Teams | VTT, DOCX | Low | | Manual Notes | Markdown | Low |

Migration Planning

Assessment Checklist

## Pre-Migration Assessment

Data Volume:
- [ ] Total meetings to migrate: ___
- [ ] Date range: ___ to ___
- [ ] Total storage size: ___ GB
- [ ] Number of users: ___

Content Types:
- [ ] Transcripts: ___
- [ ] AI summaries: ___
- [ ] Action items: ___
- [ ] Audio files: ___

Integrations:
- [ ] CRM connections: ___
- [ ] Slack/Teams channels: ___
- [ ] Documentation tools: ___
- [ ] Workflow automations: ___

Timeline:
- [ ] Target cutover date: ___
- [ ] Parallel running period: ___ weeks
- [ ] User training dates: ___

Migration Strategy Options

Option 1: Clean Start

## Clean Start (Recommended for < 100 meetings)

Approach:
- Start fresh with Granola
- Archive historical data externally
- No data import

Pros:
- Simplest approach
- No migration complexity
- Clean slate

Cons:
- Historical search not in Granola
- Need external archive access

Best For:
- Small teams
- Minimal historical needs
- Quick deployment

Option 2: Selective Migration

## Selective Migration (100-1000 meetings)

Approach:
- Migrate key meetings only
- Archive rest externally
- Selective import

Selection Criteria:
- Client meetings (last 6 months)
- Decision-making meetings
- Recurring important meetings
- Referenced action items

Pros:
- Important data preserved
- Manageable scope
- Faster completion

Cons:
- Requires selection effort
- Incomplete history

Option 3: Full Migration

## Full Migration (Enterprise)

Approach:
- Export all historical data
- Transform to Granola format
- Import everything

Pros:
- Complete history
- Full searchability
- No external archive needed

Cons:
- Complex and time-consuming
- May require professional services
- Higher cost

Source-Specific Migration

From Otter.ai

Export Process

## Otter.ai Export

1. Log into Otter.ai
2. Go to each conversation
3. Click ... menu > Export
4. Select format:
   - TXT for transcript
   - PDF for formatted notes
   - SRT for subtitles
5. Repeat for all conversations

Bulk Export (Pro/Business):
1. Settings > My Account
2. Click "Export All"
3. Wait for email
4. Download zip file

Data Mapping

# Otter.ai → Granola Mapping

Otter Field:          Granola Field:
conversation_title  meeting_title
date               meeting_date
transcript         transcript
summary            summary
action_items       action_items
speakers           attendees (partial)
keywords           (no direct mapping)

Conversion Script

#!/usr/bin/env python3
"""Convert Otter.ai exports to Granola format"""

import json
import os
from datetime import datetime

def convert_otter_to_granola(otter_file, output_dir):
    with open(otter_file, 'r') as f:
        content = f.read()

    # Parse Otter format (varies by export type)
    # This is a simplified example

    granola_note = f"""# Meeting Notes

**Imported from:** Otter.ai
**Original Date:** {datetime.now().strftime('%Y-%m-%d')}

## Transcript
{content}

## Action Items
[Review and extract manually]

---
*Migrated to Granola on {datetime.now().strftime('%Y-%m-%d')}*
"""

    output_file = os.path.join(output_dir, 'imported_note.md')
    with open(output_file, 'w') as f:
        f.write(granola_note)

    return output_file

From Fireflies.ai

Export Process

## Fireflies Export

1. Log into Fireflies.ai
2. Go to Meetings
3. Select meetings (checkbox)
4. Click "Export"
5. Choose format: JSON (recommended)
6. Download

API Export (Enterprise):
```bash
curl -X GET "https://api.fireflies.ai/v1/transcripts" \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -o fireflies_export.json

Data Mapping

# Fireflies → Granola Mapping

Fireflies Field:      Granola Field:
title              meeting_title
date               meeting_date
transcript         transcript
summary            summary
action_items       action_items
participants       attendees

From Fathom

Export Process

## Fathom Export

1. Open Fathom dashboard
2. Select call
3. Click "Download"
4. Choose: Markdown or CSV
5. Repeat for all calls

Batch Export:
- Contact Fathom support for bulk export
- Request API access if available

From Native Recording (Zoom/Meet/Teams)

Zoom Cloud Recordings

## Zoom Export

1. Go to Zoom web portal
2. Recordings > Cloud Recordings
3. Download:
   - Audio/Video file
   - VTT transcript
4. Upload audio to transcription service if needed

Google Meet

## Google Meet Export

1. Check Google Drive
2. Find meeting recordings folder
3. Download transcript (if enabled)
4. Convert from SRT/VTT to text

Data Transformation

Transformation Pipeline

Source Export
     ↓
Parse Original Format
     ↓
Normalize Data Structure
     ↓
Map to Granola Schema
     ↓
Validate Integrity
     ↓
Generate Markdown Files
     ↓
Archive in Notion/Drive

Batch Conversion Script

#!/usr/bin/env python3
"""Batch convert meeting notes to Granola format"""

import os
import json
from pathlib import Path

def batch_convert(source_dir, output_dir, source_type):
    """Convert all files from source format to Granola Markdown"""

    Path(output_dir).mkdir(parents=True, exist_ok=True)

    converters = {
        'otter': convert_otter,
        'fireflies': convert_fireflies,
        'zoom': convert_zoom_vtt,
    }

    converter = converters.get(source_type)
    if not converter:
        raise ValueError(f"Unknown source type: {source_type}")

    converted = []
    for file in Path(source_dir).glob('*'):
        try:
            output = converter(file, output_dir)
            converted.append(output)
            print(f"Converted: {file.name}")
        except Exception as e:
            print(f"Error converting {file.name}: {e}")

    print(f"\nConverted {len(converted)} files")
    return converted

if __name__ == "__main__":
    import sys
    batch_convert(sys.argv[1], sys.argv[2], sys.argv[3])

Execution Plan

Week 1: Preparation

## Week 1 Tasks

Day 1-2: Assessment
- [ ] Inventory all source data
- [ ] Identify critical meetings
- [ ] Document integrations
- [ ] Define success criteria

Day 3-4: Export
- [ ] Export from source tool
- [ ] Verify export completeness
- [ ] Secure backup of exports
- [ ] Document any gaps

Day 5: Granola Setup
- [ ] Configure Granola workspace
- [ ] Set up integrations
- [ ] Create templates
- [ ] Test with sample meeting

Week 2: Migration

## Week 2 Tasks

Day 1-2: Conversion
- [ ] Run conversion scripts
- [ ] Validate converted data
- [ ] Fix any errors
- [ ] Create import packages

Day 3-4: Import
- [ ] Import to external archive (Notion)
- [ ] Tag as historical
- [ ] Verify accessibility
- [ ] Set up search

Day 5: Verification
- [ ] Spot check random samples
- [ ] Verify key meetings accessible
- [ ] Test search functionality
- [ ] Document location

Week 3-4: Parallel Running

## Parallel Period

Both tools active:
- Record in Granola (primary)
- Source tool as backup
- Compare quality
- Gather feedback

Daily:
- [ ] Monitor both tools
- [ ] Note any issues
- [ ] Collect user feedback

End of parallel:
- [ ] Review comparison
- [ ] Address issues
- [ ] Get sign-off
- [ ] Schedule cutover

Week 5: Cutover

## Cutover Tasks

Day 1: Final Export
- [ ] Export any new data from source
- [ ] Run final conversion
- [ ] Complete import

Day 2: Disable Source
- [ ] Turn off source tool recording
- [ ] Downgrade/cancel subscription
- [ ] Remove integrations

Day 3-5: Support
- [ ] Monitor closely
- [ ] Address issues immediately
- [ ] Document lessons learned
- [ ] Celebrate completion!

User Communication

Announcement Template

## Migration Announcement

Subject: Switching to Granola for Meeting Notes

Team,

We're migrating from [Source Tool] to Granola for meeting notes.

**Key Dates:**
- Parallel running: [Start] - [End]
- Full cutover: [Date]

**What You Need to Do:**
1. Install Granola: granola.ai/download
2. Sign in with company SSO
3. Attend training: [Date/Link]

**Why Granola:**
- No meeting bot required
- Better privacy
- Improved integrations

**Historical Notes:**
Your past meeting notes will be available in [Notion/Drive].

Questions? Contact [Support Email].

Thanks,
[Your Name]

Training Agenda

## Granola Training (30 min)

1. Introduction (5 min)
   - Why Granola
   - Key differences from [Source]

2. Setup (10 min)
   - Install app
   - Connect calendar
   - Grant permissions

3. First Meeting (10 min)
   - How recording works
   - Taking live notes
   - Reviewing AI notes

4. Q&A (5 min)
   - Common questions
   - Where to get help

Rollback Plan

If Migration Fails

## Rollback Procedure

Triggers for Rollback:
- > 20% of meetings not captured
- Critical integration failure
- User adoption < 30%
- Data loss detected

Rollback Steps:
1. Communicate pause to team
2. Re-enable source tool
3. Export any Granola notes
4. Investigate issues
5. Plan remediation
6. Attempt migration again

Note: Rollback only possible during parallel period

Resources

Post-Migration

Success Metrics

## 30-Day Review

Adoption:
- [ ] Active users: ___% of total
- [ ] Meetings captured: ___/week
- [ ] Notes shared: ___

Quality:
- [ ] User satisfaction: ___/5
- [ ] Transcription accuracy: ___%
- [ ] Action item detection: ___%

Issues:
- [ ] Open tickets: ___
- [ ] Resolved: ___
- [ ] Escalated: ___

Lessons Learned

## Post-Migration Review

What Went Well:
-

What Could Improve:
-

Recommendations:
-

Documentation Updates:
-