Skip to content
granola-migration-deep-dive logo

Granola Migration Deep Dive

granola-migration-deep-dive

Deep dive migration guide from other meeting note tools to Granola. Use when migrating from Otter.ai, Fireflies, Fathom, or other tools, planning data migration, or executing transition strategies. Trigger with phrases like "migrate to granola", "switch to granola", "granola from otter", "granola...

SKILL.md

Full skill instructions

Granola Migration Deep Dive

Overview

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

Migration Sources

Supported Source Tools

ToolExport FormatMigration Complexity
Otter.aiTXT, SRT, PDFMedium
Fireflies.aiTXT, JSON, PDFMedium
FathomMarkdown, CSVLow
Zoom NativeVTT, TXTLow
Google MeetSRT, DOCXLow
Microsoft TeamsVTT, DOCXLow
Manual NotesMarkdownLow

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:
-

More skills from Dicklesworthstone

environment-setup-guide logo
Dicklesworthstone/pi_agent_rust

environment-setup-guide

Guide developers through setting up development environments with proper tools, dependencies, and configurations

1.8K 0
View
exa-policy-guardrails logo
Dicklesworthstone/pi_agent_rust

exa-policy-guardrails

Implement Exa lint rules, policy enforcement, and automated guardrails. Use when setting up code quality rules for Exa integrations, implementing pre-commit hooks, or configuring CI policy checks for Exa best practices. Trigger with phrases like "exa policy", "exa lint", "exa guardrails", "exa be...

1.8K 0
View
documenso-ci-integration logo
Dicklesworthstone/pi_agent_rust

documenso-ci-integration

Configure CI/CD pipelines for Documenso integrations. Use when setting up automated testing, deployment pipelines, or continuous integration for Documenso projects. Trigger with phrases like "documenso CI", "documenso GitHub Actions", "documenso pipeline", "documenso automated testing".

1.8K 0
View
openrouter-model-availability logo
Dicklesworthstone/pi_agent_rust

openrouter-model-availability

Build check model availability and implement fallback chains. Use when building resilient systems or handling model outages. Trigger with phrases like 'openrouter availability', 'openrouter fallback', 'openrouter model down', 'openrouter health check'.

1.8K 0
View
langfuse-enterprise-rbac logo
Dicklesworthstone/pi_agent_rust

langfuse-enterprise-rbac

Configure Langfuse enterprise organization management and access control. Use when implementing team access controls, configuring organization settings, or setting up role-based permissions for Langfuse projects. Trigger with phrases like "langfuse RBAC", "langfuse teams", "langfuse organization"...

1.8K 0
View
cursor-compliance-audit logo
Dicklesworthstone/pi_agent_rust

cursor-compliance-audit

Execute compliance and security auditing for Cursor usage. Triggers on "cursor compliance", "cursor audit", "cursor security review", "cursor soc2", "cursor gdpr". Use when analyzing or auditing cursor compliance audit. Trigger with phrases like "cursor compliance audit", "cursor audit", "cursor".

1.8K 0
View
apollo-ci-integration logo
Dicklesworthstone/pi_agent_rust

apollo-ci-integration

Configure Apollo.io CI/CD integration. Use when setting up automated testing, continuous integration, or deployment pipelines for Apollo integrations. Trigger with phrases like "apollo ci", "apollo github actions", "apollo pipeline", "apollo ci/cd", "apollo automated tests".

1.8K 0
View
python-script logo
Dicklesworthstone/pi_agent_rust

python-script

Create robust Python automation with full logging and safety checks. Use when tasks need complex data processing, authenticated API work, conditional file operations, or error handling beyond simple shell commands.

1.8K 0
View
posthog-multi-env-setup logo
Dicklesworthstone/pi_agent_rust

posthog-multi-env-setup

Configure PostHog across development, staging, and production environments. Use when setting up multi-environment deployments, configuring per-environment secrets, or implementing environment-specific PostHog configurations. Trigger with phrases like "posthog environments", "posthog staging", "po...

1.8K 0
View
ai-agents-architect logo
Dicklesworthstone/pi_agent_rust

ai-agents-architect

Expert in designing and building autonomous AI agents. Masters tool use, memory systems, planning strategies, and multi-agent orchestration. Use when: build agent, AI agent, autonomous agent, tool use, function calling.

1.8K 0
View
insecure-deserialization-checker logo
Dicklesworthstone/pi_agent_rust

insecure-deserialization-checker

Validate insecure deserialization checker operations. Auto-activating skill for Security Fundamentals. Triggers on: insecure deserialization checker, insecure deserialization checker Part of the Security Fundamentals skill category. Use when working with insecure deserialization checker functiona...

1.8K 0
View
path-traversal-finder logo
Dicklesworthstone/pi_agent_rust

path-traversal-finder

Manage path traversal finder operations. Auto-activating skill for Security Fundamentals. Triggers on: path traversal finder, path traversal finder Part of the Security Fundamentals skill category. Use when working with path traversal finder functionality. Trigger with phrases like "path traversa...

1.8K 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View