Operations · Graph library

Meeting notes → action items, drawn as a graph

The smallest process with the biggest daily payoff: from a messy transcript to owned, dated tasks — with a merge step and a check before anything reaches the task board.

Open this graph in nodalo — free Built for the desktop — open nodalo on your computer.
owner resolves to one attendee ambiguous or absent owner confirmed with owner list is faithful item fails → fix (max 1) Meeting notes arrive INPUT Clean the transcript Extract decisions Extract action items Owner clear? DECISION Ask the organiser Merge & deduplicate MERGE Faithful to the meeting? EVALUATOR Tasks on the board OUTPUT

Meeting Notes to Tasks — 9 nodes · 11 connections. Labels on the arrows are the conditions that take each branch.

Everyone has automated this badly at least once: transcript in, "action items" out — and half of them are vague wishes without an owner, two describe the same task in different words, and one assigns work to someone who was not even in the meeting. The failure is not the model. It is that "extract the action items" skips every decision that makes a task list usable: what counts as a task, who owns it, and what happens to duplicates.

This graph spells those decisions out. Decisions and tasks are extracted separately — a decision made in a meeting is not an action item, and mixing them is how task boards fill with noise. A labelled branch handles the tasks whose owner is unclear instead of guessing one, a merge node joins both streams before deduplication, and an evaluator checks the final list against the transcript before anything is created in your task tool. It is also the best first graph to try in nodalo: one meeting's notes, two minutes, and the output difference is visible immediately.

The node contracts

Each node carries a contract — what comes in, what happens, what goes out. This is the text your AI receives, node for node, when you hand the graph over.

Meeting notes arrive Input

Entry point. The raw material: a transcript, typed notes, or both — plus the attendee list with roles and the meeting date. The attendee list matters: it is the reference for resolving names like "Alex" to an actual person, and nobody outside it may end up owning a task.

  • → leads to Clean the transcript

Clean the transcript

Remove filler, small talk and transcription artefacts; attribute every remaining statement to a speaker from the attendee list. Do not summarise yet and do not drop anything that sounds like a commitment, however casually phrased — "I can take a look at that" survives this step. Output is a cleaned, attributed transcript.

  • → leads to Extract decisions
  • → leads to Extract action items
  • ← comes from Meeting notes arrive

Extract decisions

Pull out what was decided: statements that change what is true, not what someone will do. Each decision gets one sentence in neutral wording plus who confirmed it. Open questions explicitly parked in the meeting are collected here too, marked as open — they are context for the record, never tasks.

  • → leads to Merge & deduplicate
  • ← comes from Clean the transcript

Extract action items

Pull out every commitment to do something: explicit assignments and casual ones alike. For each, capture the verb phrase as stated, the likely owner as named in the conversation, and any date mentioned. Do not infer deadlines that were not said — a task without a date is honest, an invented date is a trap.

  • → leads to Owner clear?
  • ← comes from Clean the transcript

Owner clear? Decision

For each action item: can the owner be resolved against the attendee list without doubt? A first name that matches exactly one attendee is clear; "someone should", a name matching two people, or a person not in the meeting is not. The branches are exclusive — clear owners move on, everything else goes to clarification. No guessing, ever.

  • → leads to Merge & deduplicateowner resolves to one attendee
  • → leads to Ask the organiserambiguous or absent owner
  • ← comes from Extract action items

Ask the organiser

One message to the meeting organiser listing the unclear items, each with the transcript quote and a direct question: who owns this, and is it actually a task? Items confirmed with an owner rejoin the flow; items the organiser drops are recorded as dropped — silently deleting them is how "I thought you had that" happens.

  • → leads to Merge & deduplicateconfirmed with owner
  • ← comes from Owner clear?ambiguous or absent owner

Merge & deduplicate Merge

Join the decision stream and the resolved task stream into one record. Merge tasks that describe the same work in different words — same owner and same outcome means same task, keep the more specific phrasing. Link each task to the decision it serves where one exists; a task serving no decision gets flagged for the check.

  • → leads to Faithful to the meeting?
  • ← comes from Owner clear?owner resolves to one attendee
  • ← comes from Ask the organiserconfirmed with owner
  • ← comes from Extract decisions
  • ← comes from Faithful to the meeting?item fails → fix (max 1)

Faithful to the meeting? Evaluator

Check the merged list against the cleaned transcript: every task traces to a spoken commitment, every owner is on the attendee list, no date appears that was not said, and no commitment from the transcript is missing from the list. Any failure → back to merge with the specific item named, at most one round; a second failure means the notes are too ambiguous, and the list goes to the organiser marked as draft instead of being posted as fact.

  • → leads to Tasks on the boardlist is faithful
  • → leads to Merge & deduplicateitem fails → fix (max 1)
  • ← comes from Merge & deduplicate

Tasks on the board Output

The result: tasks created in the team's task tool — owner, due date where one was stated, and a link back to the meeting record with its decisions. The meeting record itself is posted to the channel where attendees will see it. Done means findable, not just written down.

  • ← comes from Faithful to the meeting?list is faithful

How to use this graph

  1. Open it in nodalo. One click copies the template into your workspace — nodes, connections and contracts included.
  2. Make the contracts yours. Replace the example thresholds, criteria and names with the rules your team actually uses.
  3. Hand it to your AI. nodalo compiles the graph into one unambiguous specification for Claude, ChatGPT, Copilot or Cursor — pick an assignment like “build the automation” or “review this graph” at handoff.

Questions about this graph

What is the difference between a decision and an action item here?

A decision changes what is true ("we ship Thursday", "pricing stays"); an action item changes what someone does ("Sam updates the changelog by Wednesday"). Decisions go into the record for context, tasks go to the board. Keeping the two streams separate until the merge node is what keeps the board free of noise.

What happens when the notes do not say who owns a task?

The decision node branches on exactly that: a clearly attributable owner routes the task straight to formatting, anything unclear goes to a clarify step that asks the meeting organiser — one question with the task quoted. The graph never assigns work by guessing, because a wrongly assigned task costs more trust than an unassigned one.

Which meetings does this work for?

Any meeting that produces commitments: weeklies, project syncs, client calls, retros. For recurring meetings, keep one graph per meeting series in nodalo and hand the fresh transcript to your AI each time — the contracts stay stable, only the input changes.

Make it your process

Open the template, adjust the contracts, and hand the graph to your AI — as a specification it can execute, not prose it has to decode.

Open this graph in nodalo — free Built for the desktop — open nodalo on your computer.