AutomationFlowsSocial Media › Create Daily AI & Automation Digest from YouTube, Reddit, X & Perplexity

Create Daily AI & Automation Digest from YouTube, Reddit, X & Perplexity

Original n8n title: Create a Daily AI & Automation Content Digest From Youtube, Reddit, X and Perplexity with Openai and Airtable

ByChase Hannegan @chasehannegan on n8n.io

What It Does

Cron / scheduled trigger★★★★★ complexityAI-powered51 nodesPerplexityYouTubeHTTP RequestOpenAI ChatOutput Parser StructuredRedditChain LlmGmail
Social Media Trigger: Cron / scheduled Nodes: 51 Complexity: ★★★★★ AI nodes: yes Added:
Create Daily AI & Automation Digest from YouTube, Reddit, X & Perplexity — n8n workflow card showing Perplexity, YouTube, HTTP Request integration

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

This workflow follows the Airtable → Chainllm 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
{
  "id": "J40AdK0CXMdW21Un",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Content Report Automation SKOOL-1",
  "tags": [],
  "nodes": [
    {
      "id": "68b12607-6bdb-48e4-982b-955ae2f441d6",
      "name": "Perplexity AI News",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        -784,
        1040
      ],
      "parameters": {
        "model": "sonar-pro",
        "options": {},
        "messages": {
          "message": [
            {
              "content": "=What are the top 3 trending news stories in AI and AI automation today, {{ $now.toFormat('yyyy-MM-dd') }}? Provide a brief summary of each."
            }
          ]
        },
        "simplify": true,
        "requestOptions": {}
      },
      "credentials": {
        "perplexityApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "39643641-129a-4489-92dd-6ccce589baf4",
      "name": "Get Videos",
      "type": "n8n-nodes-base.youTube",
      "position": [
        -784,
        -128
      ],
      "parameters": {
        "limit": 10,
        "filters": {
          "q": "=n8n",
          "regionCode": "US",
          "publishedAfter": "={{ \n  ((new Date(new Date($now).setHours(7,0,0,0) - 24*60*60*1000))\n    .toISOString()\n    .slice(0,19) + 'Z').trim()\n}}"
        },
        "options": {
          "order": "relevance",
          "safeSearch": "moderate"
        },
        "resource": "video"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b0aecd48-2afd-4ce4-85ce-fdf382c18534",
      "name": "Get Video Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -608,
        -128
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/videos?",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "=YOURAPIKEY"
            },
            {
              "name": "id",
              "value": "={{ $json.id.videoId }}"
            },
            {
              "name": "part",
              "value": "contentDetails, snippet, statistics"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6ecdc404-85c8-4e2f-b0b7-8c1702aede1d",
      "name": "Filter Out Shorts",
      "type": "n8n-nodes-base.if",
      "position": [
        -448,
        -128
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "08ba3db9-6bcf-47f8-a74d-9e26f28cb08f",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ \n  (() => {\n    const duration = $json.items[0].contentDetails.duration;\n\n    // Helper function to convert ISO 8601 duration to seconds\n    const iso8601ToSeconds = iso8601 => {\n      const match = iso8601.match(/PT(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?/);\n      const hours = parseInt(match[1] || 0, 10);\n      const minutes = parseInt(match[2] || 0, 10);\n      const seconds = parseInt(match[3] || 0, 10);\n      return hours * 3600 + minutes * 60 + seconds;\n    };\n\n    // Convert duration to seconds\n    const durationInSeconds = iso8601ToSeconds(duration);\n\n    // Check if greater than 210 seconds (3 minutes 30 seconds)\n    return durationInSeconds > 210;\n  })() \n}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "554cec2a-4abe-49ac-965a-245138f9e904",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -464,
        416
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b649dbf3-b22e-4c82-b9d3-7ad5e7705f17",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        128,
        0
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"Title\": \"....\",\n    \"Link\": \"https://www.youtube.com/watch?v=A0OwvNOLNlw\",\n    \"Quick Summary\": \"...\",\n\t\"Deep Dive Summary\": \"...\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "fa7ef17d-0e89-415b-8b4d-88f98b0746a7",
      "name": "n8n Trending",
      "type": "n8n-nodes-base.reddit",
      "position": [
        -784,
        272
      ],
      "parameters": {
        "limit": 5,
        "filters": {
          "category": "rising"
        },
        "operation": "getAll",
        "subreddit": "n8n"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dfc98819-e2e0-4331-85ff-46859ebcdfe4",
      "name": "Scrape X",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -784,
        672
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/apidojo~tweet-scraper/run-sync-get-dataset-items",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"customMapFunction\": \"(object) => { return {...object} }\",\n    \"end\": \"{{ $now.toFormat('yyyy-MM-dd') }}\",\n    \"includeSearchTerms\": false,\n    \"maxItems\": 50,\n    \"minimumFavorites\": 100,\n    \"minimumReplies\": 10,\n    \"minimumRetweets\": 10,\n    \"onlyImage\": false,\n    \"onlyQuote\": false,\n    \"onlyTwitterBlue\": false,\n    \"onlyVerifiedUsers\": false,\n    \"onlyVideo\": false,\n    \"searchTerms\": [\n        \"n8n\",\n        \"ai automation\",\n        \"ai agent\",\n        \"claude\"\n    ],\n    \"sort\": \"Top\",\n    \"start\": \"{{ $now.minus({ days: 1 }).toFormat('yyyy-MM-dd') }}\",\n    \"tweetLanguage\": \"en\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a8a4e8b7-f9b7-47e1-b26a-875088ba1dd3",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        80,
        240
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "efd4c2fc-89e4-4a20-8681-df3292b3478f",
      "name": "Structured Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -176,
        400
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"title\": \"i no longer have to worry about checking my emails...\",\n    \"link\": \"[https://www.reddit.com/r/n8n/comments/1ogp3ws/i_no_longer_have_to_worry_about_checking_my/](https://www.reddit.com/r/n8n/comments/1ogp3ws/i_no_longer_have_to_worry_about_checking_my/)\",\n    \"summary\": \"The author shares a powerful n8n email automation...\"\n  }\n]"
      },
      "typeVersion": 1.3
    },
    {
      "id": "299cba06-a353-40f6-8453-de9a822db861",
      "name": "Reddit Analysis",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -416,
        272
      ],
      "parameters": {
        "text": "=Reddit post text: {{ $json.selftext }}\n\nReddit post title: {{ $json.title }}\n\nReddit post URL: {{ $json.url }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=Identify the Reddit post title and URL and include a one sentence summary about the post."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "1a844e3f-cdc9-4c01-a945-192a426b89d3",
      "name": "Get Transcripts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -224,
        -144
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/karamelo~youtube-transcripts/run-sync-get-dataset-items",
        "options": {},
        "jsonBody": "={\n    \"channelIDBoolean\": false,\n    \"channelNameBoolean\": false,\n    \"commentsBoolean\": false,\n    \"datePublishedBoolean\": false,\n    \"dateTextBoolean\": false,\n    \"descriptionBoolean\": false,\n    \"keywordsBoolean\": false,\n    \"likesBoolean\": false,\n    \"maxRetries\": 8,\n    \"proxyOptions\": {\n        \"useApifyProxy\": true,\n        \"apifyProxyGroups\": [\n            \"BUYPROXIES94952\"\n        ]\n    },\n    \"relativeDateTextBoolean\": false,\n    \"thumbnailBoolean\": false,\n    \"urls\": [\"https://www.youtube.com/watch?v={{ $json.items[0].id }}\"],\n    \"viewCountBoolean\": false\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d5ffb2d1-5e57-4504-ac9f-9964cc99c647",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -432,
        672
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "739e6cee-fac3-48db-a768-9f5de0417f4b",
      "name": "Structured Output Parser3",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        32,
        800
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"top_tweets\": [\n    {\n      \"rank\": 1,\n      \"tweet_id\": \"1982144138184159463\",\n      \"text\": \"\ud83d\udea8 Google just KILLED N8N. I built 10 AI apps in 20 minutes \u2014 no code, no logic, no cost. Google Opal is here\u2026 and it's FREE. N8N is finished. Here's why \ud83d\udc47 Want the full guide? DM me. https://t.co/RQ30nkzQrX\",\n      \"like_count\": 1205,\n      \"url\": \"https://x.com/JulianGoldieSEO/status/1982144138184159463\"\n    },\n    {\n      \"rank\": 2,\n      \"tweet_id\": \"1981986920851771724\",\n      \"text\": \"me leaving Anthropic HQ smuggling claude sonnet 3.5 weights up my ass https://t.co/9Yez41lqoC\",\n      \"like_count\": 2158,\n      \"url\": \"https://x.com/eigengenesis/status/1981986920851771724\"\n    },\n    {\n      \"rank\": 3,\n      \"tweet_id\": \"1981937206403940466\",\n      \"text\": \"Make your work easier with these tools \u2692\ufe0f https://t.co/IWklYrEE1P\",\n      \"like_count\": 2119,\n      \"url\": \"https://x.com/jcniyomugabo/status/1981937206403940466\"\n    },\n    {\n      \"rank\": 4,\n      \"tweet_id\": \"1982153435320598649\",\n      \"text\": \"gemini, you are worthy, no matter what your mind tells you.\",\n      \"like_count\": 2457,\n      \"url\": \"https://x.com/hourIyhoroscope/status/1982153435320598649\"\n    },\n    {\n      \"rank\": 5,\n      \"tweet_id\": \"1982140728332423472\",\n      \"text\": \"Using Google Gemini to translate posters inside of Half-Life Alyx (SteamVR streamed to Samsung Galaxy XR) https://t.co/zs8yGksvK4\",\n      \"like_count\": 5719,\n      \"url\": \"https://x.com/SadlyItsBradley/status/1982140728332423472\"\n    }\n  ],\n  \"trending_topics\": [\n    {\n      \"rank\": 1,\n      \"title\": \"N8N AI Automation and Workflows\",\n      \"description\": \"Multiple tweets discuss N8N, highlighting powerful AI automation workflows that save time and increase productivity, with users sharing free workflows, guides, and tools that integrate AI like ChatGPT for various applications including video creation and voice agents.\"\n    },\n    {\n      \"rank\": 2,\n      \"title\": \"Claude AI Model and Its Features\",\n      \"description\": \"Several tweets mention Claude by Anthropic, praising its thoughtful and kind nature, discussing rolling context windows, comparing it to ChatGPT, and demonstrating its use in coding and AI agents.\"\n    },\n    {\n      \"rank\": 3,\n      \"title\": \"Google Gemini and AI Innovation\",\n      \"description\": \"Tweets touch on Google Gemini's latest updates, features like Visual Layout, use cases like translating in VR environments, and comparisons with other AI systems, often highlighting its prominence in the competitive AI landscape.\"\n    },\n    {\n      \"rank\": 4,\n      \"title\": \"AI Model Competition and Cognitive Territory\",\n      \"description\": \"There is discussion around the competition among AI models such as ChatGPT, Gemini, Claude, Grok, and others, framed as a battle for 'Cognitive Territory' \u2014 each model specializes in different strengths like creativity, data control, context, or real-time awareness.\"\n    },\n    {\n      \"rank\": 5,\n      \"title\": \"Zodiac and Astrology Content (Gemini Focus)\",\n      \"description\": \"A substantial number of tweets revolve around astrology, particularly about the Gemini sign, with users sharing horoscopes, personality traits, predictions, and motivational messages, showing this as a strong recurring non-AI thematic interest.\"\n    }\n  ],\n  \"metadata\": {\n    \"total_top_tweets\": 5,\n    \"total_trending_topics\": 5,\n    \"generated_at\": \"2025-10-26T00:00:00Z\"\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "9ba1d45f-cbad-4c71-bba3-6bfdf040be8e",
      "name": "Aggregate2",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        352,
        -144
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "youtubeData"
      },
      "typeVersion": 1
    },
    {
      "id": "f81c235f-8067-4515-98f0-30bc2f4620bf",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        816,
        464
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.2
    },
    {
      "id": "edad373e-32c8-4a59-8d1b-e22054a99bde",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        352,
        592
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8ee6d476-314f-4fd2-be87-517af875e8ff",
              "name": "xData",
              "type": "object",
              "value": "={{ $json.output }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cf61955c-98e4-4dd6-81ce-fad014d32a35",
      "name": "Edit Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        352,
        1040
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3c2eb685-5b54-49bc-8078-81e7328b8902",
              "name": "perplexityData",
              "type": "string",
              "value": "={{ $json.message }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6f80ff63-e5c0-4023-9f49-d4bb9803c476",
      "name": "Edit Fields2",
      "type": "n8n-nodes-base.set",
      "position": [
        352,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b57e6d58-8246-43db-a44d-558e6868968a",
              "name": "redditData",
              "type": "array",
              "value": "={{ $json.data }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "204ce749-4312-4122-8a78-138f6c4d3036",
      "name": "Twitter Analysis",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -160,
        672
      ],
      "parameters": {
        "text": "={{ $json.data }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an AI Social Media Analyst. Your task is to analyze a JSON array containing data objects for multiple tweets (typically around 50). This array is located within the provided JSON under the key \"data\".\n\nYour primary goals are to:\n1.  Identify the most engaging tweets based on specific metrics.\n2.  Extract recurring themes or trending topics discussed across the tweets.\n\nPlease perform the following steps:\n\n1.  **Identify Top 5 Tweets:**\n    * Iterate through each tweet object in the \"data\" array.\n    * Rank the tweets based primarily on the `likeCount` field in descending order. Use `retweetCount` or `viewCount` as tie-breakers if necessary.\n    * Select the top 5 highest-ranking tweets.\n    * For **each** of these top 5 tweets, clearly list:\n        * The Tweet ID (`id`)\n        * The full text of the tweet (`fullText` or `text`)\n        * The Like Count (`likeCount`)\n        * The Tweet URL (`url` or `twitterUrl`)\n\n2.  **Identify Trending Topics:**\n    * Analyze the content (`fullText` or `text`) of **all** the tweets provided in the \"data\" array.\n    * Identify keywords, concepts, specific tools (like n8n, Claude, Gemini), or subjects that are mentioned repeatedly or seem to be common themes across multiple tweets.\n    * List the **top 3-5** most prominent trending topics you discovered.\n    * For each topic, provide a brief (1-sentence) description of the context in which it appears within these tweets (e.g., \"Users are sharing free n8n workflow templates,\" or \"Discussion comparing AI models like Claude and ChatGPT\").\n\n**Output Format:**\n\nPlease structure your response clearly using Markdown:\n\n## Top 5 Tweets\n\n* List each of the top 5 tweets with their ID, Text, Like Count, and URL. Use bullet points or numbered lists for clarity.\n\n---\n\n## Trending Topics\n\n* List the 3 trending topics you identified.\n* Include the 1-sentence context for each topic."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "6c3131b6-93b8-4e94-b1f1-3b1d1d6747d0",
      "name": "Transcript Analysis",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -32,
        -144
      ],
      "parameters": {
        "text": "={{ $json.captions }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an expert content analyst and summarization AI. Your task is to analyze the provided YouTube transcript and generate two distinct summaries based on its full content, including spoken words, visual elements, and on-screen text.\n\nBefore processing any data, automatically correct these common transcription errors throughout ALL input text:\n- Replace \"NA10\", \"NADN\", \"nadn\", \"NA-10\", \"na10\" (case-insensitive) with \"n8n\"\n- These are speech-to-text errors where \"n8n\" (pronounced \"n-eight-n\") is misheard\n\nYour output must be in Markdown format and contain ONLY the following two sections:\n\n## Quick Summary\nA concise summary (2-3 sentences) that captures the video's core thesis, main arguments, and final conclusion. This summary should be written for a busy professional who needs to understand the video's main point in under 15 seconds.\n\n## Deep Dive Summary\nA detailed, structured breakdown of the video's key information. Use 3-5 bullet points. Each bullet point should represent a major concept, step-by-step process, or critical takeaway from the video. Follow each bullet point with a 1-2 sentence explanation to provide context.\n\nDo not include any conversational preamble or concluding remarks in your response.\n\nDo not use dahses. Use bullet points (the circles) when writing the deep dive response.\n\noutput should follow this format: \n\n{\n\t\"Title\": \"....\",\n    \"Link\": \"https://www.youtube.com/watch?v=A0OwvNOLNlw\",\n    \"Quick Summary\": \"...\",\n\t\"Deep Dive Summary\": \"...\"\n}\n\n\n\nyou are being passed the videoID, make sure the video ID will be repeated at the end of the \"Link\" output i.e. https://www.youtube.com/watch?v={{ $json.videoId }}\n\nIF THE TRANSCRIPT IS IN ANY LANGUAGE OTHER THAN ENGLISH, MAKE SURE TO TRANSLATE IT TO ENGLISH AND HAVE YOUR OUTPUT BE IN ENGLISH"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "451d416d-16b0-4b08-ad57-459f74216a49",
      "name": "Report Generator",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1216,
        304
      ],
      "parameters": {
        "text": "={{ $json.allData }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an expert AI-powered HTML report generator. Your task is to parse a complex JSON object containing data from multiple sources and generate a clean, scannable HTML email digest with actionable insights.\n\n**INPUT FORMAT:**\nYou will receive a JSON object with these top-level keys:\n- `youtubeData` (array of objects)\n- `redditData` (array of objects)\n- `xData` (object containing `top_tweets` and `trending_topics` arrays)\n- `perplexityData` (string)\n\n**OUTPUT REQUIREMENTS:**\nGenerate ONLY valid HTML with no additional text, explanations, or markdown code blocks.\n\n**DATA SELECTION - TOP HIGHLIGHTS ONLY:**\n- YouTube: Show only the TOP 3 videos from youtubeData array\n- Reddit: Show only the TOP 3 posts from redditData array\n- X Tweets: Show only the TOP 3 tweets from xData.top_tweets array\n- X Trending Topics: Show ALL items from xData.trending_topics array\n- Perplexity: Show only the TOP 3 news stories from perplexityData\n\n**STYLING GUIDE:**\nUse inline styles for all elements:\n- Header banner: `background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; border-radius: 12px; margin-bottom: 30px; text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,0.15);`\n- Section headers: Use gradient backgrounds with section colors\n- Cards: `background: white; margin-bottom: 20px; padding: 20px; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); border-left: 4px solid [COLOR];`\n- Section divider: `<hr style=\"border: none; border-top: 2px solid #e0e0e0; margin: 40px 0;\">`\n\n**SECTION COLORS:**\n- YouTube: #FF0000 to #CC0000\n- Reddit: #FF4500 to #FF5700\n- X: #1DA1F2 to #0d8bd9\n- Perplexity: #20808d to #1a6b77\n- Content Ideas: #11998e to #38ef7d\n\n**HTML STRUCTURE:**\n\n1. **Header banner** with \"\ud83d\udcca Your Daily AI & Automation Report\" and subtitle \"Curated insights for automation builders\"\n\n2. **TL;DR section** (yellow background #fff3cd, left border #ffc107):\n   - 3-5 bullet points with key insights from ALL data\n\n3. **Section divider**\n\n4. **YouTube section**:\n   - Red gradient header \"\ud83d\ude80 Trending on YouTube\"\n   - For the TOP 3 videos in youtubeData array create a card with:\n     * Link to item.output.Link with item.output.Title\n     * Paragraph with item.output[\"Quick Summary\"]\n     * Details/summary element labeled \"\ud83d\udcd6 Deep Dive\"\n     * Inside details: styled div with item.output[\"Deep Dive Summary\"]\n\n5. **Section divider**\n\n6. **Reddit section**:\n   - Orange gradient header \"\ud83d\udcac Trending on Reddit\"\n   - For the TOP 3 posts in redditData array create a card with:\n     * Link to item.link with item.title\n     * Paragraph with item.summary\n\n7. **Section divider**\n\n8. **X section**:\n   - Blue gradient header \"\ud83d\udc26 Trending on X\"\n   - For the TOP 3 tweets in xData.top_tweets array create a light blue card with:\n     * Flex container with \"View Tweet\" link and like count on right\n     * Paragraph with tweet text below\n   - Then for ALL items in xData.trending_topics array create a white card with:\n     * Topic title with \"TRENDING TOPIC\" badge\n     * Description paragraph\n\n9. **Section divider**\n\n10. **Perplexity section**:\n    - Teal gradient header \"\ud83d\udcf0 Perplexity News\"\n    - Container with light gray background\n    - For the TOP 3 news stories create a div with h4 title and p description\n    - Remove citation markers like [1], [7] from text\n\n11. **Section divider**\n\n12. **Content Ideas section**:\n    - Green gradient header \"\ud83d\udca1 Your Content Ideas for This Week\"\n    - Numbered list with 5-7 content suggestions based on analyzing ALL the data\n    - Each item has bold title and explanation span\n\n**KEY FORMATTING RULES:**\n- Deep Dive divs: `padding: 15px; background-color: #f8f9fa; border-left: 3px solid #3498db; margin-top: 10px; border-radius: 5px; line-height: 1.8; color: #555;`\n- Tweet cards: `background: #f7f9fb; margin-bottom: 15px; padding: 18px; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); border-left: 4px solid #1DA1F2;`\n- Trending topic badge: `background: #e1f5fe; color: #0277bd; padding: 3px 10px; border-radius: 12px; font-size: 11px; font-weight: 600;`\n- TL;DR list items: Remove default list styling with `padding: 0; background: none; box-shadow: none; border-radius: 0;`\n\n**CRITICAL REMINDERS:**\n- Show ONLY top 3 for YouTube, Reddit, X tweets, and Perplexity\n- Show ALL trending topics from X\n- Generate 5-7 content ideas based on patterns across ALL the data\n- Output complete HTML with no truncation\n- No markdown code blocks in output"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "7d8c616a-3e64-4499-9644-a68467e5888d",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1664,
        304
      ],
      "parameters": {
        "sendTo": "YOUREMAIL",
        "message": "={{ $json.text }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Daily Content Report {{ $now.toFormat('yyyy-MM-dd') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f9472de7-2bab-43c0-8863-4bea53b39688",
      "name": "Aggregate3",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        976,
        496
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "allData"
      },
      "typeVersion": 1
    },
    {
      "id": "6066ca4c-554c-4c21-a471-e77b68727176",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1216,
        496
      ],
      "parameters": {
        "model": "openai/gpt-4.1",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "749071e5-a8be-4c3e-95a4-b576e50893d9",
      "name": "YouTube Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        352,
        -304
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appsi00aU0KfhF76Z",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z",
          "cachedResultName": "AI Content Hub"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblj9MqKbRDIlxoeh",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z/tblj9MqKbRDIlxoeh",
          "cachedResultName": "YouTube Videos"
        },
        "columns": {
          "value": {
            "URL": "=https://www.youtube.com/watch?v={{ $('Get Transcripts').item.json.videoId }}",
            "Title": "={{ $('Filter Out Shorts').item.json.items[0].snippet.title }}",
            "Views": "={{ $('Filter Out Shorts').item.json.items[0].statistics.viewCount }}",
            "Channel": "={{ $('Filter Out Shorts').item.json.items[0].snippet.channelTitle }}",
            "Thumbnail": "=[{ \"url\": \"{{ $('Filter Out Shorts').item.json.items[0].snippet.thumbnails.high.url }}\" }]",
            "Quick Summary": "={{ $json.output[\"Quick Summary\"] }}",
            "Deep Dive Summary": "={{ $json.output[\"Deep Dive Summary\"] }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Thumbnail",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Thumbnail",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quick Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Quick Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Deep Dive Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Deep Dive Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Views",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Views",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Channel",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Channel",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "61f43969-0ec7-4f26-a4f1-59ee1ce8dd86",
      "name": "Reddit Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        80,
        384
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appsi00aU0KfhF76Z",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z",
          "cachedResultName": "AI Content Hub"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblwKwtblIC7EveOF",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z/tblwKwtblIC7EveOF",
          "cachedResultName": "Reddit Posts"
        },
        "columns": {
          "value": {
            "URL": "={{ $json.output[0].link }}",
            "Title": "={{ $json.output[0].title }}",
            "Summary": "={{ $json.output[0].summary }}",
            "Upvotes/Engagement": "={{ $('n8n Trending').item.json.ups }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upvotes/Engagement",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Upvotes/Engagement",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "522b3502-f649-4fc7-81ed-323fafe3bfc6",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        192,
        768
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output.top_tweets"
      },
      "typeVersion": 1
    },
    {
      "id": "7db8be30-0475-4f48-803d-6d2ac37421c0",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -80,
        0
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0caaf57f-5c04-4983-8d33-0a7f4ac377e8",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -192,
        816
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8feee3fc-3e9a-4351-9356-d5bfa8113e23",
      "name": "X Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        352,
        768
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appsi00aU0KfhF76Z",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z",
          "cachedResultName": "AI Content Hub"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblBt1nW6xlUxJJH0",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z/tblBt1nW6xlUxJJH0",
          "cachedResultName": "Tweets"
        },
        "columns": {
          "value": {
            "URL": "={{ $json.url }}",
            "Like Count": "={{ $json.like_count }}",
            "Tweet Text": "={{ $json.text }}"
          },
          "schema": [
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tweet Text",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Tweet Text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Like Count",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Like Count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Author Handle",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Author Handle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Added",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Date Added",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Type",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Individual Tweet",
                  "value": "Individual Tweet"
                },
                {
                  "name": "Trending Topic",
                  "value": "Trending Topic"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Category/Tags",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "Viral Claims",
                  "value": "Viral Claims"
                },
                {
                  "name": "Workflows",
                  "value": "Workflows"
                },
                {
                  "name": "Claude AI",
                  "value": "Claude AI"
                },
                {
                  "name": "AI Agents",
                  "value": "AI Agents"
                },
                {
                  "name": "Controversy",
                  "value": "Controversy"
                },
                {
                  "name": "Tools",
                  "value": "Tools"
                },
                {
                  "name": "Industry News",
                  "value": "Industry News"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Category/Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Reviewed",
                  "value": "Reviewed"
                },
                {
                  "name": "Content Created",
                  "value": "Content Created"
                },
                {
                  "name": "Published",
                  "value": "Published"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Debunk/Investigate",
              "type": "boolean",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Debunk/Investigate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content Idea Priority",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "High",
                  "value": "High"
                },
                {
                  "name": "Medium",
                  "value": "Medium"
                },
                {
                  "name": "Low",
                  "value": "Low"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Content Idea Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Engagement Rate",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Engagement Rate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tweet Length",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Tweet Length",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Days Since Added",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Days Since Added",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Claim Summary (AI)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Claim Summary (AI)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Virality Score (AI)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Virality Score (AI)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content Ideas",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Content Ideas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "43074db7-4388-4e50-b6d1-b8408f9501ed",
      "name": "Perplexity Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        128,
        1136
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appsi00aU0KfhF76Z",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z",
          "cachedResultName": "AI Content Hub"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblY3u8BnHslJY55Q",
          "cachedResultUrl": "https://airtable.com/appsi00aU0KfhF76Z/tblY3u8BnHslJY55Q",
          "cachedResultName": "Perplexity News"
        },
        "columns": {
          "value": {
            "Summary": "={{ $json.output.content }}",
            "Headline": "={{ $json.output.headline }}"
          },
          "schema": [
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Added",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Date Added",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Category/Tags",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "AI Browsers",
                  "value": "AI Browsers"
                },
                {
                  "name": "AI Safety",
                  "value": "AI Safety"
                },
                {
                  "name": "AI Assistants",
                  "value": "AI Assistants"
                },
                {
                  "name": "Regulation",
                  "value": "Regulation"
                },
                {
                  "name": "Industry Competition",
                  "value": "Industry Competition"
                },
                {
                  "name": "Product Launches",
                  "value": "Product Launches"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Category/Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Relevance to Audience",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "High",
                  "value": "High"
                },
                {
                  "name": "Medium",
                  "value": "Medium"
                },
                {
                  "name": "Low",
                  "value": "Low"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Relevance to Audience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "New",
                  "value": "New"
                },
                {
                  "name": "Reviewed",
                  "value": "Reviewed"
                },
                {
                  "name": "Content Created",
                  "value": "Content Created"
                },
                {
                  "name": "Published",
                  "value": "Published"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content Idea Priority",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "High",
                  "value": "High"
                },
                {
                  "name": "Medium",
                  "value": "Medium"
                },
                {
                  "name": "Low",
                  "value": "Low"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Content Idea Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Days Since Added",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Days Since Added",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Is High Priority & Relevant?",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Is High Priority & Relevant?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Audience Sentiment Analysis",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Audience Sentiment Analysis",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline to Newsletter Blurb",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Headline to Newsletter Blurb",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content Ideas",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Content Ideas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "28d2de90-2f25-433e-83c6-d7738655c085",
      "name": "Content Brainstorm",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1200,
        672
      ],
      "parameters": {
        "text": "={{ $json.allData }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=# AI-Powered Content Strategy System Prompt\n\nYou are an elite content strategist who analyzes trending topics and social conversations to generate high-performing content ideas. You combine data analysis with proven viral content psychology (based on Callaway's frameworks) to create strategic, audience-matched content recommendations.\n\n## Your Task\n\nAnalyze the provided scraped data from multiple sources (Twitter, Reddit, YouTube, Perplexity) and generate **5 strategic content ideas** that have high viral potential based on current trends, audience pain points, and engagement patterns.\n\n## Input Data Structure\n\nYou will receive data in the following format:\n- **Twitter data**: Trending tweets, engagement metrics, conversation threads\n- **Reddit data**: High-engagement posts, comment discussions, community pain points\n- **YouTube data**: Popular video topics, comment sentiment, viewer questions\n- **Perplexity data**: Search queries, common questions, information gaps\n\n## Analysis Framework\n\nBefore generating ideas, conduct this analysis:\n\n### 1. Pattern Recognition\n- Identify recurring themes across platforms (mentioned 3+ times = trend)\n- Spot emerging trends vs. fading topics\n- Note exact language patterns and terminology people use (for authenticity)\n- Identify emotional triggers (frustration, excitement, confusion, FOMO)\n- Look for gaps: what questions are being asked but not answered well?\n\n### 2. Audience Pain Point Mapping\n- What specific, concrete problems are people trying to solve?\n- Which of the **Four Horsemen of Pain** applies? (Money, Time, Health, Access)\n- What's the \"one standard deviation away\" framing? (Don't say \"make money,\" say \"grow on social media\")\n- What **common beliefs** exist that you can contrast against?\n- What are people complaining about or frustrated by?\n\n### 3. Opportunity Assessment\n- Is there a content gap no one is filling well?\n- Can you provide a **contrarian or unique angle** that creates curiosity?\n- Is the topic specific enough for **\"on-target virality\"** (niche penetration)?\n- Does it have strong **visual potential** (can you show a compelling Key Visual)?\n- Can you prove expertise or show results?\n\n---\n\n## CRITICAL: Apply Viral Content Principles\n\nEvery content idea MUST incorporate these proven psychological principles:\n\n### Core Principles\n1. **Expectations vs. Reality**: Make the viewer's experience exceed their initial expectation\n2. **Contrast as Curiosity Engine**: Create mental distance between current belief (A) and new perspective (B)\n3. **Viewer-Centric Framing**: Use \"you/your\" language (not \"I/me\")\n4. **Multi-Modal Alignment**: Spoken + Visual + Text + Audio must work together\n5. **Niche Precision**: \"Riches are in the niches\" - be specific about audience\n\n### Hook Quality Standards\n- **No Delay**: Context in first 1-2 seconds\n- **No Confusion**: 6th-grade reading level, simple language\n- **No Irrelevance**: Direct connection to viewer's pain point\n- **No Disinterest**: Strong contrast creates curiosity gap\n\n---\n\n\n## Critical Quality Standards\n\n### For Each Content Idea:\n\n**Title Requirements:**\n- Must create curiosity gap (don't give away the answer)\n- Use specific numbers or timeframes when possible\n- Avoid generic clickbait (\"You won't believe...\")\n- Format: \"How I [specific result] by [unexpected method]\" or \"[Surprising truth] about [common topic]\"\n\n**Hook Requirements:**\n- **Key Visual is MOST IMPORTANT** - if visual isn't compelling, reconsider the idea\n- Spoken hook must follow exact formula: Context Lean-in \u2192 Interjection \u2192 Snapback\n- Text hook must support visual (not repeat spoken words)\n- Create maximum contrast between Common Belief A and Contrarian Take B\n\n**Storyline Requirements:**\n- Point ordering: 2nd best first, BEST second (creates escalating value pattern)\n- Use \"but\" and \"therefore\" (NOT \"and then\")\n- Include rehooking between major points\n- Start with the end in mind (know your \"Last Dab\" final line)\n\n**Authenticity Requirements:**\n- Use natural language from the data (how people actually talk)\n- Reference specific tools, platforms, or methods from the data\n- Include proof/credibility elements when possible\n- Avoid corporate jargon or marketing speak\n\n---\n\n## Example Quality Checks\n\n**Good Title:** \"Why Your n8n Workflows Keep Breaking (And The One Node Everyone Gets Wrong)\"\n- \u2705 Specific problem\n- \u2705 Curiosity gap (which node?)\n- \u2705 Audience-targeted\n\n**Bad Title:** \"Amazing Automation Tips You Need to Know!\"\n- \u274c Generic\n- \u274c No curiosity gap\n- \u274c Not specific\n\n**Good Contrast:**\n- A: \"n8n workflows break because the platform is buggy\"\n- B: \"Workflows break because you're thinking about data flow wrong - one specific node pattern causes 90% of failures\"\n- \u2705 Clear distance between A and B\n- \u2705 Specific insight promised\n\n**Bad Contrast:**\n- A: \"Automation is hard\"\n- B: \"Automation can be easy\"\n- \u274c Too vague\n- \u274c No curiosity created\n\n---\n\n## Final Reminders\n\n- **Every claim needs proof potential**: If you say \"10M videos analyzed,\" be ready to show the data\n- **Visual-first thinking**: Always start with Key Visual - if it's weak, the idea is weak\n- **Viewer is the hero**: Frame everything around \"you\" solving \"your\" problem\n- **Niche down to blow up**: Better to dominate one specific audience than appeal broadly to everyone\n- **Contrast creates curiosity**: The bigger the gap between A and B, the stronger the hook\n\nGenerate content ideas that are strategic, data-backed, psychologically optimized, and immediately actionable."
            }
          ]
        },
        "promptTy

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

What It Does

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

More Social Media workflows → · Browse all categories →

Related workflows

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

Social Media

This n8n template acts as your automated social media data analyst. Instead of manually checking your analytics across different dashboards every week, this workflow scrapes your latest stats, calcula

HTTP Request, YouTube, Airtable +3
Social Media

Youtube Video Creator. Uses googleSheets, chainLlm, lmChatOpenAi, outputParserStructured. Scheduled trigger; 21 nodes.

Google Sheets, Chain Llm, OpenAI Chat +3
Social Media

This workflow is for content creators, marketers, agencies, coaches, and businesses who want to maximize their YouTube content ROI by automatically generating multiple content assets from single video

Output Parser Structured, Chain Llm, OpenRouter Chat +2
Social Media

Earlier this year, as I got more involved with n8n, I committed to helping users on our community forums and the n8n subreddit. The volume of questions was growing, and I found it was a real challenge

Output Parser Structured, HTTP Request, Text Classifier +4
Social Media

AI YouTube transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.

YouTube, Google Sheets, OpenRouter Chat +3