Meeting Notes
A frictionless system for capturing meeting notes that turn decisions into action — with structured next steps, clear assignees, and automatic carry-forward into tasks and projects.
The Problem
Most meeting notes die in a Google Doc that nobody opens again. Decisions get forgotten. Action items have no owner. Follow-ups don't happen. The meeting was a waste of everyone's time — not because of the conversation, but because nothing carries forward.
The fix isn't better note-taking. It's a system where notes live next to the work, action items become real tasks with assignees and due dates, and decisions are findable when you need them months later.
How It Works in Based
In Based, meeting notes are pages. Tasks are entities. They live in the same workspace, so the path from "we decided X" to "Alice is doing X by Friday" is one click — not a copy-paste into a separate tool.
- Meeting note = a page with a structured template (attendees, agenda, notes, decisions, actions)
- Action item = a task entity created inline with
/taskin the editor, linked to the meeting page - Decision log = a DataTable view over meeting-decision entities, searchable across all meetings
- Carry-forward = open action items from last meeting surface automatically in the next one
Page Structure
📝 Meetings
│
├── 📅 Meeting Index
│ ├── DataTable: meetings/ sorted by date desc
│ │ Columns: title, type, date, attendees, actionCount, openActions, status
│ └── Filtered views:
│ ▶ This Week (filtered by date in current week)
│ ▶ My Meetings (filtered by attendees contains currentUser)
│ ▶ With Open Actions (filtered by openActions > 0)
│
├── 📋 Recurring Meetings (one sub-page per series)
│ │
│ ├── Team Standup
│ │ ├── Next meeting note (always at the top, linked to latest)
│ │ ├── DataTable: meetings/ filtered by series="standup" sorted by date desc
│ │ └── Open Actions Rollover
│ │ DataTable: tasks/ filtered by source contains "standup", status != done
│ │
│ ├── Weekly All-Hands
│ │ ├── Latest note
│ │ ├── Past meetings table
│ │ └── Open actions rollover
│ │
│ ├── Board Meeting
│ │ ├── Latest note
│ │ ├── Past meetings table
│ │ └── Open actions rollover
│ │
│ ├── 1:1s
│ │ ├── [Person A] 1:1
│ │ │ ├── Latest note
│ │ │ ├── Running topics list (things to discuss next time)
│ │ │ ├── Past meetings
│ │ │ └── Open actions
│ │ ├── [Person B] 1:1
│ │ │ └── ...
│ │ └── 1:1 Template
│ │
│ └── Sprint Retro
│ ├── Latest note
│ ├── Past retros
│ └── Open improvement actions
│
├── 📌 Decisions Log
│ ├── DataTable: decisions/ sorted by date desc
│ │ Columns: decision, context, date, meeting, owner, status
│ └── Search: find any past decision by keyword
│
├── ✅ All Meeting Actions
│ ├── Kanban: tasks/ filtered by meetingId exists, grouped by status
│ │ todo → in_progress → done
│ ├── DataTable: tasks/ filtered by meetingId exists, status != done
│ │ Columns: title, assignee, dueDate, meeting, status
│ │ → "What's still open from meetings?"
│ └── Overdue Actions
│ DataTable: tasks/ filtered by dueDate < today, status != done, meetingId exists
│
└── 📚 Meeting Wiki
├── Meeting Types & Cadences
├── How to Run a Good Meeting
└── Note-Taking ResponsibilitiesThe Meeting Note Template
Create this as a page. Copy it each time you start a new meeting. The structure is designed so the note-taker fills it in order during the meeting, and the action items section is the last thing before you close.
# [Meeting Title] — [Date]
## Meta
- **Type**: standup | 1:1 | all-hands | planning | retro | client | partner | board
- **Date**: YYYY-MM-DD
- **Attendees**: @alice @bob @carol (use mention blocks)
- **Facilitator**: @alice
- **Note-taker**: @bob
---
## Open Actions from Last Meeting
[DataTable block: tasks/ filtered by series="this-series", status != done]
Review each one:
- Done? → mark complete in the table
- Still in progress? → update and carry forward
- Blocked? → discuss and reassign or escalate
---
## Agenda
1. [Topic 1] — @owner (X min)
2. [Topic 2] — @owner (X min)
3. [Topic 3] — @owner (X min)
---
## Notes
### [Topic 1]
- Discussion point
- Discussion point
- Key insight or data shared
### [Topic 2]
- Discussion point
- Discussion point
### [Topic 3]
- Discussion point
---
## Decisions
> Use callout blocks for each decision. These get extracted into the Decisions Log.
[callout: Decision] We will [do X] because [reason]. Owner: @alice
[callout: Decision] We decided not to [Y] because [reason]. Revisit in Q3.
[callout: Decision] Approved [Z] with budget of $X. @bob to execute.
---
## Action Items
> Use /task in the editor to create real task entities inline.
> Each action must have: what, who, when.
[task] Ship the landing page redesign — @alice — due 2026-03-01
[task] Send partner intro to Acme Corp — @bob — due 2026-02-28
[task] Write up the pricing analysis — @carol — due 2026-03-05
[task] Schedule follow-up with investor — @alice — due 2026-02-27
---
## Parking Lot
- [Topic deferred to next meeting]
- [Idea to revisit later]
- [Question that needs more research]Meeting Type Templates
Different meetings need different structures. Here are templates for common meeting types:
Daily Standup (15 min)
# Standup — [Date]
Attendees: [team]
### Updates (per person)
**@alice**
- Yesterday: [what was done]
- Today: [what's planned]
- Blockers: [none / description]
**@bob**
- Yesterday: ...
- Today: ...
- Blockers: ...
### Blockers to Resolve
- [blocker] → @owner to unblock by [when]
### Action Items
[task] [action] — @assignee — due [date]1:1 Meeting (30 min)
# 1:1 — [Manager] & [Report] — [Date]
## Check-in
- How are you doing? (1-10)
- What's on your mind?
## Open Actions from Last Time
[DataTable: tasks filtered by series="1:1-alice-bob", status != done]
## Their Agenda (report drives)
- [Topic they want to discuss]
- [Topic they want to discuss]
## Your Agenda (manager)
- [Feedback or topic]
- [Career development topic]
## Decisions
[callout] ...
## Action Items
[task] [action] — @assignee — due [date]
## Running Topics for Next Time
- [save items for next 1:1 here]Sprint Retrospective (60 min)
# Retro — Sprint [N] — [Date]
Attendees: [team]
Facilitator: @name
## Open Improvements from Last Retro
[DataTable: tasks filtered by series="retro", status != done]
## What Went Well
- [good thing]
- [good thing]
- [good thing]
## What Didn't Go Well
- [pain point]
- [pain point]
## What Can We Improve
- [suggestion] → vote: 👍👍👍
- [suggestion] → vote: 👍👍
- [suggestion] → vote: 👍
## Top Improvements (pick 1-3 to act on)
[callout: Decision] We will [improvement]. Owner: @name
## Action Items
[task] [improvement action] — @assignee — due [date]Client / Partner Meeting (45 min)
# Meeting with [Company] — [Date]
**Type**: client | partner | prospect
**Their attendees**: [names and titles]
**Our attendees**: @alice @bob
**Related to**: [link to customer/partner entity]
## Context
- What's the relationship? [customer since X / partner on Y]
- What's the purpose of this meeting?
- What do we want to get out of it?
## Agenda
1. [Topic]
2. [Topic]
3. Next steps
## Notes
### [Topic 1]
- They said: ...
- We said: ...
- Key takeaway: ...
### [Topic 2]
- ...
## Commitments (what we promised them)
[callout: Commitment] We committed to [X] by [date]. Owner: @alice
## Commitments (what they promised us)
[callout: Commitment] They will [Y] by [date]. Follow up if not received.
## Internal Action Items (not shared with them)
[task] [action] — @assignee — due [date]
## Follow-up
- Send summary email to their team — @bob — today
- Next meeting: [date or "schedule in 2 weeks"]Board Meeting (90 min)
# Board Meeting — [Quarter] [Year]
**Date**: [date]
**Board members**: [names]
**Company attendees**: [CEO, CTO, CFO, etc.]
**Location**: [in-person / virtual]
## Open Items from Last Board Meeting
[DataTable: tasks filtered by series="board", status != done]
## CEO Update (20 min)
- Company highlights since last meeting
- Key metrics: [MRR, users, runway, headcount]
- Strategic priorities for next quarter
## Financial Review (15 min)
- P&L summary
- Cash position and runway
- Budget vs actual
- Fundraising update (if applicable)
## Product Update (15 min)
- What shipped
- What's next
- Key product decisions needed
## Discussion Topics (30 min)
### [Strategic Topic 1]
- Context: ...
- Options: A, B, C
- Discussion: ...
- [callout: Decision] Board decided [X]
### [Strategic Topic 2]
- ...
## Board Resolutions
[callout: Resolution] Resolved: [formal decision if needed]
## Action Items
[task] [action] — @assignee — due [date]
## Executive Session (board only)
[not captured in shared notes]
## Next Board Meeting: [date]Entity Schemas
{
"Meeting": {
"path": "@meetings/(id:nanoid)",
"file": "[data].json",
"fields": {
"title": { "type": "string", "required": true },
"type": { "type": "string", "required": true },
"series": { "type": "string" },
"date": { "type": "string", "required": true },
"duration": { "type": "number" },
"attendees": { "type": "array" },
"facilitator": { "type": "string" },
"noteTaker": { "type": "string" },
"pageId": { "type": "string" },
"status": { "type": "string", "default": "scheduled" },
"actionCount": { "type": "number", "default": 0 },
"openActions": { "type": "number", "default": 0 },
"relatedEntityId": { "type": "string" },
"relatedEntityType": { "type": "string" },
"tags": { "type": "array" },
"notes": { "type": "string" }
},
"refs": {
"page": { "model": "Page", "field": "pageId", "type": "belongsTo" }
},
"oplog": true,
"softDelete": true
},
"Decision": {
"path": "@decisions/(id:nanoid)",
"file": "[data].json",
"fields": {
"decision": { "type": "string", "required": true },
"context": { "type": "string" },
"meetingId": { "type": "string", "required": true },
"date": { "type": "string", "required": true },
"owner": { "type": "string" },
"status": { "type": "string", "default": "active" },
"revisitDate": { "type": "string" },
"supersededBy": { "type": "string" },
"tags": { "type": "array" },
"notes": { "type": "string" }
},
"refs": {
"meeting": { "model": "Meeting", "field": "meetingId", "type": "belongsTo" }
},
"oplog": true,
"softDelete": true
}
}Action items use the built-in Task entity — no separate schema needed. Link tasks to meetings using the pageId field (the meeting note page) and the tags field for the series name. This means meeting actions show up in your regular task views too — no separate tracking system.
The Carry-Forward System
This is the most important part. Without carry-forward, meetings produce notes that nobody reads again. Here's how to make it automatic:
How carry-forward works:
1. DURING the meeting
- Create action items using /task in the editor
- Each task gets: title, assignee (@mention), due date
- Tasks are real entities — they appear in the sidebar under "My Tasks"
- Tag tasks with the meeting series (e.g., "standup", "1:1-alice-bob")
2. BETWEEN meetings
- Assignees see their tasks in the normal task views
- Tasks have status: todo → in_progress → done
- No separate "meeting action" tracker needed
3. AT THE START of the next meeting
- First section of every meeting note: "Open Actions from Last Meeting"
- Embed a DataTable block filtered by:
series = "this-series" AND status != "done"
- Review each action:
✓ Done → mark complete right in the table
→ In progress → note the update, carry forward
✗ Blocked → discuss, reassign, or escalate
✗ Dropped → decide: still needed? If not, close it.
4. AFTER the meeting
- New action items from this meeting automatically show up
in the next meeting's carry-forward DataTable
- The cycle continues without any manual trackingFrom Meeting to Project
Sometimes a meeting produces something bigger than a one-off task — a new initiative, a multi-step project, or a workstream. Here's the escalation path:
Meeting Output → What to Create → Where It Lives
Single action item → Task entity → appears in My Tasks
"Send the proposal" assignee + due date sidebar, task board
Related group of → Project entity → appears in Projects
actions with child tasks sidebar, project board
"Launch the feature"
(needs: design, build,
test, deploy, announce)
Major decision that → Decision entity → Decisions Log page
needs to be findable with context searchable DataTable
"We're pivoting to
enterprise pricing"
New recurring work → New meeting series → Recurring Meetings page
"We need weekly new sub-page with its own carry-forward
partner syncs"
Reference material → Page (wiki) → under relevant section
"Here's the process or sub-page of linked from meeting note
we agreed on" relevant areaThe key insight: every meeting output maps to an entity type that already exists in Based. You're not creating new systems — you're routing meeting outputs to the right place.
Decisions Log
One of the most valuable artifacts a team can have. "When did we decide to do X?" "Why did we choose approach A over B?" — these questions come up constantly, and the answers are buried in meeting notes nobody can find.
The Decisions Log is a DataTable over decisions/ entities. Every time a callout block tagged as a "Decision" appears in a meeting note, create a corresponding decision entity.
Decisions DataTable:
Columns: decision, context, date, meeting (link), owner, status
Status values:
active — currently in effect
superseded — replaced by a newer decision (link to it)
revisiting — under review, may change
reversed — we changed our mind (capture why)
Useful filters:
- By tag: "pricing", "architecture", "hiring", "product"
- By date range: "decisions made in Q1"
- By status: "active decisions only"
- By owner: "decisions Alice owns"Meeting Types & Cadences
Recommended meeting cadences for a startup team:
Daily (15 min)
Standup — What did I do, what will I do, any blockers
Weekly (30-60 min each)
Team sync — Department-level priorities and updates
1:1s — Manager + report, career growth + blockers
Sprint planning — What we're building this week/sprint
Biweekly (60 min)
Sprint retro — What went well, what to improve
All-hands — Company-wide updates (can be monthly at <20 people)
Monthly (30-60 min)
Investor update review — Review metrics before sending update
Partner syncs — Check in with active partners
Quarterly (90 min)
Board meeting — Formal governance + strategy
OKR review — Score last quarter, set next quarter
Strategy session — Zoom out on direction
Ad-hoc (as needed)
Client meetings — Sales, onboarding, QBRs
Partner meetings — Integration, co-marketing
Incident postmortems — After outages or critical bugs
Decision meetings — When a big call needs to be madeMaking It Frictionless
The system only works if note-taking is fast. Here's how to reduce friction to near zero:
- Pre-create the page — For recurring meetings, create next week's note page at the end of this week's meeting. The carry-forward DataTable populates automatically.
- Use the slash menu — Type
/taskto create action items inline, no switching tools./calloutfor decisions.@namefor mentions. - Template pages — Keep a template page for each meeting type. Duplicate it to start a new meeting. Agenda, structure, and carry-forward blocks come pre-built.
- Rotate the note-taker — Assign note-taking duty on a rotation. Everyone gets better at it, and nobody resents it.
- Close with 2 minutes of action review — Before ending, scroll to Action Items. Read each one out loud: "Alice ships the landing page by Friday. Bob sends the partner intro by Wednesday." Verbal confirmation from each assignee.
- Don't transcribe everything — Notes are not transcripts. Capture: key points, decisions, and actions. If someone said something insightful, paraphrase it in one line. The rest is noise.
Anti-Patterns
Common mistakes that kill meeting note effectiveness:
- Action items without assignees — "We should update the docs." Who? By when? If it doesn't have a name and a date, it won't happen.
- Action items without due dates — "Alice will look into pricing." By when? Without a deadline, it's a wish, not a commitment.
- Notes in a separate tool — If notes live in Google Docs and tasks live in Jira and decisions live in someone's head, nothing connects. Keep it in one place.
- Never reviewing previous actions — The carry-forward section at the top of every meeting exists for a reason. If you skip it, accountability disappears.
- Meetings without agendas — No agenda = no structure = no useful notes. Even a 3-bullet agenda written 10 minutes before is better than nothing.
Tips
- Use the
seriesfield on meeting entities to group recurring meetings. Filter your DataTable by series to see all standups, all 1:1s with a specific person, all retros. - Link meeting entities to related entities using
relatedEntityId. A client meeting links to the customer. A partner meeting links to the partner. This makes meetings findable from either direction. - The Decisions Log is your institutional memory. When a new team member asks "why do we do it this way?", you can point to the exact meeting and context.
- For 1:1s, keep a "Running Topics" section at the bottom of the page. Between meetings, both people add topics as they come up. When the 1:1 starts, the agenda writes itself.
- Review the "All Meeting Actions" Kanban weekly. If the same person has 15 open actions, they're overloaded. If actions sit in "todo" for weeks, the meetings aren't working.
Related Templates
Based ships built-in templates that complement this playbook:
- Weekly Leadership Meeting — 30-min leadership pulse
- Functional Team Weekly — team-level sync template
- 1:1 Template — structured 1:1 with talking points
- Decision Log — track decisions with rationale