AutomationFlowsAI & RAG › Turn Youtube Meeting Recordings Into Notion Notes with AI Agent, Deapi & Slack

Turn Youtube Meeting Recordings Into Notion Notes with AI Agent, Deapi & Slack

BydeAPI Team @deapi on n8n.io

Teams who upload meeting recordings to YouTube (unlisted or private) and want automated notes Project managers who need to track action items across recurring meetings Remote teams who want searchable, structured meeting notes in Notion Content teams repurposing recorded calls…

Event trigger★★★★☆ complexityAI-powered16 nodesRss Feed Read TriggerN8N Nodes DeapiAgentOutput Parser StructuredAnthropic ChatNotionSlack
AI & RAG Trigger: Event Nodes: 16 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #13919 — we link there as the canonical source.

This workflow follows the Agent → Anthropic Chat recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Meeting Notes Automation",
  "tags": [],
  "nodes": [
    {
      "id": "522e2769-65f2-4e2e-b196-8320df0ce3ea",
      "name": "Sticky Note - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2368,
        768
      ],
      "parameters": {
        "width": 668,
        "height": 780,
        "content": "## Try It Out!\n### Automatically turn YouTube recordings into structured notes, action items, and Slack summaries.\n\nThis workflow monitors a YouTube channel via RSS for new uploads, transcribes the video, uses AI to extract key topics, action items, and decisions, creates a Notion page, and posts a summary to Slack.\n\n### How it works\n1. **RSS Feed Trigger** polls a YouTube channel for new video uploads\n2. **deAPI Transcribe Video** extracts the transcript using Whisper from the YouTube URL\n3. **Extract From File** converts the transcript binary into text\n4. **AI Agent** analyzes the transcript and produces structured meeting notes\n5. **Notion** creates a meeting notes page in your database\n6. **Slack** posts the summary and action items to a channel\n\n### Requirements\n- [deAPI](https://deapi.ai) account for video transcription\n- Anthropic account for AI Agent\n- Notion workspace with a meeting notes database\n- Slack workspace\n- n8n instance must be on **HTTPS**\n\n### Need Help?\nJoin the [n8n Discord](https://discord.gg/n8n) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Automating!"
      },
      "typeVersion": 1
    },
    {
      "id": "cc70fbc2-89c2-4840-9559-a4c043d4e6ae",
      "name": "Sticky Note - Example",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        1584
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 500,
        "content": "### How to get your YouTube Channel RSS URL\n\n```\nhttps://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID\n```\n\nTo find your **Channel ID**:\n1. Go to the YouTube channel page\n2. Click **More** \u2192 **Share channel** \u2192 **Copy channel ID**\n\nOr find it in the channel URL:\n`youtube.com/channel/UCxxxxxx`\n\nNo YouTube API key needed \u2014 RSS feeds are public."
      },
      "typeVersion": 1
    },
    {
      "id": "e39d8b1c-35d2-4499-a603-2c18bd835e4b",
      "name": "Sticky Note - Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 428,
        "content": "## 1. RSS Feed Trigger\n[Read more about RSS Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread)\n\nPolls a YouTube channel's RSS feed for new video uploads.\n\nSet the **Feed URL** to your channel's RSS URL.\n\nNo file size limits \u2014 deAPI transcribes directly from the YouTube URL."
      },
      "typeVersion": 1
    },
    {
      "id": "655cb3da-db7c-46e0-935f-07f1db7c99af",
      "name": "Sticky Note - Transcribe",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2224,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 428,
        "content": "## 2. Transcribe Video\n[deAPI Documentation](https://docs.deapi.ai)\n\nUses **Whisper Large V3** to transcribe the video directly from the YouTube URL.\n\nReturns the transcript as binary data via `result_url`."
      },
      "typeVersion": 1
    },
    {
      "id": "19271b8e-de81-4939-9646-1246ce76340e",
      "name": "Sticky Note - Extract",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2592,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 428,
        "content": "## 3. Extract Transcript Text\n[Read more about Extract From File](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.extractfromfile)\n\nConverts the binary transcript from deAPI into a text string.\n\nThe extracted text is passed to the AI Agent for analysis."
      },
      "typeVersion": 1
    },
    {
      "id": "44533198-ffa3-4c3c-b217-d3f7d3766c4b",
      "name": "Sticky Note - AI Agent",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2960,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 620,
        "content": "## 4. AI-Powered Note Extraction\n[Read more about AI Agents](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent)\n\nThe AI Agent analyzes the transcript and extracts:\n- **Summary** \u2014 what was discussed\n- **Action items** \u2014 who does what\n- **Decisions** \u2014 what was agreed on\n- **Key topics** \u2014 main themes\n\nThe **Structured Output Parser** ensures consistent JSON output."
      },
      "typeVersion": 1
    },
    {
      "id": "8ed7e0cd-107c-4c9f-8e4b-ced36d366178",
      "name": "Sticky Note - Notion",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 428,
        "content": "## 5. Save to Notion\n[Read more about Notion node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion)\n\nCreates a new page in your Notion meeting notes database.\n\nConfigure the **Database ID** and map the output fields to your database properties."
      },
      "typeVersion": 1
    },
    {
      "id": "fbceeaab-7785-45bc-b93d-99f301278002",
      "name": "Sticky Note - Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3776,
        1584
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 428,
        "content": "## 6. Notify via Slack\n[Read more about Slack node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack)\n\nPosts a summary with action items to your team's Slack channel.\n\nSwap for Microsoft Teams, email, or any other notification node."
      },
      "typeVersion": 1
    },
    {
      "id": "3767a073-0ee1-445c-820a-0df00c6e6fb6",
      "name": "YouTube RSS Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        1952,
        1840
      ],
      "parameters": {
        "feedUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID",
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c693f9d6-9cc0-4817-af5c-a519f194a060",
      "name": "deAPI Transcribe Video",
      "type": "n8n-nodes-deapi.deapi",
      "position": [
        2336,
        1840
      ],
      "parameters": {
        "options": {
          "waitTimeout": 600
        },
        "resource": "video",
        "videoUrl": "={{ $json.link }}",
        "operation": "transcribe"
      },
      "credentials": {
        "deApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a4009b6d-52e2-450f-b232-c455ead5bd81",
      "name": "Extract Transcript Text",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2704,
        1840
      ],
      "parameters": {
        "options": {},
        "operation": "text"
      },
      "typeVersion": 1
    },
    {
      "id": "7134a35c-334c-4321-9204-1783ef1167e5",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3056,
        1840
      ],
      "parameters": {
        "text": "=Here is a transcript of a meeting recording. Please extract structured meeting notes.\n\nVideo title: {{ $('YouTube RSS Trigger').item.json.title }}\n\nTranscript:\n{{ $json.data }}",
        "options": {
          "systemMessage": "You are an expert meeting note-taker. You will receive a meeting transcript.\n\nYour tasks:\n1. Write a concise title for the meeting based on the discussion topics.\n2. Write a brief summary (3-5 sentences) of what was discussed.\n3. Extract all action items with the responsible person if mentioned (format: \"- @person: task\").\n4. List key decisions that were made.\n5. List the main topics that were covered.\n\nReturn the structured notes in the required JSON format."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "57262a23-66b3-44fb-bf94-4edc8a4ac2ed",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        3232,
        2064
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"Weekly Product Sync \u2014 March 5\",\n  \"summary\": \"The team reviewed Q2 roadmap priorities and agreed to focus on the auth redesign first. Timeline for the migration was pushed to next sprint.\",\n  \"action_items\": \"- @alice: Finalize design specs by Friday\\n- @bob: Set up staging environment\\n- @carol: Schedule follow-up with security team\",\n  \"decisions\": \"- Moving forward with Option B for the auth system\\n- Postponing the database migration to next sprint\",\n  \"key_topics\": \"- Q2 roadmap priorities\\n- Auth system redesign\\n- Database migration timeline\\n- Team capacity planning\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "e880f0bb-9432-49fc-8899-e1cd4ef00734",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        3008,
        2064
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-opus-4-6",
          "cachedResultName": "Claude Opus 4.6"
        },
        "options": {}
      },
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5a3af322-60b7-4181-83d0-71ccaf97a62d",
      "name": "Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        3520,
        1840
      ],
      "parameters": {
        "title": "={{ $json.output.title }}",
        "options": {},
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_NOTION_DATABASE_ID"
        },
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Title|title",
              "title": "={{ $json.output.title }}"
            },
            {
              "key": "Summary|rich_text",
              "textContent": "={{ $json.output.summary }}"
            },
            {
              "key": "Action Items|rich_text",
              "textContent": "={{ $json.output.action_items }}"
            },
            {
              "key": "Decisions|rich_text",
              "textContent": "={{ $json.output.decisions }}"
            },
            {
              "key": "Key Topics|rich_text",
              "textContent": "={{ $json.output.key_topics }}"
            }
          ]
        }
      },
      "credentials": {
        "notionApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "643ce37b-d106-43c7-8650-8af3d33625e5",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        3888,
        1840
      ],
      "parameters": {
        "text": "=:memo: *{{ $('AI Agent').item.json.output.title }}*\n\n*Summary:*\n{{ $('AI Agent').item.json.output.summary }}\n\n*Action Items:*\n{{ $('AI Agent').item.json.output.action_items }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SLACK_CHANNEL_ID"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "Notion": {
      "main": [
        [
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube RSS Trigger": {
      "main": [
        [
          {
            "node": "deAPI Transcribe Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "deAPI Transcribe Video": {
      "main": [
        [
          {
            "node": "Extract Transcript Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Transcript Text": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Teams who upload meeting recordings to YouTube (unlisted or private) and want automated notes Project managers who need to track action items across recurring meetings Remote teams who want searchable, structured meeting notes in Notion Content teams repurposing recorded calls…

Source: https://n8n.io/workflows/13919/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Who is this for? Agencies, consultants, and service providers who conduct discovery calls and need to quickly turn conversations into professional proposals.

Tool Think, Tool Calculator, Agent Tool +18
AI & RAG

Build your own Klue/Crayon alternative: Auto-generate comprehensive competitive battlecards with AI research agents for ~$50/month instead of $1,500+

Slack Trigger, Agent, Slack +11
AI & RAG

Automatically detect, classify, and document GitHub API errors using AI. This workflow connects GitHub, OpenAI (GPT-4o), Airtable, Notion, and Slack to build a real-time, searchable API error knowledg

Github Trigger, Agent, OpenAI Chat +6
AI & RAG

Aggregates communication data from Slack, Microsoft Teams, Gmail, GitHub, and Confluence into a single, unified AI-powered analysis workflow designed for quality review and automated documentation upd

Slack, Microsoft Teams, Gmail +6
AI & RAG

The Google Meet AI Assistant workflow provides intelligent meeting analysis by integrating Google Calendar, Google Drive, AssemblyAI transcription, Anthropic Claude AI, Slack, and Notion. It automates

Google Calendar, Google Drive, Stop And Error +5