TranscriptExporter for Granola documentation

Bulk export your Granola meeting notes and transcripts.

Covers version 1.2.0.

Getting started

TranscriptExporter for Granola is a Chrome extension. A license is $29 once, works forever, and includes every export format. There are two ways people arrive:

If you found the website first If you found the Chrome Web Store first
Buy a license at the checkout, then install the extension from the Chrome Web Store and paste your key. Install the extension free, open it, and you will be prompted for a license. Buy one and paste the key straight in.

Your license key

Keys look like GRANOLA-XXXXXXXX-XXXXXXXXX. Open the extension, paste the key, and click Validate License.

  • One license activates on up to 3 devices.
  • Your key is printed in the README.pdf of every export, so you always have a copy.
  • Lost it entirely? Email hello@transcriptexport.com and it will be resent.

Browser support

Google Chrome 88 or newer. The extension does not run on Firefox, Safari, Edge or any mobile browser.

Creating your Granola API key

The extension connects to Granola with an API key that you create yourself. Granola offers API keys on its Business and Enterprise plans. Setup takes about a minute and you only do it once. On Enterprise plans, a workspace admin may need to enable API access for members first.

  1. Open the Granola desktop app and go to Settings.
  2. Open Connectors, then API keys.
  3. Under Personal API key, create a new key and tick its notes access checkboxes (see below), then copy the key.
  4. Paste the key into the extension and click Save and connect.

Notes access: Personal, Public, or both

Your key decides what you can export. When you create a Personal API key, Granola shows two checkboxes. Tick one or both:

Notes accessWhat the extension can export
Personal notesYour own meetings and notes shared with you. The right choice for backing up your own work.
Public notesEverything visible to your whole workspace, including the Team space. The right choice for a team-wide backup.
BothEverything above in one key: your own meetings plus everything workspace-visible.

Workspace API keys (admins)

Next to Personal API key, workspace admins also see Workspace API keys. There are no options to pick: click create and Granola issues the key. A workspace key belongs to the workspace rather than to you, never expires, and covers the workspace's public notes, which makes it the right key for a standing team backup that survives staff changes.

Swap keys anytime. You can disconnect one key and paste in another from extension Settings, for example a Personal key day to day and a Public key for a quarterly team backup. The extension always exports exactly what the active key can see, nothing more.

Where your key lives. Your API key is stored locally in Chrome on your own machine. It is never sent to or stored on our servers, and your notes download directly from Granola to your computer.

Running an export

  1. Click the TranscriptExporter icon in your Chrome toolbar.
  2. Set filters if you want to narrow things down (all optional).
  3. Choose your content and formats.
  4. Check the estimate line, then click export.
  5. The export runs in the background. Keep browsing, or close the popup, and a ZIP downloads automatically when it finishes.

Filters

FilterNotes
Date rangeFrom and To dates. Leave blank for everything. Useful for quarterly pulls.
FoldersTick one or more Granola folders, including nested child folders. Meetings in several selected folders are exported once, not duplicated.
KeywordsComma separated, matched against meeting titles. For example Check In, Q3 Wrap-Up.

The estimate line. As you change filters, the popup shows a live count, for example "Found 132 notes for these filters", so you know what you are getting before you commit to a large export.

Content

Checkboxes control what each exported file includes:

  • AI notes - Granola's generated summary for the meeting.
  • Full transcript - the complete transcript with timestamps.
  • Attendees and emails - who was in the meeting.
  • Calendar details - date, time, duration, organizer.
  • Folder names - which Granola folders the meeting belongs to.

Formats

FormatBest for
.txtPlain text. Opens anywhere, greps cleanly, archives forever.
.mdMarkdown. Drops straight into Obsidian, Notion, or any notes tool. AI notes keep their headings and lists.
.jsonStructured data for your own scripts and tooling.

Pick one format or several. With several selected, each format gets its own folder inside the ZIP.

Exports run in the background. Once started, an export keeps running even if you close the popup or switch tabs. Reopen the popup at any time to see live progress, and a Chrome notification fires when the ZIP is ready. Large exports of 1,000+ meetings typically finish in a few minutes.

What's in your export

Every export is a ZIP named like granola-notes-2026-08-14.zip, with README.pdf at the root so it is easy to find.

granola-notes-2026-08-14/
├── README.pdf              summary of this export, plus your license key
├── txt/
│   ├── Weekly_Product_Sync_Aug_12_2026_a1b2c3.txt
│   └── Client_Kickoff_Aug_10_2026_d4e5f6.txt
├── md/
│   └── ...                 same meetings, Markdown
└── json/
    └── ...                 same meetings, structured JSON

Each file follows the same layout:

  1. A metadata header: title, date, duration, owner, attendees, organizer, folders, and the Granola URL.
  2. An AI NOTES section: Granola's summary for the meeting. In Markdown files it keeps Granola's own headings and formatting.
  3. A TRANSCRIPT section: every line with an elapsed [MM:SS] timestamp and a speaker label.

Filenames keep a note ID suffix. Files are named Title_Mon_D_YYYY_noteId.txt. The short ID on the end means two meetings with the same title on the same day never overwrite each other.

Speaker labels

Speaker labels come straight from Granola. The extension never invents names. What you see depends on what Granola knows about each line:

LabelWhen you see it
A real nameGranola identified the speaker for that line.
Speaker A, Speaker BGranola separated voices but could not name them, typically on mobile recordings.
Name (me)The note owner's own microphone, labelled with their name.
Other participantAudio from everyone who is not the note owner.

Granola transcripts without speaker tags only distinguish your microphone from other people's audio, so on many desktop recordings the transcript alternates between "Name (me)" and "Other participant". That is exactly how Granola stores it, and your export reflects it faithfully.

Which meetings appear

The export list contains every meeting your API key can see that has a finished AI summary. That is a Granola API rule, not an extension setting:

  • A meeting that just ended appears once Granola finishes generating its summary, usually within a few minutes.
  • A meeting recorded without a summary (for example a cancelled processing run) will not appear.

Retention-deleted transcripts. If your workspace's retention settings have already deleted a meeting's transcript, the meeting still exports with its metadata and AI notes, and the transcript section says so plainly: "(Transcript not available. It may have been removed by Granola's transcript retention settings.)" Exporting before the timer fires is the whole point of a backup.

Cloud backup with Granola Pro

Granola Pro ($6.99/month or $69/year) backs up every new meeting to storage you own, automatically. Connect Google Drive or Dropbox in Settings and the extension checks Granola every 10 minutes, uploading anything new. A meeting still processing in Granola when a check runs is picked up as soon as Granola finishes it, never skipped.

  • Upload on export also copies your one-time exports to the same cloud folder.
  • Backups mirror your saved export formats and include the full notes and transcript.
  • Manage or cancel the subscription anytime from Settings.

Drive access. The extension asks Google only for permission to files it creates itself. It cannot see, read or change anything else in your Drive, and connecting shows a normal Google consent screen with no warning.

Obsidian vault sync

Every Granola meeting can land in your Obsidian vault as a Markdown note, about ten minutes after the call ends, with nothing to click. Part of Granola Pro.

How it works

The extension pairs with TranscriptExporter Sync, our free companion plugin in Obsidian's community store. The plugin runs a small receiver inside Obsidian that listens only on your own computer (127.0.0.1). The extension fetches new meetings from Granola and hands them to the plugin, which writes one .md file per meeting into your vault. No cloud relay, no account, and your meeting data never touches our servers.

Setting it up

Three clicks, under a minute.

  1. In the extension open Settings, find Obsidian Vault, click Set up. Chrome asks permission to talk to Obsidian on your computer. Allow it.
  2. Obsidian opens on our plugin's page. Click Install, then Enable. The extension notices by itself.
  3. Obsidian shows a pairing request naming your vault. Click Allow. Done.

Sync starts immediately with your last 24 hours of meetings, then keeps itself current from there.

What lands in your vault

  • One Markdown file per meeting. Granola's AI notes on top, the full timestamped transcript below.
  • A metadata block at the top with the date, attendees and source link, which Obsidian reads as properties.
  • Files go into a Granola folder in your vault. Rename it in Settings, and nested paths like Meetings/Granola work.

Your edits are safe

A file already in your vault is never modified or overwritten. Add tags, add links, rewrite the whole note. The next sync leaves your version alone. Want a fresh copy of one meeting? Delete its file and it returns on the next sync.

Timing

The extension checks every 10 minutes while Chrome is running. Granola needs a couple of minutes after a call before the note is ready in their API, so a meeting typically appears within 10 to 15 minutes of ending. Long meetings are covered too. The sync keeps rechecking a trailing window, so a meeting that finishes processing late is never missed. If Obsidian is closed, notes simply wait and land on the first check after it reopens.

Changing vaults

Obsidian installs plugins per vault. To sync into a different vault, open that vault in Obsidian and enable TranscriptExporter Sync there, then click Change vault in the extension's Obsidian settings and approve the new pairing. Files already synced stay where they are.

Privacy and the plugin

  • The plugin listens only on 127.0.0.1. Nothing on your network or the internet can reach it.
  • Every delivery is authenticated with a pairing key created on your machine.
  • The plugin makes no outbound requests at all. No telemetry, no phoning home.
  • It is MIT licensed with public source at github.com/TranscriptExporter/transcriptexporter-sync, and Obsidian's directory verifies every release is built byte for byte from that source.

If something looks off

Nothing appears in the vault. Obsidian must be open with the plugin enabled, and Chrome must be running (the extension does the fetching). Check the plugin's settings in Obsidian. The status line should read Running.

The plugin says the port is already in use. Another app, or a second vault with the plugin enabled, holds port 27125. Disable the plugin in other vaults, or change the port in the plugin settings and match it under Advanced in the extension.

The pairing request never appears in Obsidian. Update the plugin (in Obsidian go to Settings, Community plugins, check for updates). Plugin versions before 1.1.0 pair with a copied key instead, and the extension shows that fallback on its own.

Denied the pairing by accident. Click Try again in the extension and approve in Obsidian.

Troubleshooting

API key rejected (401)

  • Check for copy-paste mistakes. Granola API keys start with grn_.
  • The key may have been revoked in Granola. Create a fresh key under Settings, Connectors, API keys, and paste it into the extension.
  • API keys stop working if your workspace drops below a Business or Enterprise plan.

Rate limits

Handled automatically. The extension paces its requests under Granola's limits, and if Granola asks it to slow down mid-export, it waits and resumes on its own. You never lose progress. Very large exports simply take a little longer.

A meeting is missing from the export

  • Most common cause: its AI summary has not finished yet. Wait a few minutes and export again.
  • Check your filters. A date range, folder, or keyword filter may be excluding it.
  • Check your key's notes access. A Personal-notes-only key cannot see teammates' meetings; you need Public notes access for that.
  • A workspace key that finds 0 meetings usually means nothing has been shared workspace-wide yet. Workspace keys only see public notes and the Team space, never anyone's private notes. Share a note into the Team space and it will appear.

"Invalid License" error

  • Double-check the key for typos. It must start with GRANOLA-.
  • Ensure you have not exceeded the 3-device limit.
  • Contact support if you purchased within the last 24 hours.

Extension not working at all

  1. Verify the extension is enabled in chrome://extensions/.
  2. Restart Chrome completely.
  3. Remove and reinstall the extension from the Chrome Web Store. Your license reactivates with the same key.

Support

Email hello@transcriptexport.com for technical issues, license problems, or general questions. We typically respond within 24 hours on business days.

When contacting support, please include:

  • Your license key (first 10 characters)
  • Chrome version
  • A description of the issue, with screenshots if applicable

You can also browse the FAQ and the general support center.

Changelog

1.2.0August 2026LATEST

Obsidian vault sync and smoother connections.

Features

  • Obsidian vault sync (Pro) - every meeting lands in your vault as a Markdown note about ten minutes after the call, through our free companion plugin in the Obsidian community store. Three-click setup, no key copying, everything local.
  • Faster backups - Drive, Dropbox and Obsidian now sync every 10 minutes instead of hourly.

Improvements

  • The "Google hasn't verified this app" warning is gone. The extension now asks Google only for access to files it creates itself, so connecting Drive is a normal consent screen.
  • Connecting Drive, Dropbox or Obsidian no longer needs a second click after Chrome's permission prompt closes the popup. The connection finishes itself and the popup reopens.
  • The Drive folder picker shows what it can actually see (folders the extension created) and says so plainly.
  • A meeting still processing in Granola when a sync runs is picked up as soon as it is ready, never skipped.
1.1.0August 2026

Granola Pro, CSV, and power features.

Features

  • Granola Pro (subscription): hourly auto-backup of new meetings to Google Drive and Dropbox, plus upload-on-export
  • CSV format: a notes.csv spreadsheet with one row per meeting, Excel-safe, alongside the per-meeting files
  • Export New Since [date]: one click exports only the meetings added since your last export
  • Obsidian-ready Markdown: .md files open with a metadata block (date, attendees, folders, source link) that Obsidian and Notion read

Improvements

  • Chrome's downloads popup no longer opens over the extension when a ZIP finishes
  • Settings redesigned: one collapsible Account box, cloud backup cards for Pro
  • Default selections simplified: TXT only, all content options on
  • Live progress shows each meeting as it exports
1.0.0August 2026

Initial release.

Features

  • Bulk export of Granola meeting notes and transcripts, one file per meeting
  • Three formats: TXT, Markdown, and JSON, in any combination
  • Filters for date range, folders (including nested folders), and title keywords
  • Content checkboxes for AI notes, full transcript, attendees, calendar details, and folder names
  • Team-wide export with a Public notes scope API key
  • Background exports that survive closing the popup, with a notification on completion
  • README.pdf in every ZIP with your license key and a meeting index
  • Speaker labels straight from Granola: names when Granola identified the speaker, never invented ones

Documentation for TranscriptExporter for Granola v1.1.0. Last updated August 14, 2026.