Granola

Granola is an AI notepad for meetings that automatically records and transcribes calls, then generates structured notes and summaries alongside your own typed notes.

With Granola, you can:

  • List meeting notes: Browse notes with date filters, folder scoping, and pagination
  • Retrieve full note details: Get summaries, attendees, calendar event details, and transcripts for a specific note
  • Organize by folders: List and filter notes using Granola's folder structure

In Sim, the Granola integration allows your agents to pull meeting notes, summaries, and transcripts directly into a workflow. Agents can list recent notes with date or folder filters, fetch a specific note's summary text, attendees, and calendar details, retrieve the full transcript with speaker labels when needed, and browse folders to organize retrieval. This makes it possible to build workflows that surface meeting outcomes, route action items, or feed meeting context into downstream agent reasoning.

Usage Instructions

Integrate Granola into your workflow to retrieve meeting notes, summaries, attendees, and transcripts, review workspace audit events, and manage webhook endpoints. Granola can also trigger workflows when notes are generated, edited, or shared with you.

Actions

Granola List Notes

Lists meeting notes from Granola with optional date filters and pagination.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
createdBeforestringNoReturn notes created before this date (ISO 8601)
createdAfterstringNoReturn notes created after this date (ISO 8601)
updatedAfterstringNoReturn notes updated after this date (ISO 8601)
folderIdstringNoReturn notes in this folder and its child folders (e.g., fol_4y6LduVdwSKC27)
cursorstringNoPagination cursor from a previous response
pageSizenumberNoNumber of notes per page (1-30, default 10)

Output

ParameterTypeDescription
notesarrayList of meeting notes
idstringNote ID
titlestringNote title
ownerNamestringNote owner name
ownerEmailstringNote owner email
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
hasMorebooleanWhether more notes are available
cursorstringPagination cursor for the next page

Granola Get Note

Retrieves a specific meeting note from Granola by ID, including summary, attendees, calendar event details, and optionally the transcript.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
noteIdstringYesThe note ID (e.g., not_1d3tmYTlCICgjy)
includeTranscriptstringNoWhether to include the meeting transcript

Output

ParameterTypeDescription
idstringNote ID
titlestringNote title
ownerNamestringNote owner name
ownerEmailstringNote owner email
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
webUrlstringURL to view the note in Granola
summaryTextstringPlain text summary of the meeting
summaryMarkdownstringMarkdown-formatted summary of the meeting
attendeesarrayMeeting attendees
namestringAttendee name
emailstringAttendee email
foldersarrayFolders the note belongs to
idstringFolder ID
namestringFolder name
calendarEventTitlestringCalendar event title
calendarOrganiserstringCalendar event organiser email
calendarEventIdstringCalendar event ID
scheduledStartTimestringScheduled start time
scheduledEndTimestringScheduled end time
inviteesarrayCalendar event invitee emails
transcriptarrayMeeting transcript entries (only if requested)
speakerstringSpeaker source (microphone or speaker)
speakerAttributionstringWho spoke relative to the note owner: "me" for the note-taker, "them" for other participants. Null when attribution is unknown.
speakerLabelstringDiarization label for the speaker (e.g., Speaker A)
speakerNamestringResolved name of the identified speaker, when available
textstringTranscript text
startTimestringSegment start time
endTimestringSegment end time

Granola Get Transcript

Retrieves a meeting transcript from Granola one page at a time, including when Get Note reports the transcript is too large to return inline.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
noteIdstringYesThe note ID (e.g., not_1d3tmYTlCICgjy)
cursorstringNoPagination cursor from a previous response
pageSizenumberNoNumber of transcript items per page (1-100, default 50)

Output

ParameterTypeDescription
transcriptarrayTranscript items for this page
speakerstringAudio source of the speaker (microphone or speaker)
speakerAttributionstringWho spoke relative to the note owner: "me" for the note-taker, "them" for other participants. Null when attribution is unknown.
speakerLabelstringAnonymous diarization label for the speaker (e.g., Speaker A)
speakerNamestringResolved name of the identified speaker, when available
textstringTranscript text
startTimestringSegment start time
endTimestringSegment end time
hasMorebooleanWhether another page of transcript items is available
cursorstringPagination cursor for the next page

Granola List Folders

Lists folders from Granola, sorted alphabetically, with pagination.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
cursorstringNoPagination cursor from a previous response
pageSizenumberNoNumber of folders per page (1-30, default 10)

Output

ParameterTypeDescription
foldersarrayList of folders
idstringFolder ID
namestringFolder name
parentFolderIdstringParent folder ID, or null for top-level folders
hasMorebooleanWhether more folders are available
cursorstringPagination cursor for the next page

Granola List Audit Events

Lists workspace audit events from Granola, with optional action and date filters. Events are returned in collection order and retained for one year.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
actionstringNoReturn only events with this exact action, or actions beginning with it followed by a dot (e.g., "workspace" matches workspace.member_added). Lowercase.
occurredAfterstringNoReturn events that occurred after this date (ISO 8601). Must fall within the one-year retention window.
occurredBeforestringNoReturn events that occurred before this date (ISO 8601). Must fall within the one-year retention window.
cursorstringNoPagination cursor from a previous response
pageSizenumberNoNumber of audit events per page (1-30, default 10)

Output

ParameterTypeDescription
eventsarrayList of audit events
idstringAudit event ID
actionstringThe recorded action (e.g., workspace.member_added). Treat as an open set — actions are added over time.
occurredAtstringWhen the action happened
collectedAtstringWhen Granola recorded the event. Events are returned in this order, so page on it rather than on occurredAt.
actorTypestringWho performed the action: user, api_key, system, or anonymous
actorIdstringUser ID of the actor, when the actor is a resolvable user
actorEmailstringEmail of the acting user, when the account still exists
datajsonAction-specific details. Field names are the ones Granola records internally, so they are camelCase.
ipAddressstringIP address the request came from, when recorded
userAgentstringUser agent of the client that made the request, when recorded
clientVersionstringGranola client version that made the request, when recorded
hasMorebooleanWhether more audit events are available. A page can hold fewer than pageSize events and still not be the last one.
cursorstringPagination cursor for the next page

Granola Create Webhook Endpoint

Registers an HTTPS URL in Granola to receive note event deliveries. The signing secret is returned only by this operation and cannot be retrieved later.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
urlstringYesThe publicly reachable HTTPS URL to deliver events to. Private network addresses are rejected.
scopesstringYesWhich notes to receive events for, comma-separated: personal, public. With a workspace API key pass exactly "workspace".
eventsstringNoEvent names to subscribe to, comma-separated: note.generated, note.edited, note.access_granted. Omit to subscribe to all events.
folderIdsstringNoRestrict delivery to notes in these folders or their subfolders, comma-separated folder IDs (max 100). Omit for every note matching scopes.

Output

ParameterTypeDescription
idstringWebhook endpoint ID
urlstringThe HTTPS URL deliveries are sent to
urlRedactedbooleanWhether the returned URL was reduced to its origin because the caller is not the endpoint creator
eventsarrayEvent names this endpoint is subscribed to
folderIdsarrayFolder IDs delivery is restricted to, or an empty array when unrestricted
scopesarrayWhich notes this endpoint receives events for
createdByNamestringName of the user who created the endpoint
createdByEmailstringEmail of the user who created the endpoint
enabledbooleanWhether deliveries are active
createdAtstringCreation timestamp
signingSecretstringSecret for verifying delivery signatures (Standard Webhooks HMAC-SHA256). Returned only here — store it securely.

Granola List Webhook Endpoints

Lists the Granola webhook endpoints the API key can manage. A personal key sees the endpoints it created; a workspace admin sees every endpoint in the workspace. Signing secrets are never included.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key

Output

ParameterTypeDescription
webhookEndpointsarrayList of webhook endpoints
idstringWebhook endpoint ID
urlstringThe HTTPS URL deliveries are sent to, reduced to its origin when urlRedacted is true
urlRedactedbooleanWhether the URL was reduced to its origin because the caller is not the endpoint creator
eventsarrayEvent names this endpoint is subscribed to
folderIdsarrayFolder IDs delivery is restricted to, or an empty array when unrestricted
scopesarrayWhich notes this endpoint receives events for
createdByNamestringName of the user who created the endpoint
createdByEmailstringEmail of the user who created the endpoint
enabledbooleanWhether deliveries are active
createdAtstringCreation timestamp

Granola Update Webhook Endpoint

Updates a Granola webhook endpoint. Each supplied field replaces its current value; omitted fields are left unchanged. Use enabled to pause or resume deliveries.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
webhookEndpointIdstringYesThe webhook endpoint ID (e.g., whe_2mKr8fQxLp7Ta3)
urlstringNoNew HTTPS URL to deliver events to. Omit to leave unchanged.
scopesstringNoReplacement scopes, comma-separated: personal, public. Omit to leave unchanged. A workspace-managed endpoint accepts only "workspace".
eventsstringNoReplacement event subscriptions, comma-separated: note.generated, note.edited, note.access_granted. Omit to leave unchanged.
folderIdsstringNoReplacement folder filter, comma-separated folder IDs (max 100). Pass "[]" to remove the filter. Omit to leave unchanged.
enabledbooleanNoPause (false) or resume (true) deliveries. Events that occur while paused are not delivered later. Omit to leave unchanged.

Output

ParameterTypeDescription
idstringWebhook endpoint ID
urlstringThe HTTPS URL deliveries are sent to
urlRedactedbooleanWhether the returned URL was reduced to its origin because the caller is not the endpoint creator
eventsarrayEvent names this endpoint is subscribed to
folderIdsarrayFolder IDs delivery is restricted to, or an empty array when unrestricted
scopesarrayWhich notes this endpoint receives events for
createdByNamestringName of the user who created the endpoint
createdByEmailstringEmail of the user who created the endpoint
enabledbooleanWhether deliveries are active
createdAtstringCreation timestamp

Granola Delete Webhook Endpoint

Deletes a Granola webhook endpoint by ID, stopping its event deliveries immediately.

Input

ParameterTypeRequiredDescription
apiKeystringYesGranola API key
webhookEndpointIdstringYesThe webhook endpoint ID (e.g., whe_2mKr8fQxLp7Ta3)

Output

ParameterTypeDescription
idstringID of the deleted webhook endpoint
deletedbooleanWhether the endpoint was deleted

Triggers

A Trigger is a block that starts a workflow when an event happens in this service.

Granola Events

Trigger workflow on any Granola note event

Configuration

ParameterTypeRequiredDescription
apiKeystringYesYour Granola API key. Used to register the webhook endpoint on deploy and remove it on undeploy.
scopesstringNoComma-separated scopes deciding which notes send events: personal, public. With a Workspace API key pass exactly "workspace". Defaults to "personal, public".
folderIdsstringNoOptional comma-separated folder IDs (max 100). Deliveries are restricted to notes in these folders or their subfolders. Leave blank for every note matching the scopes.

Output

ParameterTypeDescription
event_idstringUnique ID for the event. Retries of the same delivery reuse it.
event_typestringWhich event occurred: note.generated, note.edited, or note.access_granted.
note_idstringID of the note the event is about (e.g., not_1d3tmYTlCICgjy). Fetch it with the Get Note operation.
occurred_atstringISO 8601 timestamp of when the event occurred.
changed_fieldsjsonNote fields that changed. Present on note.edited events (currently always ["summary"]); null otherwise.
payloadjsonFull raw webhook body as delivered by Granola.

Granola Note Access Granted

Trigger workflow when a Granola note is shared with you, directly or via a folder

Configuration

ParameterTypeRequiredDescription
apiKeystringYesYour Granola API key. Used to register the webhook endpoint on deploy and remove it on undeploy.
scopesstringNoComma-separated scopes deciding which notes send events: personal, public. With a Workspace API key pass exactly "workspace". Defaults to "personal, public".
folderIdsstringNoOptional comma-separated folder IDs (max 100). Deliveries are restricted to notes in these folders or their subfolders. Leave blank for every note matching the scopes.

Output

ParameterTypeDescription
event_idstringUnique ID for the event. Retries of the same delivery reuse it.
event_typestringWhich event occurred: note.generated, note.edited, or note.access_granted.
note_idstringID of the note the event is about (e.g., not_1d3tmYTlCICgjy). Fetch it with the Get Note operation.
occurred_atstringISO 8601 timestamp of when the event occurred.
changed_fieldsjsonNote fields that changed. Present on note.edited events (currently always ["summary"]); null otherwise.
payloadjsonFull raw webhook body as delivered by Granola.

Granola Note Edited

Trigger workflow when a Granola note summary is edited or regenerated

Configuration

ParameterTypeRequiredDescription
apiKeystringYesYour Granola API key. Used to register the webhook endpoint on deploy and remove it on undeploy.
scopesstringNoComma-separated scopes deciding which notes send events: personal, public. With a Workspace API key pass exactly "workspace". Defaults to "personal, public".
folderIdsstringNoOptional comma-separated folder IDs (max 100). Deliveries are restricted to notes in these folders or their subfolders. Leave blank for every note matching the scopes.

Output

ParameterTypeDescription
event_idstringUnique ID for the event. Retries of the same delivery reuse it.
event_typestringWhich event occurred: note.generated, note.edited, or note.access_granted.
note_idstringID of the note the event is about (e.g., not_1d3tmYTlCICgjy). Fetch it with the Get Note operation.
occurred_atstringISO 8601 timestamp of when the event occurred.
changed_fieldsjsonNote fields that changed. Present on note.edited events (currently always ["summary"]); null otherwise.
payloadjsonFull raw webhook body as delivered by Granola.

Granola Note Generated

Trigger workflow when the first AI summary for a Granola note is generated

Configuration

ParameterTypeRequiredDescription
apiKeystringYesYour Granola API key. Used to register the webhook endpoint on deploy and remove it on undeploy.
scopesstringNoComma-separated scopes deciding which notes send events: personal, public. With a Workspace API key pass exactly "workspace". Defaults to "personal, public".
folderIdsstringNoOptional comma-separated folder IDs (max 100). Deliveries are restricted to notes in these folders or their subfolders. Leave blank for every note matching the scopes.

Output

ParameterTypeDescription
event_idstringUnique ID for the event. Retries of the same delivery reuse it.
event_typestringWhich event occurred: note.generated, note.edited, or note.access_granted.
note_idstringID of the note the event is about (e.g., not_1d3tmYTlCICgjy). Fetch it with the Get Note operation.
occurred_atstringISO 8601 timestamp of when the event occurred.
changed_fieldsjsonNote fields that changed. Present on note.edited events (currently always ["summary"]); null otherwise.
payloadjsonFull raw webhook body as delivered by Granola.