Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript

I’ve been automating meetings for a 236-person company for the past year.
Every week, the same problem: important decisions and tasks from meetings disappearing into chat history.

So I built Meeting Intelligence → Notion: a system that takes any meeti…


This content originally appeared on DEV Community and was authored by Ale Santini

I've been automating meetings for a 236-person company for the past year.
Every week, the same problem: important decisions and tasks from meetings disappearing into chat history.

So I built Meeting Intelligence → Notion: a system that takes any meeting transcript, extracts every task and decision using AI, and saves them as structured, actionable Notion pages — automatically.

What It Does

Paste a meeting transcript (or pipe a file). The system:

  1. Sends the transcript to Claude Haiku via OpenRouter
  2. Extracts: meeting title, summary, decisions, action items (with owner + priority + due date), next meeting
  3. Creates a structured Notion page with the results — decisions as bullets, action items as checkboxes, priority-colored

Result: a meeting that used to produce 12 unread chat messages now produces one clean Notion page with 5 assigned tasks.

Architecture

Transcript (text/file)
        ↓
OpenRouter API (Claude Haiku)
        ↓ JSON schema extraction
{decisions, action_items, summary}
        ↓
Notion API (MCP-compatible)
        ↓
Structured page with to-dos

Notion is the core of this system — it's not just storage. By using Notion's database format, every meeting page becomes queryable. You can filter all open action items across 3 months of meetings in one view.

The Code

Extraction — the key is the schema. Claude Haiku with temperature=0 returns consistent JSON:

EXTRACTION_SCHEMA = {
    "type": "object",
    "properties": {
        "meeting_title": {"type": "string"},
        "summary": {"type": "string"},
        "decisions": {"type": "array", "items": {"type": "string"}},
        "action_items": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "task": {"type": "string"},
                    "owner": {"type": "string"},
                    "due_date": {"type": "string"},
                    "priority": {"type": "string", "enum": ["high", "medium", "low"]}
                }
            }
        }
    }
}

Saving to Notion — action items become native to-do blocks:

for item in intelligence["action_items"]:
    priority_emoji = {"high": "🔴", "medium": "🟡", "low": "🟢"}.get(item["priority"], "")
    text = f"{priority_emoji} [{item['owner']}] {item['task']} — Due: {item['due_date']}"
    children.append({
        "object": "block",
        "type": "to_do",
        "to_do": {
            "rich_text": [{"type": "text", "text": {"content": text}}],
            "checked": False
        }
    })

Real Output

Running the demo transcript through the system produces:

{
  "meeting_title": "Weekly sync",
  "summary": "Team reviewed AI fraud detection performance. 60% cost reduction achieved by switching to Claude Haiku. Staging deployment planned for Thursday client review.",
  "decisions": [
    "Switch to Claude Haiku for notification module AI humanization",
    "Module-by-module migration plan approved",
    "New notification module to staging before Thursday"
  ],
  "action_items": [
    {"task": "Adjust fraud detection scoring weights", "owner": "Maria", "due_date": "Friday", "priority": "high"},
    {"task": "Deploy notification module to staging", "owner": "Alessandro", "due_date": "Today", "priority": "high"},
    {"task": "Create migration plan for Claude Haiku rollout", "owner": "Alessandro", "due_date": "TBD", "priority": "medium"}
  ]
}

Setup (5 minutes)

git clone https://github.com/AlessandroTrimarco/meeting-to-notion
cd meeting-to-notion

# .env
OPENROUTER_API_KEY=your_key   # openrouter.ai
NOTION_API_KEY=secret_...     # notion.so/my-integrations
NOTION_DATABASE_ID=...        # share DB with integration, copy ID

# Run
python meeting_to_notion.py --demo
python meeting_to_notion.py --transcript my_meeting.txt

Why This Matters

I've run this on 40+ real meetings. The difference:

Before: "What did we decide about the deadline?" → scroll through 200 chat messages
After: open Notion, filter by "decision", find it in 3 seconds

The ROI isn't about saving time in the meeting — it's about saving time in the week after, when nobody remembers what was decided.

What's Next

  • Audio input: record → Whisper → extract → Notion (already have this in production for another project)
  • Slack/Teams integration: post the Notion page link to the channel automatically
  • Recurring action item tracking: flag items that appear in 3+ meetings without being checked off

Code

GitHub repository: https://github.com/AlessandroTrimarco/meeting-to-notion

Original: https://github.com/AlessandroTrimarco/meeting-to-notion

Built with: Python · OpenRouter (Claude Haiku) · Notion API · JSON Schema validation

I'm Alessandro Trimarco, AI Solutions Engineer. I've been building production AI systems for a 14-location restaurant chain for the past year — this project is a direct extraction of patterns that work in the real world.


This content originally appeared on DEV Community and was authored by Ale Santini


Print Share Comment Cite Upload Translate Updates
APA

Ale Santini | Sciencx (2026-03-24T02:02:13+00:00) Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript. Retrieved from https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/

MLA
" » Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript." Ale Santini | Sciencx - Tuesday March 24, 2026, https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/
HARVARD
Ale Santini | Sciencx Tuesday March 24, 2026 » Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript., viewed ,<https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/>
VANCOUVER
Ale Santini | Sciencx - » Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/
CHICAGO
" » Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript." Ale Santini | Sciencx - Accessed . https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/
IEEE
" » Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript." Ale Santini | Sciencx [Online]. Available: https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/. [Accessed: ]
rf:citation
» Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript | Ale Santini | Sciencx | https://www.scien.cx/2026/03/24/meeting-intelligence-notion-auto-extract-tasks-and-decisions-from-any-meeting-transcript/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.