granola-migration-deep-dive by jeremylongshore
Migrate to Granola from Otter.ai, Fireflies, Fathom, tl;dv, or manual
Content & Writing
2.5K Stars
355 Forks
Updated May 30, 2026, 01:51 AM
Why Use This
This skill provides specialized capabilities for jeremylongshore's codebase.
Use Cases
- Developing new features in the jeremylongshore repository
- Refactoring existing code to follow jeremylongshore standards
- Understanding and working with jeremylongshore's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Repository claude-code-plugins-plus-skills
Skill Version
main
Community
2.5K 355
Updated At May 30, 2026, 01:51 AM
Skill Stats
SKILL.md 259 Lines
Total Files 2
Total Size 9.3 KB
License MIT
--- name: granola-migration-deep-dive description: 'Migrate to Granola from Otter.ai, Fireflies, Fathom, tl;dv, or manual note-taking. Covers data export from source tools, parallel-run strategy, team transition, and historical data preservation. Trigger: "migrate to granola", "switch to granola", "granola from otter", "granola from fireflies", "replace meeting tool with granola". ' allowed-tools: Read, Write, Edit, Bash(python3:*) version: 1.0.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - granola - migration compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw --- # Granola Migration Deep Dive ## Overview Comprehensive guide for migrating to Granola from competing meeting note tools. Covers source-specific export procedures, historical data preservation, parallel-run strategy, team transition, and cutover execution. Granola's key differentiator — no bot joins meetings — means the migration also changes the user experience fundamentally. ## Prerequisites - Access to source tool with export capability - Granola workspace configured (see `granola-install-auth`) - Migration timeline agreed with stakeholders - Budget approved for Granola licenses ## Instructions ### Step 1 — Assess Migration Scope ```markdown ## Migration Assessment Source tool: [Otter.ai / Fireflies / Fathom / tl;dv / Manual / Other] Total meetings in source: [____] Date range: [____] to [____] Active users to migrate: [____] Integrations to recreate: [Slack, Notion, CRM, etc.] Historical data priority: [Archive all / Selective / Fresh start] Target cutover date: [____] Parallel run duration: [1 week / 2 weeks] ``` ### Step 2 — Source-Specific Export #### From Otter.ai - **Export format:** TXT, SRT (subtitles), PDF - **Bulk export:** Otter Pro/Business: Settings > Export > Download All - **Limitations:** Free plan only exports individual notes - **Key data:** Transcripts with timestamps, speaker labels, action items #### From Fireflies.ai - **Export format:** TXT, JSON, PDF, SRT - **Bulk export:** Admin > Data Management > Export - **Limitations:** Custom fields may not export - **Key data:** Transcripts, AI summaries, custom topics #### From Fathom - **Export format:** Markdown, CSV, video clips - **Bulk export:** Settings > Data > Export All - **Limitations:** Video clips don't transfer - **Key data:** Meeting summaries, action items, highlights #### From tl;dv - **Export format:** TXT, video recordings - **Bulk export:** Settings > Data Export - **Limitations:** AI highlights may not transfer - **Key data:** Transcripts, timestamps, meeting recordings #### From Manual Notes (Google Docs, Notion, Confluence) - Already in accessible format - No export needed — archive in place - Focus on establishing the Granola workflow going forward ### Step 3 — Choose Migration Strategy | Strategy | When to Use | Data Handling | Effort | |----------|------------|--------------|--------| | **Fresh Start** | <100 historical meetings, or meetings have low reference value | Archive source data externally, start fresh in Granola | Low | | **Selective Migration** | 100-1000 meetings, some have ongoing reference value | Export key meetings (client calls, decisions, contracts) | Medium | | **Full Archive** | Enterprise with compliance requirements, everything must be searchable | Export all data, archive in Notion/Drive/cloud storage | High | **Recommended for most teams:** Fresh Start or Selective. Granola doesn't import historical data from other tools — there's no import feature. Historical data lives in your archive (Notion, Google Drive, local files). ### Step 4 — Archive Historical Data For important historical meetings, archive before cutting over: ```python #!/usr/bin/env python3 """Organize exported meeting notes for archival.""" import os from pathlib import Path EXPORT_DIR = Path("~/Downloads/otter-export").expanduser() # Adjust for your source ARCHIVE_DIR = Path("~/Documents/meeting-archive").expanduser() # Create organized archive structure categories = { "client": ["client", "customer", "deal", "sales", "demo"], "engineering": ["sprint", "standup", "architecture", "review", "retro"], "product": ["product", "prd", "design", "feedback", "roadmap"], "leadership": ["all-hands", "board", "strategy", "planning"], "general": [], # catch-all } ARCHIVE_DIR.mkdir(parents=True, exist_ok=True) for cat in categories: (ARCHIVE_DIR / cat).mkdir(exist_ok=True) for file in EXPORT_DIR.glob("*.txt"): filename_lower = file.name.lower() placed = False for cat, keywords in categories.items(): if any(kw in filename_lower for kw in keywords): dest = ARCHIVE_DIR / cat / file.name file.rename(dest) placed = True break if not placed: (ARCHIVE_DIR / "general" / file.name).rename(file) print(f"Archived to {ARCHIVE_DIR}") ``` Alternatively, upload the archive to Notion or Google Drive for team-wide searchability. ### Step 5 — Parallel Run (2 Weeks) Run both tools simultaneously to build confidence: **Week 1: Dual recording** - Keep source tool active (bot still joins or captures) - Enable Granola on all meetings (system audio capture) - Compare output quality daily: | Metric | Source Tool | Granola | Winner | |--------|-----------|---------|--------| | Transcription accuracy | ___% | ___% | | | Action item detection | ___/total | ___/total | | | Summary quality | ___/5 | ___/5 | | | Processing time | ___ min | ___ min | | | User experience (no bot) | N/A | Yes | Granola | **Week 2: Granola primary** - Keep source tool as backup only (disable auto-record if possible) - All sharing and distribution via Granola integrations - Team members report any quality issues ### Step 6 — Cutover Execution **Cutover day checklist:** - [ ] Final export from source tool (last day of data) - [ ] Verify archive is complete and accessible - [ ] Disable source tool recording/bot - [ ] Remove source tool bot from calendar (if applicable) - [ ] Cancel source tool subscription (save on unused billing) - [ ] Announce to team via email/Slack: ```markdown Subject: Meeting Notes Migration Complete — Granola is Now Primary Team, As of today, we've completed our migration to Granola for meeting notes. What's changed: - No more [Otter/Fireflies/etc.] bot joining meetings - Granola captures audio directly from your device (no bot visible to participants) - Notes are auto-enhanced with AI summaries and action items What you need to do: 1. Ensure Granola is running on your device 2. Verify your calendar is connected (Settings > Calendar) 3. Check that microphone + Screen & System Audio permissions are granted Historical notes: Archived at [Notion link / Drive folder] Support: Post in #granola-support Thank you for the smooth transition! ``` - [ ] Monitor for 3 days: - Capture rate (% of meetings recorded) - Support ticket volume - User feedback - Integration sync health ### Step 7 — Post-Migration Optimization After 1 week on Granola exclusively: - [ ] Configure templates for each meeting type (see `granola-core-workflow-a`) - [ ] Set up Zapier automation for recurring workflows - [ ] Create custom recipes for team-specific post-meeting tasks - [ ] Establish folder structure matching team workflow - [ ] Delete source tool accounts and data (if no longer needed) ## Key Differences from Bot-Based Tools | Feature | Bot-Based (Otter, Fireflies, tl;dv) | Granola | |---------|--------------------------------------|---------| | Meeting join | Bot joins as participant | No bot — system audio capture | | Participant awareness | "Bot is recording" banner | No banner (still announce recording for consent) | | Platform support | Platform-specific integrations | Any platform (captures system audio) | | Typed notes | Separate app | Built-in notepad merges with transcript | | Enhancement | Auto-generated | User-controlled (click Enhance) | | Templates | Limited | 29 built-in + custom | | Chat | Limited or none | Full Granola Chat with Recipes | | Built-in CRM | No | People & Companies | ## Output - Source data exported and archived - Parallel run completed with quality validation - Team migrated and recording in Granola - Source tool deactivated and subscription cancelled - Historical data accessible in archive ## Error Handling | Error | Cause | Fix | |-------|-------|-----| | Source export incomplete | Free plan limits bulk export | Upgrade source plan temporarily for export, then cancel | | Team resistance to change | Comfort with existing tool | Share quality comparison data from parallel run | | Missing historical context | No import feature in Granola | Point team to archived data (Notion/Drive) | | Audio quality different than bot | System audio vs. platform API | Optimize audio setup (see `granola-performance-tuning`) | | Low adoption post-migration | Setup issues | Run drop-in support sessions, share quick-start guide | ## Resources - [Granola Setup Guide](https://docs.granola.ai/help-center/getting-started/setting-up-granola-for-the-first-time) - Granola vs Otter Comparison - [Granola Free Trial](https://www.granola.ai/blog/granola-free-trial-get-started) - [Granola for Sales Teams](https://www.granola.ai/blog/sales-ai-notetaker-integration-guide-salesforce-hubspot) ## Next Steps After migration, explore `granola-performance-tuning` to optimize output quality.
Name Size