Archive Granola meetings in Mem, ship action items to Linear
When a new Granola note lands, file a clean writeup in your Mem knowledge base and open Linear tickets for every action item you committed to.
Build me an agent workflow that turns every finished Granola meeting note into a permanent Mem archive entry and trackable Linear tickets for the action items.
Trigger: poll Granola for new_note. Whenever a new Granola meeting note becomes available, run the agent on that note's id.
Step 1 — pull the meeting. In Granola, call Get Note on the new note id to fetch the full summary_markdown, attendees, calendar event details, and a reference to the transcript. Pass include=transcript so the transcript is available if needed.
Step 2 — dedupe in Mem. In Mem, run Search Notes with a query built from the Granola meeting title and date (for example, '"<meeting title>" <YYYY-MM-DD>'). If a note already exists for this meeting, stop here and do not create another note and do not file Linear tickets — assume this is a rerun.
Step 3 — decide whether to file. Skip the meeting entirely if it looks like a personal solo note (only the user as attendee) or a one-on-one (exactly two attendees including the user) AND the Granola summary contains no action items. Everything else proceeds.
Step 4 — write the Mem archive. In Mem, ensure a collection titled "Meeting Notes" exists. If it does not, call Create Collection to create it. Then call Create Note linked to that collection (by title or id). The note must be clean markdown structured as:
First line: '# {Meeting title} — {date}' (this becomes the Mem note title).
A Summary section pulled from Granola's summary_markdown, lightly cleaned.
An Attendees section listing each person with name and email if available.
A Key Decisions section, extracted from the summary.
An Action Items section listing every action item with its inferred owner.
A Related Notes section built by running Search Notes in Mem for each non-user attendee and for the main topic of the meeting, then listing the top 3 to 5 results as markdown links.
If Create Note did not attach the note to the Meeting Notes collection at creation time, call Add Note to Collection afterwards using the returned note id.
Step 5 — file Linear tickets. Parse the action items out of the Granola summary. For each action item, call Create Issue in Linear with:
A clear imperative title derived from the action-item text (for example, 'Send pricing deck to Acme by Friday').
An assignee inferred from the action-item text by matching a name against Linear workspace members. If no confident match, leave it unassigned.
A markdown description that includes the action item context, the meeting title and date, and a 'Source: <Mem note URL>' line linking back to the Mem note created in Step 4.
The user's default Linear team (ask which team during setup).
If there are no action items in the summary, skip the Linear step entirely. The Mem note is still written.
Other rules. Never create duplicate Mem notes — always run Search Notes first. If Step 2 found an existing note, do not file Linear tickets on the rerun. Keep the Mem writeup self-contained so a reader does not need the original Granola note to understand what was decided. Use markdown only, no HTML. If Granola, Mem, or Linear returns a rate-limit error, back off and retry.
Additional information
What does this prompt do?
- Watches Granola for finished meeting notes and pulls the full summary, attendees, and decisions for each new one.
- Files a tidy markdown writeup in your Mem Meeting Notes collection, including a Related notes section it builds by searching past notes about the same people and topic.
- Parses the action items, infers an owner from each one, and opens a Linear ticket that links straight back to the Mem note for context.
- Skips solo notes and one-on-ones that have no action items, and checks Mem first so reruns never create duplicate notes or tickets.
What do I need to use this?
- A Granola account on a Business or Enterprise plan with a personal API key enabled.
- A Mem account with an API key (the agent uses or creates a Meeting Notes collection for you).
- A Linear workspace and a default team where new action item tickets should land.
How can I customize it?
- Change the Mem collection name, or split notes across multiple collections (for example, customer calls in one, internal reviews in another).
- Adjust which meetings are skipped. The default skips solo notes and one-on-ones unless they contain explicit action items.
- Pick a different Linear team for the tickets, or set a default label or priority so action items are easy to triage.
Frequently asked questions
Will running it more than once create duplicate notes in Mem?
How does it decide who owns each Linear ticket?
What if a meeting has no action items?
Can I keep notes in a different Mem collection?
Do I need a paid Granola plan for this to work?
Stop losing meeting follow-ups the moment Granola finishes the recap.
Connect Granola, Mem, and Linear once, and every meeting writes itself into your knowledge base and your backlog.