Files
AGENTS/skills/meeting-notes/references/teams-transcript-workflow.md
m3tm3re e2932d1d84 Implement Phase 1: Work integration (without n8n)
Skills Created:
- outline: Full MCP integration with Outline wiki (search, read, create, export, AI queries)
- Enhanced basecamp: Added project mapping configuration to PARA structure
- Enhanced daily-routines: Integrated work context (Basecamp, Outline) into daily/weekly workflows
- Enhanced meeting-notes: Added Teams transcript processing workflow guide

PARA Work Structure Created:
- 01-projects/work/: 10 project folders with MOCs (placeholders for user customization)
- 02-areas/work/: 5 area files (current-job, professional-dev, team-management, company-knowledge, technical-excellence)
- 03-resources/work/wiki-mirror/: Ready for Outline exports
- 04-archive/work/: Ready for completed work

Documentation Added:
- skills/outline/SKILL.md: Comprehensive wiki workflows and tool references
- skills/outline/references/outline-workflows.md: Detailed usage examples
- skills/outline/references/export-patterns.md: Obsidian integration patterns
- skills/meeting-notes/references/teams-transcript-workflow.md: Manual DOCX → meeting note workflow
- skills/chiron-core/references/work-para-structure.md: Work-specific PARA organization

Key Integrations:
- Basecamp ↔ Obsidian: Project mapping and task sync
- Outline ↔ Obsidian: Wiki search, export decisions, knowledge discovery
- Teams → Obsidian: Transcript processing with AI analysis
- All integrated into daily/weekly routines

Note: n8n workflows skipped per user request. Ready for n8n automation later.
2026-01-28 18:58:49 +01:00

13 KiB

Teams Transcript Processing Workflow

Manual workflow for processing Teams meeting transcripts (.docx) into structured meeting notes with action items.

Table of Contents

  1. Workflow Overview
  2. Prerequisites
  3. Step-by-Step Process
  4. Templates
  5. Integration Points
  6. Best Practices
  7. Troubleshooting

Workflow Overview

Teams Transcript (.docx)
    ↓
[Manual: Upload transcript]
    ↓
[Extract text content]
    ↓
[AI Analysis: Extract key info]
    ├─→ Attendees
    ├─→ Topics discussed
    ├─→ Decisions made
    └─→ Action items
    ↓
[Create Obsidian meeting note]
    ├─→ Use meeting-notes template
    ├─→ Include transcript summary
    └─→ Extract action items as tasks
    ↓
[Optional: Sync to Basecamp]
    ├─→ Create todos in Basecamp
    └─→ Assign to project

Prerequisites

Tools Needed

  • Teams (for recording and downloading transcripts)
  • Python with python-docx library (for text extraction)
  • Obsidian (for storing meeting notes)
  • Basecamp MCP (for syncing action items - optional)

Install Dependencies

pip install python-docx

Step-by-Step Process

Step 1: Download Teams Transcript

In Teams:

  1. Go to meeting recording
  2. Click "..." (more options)
  3. Select "Open transcript" or "Download transcript"
  4. Save as .docx file
  5. Note filename (includes date/time)

Filename format: MeetingTitle_YYYY-MM-DD_HHMM.docx

Step 2: Extract Text from DOCX

Python script (/tmp/extract_transcript.py):

#!/usr/bin/env python3
from docx import Document
import sys
import os

def extract_transcript(docx_path):
    """Extract text from Teams transcript DOCX"""
    try:
        doc = Document(docx_path)
        full_text = '\n'.join([para.text for para in doc.paragraphs])
        return full_text
    except Exception as e:
        print(f"Error reading DOCX: {e}")
        return None

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python extract_transcript.py <transcript.docx>")
        sys.exit(1)

    docx_path = sys.argv[1]
    text = extract_transcript(docx_path)
    
    if text:
        print(text)
        # Optionally save to text file
        output_path = docx_path.replace('.docx', '.txt')
        with open(output_path, 'w') as f:
            f.write(text)
        print(f"\nExtracted to: {output_path}")

Usage:

python extract_transcript.py "MeetingName_2026-01-28_1400.docx"

Step 3: AI Analysis of Transcript

Prompt for AI (ask your AI assistant):

Analyze this Teams meeting transcript and extract:

1. Attendees:
   - Names and roles (if mentioned)
   - Who spoke the most
   - Any key stakeholders

2. Topics Discussed:
   - Main topics (3-5 key items)
   - Brief summary of each topic

3. Decisions Made:
   - Clear decisions with reasoning
   - Format: "Decision: [what] - [reasoning]"
   - Include: "Deferred decisions" if applicable

4. Action Items:
   - Extract specific, actionable tasks
   - Include: owner (@mention), due date (if mentioned), priority (implicit from context)
   - Format: "- [ ] Task description #meeting #todo 🔼 👤 @name 📅 YYYY-MM-DD"

5. Next Steps:
   - Follow-up meetings needed
   - Deliverables expected
   - Blockers or dependencies

Format output in markdown ready for Obsidian meeting template.

Step 4: Create Obsidian Meeting Note

Ask AI to:

  • Use meeting-notes skill template
  • Format extracted content
  • Create proper frontmatter
  • Add wiki-links to related projects/areas

Template structure (from meeting-notes skill):

---
title: "[Meeting Title]"
platform: teams
date: YYYY-MM-DD
time: HH:mm-HH:mm
duration: "X minutes"
attendees: [names]
transcript_file: "MeetingName_2026-01-28.docx"
project: [[Project Name]]
tags: [meeting, work, teams]
---

## Attendees
- [Name] - [Role]
- [Name] - [Role]

## Topics Discussed
### [Topic 1]
- [Summary]

### [Topic 2]
- [Summary]

## Decisions Made
1. [Decision] - [Reasoning]
2. [Decision] - [Reasoning]

## Action Items
- [ ] [Action description] #meeting #todo 🔼 👤 @name 📅 YYYY-MM-DD
- [ ] [Action description] #meeting #todo 🔽 👤 @self 📅 YYYY-MM-DD

## Next Steps
- [ ] Schedule follow-up meeting
- [ ] Share notes with team

Step 5: Save to Obsidian

Location:

~/CODEX/01-projects/work/[project]/meetings/[topic]-YYYYMMDD.md

Ask AI to:

  • Determine project from context
  • Create proper folder structure
  • Use kebab-case for filename
  • Add to project MOC

Step 6: Sync Action Items to Basecamp (Optional)

When to sync:

  • Meeting was about a specific project
  • Action items have clear owners
  • Project uses Basecamp for task tracking

Ask user: "Sync these action items to Basecamp?"

If yes:

  1. Delegate to basecamp skill
  2. Ask: "Which Basecamp project?"
  3. Create todos with:
    • Proper due dates
    • Assignees (from @mentions)
    • Linked to project
  4. Confirm: "Created X todos in [project]"

Templates

AI Analysis Prompt Template

Copy this prompt for consistent results:

You are a meeting analysis assistant. Analyze this Teams meeting transcript and extract:

1. Attendees:
   - List all participants mentioned
   - Identify speakers (who talked most)
   - Note any key stakeholders (managers, decision-makers)

2. Topics Discussed (3-5 main topics):
   For each topic:
   - Title (2-4 words)
   - Summary (2-3 sentences)
   - Time spent on topic (if discernible from transcript)

3. Decisions Made:
   For each decision:
   - Decision statement (what was decided)
   - Reasoning (brief justification)
   - Consensus level (unanimous / majority / proposed)
   - Format as checklist item: `- [ ] Decision: [text]`

4. Action Items:
   For each action item:
   - Description (specific, actionable verb)
   - Owner (@mention if clear, otherwise "Unassigned")
   - Due date (YYYY-MM-DD if mentioned, else "No deadline")
   - Priority (implicit: ⏫ urgent, 🔼 high, 🔽 low)
   - Format: `- [ ] Task #meeting #todo [priority] 👤 @owner 📅 date`

5. Next Steps:
   - Follow-up meetings needed?
   - Deliverables expected?
   - Blockers or dependencies?

**Output Format**: Markdown ready for Obsidian meeting note template.

**Meeting Type**: [standup / 1:1 / workshop / decision]

Transcript:
[PASTE TEAMS TRANSCRIPT HERE]

Meeting Note Template (Enhanced for Teams)

---
title: "[Meeting Title]"
platform: teams
date: YYYY-MM-DD
time: HH:mm-HH:mm
duration: "X minutes"
attendees: [Name 1 - Role, Name 2 - Role, ...]
transcript_file: "transcripts/[Topic]-YYYYMMDD.docx"
recording_link: "[Teams recording URL if available]"
project: [[Project Name]]
tags: [meeting, work, teams, transcript]
---

## Attendees

| Name | Role | Company |
|-------|-------|---------|
| [Name] | [Role] | [Company] |
| [Name] | [Role] | [Company] |

## Agenda
[If agenda was known in advance]
1. [Item 1]
2. [Item 2]
3. [Item 3]

## Transcript Summary

[AI-generated summary of transcript]

## Topics Discussed

### [Topic 1]
- [Summary points]
- [Time spent: X minutes]

### [Topic 2]
- [Summary points]
- [Time spent: X minutes]

## Decisions Made

1. ✅ [Decision 1]
   - **Reasoning**: [Why this decision]
   - **Owner**: [Who made decision]
   - **Due**: [If applicable]

2. ✅ [Decision 2]
   - **Reasoning**: [Why this decision]
   - **Owner**: [Who made decision]

### Deferred Decisions
- [ ] [Decision deferred] - [Why deferred, revisit date]

## Action Items

- [ ] [Task 1] #meeting #todo 🔼 👤 @owner 📅 YYYY-MM-DD
- [ ] [Task 2] #meeting #todo ⏫ 👤 @owner 📅 YYYY-MM-DD
- [ ] [Task 3] #meeting #todo 🔽 👤 self 📅 YYYY-MM-DD

### Action Item Summary

| Task | Owner | Due | Priority |
|-------|--------|------|----------|
| [Task 1] | @owner | YYYY-MM-DD | ⏫ |
| [Task 2] | @owner | YYYY-MM-DD | 🔼 |
| [Task 3] | @self | N/A | 🔽 |

## Next Steps

- [ ] Schedule follow-up meeting: [Topic] - [Proposed date]
- [ ] Share notes with: [attendee list]
- [ ] Update project status in Basecamp

## Notes

[Additional notes, observations, or clarifications]

## Links

- 📹 Teams Recording: [URL if available]
- 📄 Transcript: [[transcript_filename]]
- 🗄 Project: [[Project Name]]
- 📄 Related Docs: [[Related Outline Doc]](outline://document/abc123)

Integration Points

With meeting-notes Skill

Flow:

User: "Process transcript: [file.docx]"

1. Extract text from DOCX
2. Ask AI to analyze transcript
3. AI extracts: attendees, topics, decisions, action items
4. Create meeting note using meeting-notes skill
5. Ask: "Sync action items to Basecamp?"

With basecamp Skill

Flow (optional):

User: "Yes, sync to Basecamp"

1. Ask: "Which Basecamp project?"
2. List available projects
3. For each action item:
   - create_todo(project_id, todolist_id, content, due_on, assignee_ids)
4. Confirm: "Created X todos in [project]"

With obsidian-management Skill

Flow:

1. Create meeting note at: 01-projects/work/[project]/meetings/[topic]-YYYYMMDD.md
2. Update project MOC with link to meeting:
   - Add to "Meetings" section in project _index.md
3. If decision made, create in decisions/ folder
4. If applicable, export decision to Outline wiki

Best Practices

During Meeting

  1. Use Teams recording: Get transcript automatically
  2. Name attendees: Add their roles to transcript
  3. Speak clearly: Improves transcript accuracy
  4. Agenda first: Helps AI structure analysis

Processing Transcripts

  1. Process quickly: Within 24 hours while fresh
  2. Clean up text: Remove filler words (um, ah, like)
  3. Be specific: Action items must be actionable, not vague
  4. Assign owners: Every action item needs @mention
  5. Set due dates: Even if approximate (next week, by next meeting)

Storage

  1. Consistent location: All work meetings in project/meetings/
  2. Link everything: Link to project, related docs, areas
  3. Tag properly: #meeting, #work, #teams, #transcript
  4. Archive old: Move completed project meetings to archive/

Basecamp Sync

  1. Sync important meetings: Not every meeting needs sync
  2. Use project context: Sync to relevant project
  3. Verify in Basecamp: Check todos were created correctly
  4. Follow up: Check completion status regularly

Troubleshooting

Transcript Won't Open

Problem: DOCX file corrupted or wrong format

Solution:

  1. Re-download from Teams
  2. Try opening in Word first to verify
  3. Use alternative: Copy-paste text manually

AI Misses Action Items

Problem: Transcript analysis misses clear action items

Solution:

  1. Manually add missed items to meeting note
  2. Reprompt AI with specific context: "Review transcript again, focus on action items"
  3. Check transcript: Was the audio clear?

Wrong Project Assigned

Problem: Meeting note created in wrong project folder

Solution:

  1. Move file to correct location
  2. Update links in project MOCs
  3. Use consistent naming conventions

Basecamp Sync Fails

Problem: Todos not created in Basecamp

Solution:

  1. Check Basecamp MCP is connected
  2. Verify project ID is correct
  3. Check assignee IDs are valid
  4. Check todo list exists in project
  5. Retry with fewer items

Example End-to-End

Input

Teams transcript: api-design-review_2026-01-28_1400.docx

AI Output

## Attendees
- Alice (Product Owner)
- Bob (Lead Developer)
- Charlie (Tech Lead)
- Sarah (UX Designer)

## Topics Discussed
1. API Authentication Design (20 min)
2. Rate Limiting Strategy (15 min)
3. Error Handling (10 min)

## Decisions Made
1. Use OAuth2 with refresh tokens - Industry standard, better security
2. Implement 1000 req/min rate limit - Based on load tests

## Action Items
- [ ] Create OAuth2 implementation guide #meeting #todo 🔼 👤 @alice 📅 2026-02-05
- [ ] Document rate limiting policy #meeting #todo 🔼 👤 @bob 📅 2026-02-10
- [ ] Update error handling documentation #meeting #todo 🔽 👤 @sarah 📅 2026-02-15

Obsidian Note Created

File: ~/CODEX/01-projects/work/api-integration-platform/meetings/api-design-review-20260128.md

Basecamp Sync

Project: API Integration Platform Todos created: 3

  • OAuth2 guide (assigned to Alice, due 2026-02-05)
  • Rate limiting (assigned to Bob, due 2026-02-10)
  • Error handling (assigned to Sarah, due 2026-02-15)

Automation (Future n8n Implementation)

When n8n is added, automate:

  1. Watch transcript folder: Auto-trigger on new .docx files
  2. AI auto-analysis: Use AI API to extract meeting info
  3. Auto-create meeting notes: Save to Obsidian automatically
  4. Auto-sync to Basecamp: Create todos for action items
  5. Send notifications: "Meeting processed, X action items created"

Workflow diagram:

Teams transcript folder
    ↓ (n8n: Watch folder)
[Trigger: new .docx]
    ↓
[Extract text]
    ↓
[AI Analysis]
    ↓
[Create meeting note]
    ↓
[Sync to Basecamp] (conditional)
    ↓
[Send ntfy notification]

Quick Reference

Action Tool/Script
Download transcript Teams UI
Extract text python extract_transcript.py
Analyze transcript AI assistant prompt
Create meeting note meeting-notes skill
Sync to Basecamp basecamp skill
Store in Obsidian obsidian-management skill
Export decision outline skill (optional)