Notion Meeting Intelligence
Notion Meeting Intelligence automation and integration
Notion Meeting Intelligence is a community skill for building automated meeting processing pipelines that capture transcripts, extract action items, generate summaries, and organize meeting notes in Notion databases with structured metadata.
What Is This?
Overview
Notion Meeting Intelligence provides patterns for processing meeting recordings and transcripts into structured Notion pages with extracted action items, decisions, and key discussion points. It covers transcript ingestion, NLP-based extraction of actionable content, automatic tagging, attendee tracking, and follow-up task creation. The skill connects meeting data to project management workflows within Notion.
Who Should Use This
This skill serves team leads who need meeting notes organized consistently, project managers tracking action items across recurring meetings, and developers building meeting assistant tools that automatically populate Notion workspaces with processed meeting content.
Why Use It?
Problems It Solves
Manual meeting notes are incomplete and biased toward what the note-taker found important. Action items discussed in meetings get lost when they are not captured in a tracking system immediately. Searching through raw transcripts for specific decisions is impractical when meetings accumulate weekly. Without structure, meeting notes become a disorganized archive that no one references after the initial week.
Core Highlights
Transcript processing extracts speaker-attributed segments for clear attribution. Action item detection identifies commitments, deadlines, and assigned owners from conversation context. Summary generation condenses long meetings into key points and decisions. Notion database integration stores processed meetings with filterable properties including date, attendees, topics, and follow-up status.
How to Use It?
Basic Usage
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class ActionItem:
description: str
owner: str
deadline: str = ""
status: str = "open"
@dataclass
class MeetingRecord:
title: str
date: datetime
attendees: list[str] = field(default_factory=list)
summary: str = ""
action_items: list[ActionItem] = field(default_factory=list)
decisions: list[str] = field(default_factory=list)
def extract_actions(transcript: str) -> list[ActionItem]:
action_keywords = ["will do", "action item", "take ownership",
"by next week", "assigned to", "follow up"]
items = []
for line in transcript.split("\n"):
if any(kw in line.lower() for kw in action_keywords):
parts = line.split(":")
owner = parts[0].strip() if len(parts) > 1 else "unassigned"
items.append(ActionItem(
description=line.strip(), owner=owner
))
return itemsReal-World Examples
class MeetingToNotion:
def __init__(self, notion_client, db_id: str):
self.client = notion_client
self.db_id = db_id
def publish(self, meeting: MeetingRecord) -> dict:
properties = {
"Title": {"title": [{"text": {"content": meeting.title}}]},
"Date": {"date": {"start": meeting.date.isoformat()}},
"Attendees": {
"multi_select": [{"name": a} for a in meeting.attendees]
},
"Status": {"select": {"name": "Processed"}}
}
children = []
children.append(self._heading("Summary"))
children.append(self._paragraph(meeting.summary))
if meeting.action_items:
children.append(self._heading("Action Items"))
for item in meeting.action_items:
children.append(self._todo(item.description, item.owner))
if meeting.decisions:
children.append(self._heading("Decisions"))
for d in meeting.decisions:
children.append(self._bullet(d))
return self.client.create_page(self.db_id, properties, children)
def _heading(self, text):
return {"object": "block", "type": "heading_2",
"heading_2": {"rich_text": [{"text": {"content": text}}]}}
def _paragraph(self, text):
return {"object": "block", "type": "paragraph",
"paragraph": {"rich_text": [{"text": {"content": text}}]}}
def _todo(self, text, owner):
return {"object": "block", "type": "to_do",
"to_do": {"rich_text": [{"text": {"content": f"{owner}: {text}"}}]}}
def _bullet(self, text):
return {"object": "block", "type": "bulleted_list_item",
"bulleted_list_item": {"rich_text": [{"text": {"content": text}}]}}Advanced Tips
Use LLM summarization to distill transcripts before extracting structured data. Link meeting pages to project databases through Notion relations for cross-referencing. Implement attendee normalization to handle name variations across different meeting transcription services.
When to Use It?
Use Cases
Process weekly standup recordings into searchable Notion databases with extracted action items. Build meeting dashboards that track decisions and follow-up completion across teams. Create automated meeting summaries that are shared with absent team members.
Related Topics
Speech-to-text transcription services, natural language processing for information extraction, Notion API integration, meeting productivity tools, and task management automation.
Important Notes
Requirements
A Notion workspace with API access and a configured meetings database. A transcript source such as a recording service with API access or manual transcript upload. Python with the httpx library for Notion API communication.
Usage Recommendations
Do: standardize meeting database schemas across teams for consistent filtering and reporting. Review extracted action items for accuracy before marking them as assigned. Archive processed meetings with original transcript links for reference.
Don't: treat automated action item extraction as perfectly accurate without human review. Store sensitive meeting content without appropriate workspace access controls. Ignore transcript quality issues that affect downstream extraction accuracy.
Limitations
Action item extraction accuracy depends heavily on transcript quality and speaker clarity. The Notion API block creation limit constrains how much content a single page can receive in one request. Speaker attribution requires transcription services that support speaker diarization, which adds cost and processing time.
More Skills You Might Like
Explore similar skills to enhance your workflow
Timeline Creator
Create HTML timelines and project roadmaps with Gantt charts, milestones, phase groupings, and progress indicators. Use when users request timelines,
Gladia Automation
Automate Gladia operations through Composio's Gladia toolkit via Rube MCP
Xero
Xero API integration with managed OAuth. Manage contacts, invoices, payments, accounts, and run
Asc Cli Usage
Automate App Store Connect operations using command line tools for efficient app management and deployment
Microsoft Clarity Automation
1. Add the Composio MCP server to your configuration:
Bolt Iot Automation
Automate Bolt Iot operations through Composio's Bolt Iot toolkit via