Integrations / Granola
Granola
Meeting notes from Granola: list and read notes, AI summaries, transcripts, folders and spaces.
5 actions
API key
5 read0 write
Calls public-api.granola.ai
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "granola" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Get meeting notereadgranola.get_noteGet one Granola meeting note: title, attendees, AI summary and optionally the transcript. A 413 means the transcript is too large: use get_transcript.
| Input | Type | Description | |
|---|---|---|---|
note_id | string | Required | Note ID starting with not_ |
include | string | Optional | Set to transcript to include the transcript inline |
await setu.execute({
userId: "user_1",
action: "granola.get_note",
input: {
"note_id": "<note_id>"
},
});Get meeting transcriptreadgranola.get_transcriptGet the transcript of a Granola meeting note in pages, with speaker source and timestamps.
| Input | Type | Description | |
|---|---|---|---|
note_id | string | Required | Note ID starting with not_ |
page_size | integer | Optional | Transcript items per page, 1 to 100 (default 50) |
cursor | string | Optional | Cursor from the previous page |
await setu.execute({
userId: "user_1",
action: "granola.get_transcript",
input: {
"note_id": "<note_id>"
},
});List foldersreadgranola.list_foldersList Granola folders alphabetically, with parent folder and space, to find folder IDs for filtering notes.
| Input | Type | Description | |
|---|---|---|---|
page_size | integer | Optional | Folders per page, 1 to 30 |
cursor | string | Optional | Cursor from the previous page |
await setu.execute({
userId: "user_1",
action: "granola.list_folders",
input: {},
});List meeting notesreadgranola.list_notesList Granola meeting notes (only those with a finished AI summary), optionally filtered by date, folder or space. Returns a cursor for the next page.
| Input | Type | Description | |
|---|---|---|---|
created_after | string | Optional | Notes created after this date or ISO date-time, for example 2026-01-27 |
created_before | string | Optional | Notes created before this date or ISO date-time |
updated_after | string | Optional | Notes updated after this date or ISO date-time |
folder_id | string | Optional | Only notes in this folder (fol_...) and its child folders |
space_id | string | Optional | Only notes in this space (spa_...) |
page_size | integer | Optional | Notes per page, 1 to 30 (default 10) |
cursor | string | Optional | Cursor from the previous page |
await setu.execute({
userId: "user_1",
action: "granola.list_notes",
input: {},
});List spacesreadgranola.list_spacesList the Granola spaces (shared team areas) you can access, to find space IDs for filtering notes.
| Input | Type | Description | |
|---|---|---|---|
page_size | integer | Optional | Spaces per page, 1 to 30 |
cursor | string | Optional | Cursor from the previous page |
await setu.execute({
userId: "user_1",
action: "granola.list_spaces",
input: {},
});