Skip to main content
In this tutorial, we’ll walk through how to import your Granola meeting data into Honcho. By the end, your meeting participants, transcripts, and summaries will be mapped onto Honcho’s peer and session model — giving your agents queryable memory of the people you meet with. This guide includes a ready-to-run Python script that handles everything: Granola OAuth, meeting fetching, participant detection, and interactive import. You can run it as-is or use the full tutorial below to understand each design decision.
The full script is available on GitHub.

TL;DR

If you just want to get your meetings into Honcho, here’s everything you need.

1. Install Dependencies

2. Set Your API Key

3. Run the Script

The script will:
  1. Open your browser for Granola OAuth authentication
  2. Fetch all meetings and their content
  3. Walk you through each meeting interactively — confirm peers, choose import mode, skip meetings you don’t want
  4. Print a summary of what was transferred
That’s it — your meetings are now queryable in Honcho. Read on if you want to understand how the script works and the design decisions behind it.

Full Tutorial

How Granola Maps to Honcho

The core idea is straightforward: each Granola meeting becomes a Honcho session, and each participant becomes a peer. Here’s the full mapping:

Email as Peer ID

The script uses email addresses as the basis for peer IDs, normalized to a URL-safe format (e.g., alice@example.com becomes alice-example-com). This ensures consistent identification across meetings — if you meet someone in 5 different calls, all conversations accumulate under the same peer.
This also means peers are consistent across data sources. If you import both Granola meetings and Gmail threads for the same person, they merge under the same peer ID.

Auto-Detecting “Me”

Granola marks the note creator in its participant list with (note creator). The script uses this to identify you automatically — no configuration needed.

Two-Person Calls: Full Attribution

When exactly one other participant is present and the transcript contains Them: turns, the script stores the transcript with speaker-attributed messages. Consecutive same-speaker turns are merged before storing, cleaning up the fragmentation that’s common in raw transcripts.

Multi-Person Calls: Summary Mode

Granola’s transcript uses Them: for all non-creator speakers with no disambiguation — in a 4-person call, everyone else is just Them:. Rather than guess incorrectly, the script stores Granola’s summary as your record of the meeting, with participants in metadata.
The summary is attributed to you because it’s your record of what happened. Granola captured your notes from a meeting where those people were present.

Interactive Confirmation

For each meeting, you choose the import mode: two-person (full attribution), summary, or skip. For multi-person calls that are actually 1:1s (extra participants listed but didn’t speak), you can override the detection and select the actual speaker.

Noisy Transcripts Preserved

Granola’s raw transcripts are often fragmented (Me: Yeah. Them: Yeah. Me: And.). The script merges consecutive same-speaker turns but otherwise preserves the raw content. Honcho’s reasoning extracts signal from noisy data.

Querying After Import

Once your meetings are in Honcho, you can query any peer:

Combining with Other Sources

Because meetings live in a standard Honcho workspace, you can enrich peer representations with data from other channels:

Troubleshooting

Full Script

Next Steps

Design Patterns

See how the Granola integration maps to common Honcho patterns.

GitHub Repository

Source code and example script.