This workflow corresponds to n8n.io template #6843 — we link there as the canonical source.
This workflow follows the Chainllm → Google Sheets 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 →
{
"id": "QXf3TVkS1KH8wvhN",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Multi Platform Content Generator from YouTube using AI & RSS",
"tags": [],
"nodes": [
{
"id": "8b5a2b6f-7d13-4cb7-a681-0fe46c6cafb8",
"name": "No Operation, do nothing1",
"type": "n8n-nodes-base.noOp",
"position": [
1860,
80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6795a41f-a99a-4830-9019-788d096394b1",
"name": "HTML",
"type": "n8n-nodes-base.html",
"position": [
560,
-20
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "channel_id",
"attribute": "href",
"cssSelector": "link[rel=\"canonical\"]",
"returnValue": "attribute"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "bb5fb2a1-2868-44c1-ba60-fa592d2d5880",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
340,
-20
],
"parameters": {
"url": "={{ $json['channel url'] }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "d0b2ee4a-9121-43d3-afce-9152cbe53ecb",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-80,
-20
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "901a0d9b-9fef-4fa3-ad15-5d3abfecc391",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
140,
-20
],
"parameters": {
"options": {},
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "5ad50f2e-f186-4e49-852d-15206f014bb8",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
780,
-20
],
"parameters": {
"jsCode": "return items.map(item => {\n const fullUrl = item.json.channel_id; // contoh: \"https://www.youtube.com/channel/UCxxxxxxx\"\n const parts = fullUrl.split('/');\n const channelId = parts[parts.length - 1];\n\n return {\n json: {\n channel_id: channelId,\n rss_url: `https://www.youtube.com/feeds/videos.xml?channel_id=${channelId}`,\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "a330c281-7630-46af-b81e-516f4738e019",
"name": "RSS Read",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
980,
-20
],
"parameters": {
"url": "={{ $json.rss_url }}",
"options": {}
},
"typeVersion": 1.2
},
{
"id": "edb3159f-9da7-47f1-bdcc-73db762090aa",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-800
],
"parameters": {
"width": 580,
"height": 1500,
"content": "# Multi Platform Content Generator from YouTube using AI & RSS\n\nThis workflow automates content generation by monitoring YouTube channels, extracting transcripts via AI, and creating platform-optimized content for LinkedIn, X/Twitter, Threads, and Instagram. Ideal for creators, marketers, and social media managers aiming to scale content production with minimal effort.\n\n\n## \u2728 Key Features\n- **\ud83d\udd14 Automated YouTube Monitoring** via RSS feed\n- **\ud83e\udde0 AI-Powered Transcript Extraction** using Supadata API\n- **\u270d\ufe0f Multi-Platform Content Generation** with OpenRouter AI\n- **\ud83c\udfaf Platform Optimization** based on tone and character limits\n- **\ud83d\udcec Telegram Notification** for easy preview\n- **\ud83d\udcca Centralized Data Management via Google Sheets**\n\n> \ud83d\uddc2\ufe0f All video data, summaries, and generated content are tracked and stored in a single, centralized [Google Sheets template](https://docs.google.com/spreadsheets/d/17OjwIwx7eAwbkT5wtwvpCQU4rjrLH0v7j3fmC2Sc1CY/edit?usp=sharing) \n> This ensures full visibility, easy access, and smooth collaboration across your team.\n\n---\n\n## \u2699\ufe0f Workflow Components\n\n### 1. \ud83e\udded Channel Monitoring\n- **Schedule Trigger**: Initiates workflow periodically\n- **Google Sheets (Read)**: Pulls YouTube channel URLs\n- **HTTP Request + HTML Parser**: Extracts channel IDs from URLs\n- **RSS Reader**: Fetches latest video metadata\n\n### 2. \ud83e\uddfe Content Processing\n- **Supadata API**: Extracts transcript from YouTube video\n- **OpenRouter AI**: Summarizes transcript + generates content per platform\n- **Conditional Check**: Prevents duplicate content by checking existing records\n\n### 3. \ud83d\udce4 Multi-Platform Output\n- **LinkedIn**: Story-driven format (\u2264 1300 characters)\n- **X/Twitter**: Short, punchy copy (\u2264 280 characters)\n- **Threads**: Friendly, conversational\n- **Instagram**: Short captions for visual posts\n\n### 4. \ud83d\uddc3\ufe0f Data Management\n- **Google Sheets (Write)**: Stores video metadata + generated posts\n- **Telegram Bot**: Sends content preview\n- **ID Tracking**: Avoids reprocessing using video ID\n\n---\n\n## \ud83d\udd10 Required Credentials\n- **Google Sheets OAuth2**\n- **Supadata API**\n- **OpenRouter API**\n- **Telegram Bot Token & Chat ID**\n\n---\n\n## \ud83c\udf81 Benefits\n- **\u231b Save Time**: Automates transcript + content generation\n- **\ud83d\udd0a Consistent Tone**: Adjust AI prompts for brand voice\n- **\ud83d\udce1 Multi-Platform Ready**: One video \u2192 multiple formats\n- **\ud83d\udcc2 Centralized Logs via Google Sheets**: Easily track, audit, and collaborate\n- **\ud83d\ude80 Scalable**: Handle many channels with ease\n\n\n"
},
"typeVersion": 1
},
{
"id": "88493779-31d5-44ff-b8ce-828ba83522a7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-220
],
"parameters": {
"color": 2,
"width": 600,
"height": 360,
"content": "- Triggers the automation at regular intervals.\n- Reads YouTube channel URLs from a Google Sheets document\n- Sends an HTTP GET request to the YouTube channel URL pulled from Google Sheets."
},
"typeVersion": 1
},
{
"id": "e23861ee-6554-479d-89b3-48ad3c7ccca8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
-220
],
"parameters": {
"color": 4,
"width": 600,
"height": 360,
"content": "- Extracts channel links from YouTube pages, specifically to obtain the channel id.\n- Extracts the channel ID from the full URL and constructs an RSS feed link that conforms to YouTube format.\n- Reads the RSS feed from a YouTube channel based on the previously created RSS URL."
},
"typeVersion": 1
},
{
"id": "872f0643-8c94-44ef-80de-8e82a4907748",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1160,
-220
],
"parameters": {
"color": 5,
"width": 600,
"height": 360,
"content": "- Save video metadata to Google Sheet\n- Read back video data from the updated sheet, especially to check whether the summary column is populated."
},
"typeVersion": 1
},
{
"id": "be5e5de0-f6e9-4e49-9679-aadfbf9a97d1",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1200,
-20
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"link": "={{ $json.link }}",
"title": "={{ $json.title }}",
"author": "={{ $json.author }}",
"pubDate": "={{ $json.pubDate }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "facebook",
"type": "string",
"display": true,
"required": false,
"displayName": "facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "18adb456-c1e6-4862-b4bc-ff1dd2cd4335",
"name": "Get row(s) in sheet2",
"type": "n8n-nodes-base.googleSheets",
"position": [
1420,
-20
],
"parameters": {
"options": {},
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"executeOnce": true,
"typeVersion": 4.6
},
{
"id": "6c3d39ef-108d-4b4b-bee8-a323c1b16b46",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1640,
-20
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9a922382-22cb-4d0b-83f1-de9015e17ea9",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.summary }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "dc892dc3-5f44-4993-88a7-0ba26659f6bd",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1860,
-360
],
"parameters": {
"color": 6,
"width": 600,
"height": 360,
"content": "- Automatically retrieve transcripts from YouTube videos using the API\n- Combine transcript sections into a single, complete text\n- Set the output language that will be used by LLM"
},
"typeVersion": 1
},
{
"id": "170fbac8-7e7b-46e2-ba25-32cb594a9723",
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1900,
-180
],
"parameters": {
"url": "=https://api.supadata.ai/v1/transcript?url={{ $json.link }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "YOUR_SUPADATA_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2ec5a701-7669-42dc-82da-a0a5ebe46d01",
"name": "Set Language",
"type": "n8n-nodes-base.set",
"position": [
2340,
-180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2c0793b5-85fb-46af-967a-f3807274104e",
"name": "language",
"type": "string",
"value": "English"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f6e6ed41-b04a-4a6b-8ee5-175ad61d7baa",
"name": "Merge Transcripts",
"type": "n8n-nodes-base.code",
"position": [
2120,
-180
],
"parameters": {
"jsCode": "const transcriptParts = items[0].json.content; // Ambil hanya dari 1 item (karena semua content ada di dalam satu objek)\n\nconst transcript = transcriptParts\n .map(part => part.text)\n .filter(Boolean) // Buang null atau undefined\n .join(' ');\n\nreturn [\n {\n json: {\n full_transcript: transcript\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "0577db2f-e07e-490b-9239-688d60e2e5b7",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2500,
-360
],
"parameters": {
"color": 6,
"width": 580,
"height": 360,
"content": "- Prompt the AI model to generate a summary from the transcript.\n- Save the summary to a Google Sheet.\n- The summary will be used as input for subsequent AI models, allowing for more efficient token usage."
},
"typeVersion": 1
},
{
"id": "12910fa9-fdc3-4831-9c3b-5fa07459c5ef",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
2560,
20
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "fd9823e3-4fe5-4721-b385-c6802096ece3",
"name": "Append or update row in sheet1",
"type": "n8n-nodes-base.googleSheets",
"position": [
2920,
-180
],
"parameters": {
"columns": {
"value": {
"id": "={{ $('If').item.json.id }}",
"summary": "={{ $json.text }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "facebook",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "f2ab8fc8-5fd8-4fb1-84cd-6e16ca1727b2",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
3380,
-980
],
"parameters": {
"color": 6,
"width": 620,
"height": 1660,
"content": "- Provide prompts to the AI model to generate content based on the summary.\n- Created content is personalized according to platform type.\n- Currently available platforms are:\n - LinkedIn\n - X\n - Threads\n - Instagram\n- Save generated content to Google Sheets"
},
"typeVersion": 1
},
{
"id": "bfdab252-b418-44bd-a5d3-2f87bf830196",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2560,
-180
],
"parameters": {
"text": "={{ $('Merge Transcripts').item.json.full_transcript }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are an AI assistant that helps you create summaries of YouTube videos based on the complete transcript.\n\nCreate a summary using informative, neutral, and easy to understand language.\n\nFocus on the main points of the conversation, who the speaker is, the main topic, and the insights discussed. Do not add information that is not included in the transcript.\n\nWrite in {{ $json.language }} language."
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "ba358aba-9a6b-42c2-9b59-fe7e43e7acc5",
"name": "Basic LLM Chain1",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3460,
-720
],
"parameters": {
"text": "={{ $('Basic LLM Chain').item.json.text }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Create a LinkedIn post based on the transcript.\n\nUse a storytelling style that highlights the key lesson, insight, or takeaway from the video. Write as if you\u2019re sharing a personal experience or a meaningful conversation that adds value to professionals, entrepreneurs, or creators.\n\nStructure the post with a strong hook, a few short and easy-to-read paragraphs, and a closing sentence that invites reflection or discussion.\n\nWrite in Write in {{ $('Set Language').item.json.language }} language.\n\nWrite in a natural, professional tone. Do not exceed 1,300 characters.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "32a78552-dff4-474f-bdc0-421dcde3b75d",
"name": "OpenRouter Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
3460,
-560
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "af7e5fc3-10df-47b6-ac29-e69d65455a00",
"name": "Basic LLM Chain2",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3460,
-340
],
"parameters": {
"text": "={{ $('Basic LLM Chain').item.json.text }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Create a post for X (formerly Twitter) based on the video transcript.\n\nThe post should be punchy, bold, or thought-provoking \u2014 something that stops scrolling. Focus on delivering one key insight, surprising fact, or controversial idea from the video.\n\nLimit to 280 characters. Write with energy and make it feel like the start of a conversation. Write in Write in {{ $('Set Language').item.json.language }} language.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "967f34ce-1950-4b9e-9622-a0e41d144c5d",
"name": "OpenRouter Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
3460,
-180
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "7abe71e8-53bb-4d6c-b289-116d2abd3c85",
"name": "Basic LLM Chain3",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3460,
0
],
"parameters": {
"text": "={{ $('Basic LLM Chain').item.json.text }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Create a post for Threads based on the video transcript.\n\nUse a casual, friendly tone \u2014 as if you\u2019re talking to your audience directly. Present the insight or story from the video in a relatable, open way.\n\nBreak into 1\u20133 short paragraphs. Avoid being overly formal or promotional. Write in Write in {{ $('Set Language').item.json.language }} language.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "0219715e-4825-4ba8-98fe-804f5854379a",
"name": "OpenRouter Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
3460,
160
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "097d5665-f384-4c9d-adb6-b37bcbd97247",
"name": "Basic LLM Chain4",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3460,
340
],
"parameters": {
"text": "={{ $('Basic LLM Chain').item.json.text }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Create an Instagram caption based on the video transcript.\n\nFocus on short, emotionally resonant phrases that capture the core message or feeling of the video. Each sentence should be no longer than 150 characters and stand alone visually.\n\nWrite as if these lines will be used in a carousel post or overlaid on a reel. Write in Write in {{ $('Set Language').item.json.language }} language.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "d930db61-50fe-41d8-b99e-c136811c8a66",
"name": "OpenRouter Chat Model4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
3460,
500
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "c8f6c47e-238a-4c42-8116-5e5034eaeb11",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
4300,
-340
],
"parameters": {
"color": 6,
"width": 380,
"height": 340,
"content": "- Send data to Telegram for monitoring and get faster results"
},
"typeVersion": 1
},
{
"id": "bea84a2a-fd83-433d-be23-2494c1f272a6",
"name": "Send a text message",
"type": "n8n-nodes-base.telegram",
"position": [
4440,
-180
],
"parameters": {
"text": "=Title : {{ $('If').item.json.title }}\nFrom : {{ $('If').item.json.author }}\n---\nCONTENT IDEAS\n---\nLinkedin :\n{{ $json.linkedin }}\n---\nX :\n{{ $json.x }}\n---\nThreads :\n{{ $json.threads }}\n---\nInstagram :\n{{ $json.instagram }}",
"chatId": "YOUR_TELEGRAM_CHAT_ID",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "986762b4-75e0-4418-b813-538ac890c076",
"name": "Append or update row in sheet2",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
-720
],
"parameters": {
"columns": {
"value": {
"id": "={{ $('If').item.json.id }}",
"linkedin": "={{ $json.text }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "facebook",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "9c9de77a-dea5-47fc-9e82-43ff78817072",
"name": "Append or update row in sheet3",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
-340
],
"parameters": {
"columns": {
"value": {
"x": "={{ $json.text }}",
"id": "={{ $('If').item.json.id }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "e1929aea-7b1a-4a73-80f5-59c954d5db17",
"name": "Append or update row in sheet5",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
0
],
"parameters": {
"columns": {
"value": {
"id": "={{ $('If').item.json.id }}",
"threads": "={{ $json.text }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "edc9505c-7eca-4cf4-aa61-96afd345ed71",
"name": "Append or update row in sheet4",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
340
],
"parameters": {
"columns": {
"value": {
"id": "={{ $('If').item.json.id }}",
"instagram": "={{ $json.text }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pubDate",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "author",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "author",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "summary",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "x",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "x",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "threads",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "threads",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": false,
"mode": "name",
"value": "YOUR_SHEET_NAME"
},
"documentId": {
"__rl": false,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "9399a753-fcfc-4fe4-8d8a-6955c19c3fdb",
"connections": {
"If": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing1",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "RSS Read",
"type": "main",
"index": 0
}
]
]
},
"HTML": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"RSS Read": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
]
]
},
"Set Language": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Merge Transcripts",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Append or update row in sheet1",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain1": {
"main": [
[
{
"node": "Append or update row in sheet2",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain2": {
"main": [
[
{
"node": "Append or update row in sheet3",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain3": {
"main": [
[
{
"node": "Append or update row in sheet5",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain4": {
"main": [
[
{
"node": "Append or update row in sheet4",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
},
"Merge Transcripts": {
"main": [
[
{
"node": "Set Language",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet2": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model1": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model2": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain2",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model3": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain3",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model4": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain4",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Append or update row in sheet": {
"main": [
[
{
"node": "Get row(s) in sheet2",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet1": {
"main": [
[
{
"node": "Basic LLM Chain1",
"type": "main",
"index": 0
},
{
"node": "Basic LLM Chain2",
"type": "main",
"index": 0
},
{
"node": "Basic LLM Chain3",
"type": "main",
"index": 0
},
{
"node": "Basic LLM Chain4",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet2": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet3": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet4": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet5": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"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.
googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Source: https://n8n.io/workflows/6843/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow demonstrates how to combine trend harvesting, channel intelligence, and AI scoring to select the best daily content ideas for short-form videos (YouTube Shorts / TikTok).
This workflow transforms scattered Reddit discussions into a systematic lead generation machine by discovering actual marketing problems businesses face and automatically converting them into authorit
How it works Automates daily LinkedIn post creation from trending AI tweets. Fetches latest tweets, processes content, checks for duplicates, converts to LinkedIn-ready format, schedules, and posts au
AI YouTube transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.
YouTube AI Analys (modified) + community node transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.