How to Write Meeting Action Items That Actually Get Done (with a Markdown template)
The short answer
- Four things or it isn't a task: one owner (a person, not a team), a verb, a specific object, a date.
- Say it out loud before you drop off the call. "So Anna sends the revised scope by Thursday." Twenty seconds, and it does more than any tool.
- Three lists, not one: decisions, action items, open questions. Different half-lives, different readers.
- Write "Unassigned" and "no date agreed" rather than guessing. A hole gets filled in. A confident guess just sits there being wrong.
- Steal the template below, or paste it into your notetaker's summary prompt and get the same shape every time.
Full disclosure, up front, because it'd be weird to bury it: I make Humla, which is a meeting notetaker, and I would obviously love for you to use it. I'll shamelessly admit that. But the useful half of this post needs no software whatsoever, and I'm going to spend a fair bit of the back half telling you what my own thing can't do, so hopefully we're even.
First, the year I spent blaming the robot
Our agency is in meetings every single day - client scoping calls, design reviews, internal ones, the occasional deeply enjoyable "why is the site down" conversation. I also build a notetaker, which means I spend an unreasonable amount of my life reading the transcripts afterwards. So once I had a decent pile of them, I expected the action-item problem to just... evaporate. That was the whole pitch I'd made to myself, and I'd made it pretty convincingly.
The transcripts were great. The summaries were genuinely good. And the action items were STILL garbage.
Not wrong, mind you. Soft. "Follow up on hosting." "Look into the form issue." "Circle back on the timeline before the next sprint." Every one of those is a real sentence a real human said, faithfully captured by a machine doing exactly its job. Not one of them is a thing anybody was ever going to do.
So naturally I did what any reasonable person does when the tool disappoints them, which is spend several months quietly assuming the summariser was the problem. Better prompt. Bigger model. More context. (I want to say I figured it out quickly. I did not figure it out quickly.)
Then one Friday I read a transcript properly instead of skimming the summary, and there it was. The summary was a perfectly accurate record of a meeting in which nobody had committed to anything. The AI hadn't dropped the owner. There was no owner. There had never BEEN an owner. It wrote down what happened, and what happened was four adults agreeing that a problem existed.
That's the whole post, really. An action item is created in the room, not in the notes. Everything below is downstream of that one annoying fact.
Meet Somebody Else, the most reliable colleague you have
Somebody Else is fantastic. Never pushes back, never says they're at capacity, never asks a clarifying question. Somebody Else picks up every unowned item in every meeting you've ever had, and Somebody Else is going to get to it.
Somebody Else does not exist. And the truly evil part is that a group of people can assign Somebody Else a task in unison, out loud, and every individual in that room walks away feeling like the meeting went well. Nobody lied. Nobody dropped the ball. The ball was handed to a man who is not in the building.
Everything about the format below is designed to make Somebody Else impossible to write down.
The four ways they die
| Failure | What it sounds like | What it should be |
|---|---|---|
| No owner | "We'll send over the revised scope" | "Anna sends the revised scope" |
| A team owns it | "Design will take a look" | One name. Teams don't have calendars. People have calendars. |
| A fake verb | "Follow up on hosting", "circle back", "look into" | "Email Kari the hosting quote" |
| No date | "…soon", "next sprint", "before launch" | "by Thu 21 Aug" |
The fake verbs are the sneaky ones, so let me be properly unfair to them for a second.
Follow up. Look into. Sync on. Circle back. Explore. Revisit. Every one of those describes an attitude rather than an action, and none of them has a finish line. You cannot tell whether "look into the form issue" is done. It's done when you feel you've looked into it enough, which is a feeling that never arrives, which is why that exact bullet will still be on your list in November wearing the same little checkbox it was born with. Swap in something you can be finished with: reproduce the bug, write the ticket, send the estimate, book the call.
And put a date on it. A real one. Not "urgent", not "this week" written on a Tuesday and read three weeks later by a version of you who has no idea which Tuesday that was.
The twenty-second move that fixes most of it
Here's the highest-leverage habit I've found, and it's so low-tech it's almost insulting given how much time I spend building the high-tech version.
Close the meeting by saying the action items out loud, in the format you want to read them.
"Right, before we drop. Anna sends the revised scope by Thursday. I'll book the migration window with the host and confirm Friday. Kari's checking whether legal needs to see the DPA and she'll say either way on Monday. Anything I've missed?"
That's it. Twenty seconds, and it's doing four jobs at once.
It forces the assignment, because saying a name out loud makes the person either accept it or object, right then, in front of witnesses. Silence in that moment is genuinely ambiguous, which is exactly why "anything I've missed?" is the load-bearing part of the sentence - it converts a nod into either a yes or a correction.
It flushes out the phantoms. Roughly half the time someone says "wait, I thought you were doing that", and that single sentence is frequently worth more than the rest of the hour.
It puts the commitment into other people's heads in a way that a tidy summary emailed round at 6pm absolutely does not.
And - this is the bit that surprised me - it hands your recording the one clean, quotable sentence it needs. If you're transcribing your meetings, that closing recap is the highest-value forty seconds in the file. Every extraction tool on earth, mine very much included, is downstream of whether somebody said a name and a date into a microphone. Prompt engineering in the room beats prompt engineering in the settings screen. (I build the settings screen. This is not the conclusion I was hoping for.)
Three lists, because they rot at different speeds
Meeting notes go stale because everything lands in one undifferentiated heap. Split it by half-life:
Decisions are permanent. You reread these in six months when somebody asks why on earth it's built like that. They're the most valuable thing in the whole document and the thing most reliably lost, because at the time they feel obvious and everyone present assumes they'll remember. Nobody remembers. Write the decision, not the discussion that produced it.
Action items are temporary. They should be gone in days - done, or escalated, or explicitly killed. An action item that's still sitting there a month later isn't an action item. It's a wish with formatting.
Open questions are the honest middle. Raised, unresolved, nobody's holding it yet. Keeping them visible is the only thing that stops an open question quietly maturing into an assumption that everyone builds on.
They live in separate blocks because they get read at different moments by different people. Decisions are for future-you. Actions are for this week. Open questions are next meeting's agenda, pre-written.
The template
Copy it. It's deliberately boring Markdown so it pastes into Obsidian, Notion, a GitHub issue, a doc, or an email without dragging a haunted <span> along with it.
# <Meeting> - <YYYY-MM-DD>
Present: <names>
## Decisions
- **<what was settled>** - <one line of why, if it isn't obvious>
## Action items
- [ ] **<Owner>** - <verb> <specific object> - by <YYYY-MM-DD>
- [ ] **Unassigned** - <verb> <specific object> - no date agreed
## Open questions
- <question> - blocked on <who or what> - revisit <date>
## Notes
<everything else: context, numbers, quotes worth keeping>
Two rules make it work, and both are about refusing to be helpful.
Unassigned and no date agreed are real values that you type. The pull toward filling in the most plausible name is strong, and it is a trap. An item that says Unassigned is one Slack message away from being fixed. An item with a guessed owner is a task that person has never heard of, sitting in a document, looking exactly as legitimate as the real ones. That's worse than an empty list. That's Somebody Else with a name badge on.
Notes go last. Not because context doesn't matter, but because the top of the document belongs to the part someone has to act on. Open with fourteen paragraphs of background and nobody scrolls, and then you're the person whose meeting notes are famous for being thorough and unread.
Okay, the AI part. Honestly.
If you're running an AI notetaker - mine, or one of the others - here's what extraction realistically buys you.
The genuine win: it catches the commitment you missed because you were talking. That's bigger than it sounds. The items you personally forget aren't random - they're systematically the ones agreed while you were mid-sentence about something else, which is to say the ones where you were the only person in the room not paying attention to that thread.
The thing it cannot do: invent an owner. If nobody said a name, the only honest output is "unassigned". And if your tool hands you a confident name anyway, it guessed - which is the nastiest failure mode on this list, because a wrong owner is invisible. It looks precisely like a right one. Nobody audits a name that reads plausibly.
Some specifics about my own app, so this isn't just vibes. Humla's built-in summary presets - Meeting, 1:1, Lecture, Interview, Brainstorm, Voice memo - deliberately don't prescribe an action-items section. They say what kind of notes to produce and let the model pick a structure that fits what's actually in the recording. That's a real choice with a real cost, and the cost is this: a meeting with no clear commitments comes back with no action-items section at all, rather than an empty heading implying you failed. I like that. It's the software refusing to pretend. But if you want the same skeleton every single time, you have to ask for it.
So ask for it. This is the part worth stealing no matter what you use. In Humla it's Settings → Summary → "Your prompts": save named custom prompts, then pick one per note from the preset dropdown in the Summary panel and hit regenerate. Custom prompts run literally - what you write is what the model gets, including which language you want back. Which means the template above can just be the prompt.
You produce meeting notes from [Notater] (user-written) and [Transkripsjon] (auto).
Group everything said about the same topic into one section, even when it came up
at several points.
End with these three sections, in this order. Omit a section entirely if it is empty.
## Decisions
One bullet per decision that was actually settled, in the terms it was settled in.
## Action items
One checkbox per commitment, formatted:
- [ ] **Owner** - verb + specific object - by <date>
Use the name that was actually said. If no owner was named, write **Unassigned**.
If no date was named, write **no date agreed**. Never infer either one.
## Open questions
Anything raised and left unresolved.
Reply in English using Markdown.
([Notater] and [Transkripsjon] are the literal labels Humla slaps on the two things it sends the model: your typed notes, and the transcript. They're in Norwegian because I am, and the model has never once complained. Adapting this for another tool? Swap in whatever it calls those two inputs.)
The line doing the real work there is "never infer either one." Take it out and you get a beautiful list where every item has an owner and approximately none of those owners agreed to anything. Congratulations, you've automated Somebody Else.
There's a lazier route too, if committing to a prompt feels like a lot. Type / in Humla's chat composer and you get four canned questions, one of which is literally "Action items - who agreed to do what." The reason that's a question you ask rather than a section you always get is the same reason as above: it's an extraction, and extractions should be poked at. If the answer comes back thin, that's not the model failing. That's usually accurate information about your meeting.
The Friday loop, which is where things actually get done
Writing good action items is maybe a third of the problem. The rest of it is that nobody ever reads them again.
What stuck for me is ten minutes every Friday over the week's notes, hunting for three specific things: stuff I own that's now late, stuff I'm blocked on somebody else for, and decisions that have quietly been contradicted by a later meeting. That third one is the sleeper. Decisions never get reversed in a meeting titled "let's reverse that decision" - they get eroded three weeks later by someone perfectly reasonable who wasn't in the room the first time.
If your notes are searchable across meetings, that pass can be a question instead of a scroll. Humla's library-wide chat ships a canned prompt called "Needs my attention" that runs over the last 30 days: unresolved commitments, blocked work, decisions waiting on you, deadlines, contradictions, things that keep coming back, with the meeting cited for each one. Note what it's deliberately not: "list all open actions." An enumeration of everything is functionally identical to no answer once you've got a few months of history - the point isn't to be told what exists, it's to be told what's on fire. The retrieval mechanics, if you're into that, are in how Humla does RAG locally.
Things I'd tell you not to bother with
Don't build a task system inside your meeting notes. Statuses, priorities, percent-complete. I tried it. What you get is a second backlog rotting quietly next to your real one, and now you have two places to feel bad about. Notes are where an item is born. If it's real work, it belongs in whatever your team actually opens on Monday.
Don't email everyone the full transcript. Nobody reads it, and you've just distributed an hour of everybody's unguarded speech to a mailing list. Send the decisions and the items with names on them.
Don't let a tool assign owners for you. See: name badge, above.
And the honest limitation on my end, since I've been happily quoting my own software at you for several paragraphs: Humla doesn't push action items anywhere. No Linear, no Asana, no Jira, no Todoist. The only integration it has at all is a read-only MCP server, which lets an AI agent you already use read your notes - meaning the ticket-filing, if it happens, happens on the agent's side rather than mine. If one-click "send action items to Jira" is the thing you're actually shopping for, one of the cloud tools will serve you better, and I'd rather you find that out here than after installing mine.
Anyway. Say the name out loud before you hang up. Somebody Else has enough on his plate.
Related reading
- How to take client meeting notes without a bot joining the call - the workflow these action items fall out of
- How to record a meeting on a Mac - every method, honestly compared
- Chat with your meeting history - asking questions across months of notes
- Humla for consultants and agencies
- Glossary: AI notetaker vs AI notepad, speaker diarization