DEV Community

Robert Breen
Robert Breen

Posted on Originally published at learn.ynteractive.com

n8n: Turn Meeting Notes into an Action Items Sheet Nobody Has to Type Up

After almost every team meeting the same thing happens. Someone types up notes. Someone else is supposed to turn those notes into a to-do list. Often nobody does, and two weeks later the team is asking who agreed to send the revised quote.

The problem: decisions leave the room, tasks do not

Take a small agency or a consulting team that runs a handful of meetings a week. Each meeting produces a few commitments: Priya will send the revised quote by Friday, Marcus will book the venue, someone will chase the signed contract. If those commitments stay buried in a paragraph of notes, three things go wrong.

  • Work gets dropped. Nobody owns a sentence in a notes document, so nobody follows up.
  • Meetings repeat themselves. The next meeting starts with ten minutes of "where did we land on that?"
  • Typing it up is a tax. Pulling tasks out of notes by hand takes 10 to 20 minutes per meeting, which is exactly why it gets skipped.

The fix does not need a project management suite. It needs one sheet with three columns, task, owner and due, that fills itself in from the notes.

What changes: one row per task, with an owner and a date

Here is the result of the workflow I built in n8n for this. It reads meeting notes from a Google Sheet, asks OpenAI to list every action item, and appends one row per task to an Action Items sheet. In my test, two meetings produced seven tasks, each with an owner and a due day. It also did something I did not expect to be so useful: it left out a decision to skip a status meeting, because nobody had to act on it. Decisions are not tasks, and a good prompt keeps them apart.

How the workflow works (five nodes)

  1. Manual trigger starts the run while you test. Later you can swap it for a form, a schedule or a new-row trigger.
  2. Google Sheets, Get row(s) in sheet reads the Meeting Notes sheet. You get one item per meeting, with the fields Meeting, Date and Notes. Long notes come through whole.
  3. OpenAI, Message a model sends each meeting's notes to the model and asks for the action items as JSON.
  4. Split Out turns the list of tasks inside each item into one item per task.
  5. Google Sheets, Append row in sheet adds each task to the Action Items sheet.

The pattern worth stealing: ask for JSON, then split it

If you only take one idea from this, take this one. AI answers are paragraphs. Spreadsheets need rows. The bridge is to ask for a fixed JSON shape and then split the list apart.

The prompt asks for JSON only, in this shape: a list called tasks, where each task has a task, an owner and a due value. It also gives rules: use the person's first name for the owner, use the day or date said in the notes for the due value, or write "No date" if none was given. The meeting name and notes are pulled into the prompt with n8n's double curly brace expressions.

Two settings make this reliable:

  • Switch the prompt box to Expression. Hover over the box and click Expression. If you skip this, the AI receives the curly braces as plain text instead of your notes.
  • Set Output Format to JSON Object. Under Options, Add option, Output Format, set Type to JSON Object. n8n then opens the answer for you, so the tasks arrive as a real list rather than one long block of text.

After that, Split Out takes the path to the list (output[0].content[0].text.tasks) and returns one item per task. Two meetings in, seven items out. The final Append step has Mapping Column Mode set to Map Automatically, which matches field names to column headers. That is why the Action Items sheet needs lowercase headers named task, owner and due in row 1.

Setup notes and traps

These are the things that would have cost me time:

  • Credentials. Pick the Google account that owns the spreadsheet, and an OpenAI credential with a working key. n8n sometimes pre-fills a credential whose key no longer works, and then the model list fails with a 401 Authorization failed error.
  • Model choice. GPT-4.1-mini is quick, cheap and good at pulling facts out of text, which is all this job needs.
  • Pick Append, not Append or update. Append row in sheet adds a new row every time. The update variant needs a column to match on.
  • Do not run it twice on the same notes. Append adds rows on every run, and the AI may word a task slightly differently each time, so you will end up with near-duplicates. Run it once per set of notes.

Read the output before you rely on it

The AI can miss a task, or misread who owns something. This is a time saver, not a replacement for a quick look. Skim the Action Items sheet after each meeting, and write notes that are clear about who agreed to do what. Clear notes in, clear tasks out. A two-minute skim is still far cheaper than a twenty-minute typing job.

What to expect

  • Build time: about 15 minutes, 50 small steps, no coding.
  • Running cost: one short AI call per meeting.
  • Next step up: replace the manual trigger with a form or a new-row trigger so tasks appear without anyone clicking a button.

Practice it first

I turned this workflow into a free interactive lesson. It runs in a practice copy of the n8n editor with made-up data, so nothing touches your real accounts. You do every click yourself and it checks each step.

If your team still loses tasks between "great meeting" and "who was doing that?", this is a small build with a big payoff. Try the free lesson here: n8n: Meeting Notes to Action Items in Google Sheets.

Top comments (0)