--- name: research-to-presentation description: Transforms Notion research content into branded presentations through an automated workflow. Collects research from Notion pages/databases, synthesizes content to extract key topics and agenda items, creates presentation structure with slide plans, and generates branded PPT/Figma presentations. Use when converting research into meeting materials, creating data-driven presentations from Notion content, transforming documentation into executive presentations, or building slide decks from scattered research notes. --- # Research to Presentation Workflow Automated pipeline for transforming Notion research into professional presentations with brand consistency. ## Quick Start ```bash # Full automated workflow python scripts/run_workflow.py --notion-url [URL] --output-format [pptx|figma] # Step-by-step execution python scripts/extract_notion.py [URL] > research.json python scripts/synthesize_content.py research.json > synthesis.json node scripts/generate_presentation.js synthesis.json output.pptx ``` ## Workflow Steps ### Step 1: Research Collection Extract research from Notion: ```python # Use Notion tools to gather content results = notion_search(query="research topic") content = notion_fetch(page_ids) extracted_data = extract_key_findings(content) ``` For detailed extraction patterns: [references/research_patterns.md](references/research_patterns.md) ### Step 2: Content Synthesis Analyze and structure content: ```python synthesis = synthesize_content(extracted_data) # Returns: executive_summary, key_topics, agenda_items, supporting_data ``` Topic prioritization guide: [references/agenda_templates.md](references/agenda_templates.md) ### Step 3: Presentation Planning Create slide-by-slide structure: ```javascript const slidePlan = generateSlidePlan(synthesis); // Outputs: title, agenda, content slides with speaker notes ``` Layout options: [references/slide_layouts.md](references/slide_layouts.md) ### Step 4: Slide Generation Convert to presentation format: **PowerPoint Output:** ```javascript node scripts/generate_pptx.js synthesis.json output.pptx ``` **Figma Output:** ```javascript node scripts/export_to_figma.js synthesis.json --api-key [KEY] ``` ### Step 5: Brand Application Apply corporate styling: ```python python scripts/apply_brand.py output.pptx --config assets/brand_config.json ``` ## Input Sources **Notion Pages**: Individual research pages with `notion://page/[ID]` **Notion Databases**: Research collections with `notion://database/[ID]` **Multiple Sources**: Comma-separated URLs for comprehensive synthesis ## Output Formats **PowerPoint (.pptx)**: Full presentation with animations and transitions **Figma Slides**: Web-based collaborative presentation format **HTML Preview**: Quick preview with `--preview` flag ## Presentation Types ### Executive Summary - High-level findings (3-5 slides) - Key metrics and KPIs - Strategic recommendations - See [references/executive_template.md](references/executive_template.md) ### Research Report - Comprehensive findings (10-20 slides) - Detailed methodology - Data visualizations - See [references/research_template.md](references/research_template.md) ### Meeting Prep - Agenda-driven structure (5-10 slides) - Discussion topics - Decision points - See [references/meeting_template.md](references/meeting_template.md) ## Customization ### Brand Configuration Edit `assets/brand_config.json`: ```json { "colors": { "primary": "#1a73e8", "secondary": "#34a853" }, "fonts": { "heading": "Poppins", "body": "Lora" } } ``` ### Slide Templates Modify HTML templates in `assets/templates/`: - `title.html` - Title slide layout - `content.html` - Content slide layout - `data.html` - Data visualization slide ### Processing Rules Adjust synthesis patterns in `scripts/config.py`: - Topic extraction thresholds - Agenda prioritization weights - Content chunking sizes ## Best Practices 1. **Start broad**: Cast wide net in Notion search, then filter 2. **Validate sources**: Check last-edited dates for currency 3. **Chunk large content**: Process in batches for token efficiency 4. **Preview first**: Use `--preview` to check before final generation 5. **Version control**: Keep synthesis.json for iteration ## Troubleshooting **"No content found"**: Verify Notion permissions and page URLs **"Synthesis failed"**: Check research.json structure and content **"Brand not applied"**: Ensure brand_config.json is valid **"Figma export error"**: Validate API key and network access ## Advanced Usage ### Batch Processing ```bash # Process multiple research sets for url in $(cat notion_urls.txt); do python scripts/run_workflow.py --notion-url "$url" --output "output_$(date +%s).pptx" done ``` ### Custom Workflows See [references/custom_pipelines.md](references/custom_pipelines.md) for: - Conditional slide generation - Dynamic template selection - Multi-language support - Automated scheduling ## Dependencies - Python 3.8+ with pandas, pydantic - Node.js 16+ with pptxgenjs, @ant/html2pptx - Notion API access via MCP - Optional: Figma API key for web export