> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serval.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Granola

> Connect your Granola workspace to Serval so workflows can read AI meeting notes, summaries, and full transcripts on demand.

## About Granola

Granola is an AI meeting-notes product that captures meetings and produces notes, summaries, and transcripts. The Serval integration connects your Granola workspace with a Granola API key, giving Serval workflows read-only access to your meeting notes through Serval's authenticated proxy. Workflows can list notes, filter them by date, and pull the full detail of any meeting, including attendees, calendar details, AI summaries, and the word-by-word transcript.

**Authentication:** API key - a single Granola API key pasted into the connect form. Serval stores it securely and attaches it to every request automatically; the key is only ever sent to Granola's API host, and workflow code never sees it.

**Data sync:** On demand only - workflows read from Granola at run time. There is no background sync, no webhooks, and no pre-built installable workflows.

## What the Granola integration enables

| Capability                            | Description                                                                                                                                                                                                                                                                                                                   |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| List meeting notes                    | Pull meeting notes in pages, with each entry showing the note's title, owner, and when it was created and last updated. Lists can be filtered to notes created before or after a given time, or updated after a given time.                                                                                                   |
| Fetch a full note with its transcript | Retrieve everything Granola captured for one meeting: attendees, calendar event details (title, invitees, organizer, scheduled start and end), folder membership, the AI summary in both plain-text and formatted form, and the transcript - each line tagged with its speaker source (microphone or speaker) and timestamps. |
| Read-only workflow access             | Workflows get typed, read-only access to Granola data through Serval's authenticated proxy. Reading notes, summaries, and transcripts is supported; creating, updating, or deleting notes is not.                                                                                                                             |

Anything in the integration's modeled surface of the [Granola API](https://docs.granola.ai/api-reference) can be accessed through Serval.

## Get your credentials

You need a Granola API key, created from the Granola desktop app. Keys start with `grn_`. Per the [Granola API overview](https://docs.granola.ai/introduction), any workspace member on a Business plan can create API keys; on Enterprise plans, a workspace admin chooses which access scopes members can use.

<Steps>
  <Step title="Open your API key settings">
    In the Granola desktop app, open Settings, then Connectors, then API keys.
  </Step>

  <Step title="Create a new key">
    Click Create new key and choose the note access scopes the key should include - Personal notes, Public notes, or both. These scopes decide which notes Serval workflows will be able to read.
  </Step>

  <Step title="Generate and copy the key">
    Click Generate API Key, then copy the key (it starts with `grn_`) and store it securely.
  </Step>
</Steps>

<Warning>
  On Enterprise plans, a workspace admin controls which API access scopes members can use, under Settings, then Workspace, then General, then API access for members. If you cannot create a key or select a scope, ask a workspace admin to enable API access first.
</Warning>

## Connect in Serval

<Steps>
  <Step title="Add a Granola connection">
    In Serval, open the **Granola** integration and start a new connection.
  </Step>

  <Step title="Paste your API key">
    Paste the key into the **API Key** field. It is a password field, so the value is hidden as you type. The helper text under the field reads: "Your Granola Enterprise API key. Generate one from Settings → Workspaces → API tab."
  </Step>

  <Step title="Submit the form">
    Click **Submit**. The form does not validate the key at save time - a mistyped or blank key is accepted silently and only surfaces when the health check below runs.
  </Step>
</Steps>

<Note>
  The helper text points at an older location in Granola's settings. In current Granola versions, API keys live under Settings, then Connectors, then API keys, as described above.
</Note>

<Warning>
  When you reopen the connection settings later, the saved key is shown masked - bullet characters plus its last 4 characters - and it cannot be typed over directly. Only save the settings when you are rotating the key. To rotate, select the pencil icon (or **Replace** button) next to the masked value, paste the complete new key, and save in the same edit. Never save while the key field is empty, and if you opened the settings without meaning to change the key, close them without saving.
</Warning>

## Verifying the connection

The Granola integration includes one health check, **List Granola Notes**. It uses your stored key to list a single note from your workspace, confirming Serval can reach the Granola API on your behalf.

* On success: "Successfully connected to Granola. Found 1 note(s)." The number is how many notes the check retrieved - at most one, and a brand-new workspace with no notes yet can show 0, which still counts as success.
* On failure: "Unable to list Granola notes. Please verify your API key is valid and you have Enterprise plan access."

<Tip>
  If the health check is green but a workflow that reads many notes fails intermittently, it may be hitting Granola's rate limits. Have the workflow read notes in smaller pages and retry after a pause instead of re-running immediately.
</Tip>

## Gotchas and troubleshooting

<AccordionGroup>
  <Accordion title="Connection broke right after editing it">
    On the edit screen the saved key appears masked - bullets plus its last 4 characters - and cannot be typed over directly. To rotate it, select the pencil icon (or **Replace** button) next to the masked value; this clears the field so you can paste the complete new key. Paste the full key and save in one step - never save while the field is empty. If the connection fails right after an edit, re-enter the complete key and save again.
  </Accordion>

  <Accordion title="A wrong or blank key is accepted at save time">
    Neither the connect form nor Serval validates the key when you save - a mistyped or empty key is accepted silently and only surfaces later as a failing List Granola Notes health check. Always run the health check right after connecting or editing.
  </Accordion>

  <Accordion title="The error message says Enterprise, but check your key first">
    The health check's failure message asks you to verify Enterprise plan access, and the connect form calls the credential a Granola Enterprise API key. Per Granola's current API documentation, API keys are also available on Business plans, with Enterprise workspace admins controlling which access scopes members can use. If the check fails, the most common causes are a mistyped or revoked key, or a key created without a usable access scope - confirm those before debugging your plan.
  </Accordion>

  <Accordion title="The key's access scopes decide which notes workflows can see">
    Granola API keys carry note access scopes: Personal notes (notes you own or that are shared with you) and Public notes (notes visible to everyone in the workspace, including the Team space). A workflow can only read notes the key's scopes allow, so a healthy connection can still return fewer notes than you expect. Edit or recreate the key with broader scopes if workflows are missing notes.
  </Accordion>

  <Accordion title="The integration is read-only">
    Workflows can read notes, summaries, and transcripts, but cannot create, update, or delete anything in Granola through this integration. If a workflow needs to write meeting data somewhere, it must write to another system.
  </Accordion>

  <Accordion title="Rate limits on heavy usage">
    Granola can rate-limit both listing notes and fetching individual notes. Workflows that read large numbers of notes should page through results gradually and back off when requests are rejected, rather than requesting everything at once.
  </Accordion>
</AccordionGroup>

***

Need help? Contact **[support@serval.com](mailto:support@serval.com)** for assistance with your Granola integration.
