Obsidian Email Chain Processor
Extract participants from email chains, create People profiles, and generate summaries from email thread content.
Quick Start
"Process the email" or "Process email chain" = Complete workflow:
- •Extract participants from email chain (From headers only, not To/CC)
- •Create missing People profiles
- •Update note with linked participant list
- •Generate summary from email chain content and insert into Summary section
This is the default behavior - all processing steps are performed automatically unless you request a specific step only.
Capabilities
- •Extract Participants: Parse email From headers to identify senders
- •Create People Profiles: Generate linked profiles for email participants
- •Generate Summaries: Analyze email chain and create structured summary
File Structure
Email chain notes use format: YYYY-MM-DD - topic name.md in ~/Documents/Obsidian/HPE/Notes/
Expected Structure
--- when: YYYY-MM-DD tags: - note --- # Participants # Summary # Email Chain [Raw email content here]
Finding Email Notes
# Today's email notes
find ~/Documents/Obsidian/HPE/Notes -name "$(date +%Y-%m-%d)*.md"
# Search for files with "Email Chain" section
find ~/Documents/Obsidian/HPE/Notes -type f -name "*.md" -exec grep -l "# Email Chain" {} \;
# Specific email note by name
find ~/Documents/Obsidian/HPE/Notes -iname "*ops*ramp*.md"
Processing Workflow
Step 1: Extract Participants from Email Chain
Parse the email chain to extract unique senders:
- •Look for
From:or**From:**headers in email chain - •Extract name in "Last, First" format (e.g., "Vobbilisetty, Suresh")
- •Build list of unique senders (ignore To/CC lists)
- •Maintain chronological order (first sender first)
Email header patterns to match:
From: Last, First <email@hpe.com> **From:** Last, First <email@hpe.com>
Step 2: Create/Update People Profiles
For each unique sender:
- •Check if profile exists:
~/Documents/Obsidian/HPE/People/Last, First.md - •If missing, create new profile:
markdown
--- tags: - person --- # Last, First ## Contact - Email: email@hpe.com ## Aliases - [[Last, First|First Last]]
- •Extract email address from From header
- •If profile exists but email missing, add it to Contact section
Step 3: Update Participants Section
Replace empty # Participants section with linked list:
# Participants - [[Vobbilisetty, Suresh|Suresh Vobbilisetty]] - [[Sadananda, Ravi Kiran Srirangam|Ravi Kiran Sadananda]] - [[Daniel, Binu|Binu Daniel]] - [[Vanteru, Bhanu|Bhanu Vanteru]]
Format rules:
- •Link format:
[[Last, First|First Last]] - •Listed in order of first appearance in email chain
- •One participant per line with bullet point
Step 4: Generate Detailed AI Summary (Automatic)
The script automatically generates comprehensive, detailed summaries using AI analysis:
Detailed AI Summary includes:
- •✅ Detailed multi-paragraph overview with full context
- •✅ Technical issues broken down by root cause with specific details
- •✅ Stakeholder mapping organized by role
- •✅ Action items organized by timeline (Immediate, Short-Term, Long-Term) with owners
- •✅ Process breakdown analysis and communication gaps
- •✅ Tables for ticket/issue tracking
- •✅ Timeline of events with timestamps
- •✅ Specific technical details (serial numbers, configurations, error messages)
- •✅ Customer impact assessment and frustration quotes
- •✅ Root cause summary (technical + process)
- •✅ Next steps prioritized
Automatic Analysis Process:
- •Script analyzes up to 30KB of email content
- •AI generates comprehensive summary (30-60 second processing time)
- •Falls back to enhanced basic summary only if AI is unavailable
Example Detailed Summary Structure:
## Overview [2-3 detailed paragraphs with customer, timeline, urgency, context] ## Technical Issues Identified ### Issue #1: [Specific Problem Name] **Problem:** [Detailed description] **Root Cause:** [Technical analysis] **Solution Required:** [Fix plan with timeline] ### Affected Tickets Table | Ticket | Summary | Status | Root Cause | ## Process & Escalation Issues - Communication breakdowns identified - Leadership concerns documented ## Action Items & Responsibilities ### Immediate Actions (Due: [Date]) - [x] Completed item with owner - [ ] Pending item with owner and deadline ## Key Stakeholders ### Engineering Leadership - Name - Specific role and involvement ## Root Cause Summary ### Technical Failures ### Process Failures ### Customer Impact Duration ## Next Steps [Prioritized action list]
Enhanced Basic Summary (Fallback only): If AI is unavailable, generates enhanced basic summary with:
- •Extracted ticket references
- •Key dates mentioned
- •Urgency indicators
- •Customer/project names from subject
When to Use
- •User requests "process email", "extract participants", or "summarize email"
- •Note file contains
# Email Chainsection with email content - •After creating note from copied email thread
Script Usage
# Process email chain note python ~/.copilot/skills/obsidian-email/scripts/process_email.py "email-note-file.md"
The script automatically:
- •Parses email headers to extract unique senders
- •Creates missing People profiles with email addresses
- •Updates Participants section with linked names
- •Generates comprehensive summary from email content
- •Updates Summary section in the note
Example output:
✓ Extracted 5 unique participants - Vobbilisetty, Suresh (suresh.vobbilisetty@hpe.com) - Sadananda, Ravi Kiran Srirangam (ravikiransrirangam.sadananda@hpe.com) - Daniel, Binu (binu.daniel@hpe.com) - Vanteru, Bhanu (bhanu.vanteru@hpe.com) - Yun, Stella (xiaoyang.yun@hpe.com) ✓ Created 2 new People profiles ✓ Updated Participants section ✓ Generated summary (4 sections) ✓ Updated email note
Email Header Formats
The script handles multiple email header formats:
Format 1: Plain text with colon
From: Last, First <email@hpe.com> Date: Friday, January 23, 2026 at 7:43 AM To: Person1 <email1@hpe.com>, Person2 <email2@hpe.com>
Format 2: Bold markdown
**From:** Last, First <email@hpe.com> **Sent:** Friday, January 23, 2026 5:42 AM **To:** Person1 <email1@hpe.com>
Format 3: Mixed (Outlook style)
From: Last, First <email@hpe.com> Date: Friday, January 23, 2026 at 7:43 AM --- **From:** Last, First <email@hpe.com> **Sent:** Friday, January 23, 2026 12:48 PM
Name Format Handling
The script handles various name formats:
- •Standard:
Last, First→[[Last, First|First Last]] - •Middle names:
Last, First Middle→[[Last, First Middle|First Middle Last]] - •Multi-part last names:
Last Name, First→[[Last Name, First|First Last Name]]
Email Address Extraction
Extracts email from patterns:
- •
<email@domain.com>- Standard format - •
[email@domain.com](mailto:...)- Markdown link format - •
email@domain.com- Plain text format
Integration with People Profiles
The script maintains consistency with existing People profiles:
- •Check existing profiles before creating new ones
- •Add email to Contact section if profile exists but email missing
- •Use same formatting as obsidian-meeting skill for consistency
- •Create aliases section for proper Obsidian linking
Example Workflow
# 1. Find the email note find ~/Documents/Obsidian/HPE/Notes -iname "*ops*ramp*email*.md" # 2. Process it python ~/.copilot/skills/obsidian-email/scripts/process_email.py \ "~/Documents/Obsidian/HPE/Notes/2026-01-23 - Ops Ramp Issues Email.md" # Output shows progress and results
Common Issues
"No email chain found"
- •Ensure the note has a
# Email Chainsection - •Check that email content is below the header
"No senders extracted"
- •Verify email has From: headers
- •Check email format matches supported patterns
"Failed to parse name"
- •Name should be in "Last, First" format in From header
- •Script will skip invalid formats and continue
Related Skills
- •obsidian-meeting: Process meeting transcripts with similar participant extraction
- •Both skills maintain consistent People profile format and linking conventions