granola-sync
Polls Granola's public API for meeting notes. Granola has no webhooks, so polling is the entire
freshness story — with a 72-hour trailing overlap on updated_after, because Granola only
returns a note once its AI summary and transcript both finish generating.
{ "dryRun": true }
{ "limit": 25, "lookbackHours": 72 }
A note overlapping an existing non-Granola meeting source within ±30 minutes is skipped, so Fathom stays primary and Granola only fills the gap where a recording bot never joined. Full connector detail is on the Granola connector page.
Where the code lives
sable-agents-demo/supabase/functions/granola-sync/index.tssable-agents-demo/supabase/functions/_shared/granola.js