Configuration
Create a key in Settings → Connectors → API keys in Granola. API access
requires a Business or Enterprise plan. On Enterprise, admins choose which
access scopes members can use.
A personal key can read notes covered by the scopes you chose when creating
it. A workspace key can read public workspace notes and notes in spaces with
API access enabled. See Granola’s API guide
for setup details.
Resources
Notes, note details, transcripts, and folders are selected by default. You can
also select webhook configuration. Filament only writes the resources you
select, though it still lists notes to fetch their details or transcripts.
notes contains IDs, titles, owners, and timestamps. note_details adds
summaries in text and Markdown, private notes, calendar details, attendees,
and folder membership. Private notes are only returned when the key belongs
to the note’s creator. Otherwise, those fields are null. Nested objects and
arrays are stored as JSON.
transcripts returns one row per transcript item, with the note ID, speaker,
text, and start and end times. The speaker field keeps any names, attribution,
and anonymous speaker labels Granola provides. Transcripts are fetched in
pages so long meetings can be read in full.
folders includes parent_folder_id so you can follow the folder hierarchy.
webhook_endpoints lists webhook URLs, subscribed events, scopes, folder
filters, and whether each endpoint is enabled. It only reads this configuration.
It does not create webhooks or receive their events.
The Enterprise Audit API uses a separate
audit-only key and is not included in this connector.
Modes
All resources support full reads.notes also supports incremental reads
using updated_at. Each run sends the saved timestamp as updated_after,
with a five-minute lookback by default. This re-reads recently updated notes
to help catch changes around the last run. You can adjust the lookback, but
the cursor field is fixed. The checkpoint key is notes_updated_at and uses
the time comparator.
Details, transcripts, folders, and webhook configuration are read in full.
Use full replace for transcripts. Granola does not give transcript items
stable IDs, and speaker names and timestamps are not guaranteed to be unique.
Full replacement also removes deleted notes and refreshes folder membership.
Incremental note reads cannot detect deletions. They can also miss newly
shared notes if those notes were last updated before the lookback window.
Behavior
- Auth: every request uses
api_keyas a bearer token and goes tohttps://public-api.granola.ai. - Pagination: notes and folders request 30 items per page. Transcripts
request 100. Filament passes the returned
cursorto the next request and stops whenhasMoreis false. Details and webhook configuration do not use pagination. - Rate limiting: five requests per second, shared across resources in the connection. Granola applies its limit per user or workspace, so other clients using that quota can cause throttling.
- Availability: notes only appear in the API once they have a generated summary and transcript. Notes still being processed are not returned.
- The
rawcolumn keeps any fields that are not mapped to their own columns.