šŸ”€

AI Meeting Notes to Action Items

Easy•5 tools

Automatically extract action items, decisions, and follow-ups from meeting notes or transcripts.

ClaudeNotion MCPGoogle CalendarSlackFilesystem MCP

Workflow Steps

  1. 1

    Transcriber Agent converts audio to text (if needed)

  2. 2

    Summarizer Agent creates a concise meeting summary

  3. 3

    Action Extractor Agent identifies action items with owners and deadlines

  4. 4

    Decision Logger Agent captures key decisions and rationale

  5. 5

    Follow-up Scheduler Agent creates calendar events for deadlines

  6. 6

    Notifier Agent sends summaries and action items to participants

Download

Documentation

AI Meeting Notes to Action Items

Overview

This workflow automatically transforms raw meeting notes or transcripts into structured action items, decisions, and follow-ups. It eliminates the tedious manual process of reviewing meeting recordings and extracting actionable information, saving hours of administrative work per week.

Difficulty

Easy — Requires basic setup of Claude API and one or two integrations.

Tools Required

ToolPurpose
ClaudeCore AI for summarization and extraction
Notion MCPStore meeting notes and action items
Google CalendarSchedule follow-up reminders
SlackNotify team members of action items
Filesystem MCPRead meeting transcript files

Workflow Steps

Step 1: Transcribe (Optional)

If you have audio recordings, use a transcription service to convert them to text:

# Using OpenAI Whisper
from openai import OpenAI

client = OpenAI()
audio_file = open("meeting.mp3", "rb")
transcript = client.audio.transcriptions.create(
    model="whisper-1",
    file=audio_file
)
text = transcript.text

Or use Claude's built-in audio processing if available.

Step 2: Summarize the Meeting

import anthropic

client = anthropic.Anthropic()

summary = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1000,
    messages=[
        {"role": "user", "content": f"""
        Summarize the following meeting transcript in a structured format:

        {transcript}

        Include:
        1. Main topics discussed
        2. Key decisions made
        3. Action items mentioned
        4. Next steps
        """}
    ]
)

Step 3: Extract Action Items

action_items = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=2000,
    messages=[
        {"role": "user", "content": f"""
        Extract all action items from this meeting transcript.
        For each action item, identify:
        - The task description
        - The owner (who is responsible)
        - The deadline (if mentioned)
        - Priority (high/medium/low)
        - Related decisions or context

        Transcript:
        {transcript}

        Return as a JSON array.
        """}
    ]
)

Step 4: Log Decisions

decisions = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1500,
    messages=[
        {"role": "user", "content": f"""
        Extract all decisions made in this meeting.
        For each decision, identify:
        - What was decided
        - Who made the decision
        - The rationale
        - Any dissenting opinions

        Transcript:
        {transcript}

        Return as a structured format.
        """}
    ]
)

Step 5: Schedule Follow-ups

# Create calendar events for action item deadlines
from googleapiclient.discovery import build

calendar = build('calendar', 'v3', credentials=creds)

for item in action_items:
    if item.get('deadline'):
        event = {
            'summary': f"Follow-up: {item['task']}",
            'description': f"Action item from meeting on {meeting_date}\nOwner: {item['owner']}",
            'start': {'dateTime': item['deadline'], 'timeZone': 'UTC'},
            'end': {'dateTime': item['deadline'], 'timeZone': 'UTC'},
            'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 1440}]}
        }
        calendar.events().insert(calendarId='primary', body=event).execute()

Step 6: Notify Participants

# Send summary to team via Slack
import requests

slack_webhook = "https://hooks.slack.com/services/..."

summary_message = f"""
šŸ“‹ **Meeting Summary - {meeting_date}**

**Action Items:**
{format_action_items(action_items)}

**Key Decisions:**
{format_decisions(decisions)}

Full notes: {notion_link}
"""

requests.post(slack_webhook, json={'text': summary_message})

Example Usage

Input: Meeting Transcript

Meeting: Product Roadmap Review
Date: 2026-05-20
Participants: Alice (PM), Bob (Eng), Carol (Design)

Alice: Let's review the Q2 roadmap. We need to prioritize the new checkout flow.
Bob: The checkout redesign is blocked on the payment API migration.
Carol: I've completed the wireframes for the new checkout. They're in Figma.
Alice: Great. Bob, can you start the payment API migration by end of May?
Bob: I can have a plan ready by Friday, but the actual migration will take 2 weeks.
Carol: I'll share the final designs by Thursday.
Alice: Okay. Let's schedule a follow-up for June 1st to review progress.

Output: Structured Action Items

[
  {
    "task": "Create payment API migration plan",
    "owner": "Bob",
    "deadline": "2026-05-23",
    "priority": "high",
    "context": "Checkout redesign is blocked on payment API migration"
  },
  {
    "task": "Share final checkout wireframes",
    "owner": "Carol",
    "deadline": "2026-05-22",
    "priority": "medium",
    "context": "Wireframes already completed, need to share final versions"
  },
  {
    "task": "Begin payment API migration",
    "owner": "Bob",
    "deadline": "2026-05-31",
    "priority": "high",
    "context": "Estimated 2 weeks for migration"
  },
  {
    "task": "Schedule follow-up meeting",
    "owner": "Alice",
    "deadline": "2026-06-01",
    "priority": "medium",
    "context": "Review progress on payment migration and checkout redesign"
  }
]

Pros

  • āœ… Saves hours of manual note-taking and follow-up
  • āœ… Ensures no action items are missed
  • āœ… Automatic deadline tracking and reminders
  • āœ… Creates searchable meeting history
  • āœ… Works with any meeting format (audio, video, text)

Cons

  • āŒ Requires transcription for audio meetings
  • āŒ May miss nuanced context in complex discussions
  • āŒ Needs integration setup for full automation
  • āŒ Accuracy depends on transcription quality

When to Use

  • Regular team meetings: Weekly standups, sprint planning, retrospectives
  • Client meetings: Capture requirements and follow-ups
  • Interviews: Extract key points and next steps
  • Brainstorming sessions: Document ideas and action items
  • Any meeting with action items: If you need to track follow-ups

Resources