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.

Agentic Task
GranolaMemLinearOperationsProductMeeting WorkflowsData Sync

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?
No. Before writing, the agent searches Mem for an existing note matching the Granola meeting title and date. If it finds one, it skips creating a new note and assumes the action item tickets were already filed too.
How does it decide who owns each Linear ticket?
The agent reads the action item text and looks for a name. If it can match the name to someone in your Linear workspace, that person is assigned. If not, the ticket is left unassigned so you can route it during your normal triage.
What if a meeting has no action items?
The agent still files the Mem note so the meeting is archived for search. It simply skips the Linear step. Solo notes and one-on-ones with no action items are skipped entirely.
Can I keep notes in a different Mem collection?
Yes. The default is a collection called Meeting Notes, but you can point the agent at any collection. If the collection does not exist yet, the agent will create it the first time it runs.
Do I need a paid Granola plan for this to work?
Yes. Personal API keys, which this workflow uses to read your notes, are only available on Granola Business and Enterprise plans. On Enterprise, your workspace admin may also need to turn on personal API keys in settings.

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.