| name | granola-ci-integration |
| description | Build automated pipelines from Granola meeting notes to GitHub Issues, Linear tasks,
Slack notifications, and documentation updates using Zapier and GitHub Actions.
Trigger: "granola CI", "granola automation pipeline", "granola to github",
"granola to linear", "meeting notes automation".
|
| allowed-tools | Read, Write, Edit, Bash(gh:*), Bash(curl:*) |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","granola","ci-cd","automation"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Granola CI Integration
Overview
Build automated pipelines that process Granola meeting notes into development artifacts: GitHub Issues from action items, Linear tasks with team routing, Slack digests for stakeholders, and meeting logs in your repository. Uses Zapier as the middleware between Granola and dev tools.
Prerequisites
- Granola Business plan (for Zapier access)
- Zapier account (Free for basic, Paid for multi-step Zaps)
- GitHub repository with Actions enabled
- Optional: Linear account, Slack workspace
Instructions
Step 1 โ Set Up the Zapier Pipeline
Trigger:
App: Granola
Event: Note Added to Granola Folder
Folder: "Engineering"
Step 2 โ Parse Action Items with Zapier Code
Add a Code by Zapier step (JavaScript) to extract action items:
const noteContent = inputData.note_content || '';
const meetingTitle = inputData.title || 'Untitled Meeting';
const meetingDate = inputData.calendar_event_datetime || new Date().toISOString();
const actionRegex = /- \[ \] @?(\w+):?\s+(.+)/g;
const actions = [];
let match;
while ((match = actionRegex.exec(noteContent)) !== ) {
actions.({
: match[],
: match[].(),
: meetingTitle,
: meetingDate.()[],
});
}
decisionSection = noteContent.();
decisions = decisionSection
? decisionSection[].().( l.()).( l.(, ))
: [];
output = [{
: actions.,
: .(actions),
: decisions.(),
: meetingTitle,
: meetingDate,
}];