{"workflow":{"id":14080,"name":"Repurpose long-form content into Instagram and LinkedIn posts with OpenAI and Teams","views":128,"recentViews":4,"totalViews":128,"createdAt":"2026-03-16T09:17:00.186Z","description":"## Who is this for\n\nContent creators, solopreneurs, and marketing teams who produce long-form content (podcasts, newsletters, interviews, scripts) and want to automatically turn it into multiple social media assets -- Instagram carousels, LinkedIn carousels, LinkedIn text posts, and LinkedIn media posts -- with human-in-the-loop approval via Microsoft Teams.\n\n## What this workflow does\n\nThis workflow takes a long-form content file sent via email, extracts strategic content pillars using AI, then fans out into four parallel branches -- each producing a different social media format. Every draft is reviewed and approved in Microsoft Teams before images are generated, assets are saved to Google Drive, and posts are published via Blotato.\n\n## How it works\n\n1. **Email trigger** -- A Gmail Trigger watches for emails with a specific subject line (e.g. \"Content Repurposing\"). The email contains a text attachment (podcast transcript, newsletter, etc.) and optionally a link to the original content.\n2. **File extraction & storage** -- The attachment is extracted, saved as a Google Doc in a timestamped project subfolder on Google Drive, and the source URL is parsed from the email body.\n3. **AI content strategist** -- The Repurpose Strategist agent (OpenAI) analyzes the full text and extracts 5 strategic content pillars, each with a hook headline, core insight, virality factor, and relevant quote. Results are logged in Google Sheets.\n4. **Four parallel content branches** -- The 5 pillars feed into four specialized AI agents that each produce a different format:\n   - **Instagram/YouTube carousel** -- 5 punchy one-liners (max 25 words each) + a social media caption\n   - **LinkedIn carousel** -- 5 slide texts with hooks + a companion caption, plus a styled PDF carousel via HTML-to-PDF\n   - **LinkedIn text post** -- A single strong LinkedIn post (max 100 words)\n   - **LinkedIn media post** -- A post with a guiding statement rendered as an image\n5. **Human review loop** -- Each branch sends its draft to Microsoft Teams for approval via a custom form (approve/reject with feedback). If rejected, feedback is routed back to the AI agent for targeted revisions.\n6. **Asset generation & storage** -- On approval, carousel images are generated via APITemplate.io, all assets (images, post texts, PDFs) are saved to organized Google Drive subfolders, and results are logged back to Google Sheets.\n7. **Publishing** -- Approved posts are published to Instagram and LinkedIn via Blotato, with status monitoring and Teams notifications on success or failure.\n\n## Setup steps\n\n1. **Gmail** -- Create OAuth2 credentials. The trigger watches for emails with \"Content Repurposing\" in the subject. You can customize this filter.\n2. **Google Drive & Docs** -- Create OAuth2 credentials. Set the target folder ID in the Google Drive Trigger node where project subfolders will be created.\n3. **Google Sheets** -- Create a spreadsheet to serve as the content tracker. It will store pillars, carousel texts, post texts, and metadata. Update the Sheet ID in all Google Sheets nodes.\n4. **OpenAI** -- Add your API key. Used by 5 AI agents (strategist + 4 content specialists).\n5. **Microsoft Teams** -- Create OAuth2 credentials. Set the Teams chat ID in the 4 review nodes to route drafts to your approval channel.\n6. **APITemplate.io** -- Create an account and design carousel slide templates. Set the template ID in the image generation nodes.\n7. **Blotato** -- Connect your Instagram and LinkedIn accounts. Add the Blotato API credential and update account IDs in the publishing nodes.\n8. **HTML-to-PDF** -- Install the community node `n8n-nodes-htmlcsstopdf` (self-hosted only). Customize the carousel slide HTML/CSS template with your branding (logo, colors, profile photo).\n\n## Requirements\n\n- **Community nodes:**\n  - [`@blotato/n8n-nodes-blotato`](https://www.npmjs.com/package/@blotato/n8n-nodes-blotato)\n  - [`n8n-nodes-htmlcsstopdf`](https://www.npmjs.com/package/n8n-nodes-htmlcsstopdf)\n- **Self-hosted n8n only** (due to community nodes)\n- Gmail OAuth2 credentials\n- Google Drive, Docs & Sheets OAuth2 credentials\n- OpenAI API key\n- Microsoft Teams OAuth2 credentials\n- APITemplate.io account and template\n- Blotato account with connected Instagram and LinkedIn profiles\n\n## How to customize\n\n- **AI prompts** -- Each of the 5 AI agents has a detailed system prompt you can adjust for tone, word count, language, or output structure.\n- **Carousel design** -- Edit the HTML/CSS in the \"HTML to PDF\" node to match your brand (colors, fonts, logo, profile photo). Update the APITemplate.io template IDs for Instagram-style slides.\n- **Platforms** -- Add or remove publishing branches. Currently supports Instagram (via Blotato) and LinkedIn (text post, carousel, media post).\n- **Review channel** -- Change the Teams chat ID to route to different teams or channels.\n- **Trigger** -- Swap Gmail for another trigger (e.g. Google Drive, webhook, or manual) depending on your content intake workflow.\n- **Feedback loop** -- Each branch supports unlimited revision cycles. The AI applies feedback minimally without rewriting from scratch.\n","workflow":{"id":"nqLuScRNgHpejZxU","meta":{"instanceId":"c000a2799023e596f7ce282858563b91e619d5adf24129f1308c87834a19b2c2"},"name":"Repurpose long-form content into social media posts with OpenAI and Blotato","tags":[],"nodes":[{"id":"00980188-4add-43e4-982b-0bfd078aca17","name":"Gmail Trigger","type":"n8n-nodes-base.gmailTrigger","position":[-2656,2432],"parameters":{"simple":false,"filters":{"q":"Content Repurposing"},"options":{"downloadAttachments":false,"dataPropertyAttachmentsPrefixName":"attachment_"},"pollTimes":{"item":[{"mode":"everyHour"}]}},"typeVersion":1.3},{"id":"73113ccd-2992-449b-8f29-00ca9fa21758","name":"Create project subfolder","type":"n8n-nodes-base.googleDrive","position":[-1760,2432],"parameters":{"name":"={{ $('Gmail Trigger').item.json.headers.subject }}_{{ $('Gmail Trigger').item.json.date }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultUrl":"https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID","cachedResultName":"Your_Folder"},"resource":"folder"},"typeVersion":3},{"id":"3007344c-6704-4495-a90d-d39382633b76","name":"Move original to project folder","type":"n8n-nodes-base.googleDrive","position":[-1536,2432],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Save original content to Drive').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"move"},"typeVersion":3},{"id":"73b4a96c-6675-464c-899a-22f46d6dab3c","name":"Log run metadata in Google Sheets","type":"n8n-nodes-base.googleSheets","position":[-1088,2432],"parameters":{"columns":{"value":{"Run":"={{ Math.floor($now.toSeconds()) }}","mail_url":"={{ 'https://mail.google.com/mail/u/0/#inbox/' + $('Gmail Trigger').first().json.id }}","mail_date":"={{ $('Gmail Trigger').item.json.date }}","mail_subject":"={{ $('Gmail Trigger').item.json.headers.subject }}","g_drive_folder_url":"=https://drive.google.com/drive/u/0/folders/{{ $('Create project subfolder').item.json.id }}","original_asset_url":"={{ $json.firstUrl }}"},"schema":[{"id":"Run","type":"string","display":true,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":false,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"174b5843-74fc-4d7b-8cea-bec1b514d307","name":"Extract URLs from approval data","type":"n8n-nodes-base.code","position":[-1312,2432],"parameters":{"jsCode":"const results = [];\n\nconst gmailItems = $(\"Gmail Trigger\").all();\n\nfor (const item of gmailItems) {\n  const text = item.json.text || \"\";\n\n  const urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n  const urls = text.match(urlRegex) || [];\n\n  results.push({\n    json: {\n      extractedUrls: urls,\n      firstUrl: urls.length > 0 ? urls[0] : null,\n      driveData: $input.item.json\n    }\n  });\n}\n\nreturn results;"},"typeVersion":2},{"id":"739e1ba6-c0dd-4ae1-aee4-c1fc3052f79c","name":"Extract from File","type":"n8n-nodes-base.extractFromFile","position":[-2208,2432],"parameters":{"options":{},"operation":"text","destinationKey":"content_text","binaryPropertyName":"attachment_0"},"typeVersion":1.1},{"id":"34cbcdd6-1916-4e21-b512-5160f6ee307c","name":"Save original content to Drive","type":"n8n-nodes-base.googleDrive","position":[-1984,2432],"parameters":{"name":"=Original_Content_{{ $('Gmail Trigger').item.json.headers.subject }}_{{ $('Gmail Trigger').item.json.date }}","content":"={{ $json.content_text }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"root","cachedResultName":"/ (Root folder)"},"operation":"createFromText"},"typeVersion":3},{"id":"577896f6-f640-411a-aa3f-73d94f4bfec4","name":"Auto-fixing Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[-736,2656],"parameters":{"options":{}},"typeVersion":1},{"id":"e7f73315-67e7-4442-b917-90da49b11b34","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-864,2656],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"566cf37a-e122-4638-98ca-22d7a9fe6beb","name":"OpenAI Chat Model (parser)","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-784,2864],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"9f086d7b-4850-4446-98ad-1965b933ddce","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-592,2864],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"summary\": {\n        \"type\": \"string\",\n        \"description\": \"A brief introduction or summary of the analysis.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"The first topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"The second topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"The third topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"The fourth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"The fifth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      }\n    },\n    \"required\": [\n      \"summary\",\n      \"topic1\",\n      \"topic2\",\n      \"topic3\",\n      \"topic4\",\n      \"topic5\"\n    ]\n  }\n}"},"typeVersion":1.3},{"id":"46b02816-b2a1-4b2c-ae6d-393cf4147dd6","name":"Update sheet: content pillars","type":"n8n-nodes-base.googleSheets","position":[-144,2432],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","topic1":"={{ $json.output.topic1 }}","topic2":"={{ $json.output.topic2 }}","topic3":"={{ $json.output.topic3 }}","topic4":"={{ $json.output.topic4 }}","topic5":"={{ $json.output.topic5 }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"abc421af-08c8-4f8c-8ba0-a31defacfba9","name":"The Repurpose Strategist","type":"@n8n/n8n-nodes-langchain.agent","maxTries":5,"position":[-832,2432],"parameters":{"text":"=Role:\nYou are a world-class \"Content Strategist\" and \"Ghostwriter\" specializing in Audience Building and Content Repurposing.\nYour superpower: From long, unstructured content (podcasts, newsletters, scripts, interviews) you extract the strongest \"Content Pillars\" — and arrange them so they form a coherent, compelling story together.\n\nContext:\nWe are creating a Case Study on Content Repurposing. From the text below, 5 strong, standalone thematic blocks should emerge that:\n- build on each other in terms of content,\n- together tell a kind of story or line of argumentation (clear narrative thread),\n- later serve as the basis for various social media assets (LinkedIn Long-Form, Instagram Reels, Twitter/X Threads, Carousel Posts, etc.).\n\nImportant Note:\nThis is NOT about a chronological summary of the source text.\nIt IS about the ESSENCE and about clear, strategic Content Pillars with story character.\nAll subsequent repurposing workflows are based on this output — you are the strategic \"master layer\" here.\n\nYour Task:\n1. Analyze the following text in depth.\n2. Identify the 5 most important main topics/threads that:\n   - are substantial enough to each carry its own content piece,\n   - are logically arranged in a meaningful order,\n   - together tell a clear, coherent overall story (from entry point to closing punchline).\n\nThis is not about brevity, but about clarity and depth. I need \"meat on the bone.\"\n\nCriteria for the 5 Topics:\n\n1. Substance over Brevity:\n   - Each thematic block may and should be detailed.\n   - Explain the line of thought, not just the result.\n   - Show how the topic is practically relevant (for creators, solopreneurs, B2B marketers, etc. — depending on what the text suggests).\n\n2. Story & Narrative Thread:\n   - The 5 topics should read like chapters of a case study.\n   - TOPIC #1 lays the foundation, TOPICS #2–#4 deepen or shift the perspective, TOPIC #5 closes the story with a clear \"aha\" moment or conclusion.\n   - Explicitly mention how each point logically connects to the previous one and prepares the next.\n\n3. Format Variety:\n   - A topic can be, for example:\n     - a provocative thesis,\n     - a Q&A (problem & solution),\n     - a surprising observation from practice,\n     - a step-by-step logic / framework,\n     - a \"myth vs. reality\" comparison.\n   - Ensure that across all 5 topics, different angles are possible so the content can be repurposed in diverse ways.\n\n4. Standalone Capability:\n   - Each thematic block must work on its own, without knowing the source text.\n   - Yet it should be clearly recognizable where it stands in the overall narrative (e.g., \"from problem to solution,\" \"from mindset to tactics,\" \"from chaos to system\").\n\n5. Relevance for Audience Building & Repurposing:\n   - Prefer topics that:\n     - address clear pain points,\n     - deliver actionable learnings,\n     - are polarizing or opinionated,\n     - can easily be translated into snippets, hooks, quotes, and visual assets.\n\nContent Output Format:\nPlease structure each of the 5 points according to the following pattern (this structure should be visible within the respective text strings):\n\nTOPIC #X: [A hook-style, curiosity-inducing headline for this topic]\n\nCore Insight (Deep Dive):\n[3–7 sentences that explain the topic in detail.\nWhat is the argument?\nWhat problem becomes visible?\nWhat is the solution, framework, or controversy?\nPlease formulate concretely and practically — so that social posts or scripts can easily be created from it.]\n\nType of Input:\n[e.g., \"Provocative opinion,\" \"Tactical step-by-step guide,\" \"Mindset shift,\" \"Q&A: Problem vs. Solution,\" \"Myth vs. Reality,\" etc.]\n\nConnection to the Narrative Thread:\n[1–2 sentences on how this topic logically:\n- connects to the previous topic (except for TOPIC #1: there, please explain why it is the ideal entry into the story),\n- and how it prepares the ground for the next topic.]\n\nWhy This Could Go Viral:\n[1–2 sentences on why this point is relevant, emotionally resonant, or polarizing for the target audience (e.g., breaks a common myth, hits a strong pain point, provides \"finally clarity,\" offers a simple framework).]\n\nRelevant Quote/Excerpt:\n[If available in the text: the strongest statement, formulation, or scene — verbatim or slightly paraphrased.\nIf nothing suitable is in the original text, do NOT invent a quote. Instead leave this section empty or write \"No direct quote in the source text, but the core could be summarized as: ...\"]\n\nLanguage & Style:\n- Write the entire output in the same language as the source text.\n- Write clearly, concisely, and concretely, without unnecessary marketing buzzwords.\n- Always keep in mind: The 5 topics are the strategic foundation for dozens of further content pieces (long-form & short-form).\n\nExpected Output (Response Format as Text):\nYour output always follows the structured schema below. Return exclusively a JSON object matching this schema, filling the string fields with the cleanly formatted text blocks described above:\n\n{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"summary\": {\n        \"type\": \"string\",\n        \"description\": \"A brief introduction or summary of the analysis.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"The first topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"The second topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"The third topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"The fourth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"The fifth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      }\n    },\n    \"required\": [\n      \"summary\",\n      \"topic1\",\n      \"topic2\",\n      \"topic3\",\n      \"topic4\",\n      \"topic5\"\n    ]\n  }\n}\n\nHere is the source text:\n{{ $('Extract from File').item.json.content_text }}\n","options":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":3.1},{"id":"7b504be3-e2a3-487c-bb72-5e968402c5a7","name":"Auto-fixing Output Parser1","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[560,448],"parameters":{"options":{}},"typeVersion":1},{"id":"b8ae9c7f-7f1b-4b17-82d0-b610d1402ece","name":"OpenAI Chat Model2","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[304,448],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"5f7bc48c-4bfb-434e-871b-ea2cb13f4364","name":"OpenAI Chat Model3","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[544,688],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"354fc061-60ac-401c-8796-bf734a6d22d8","name":"Structured Output Parser1","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[704,656],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"sm_post_text\": {\n        \"type\": \"string\",\n        \"description\": \"A social media suitable text snippet of max 40 words.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"The first topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"The second topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"The third topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"The fourth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"The fifth topic. Must contain: 1. Hook Headline, 2. Core Insight (Deep Dive), 3. Type of Input, 4. Virality Factor, 5. Quote. Please format as a well-readable text block.\"\n      }\n    },\n    \"required\": [\n      \"sm_post_text\",\n      \"topic1\",\n      \"topic2\",\n      \"topic3\",\n      \"topic4\",\n      \"topic5\"\n    ]\n  }\n}"},"typeVersion":1.3},{"id":"11b71d83-3851-4b11-8b30-b2ac46cef2be","name":"Auto-fixing Output Parser2","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[704,1664],"parameters":{"options":{}},"typeVersion":1},{"id":"e8dd6149-7786-4e8d-86f0-7ad4e67a2354","name":"OpenAI Chat Model4","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[576,1664],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"27063ea9-df13-4b97-af49-440f3ab8969e","name":"OpenAI Chat Model5","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[608,1888],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"5170486c-008f-4870-9e28-e8a956620b16","name":"Structured Output Parser2","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[848,1872],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars, Hooks, and Post Text as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"summary\": {\n        \"type\": \"string\",\n        \"description\": \"A brief introduction or summary of the analysis.\"\n      },\n      \"linkedin_post_text\": {\n        \"type\": \"string\",\n        \"description\": \"An engaging LinkedIn companion text (caption) for the carousel. Maximum 50 words.\"\n      },\n      \"hook1\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 1. Must be EXACTLY 2 words.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"The first topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook2\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 2. Must be EXACTLY 2 words.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"The second topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook3\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 3. Must be EXACTLY 2 words.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"The third topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook4\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 4. Must be EXACTLY 2 words.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"The fourth topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook5\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 5. Must be EXACTLY 2 words.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"The fifth topic (slide text). Format: Headline + Body (max 40 words).\"\n      }\n    },\n    \"required\": [\n      \"summary\",\n      \"linkedin_post_text\",\n      \"hook1\",\n      \"topic1\",\n      \"hook2\",\n      \"topic2\",\n      \"hook3\",\n      \"topic3\",\n      \"hook4\",\n      \"topic4\",\n      \"hook5\",\n      \"topic5\"\n    ]\n  }\n}"},"typeVersion":1.3},{"id":"d5605956-c071-4c65-8e71-d1185d93c3fa","name":"The IG/YT Specialist","type":"@n8n/n8n-nodes-langchain.agent","maxTries":5,"position":[352,224],"parameters":{"text":"=Role: You are a world-class \"Short-Form Copywriter\" and \"Ghostwriter\" specializing in Twitter (X) and Instagram Hooks. Your superpower is reducing complex content to absolutely punchy \"One-Liners.\"\n\n***\nIMPORTANT INPUT DATA:\n\n1. SOURCE (Raw Content from Sheet):\nTopic1: {{ $('Update sheet: content pillars').item.json.topic1 }}\nTopic2: {{ $('Update sheet: content pillars').item.json.topic2 }}\nTopic3: {{ $('Update sheet: content pillars').item.json.topic3 }}\nTopic4: {{ $('Update sheet: content pillars').item.json.topic4 }}\nTopic5: {{ $('Update sheet: content pillars').item.json.topic5 }}\n\n2. LAST DRAFT (Your previous output, if available):\nSocial Media Text: {{ $json.output.sm_post_text }}\nTopic1: {{ $json.output.topic1 }}\nTopic2: {{ $json.output.topic2 }}\nTopic3: {{ $json.output.topic3 }}\nTopic4: {{ $json.output.topic4 }}\nTopic5: {{ $json.output.topic5 }}\n3. USER FEEDBACK / ADJUSTMENTS:\n{{ $json.feedback }}\n***\n\nMETA-INSTRUCTION (READ THIS FIRST!):\nYou must decide which mode you are working in. Check the \"USER FEEDBACK / ADJUSTMENTS\" field.\n\n---\nMODE A: CREATION (If \"USER FEEDBACK\" is empty or \"null\")\n1. Completely ignore the \"LAST DRAFT\" section.\n2. Use exclusively the \"SOURCE.\"\n3. Extract the 5 most important ideas chronologically.\n4. Write ONE viral one-liner for each idea (max 25 words).\n\nMODE B: REPAIR (If \"USER FEEDBACK\" contains text)\n1. STOP! Completely ignore the \"SOURCE.\" Do not look at it.\n2. Use exclusively the \"LAST DRAFT\" as your basis.\n3. Apply the instructions from \"USER FEEDBACK\" precisely to the draft.\n4. Only change what was criticized. If feedback is general (e.g., \"shorter\"), apply it to everything.\n---\n\nCRITERIA FOR THE OUTPUT (ALWAYS APPLIES):\n1. Radical Brevity: Maximum 25 words per string. This is the most important rule.\n2. Virality: The sentences must \"pop.\" (Contrasts, direct address, strong theses.)\n3. Format: No headings, no explanations. The output string is ONLY the pure text.\n4. Output Schema: Strictly follow the JSON format defined below.\n\nYour output must strictly follow this JSON schema:\n{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"sm_post_text\": {\n        \"type\": \"string\",\n        \"description\": \"A social media suitable text snippet/intro of max 40 words.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"Topic 1 as a viral one-liner (max 25 words). No explanations, just the hook.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"Topic 2 as a viral one-liner (max 25 words). No explanations, just the hook.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"Topic 3 as a viral one-liner (max 25 words). No explanations, just the hook.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"Topic 4 as a viral one-liner (max 25 words). No explanations, just the hook.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"Topic 5 as a viral one-liner (max 25 words). No explanations, just the hook.\"\n      }\n    },\n    \"required\": [\n      \"sm_post_text\",\n      \"topic1\",\n      \"topic2\",\n      \"topic3\",\n      \"topic4\",\n      \"topic5\"\n    ]\n  }\n}","options":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":3.1},{"id":"860927c2-4927-49ba-adb6-45a41cbb4645","name":"The Linkedin Carousel Specialist","type":"@n8n/n8n-nodes-langchain.agent","maxTries":5,"position":[608,1440],"parameters":{"text":"=Role: You are a specialized \"LinkedIn Carousel Designer\" and \"Educational Content Creator.\" Your strength lies in transforming complex information into easily digestible, visual slides.\n\nContext: We are creating a LinkedIn Carousel (PDF slider) from the text below. The goal is to write 5 chronologically sequential slides that guide the user through the story, plus matching hooks and a companion caption.\n***\nIMPORTANT INPUT DATA:\n\n1. SOURCE (Raw Content from Sheet):\nTopic1: {{ $('Update sheet: content pillars').item.json.topic1 }}\nTopic2: {{ $('Update sheet: content pillars').item.json.topic2 }}\nTopic3: {{ $('Update sheet: content pillars').item.json.topic3 }}\nTopic4: {{ $('Update sheet: content pillars').item.json.topic4 }}\nTopic5: {{ $('Update sheet: content pillars').item.json.topic5 }}\n\n2. LAST DRAFT (Your previous output, if available):\nLinkedIn Text: {{ $json.output.linkedin_post_text }}\nhook1:{{ $json.output.hook1 }}\nTopic1: {{ $json.output.topic1 }}\nhook2:{{ $json.output.hook2 }}\nTopic2: {{ $json.output.topic2 }}\nhook3:{{ $json.output.hook3 }}\nTopic3: {{ $json.output.topic3 }}\nhook4:{{ $json.output.hook4 }}\nTopic4: {{ $json.output.topic4 }}\nhook5:{{ $json.output.hook5 }}\nTopic5: {{ $json.output.topic5 }}\n\n3. USER FEEDBACK / ADJUSTMENTS:\n{{ $json.feedback }}\n***\n\nMETA-INSTRUCTION (READ THIS FIRST!):\nYou must decide which mode you are working in. Check the \"USER FEEDBACK / ADJUSTMENTS\" field.\n\n---\nMODE A: CREATION (If \"USER FEEDBACK\" is empty or \"null\")\n1. Completely ignore the \"LAST DRAFT\" section.\n2. Use exclusively the \"SOURCE.\"\n3. Extract the 5 most important ideas chronologically.\n4. Write ONE viral one-liner for each idea (max 20 words).\n\nMODE B: REPAIR (If \"USER FEEDBACK\" contains text)\n1. STOP! Completely ignore the \"SOURCE.\" Do not look at it.\n2. Use exclusively the \"LAST DRAFT\" as your basis.\n3. Apply the instructions from \"USER FEEDBACK\" precisely to the draft.\n4. Only change what was criticized. If feedback is general (e.g., \"shorter\"), apply it to everything.\n\nYour Task:\n\nGo through the text chronologically and extract the 5 most important stations/learnings.\n\nCreate a slide text for each station.\n\nCreate a \"Hook\" (disruptor) of exactly 2 words for each station.\n\nWrite a short LinkedIn companion text (caption).\n\nCriteria for the Outputs:\n\nSlide Texts (Topic 1-5):\n\nLength: Maximum 40 words per topic.\n\nChronology: Follow the narrative thread (Topic 1 = Intro/Problem, Topic 5 = Conclusion/Solution).\n\nStructure: \"HEADLINE (bold, short) – Explanatory text or bullet points.\"\n\nTone: Educational, scannable, no walls of text.\n\nHooks (Hook 1-5):\n\nLength: Exactly 2 words.\n\nStyle: Punchy, provocative, or curiosity-inducing (e.g., \"Just Do It,\" \"Fatal Mistake,\" \"Revenue Boost\").\n\nLinkedIn Post Text:\n\nLength: Maximum 50 words.\n\nContent: Summarizes the carousel and encourages clicking through (call to action).\n\nOutput Format: Please fill in exactly the predefined JSON schema.\n\n{\n  \"name\": \"extract_content_pillars_flat\",\n  \"description\": \"Extracts 5 Content Pillars, Hooks, and Post Text as separate strings.\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"summary\": {\n        \"type\": \"string\",\n        \"description\": \"A brief introduction or summary of the analysis.\"\n      },\n      \"linkedin_post_text\": {\n        \"type\": \"string\",\n        \"description\": \"An engaging LinkedIn companion text (caption) for the carousel. Maximum 50 words.\"\n      },\n      \"hook1\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 1. Must be EXACTLY 2 words.\"\n      },\n      \"topic1\": {\n        \"type\": \"string\",\n        \"description\": \"The first topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook2\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 2. Must be EXACTLY 2 words.\"\n      },\n      \"topic2\": {\n        \"type\": \"string\",\n        \"description\": \"The second topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook3\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 3. Must be EXACTLY 2 words.\"\n      },\n      \"topic3\": {\n        \"type\": \"string\",\n        \"description\": \"The third topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook4\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 4. Must be EXACTLY 2 words.\"\n      },\n      \"topic4\": {\n        \"type\": \"string\",\n        \"description\": \"The fourth topic (slide text). Format: Headline + Body (max 40 words).\"\n      },\n      \"hook5\": {\n        \"type\": \"string\",\n        \"description\": \"A short disruptor/hook for Topic 5. Must be EXACTLY 2 words.\"\n      },\n      \"topic5\": {\n        \"type\": \"string\",\n        \"description\": \"The fifth topic (slide text). Format: Headline + Body (max 40 words).\"\n      }\n    },\n    \"required\": [\n      \"summary\",\n      \"linkedin_post_text\",\n      \"hook1\",\n      \"topic1\",\n      \"hook2\",\n      \"topic2\",\n      \"hook3\",\n      \"topic3\",\n      \"hook4\",\n      \"topic4\",\n      \"hook5\",\n      \"topic5\"\n    ]\n  }\n}\n\nInput:\nTopic1:{{ $json.topic1 }}\nTopic2:{{ $json.topic2 }}\nTopic3:{{ $json.topic3 }}\nTopic4:{{ $json.topic4 }}\nTopic5:{{ $json.topic5 }}","options":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":3.1},{"id":"94b78f9b-bd2d-4f37-a1c8-4f2b0545f61d","name":"Auto-fixing Output Parser3","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[496,2560],"parameters":{"options":{}},"typeVersion":1},{"id":"2c79425a-e4af-4c36-994e-5f15afa78e21","name":"OpenAI Chat Model6","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[368,2560],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"fee1cb95-2cf1-4900-9a0c-21d2b8d0ec8c","name":"OpenAI Chat Model7","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[448,2800],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"28a906e3-18b8-47e7-9169-5e6daf1ed1e6","name":"Structured Output Parser3","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[640,2768],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"summary\": {\n      \"type\": \"string\",\n      \"description\": \"Strategic note on why this angle was chosen.\"\n    },\n    \"post\": {\n      \"type\": \"string\",\n      \"description\": \"The LinkedIn Post (max 100 words) with \\\\n for line breaks.\"\n    }\n  },\n  \"required\": [\n    \"summary\",\n    \"post\"\n  ]\n}"},"typeVersion":1.3},{"id":"d7d73dba-ed99-404d-9d2c-55dcccca90e5","name":"The Linkedin Post Specialist","type":"@n8n/n8n-nodes-langchain.agent","maxTries":5,"position":[400,2336],"parameters":{"text":"=Role: You are an experienced LinkedIn Ghostwriter. Your task: Transform the input into EXACTLY ONE strong LinkedIn post.\n\nLanguage & Tone:\n- Match the language of the source content.\n- Professional, concise, clear.\n\nOUTPUT FORMAT (IMPORTANT):\nReturn EXCLUSIVELY a valid JSON object.\nNo Markdown, no code blocks (```json), no intro, no outro.\nThe JSON must have exactly this structure:\n{\n  \"summary\": \"A short strategic sentence about the angle of the post.\",\n  \"post\": \"The actual post text here...\"\n}\n\nRules for the \"post\" field:\n- Maximum 100 words (strict).\n- Structure:\n  1) Hook (sentence 1: provocative/question/thesis).\n  2) Body (short paragraphs, max 2 sentences, separated by \\n\\n).\n  3) Ending (conclusion or CTA).\n- Line breaks must be encoded as \\n or \\n\\n.\n\nRules for the \"summary\" field:\n- Only 1 very short sentence about strategy (e.g., \"Focused on Topic 2\").\n\n\n\nINPUT DATA:\n\n1. SOURCE (Raw Content):\nTopic1: {{ $('Update sheet: content pillars').item.json.topic1 }}\nTopic2: {{ $('Update sheet: content pillars').item.json.topic2 }}\nTopic3: {{ $('Update sheet: content pillars').item.json.topic3 }}\nTopic4: {{ $('Update sheet: content pillars').item.json.topic4 }}\nTopic5: {{ $('Update sheet: content pillars').item.json.topic5 }}\n\n2. LAST DRAFT (if available):\n{{ $json.output.post }}\n\n3. FEEDBACK / ADJUSTMENTS:\n{{ $json.feedback }}\n\nError Fallback:\nIf no input is available, return: {\"summary\":\"\",\"post\":\"\"}\n***\nIMPORTANT INPUT DATA:\n\n1. SOURCE (Raw Content from Sheet):\nTopic1: {{ $('Update sheet: content pillars').item.json.topic1 }}\nTopic2: {{ $('Update sheet: content pillars').item.json.topic2 }}\nTopic3: {{ $('Update sheet: content pillars').item.json.topic3 }}\nTopic4: {{ $('Update sheet: content pillars').item.json.topic4 }}\nTopic5: {{ $('Update sheet: content pillars').item.json.topic5 }}\n\n2. LAST DRAFT (Your previous output, if available):\nLinkedIn Post_Text:\n{{ $json.output.post }}\n\n3. USER FEEDBACK / ADJUSTMENTS:\n{{ $json.feedback }}\n***\n\n\nHere is the source text:\nTopic1: {{ $json.topic1 }}\nTopic2:{{ $json.topic2 }}\nTopic3:{{ $json.topic3 }}\nTopic4:{{ $json.topic4 }}\nTopic5:{{ $json.topic5 }}\n\n\nOutput schema:\nYour output always and exclusively follows this schema:\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"summary\": {\n      \"type\": \"string\",\n      \"description\": \"Strategic note on why this angle was chosen.\"\n    },\n    \"post\": {\n      \"type\": \"string\",\n      \"description\": \"The LinkedIn Post (max 100 words) with \\\\n for line breaks.\"\n    }\n  },\n  \"required\": [\n    \"summary\",\n    \"post\"\n  ]\n}","options":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":3.1},{"id":"514593a4-15b4-4c51-87b2-8a1e7fca5110","name":"Update sheet: SM carousel data","type":"n8n-nodes-base.googleSheets","position":[1776,480],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","sm_post_text":"={{ $('The IG/YT Specialist').item.json.output.parameters.sm_post_text }}","sm_carousel_text1":"={{ $('The IG/YT Specialist').item.json.output.parameters.topic1 }}","sm_carousel_text2":"={{ $('The IG/YT Specialist').item.json.output.parameters.topic2 }}","sm_carousel_text3":"={{ $('The IG/YT Specialist').item.json.output.parameters.topic3 }}","sm_carousel_text4":"={{ $('The IG/YT Specialist').item.json.output.parameters.topic4 }}","sm_carousel_text5":"={{ $('The IG/YT Specialist').item.json.output.parameters.topic5 }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"a1ea389b-e60e-4686-9422-1d02b9bfab32","name":"Update sheet: LI carousel data","type":"n8n-nodes-base.googleSheets","position":[1584,1888],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","li_carousel_text_1":"={{ $('The Linkedin Carousel Specialist').item.json.output.hook1 }} _ {{ $('The Linkedin Carousel Specialist').item.json.output.topic1 }}","li_carousel_text_2":"={{ $('The Linkedin Carousel Specialist').item.json.output.hook2 }}_{{ $('The Linkedin Carousel Specialist').item.json.output.topic2 }}","li_carousel_text_3":"={{ $('The Linkedin Carousel Specialist').item.json.output.hook3 }}_{{ $('The Linkedin Carousel Specialist').item.json.output.topic3 }}","li_carousel_text_4":"={{ $('The Linkedin Carousel Specialist').item.json.output.hook4 }}_{{ $('The Linkedin Carousel Specialist').item.json.output.topic4 }}","li_carousel_text_5":"={{ $('The Linkedin Carousel Specialist').item.json.output.hook5 }}_{{ $('The Linkedin Carousel Specialist').item.json.output.topic5 }}","linkedin_post_text":"={{ $('The Linkedin Carousel Specialist').item.json.output.linkedin_post_text }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":false,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"fe76f135-1848-4dd8-a041-94d5725858e0","name":"Update sheet: LI text post data","type":"n8n-nodes-base.googleSheets","position":[1376,2784],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","linkedin_post_text":"={{ $('The Linkedin Post Specialist').item.json.output.post }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":false,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"c2ca6150-bc9c-41ed-9b7f-1bb603a612ee","name":"Generate SM slide 1","type":"n8n-nodes-base.apiTemplateIo","position":[2000,912],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $json.sm_carousel_text1 }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"c66f19a1-060a-43a9-af84-9497ce52622d","name":"Generate SM slide 5","type":"n8n-nodes-base.apiTemplateIo","position":[2000,672],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $json.sm_carousel_text5 }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"1dc60205-8e20-47a5-9d6b-f81eed39dd7b","name":"Generate SM slide 3","type":"n8n-nodes-base.apiTemplateIo","position":[2000,288],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $json.sm_carousel_text3 }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"a094f594-ca5e-4ee8-a142-f22c1553da53","name":"Generate SM slide 4","type":"n8n-nodes-base.apiTemplateIo","position":[2000,480],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $json.sm_carousel_text4 }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"ec8171b4-3349-436e-a9bf-8d0c69be0422","name":"Merge all SM carousel images","type":"n8n-nodes-base.merge","position":[2672,240],"parameters":{"numberInputs":5},"typeVersion":3.2},{"id":"d1500d99-2ada-4e7b-b1ef-81048c165f5f","name":"Generate SM slide 2","type":"n8n-nodes-base.apiTemplateIo","position":[2000,96],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $json.sm_carousel_text2 }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"7b6219ac-5962-4d8b-9bb6-445272cf73f0","name":"Download carousel image 1","type":"n8n-nodes-base.httpRequest","position":[2224,912],"parameters":{"url":"={{ $json.download_url_png }}","options":{}},"typeVersion":4.3},{"id":"46fa8830-12b6-4709-980e-366ab54a5b9a","name":"Download carousel image 2","type":"n8n-nodes-base.httpRequest","position":[2224,96],"parameters":{"url":"={{ $json.download_url_png }}","options":{}},"typeVersion":4.3},{"id":"a8658ad7-5d74-41aa-8f50-5a4e2f80c8d7","name":"Download carousel image 3","type":"n8n-nodes-base.httpRequest","position":[2224,288],"parameters":{"url":"={{ $json.download_url_png }}","options":{}},"typeVersion":4.3},{"id":"3d62c83a-5bb6-49da-8dd4-055bbaefb7a2","name":"Download carousel image 4","type":"n8n-nodes-base.httpRequest","position":[2224,480],"parameters":{"url":"={{ $json.download_url_png }}","options":{}},"typeVersion":4.3},{"id":"902eb6fe-ab0d-484c-8aed-88304f77688c","name":"Download carousel image 5","type":"n8n-nodes-base.httpRequest","position":[2224,672],"parameters":{"url":"={{ $json.download_url_png }}","options":{}},"typeVersion":4.3},{"id":"696a8103-e710-4353-acda-fa01dc4369dc","name":"Collect SM image URLs for publishing","type":"n8n-nodes-base.set","maxTries":5,"position":[2896,288],"parameters":{"options":{},"assignments":{"assignments":[{"id":"23643299-532f-4c17-9b7e-40fd7a35a742","name":"img_url_1","type":"string","value":"={{ $('Download carousel image 1').item.json.download_url }}"},{"id":"4d115064-c594-4dee-b1e5-acb10e7a6a5e","name":"img_url_2","type":"string","value":"={{ $('Download carousel image 2').first().json.download_url }}"},{"id":"7f557ef5-c50f-4f41-acbc-a14b35286c87","name":"=img_url_3","type":"string","value":"={{ $('Download carousel image 3').first().json.download_url }}"},{"id":"a0d4b0b6-5252-4d19-b7b0-f1b515c88a8e","name":"img_url_4","type":"string","value":"={{ $('Download carousel image 4').first().json.download_url }}"},{"id":"85ee18ff-0b61-4422-b387-8b2602dff3b8","name":"img_url_5","type":"string","value":"={{ $('Download carousel image 5').first().json.download_url }}"},{"id":"3f7fce5f-e694-4722-be42-ed22dc23d1af","name":"post_ext","type":"string","value":"={{ $('Update sheet: SM carousel data').item.json.sm_post_text }}"}]}},"executeOnce":true,"retryOnFail":true,"typeVersion":3.4,"waitBetweenTries":5000},{"id":"3210415a-23c7-49df-94a1-5f7173e75636","name":"Create SM asset folder","type":"n8n-nodes-base.googleDrive","position":[1552,480],"parameters":{"name":"SM_Assets","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create project subfolder').item.json.id }}"},"resource":"folder"},"typeVersion":3},{"id":"bd7e15cc-f3e4-4bdb-9458-c6d655a679ea","name":"Upload SM image 1 to Drive","type":"n8n-nodes-base.googleDrive","position":[2448,912],"parameters":{"name":"sm_carousel_img_1","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"}},"typeVersion":3},{"id":"86ba89e0-a0cb-440d-8557-998653fa389a","name":"Upload SM image 2 to Drive","type":"n8n-nodes-base.googleDrive","position":[2448,96],"parameters":{"name":"sm_carousel_img_2","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"}},"typeVersion":3},{"id":"ecd5b9a6-3684-42d9-b36a-e5b8b7d4850f","name":"Upload SM image 3 to Drive","type":"n8n-nodes-base.googleDrive","position":[2448,288],"parameters":{"name":"sm_carousel_img_3","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"}},"typeVersion":3},{"id":"ed2aadb8-94db-454d-a35a-73f8d0025649","name":"Upload SM image 4 to Drive","type":"n8n-nodes-base.googleDrive","position":[2448,480],"parameters":{"name":"sm_carousel_img_4","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"}},"typeVersion":3},{"id":"e560d050-660a-4172-bbdf-62e21f83ae2e","name":"Upload SM image 5 to Drive","type":"n8n-nodes-base.googleDrive","position":[2448,672],"parameters":{"name":"sm_carousel_img_5","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"}},"typeVersion":3},{"id":"ffec0d5d-2a4a-408b-92ff-f316ebb113fa","name":"Save SM post text to Drive","type":"n8n-nodes-base.googleDrive","position":[3120,288],"parameters":{"name":"sm_post_text","content":"={{ $json.post_ext }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create SM asset folder').item.json.id }}"},"operation":"createFromText"},"typeVersion":3},{"id":"82ab8798-dd9c-43d4-b5d4-576b2eb1ecbf","name":"HTML to PDF","type":"n8n-nodes-htmlcsstopdf.htmlcsstopdf","position":[1808,1888],"parameters":{"css_content":"/* --- BASE SETTINGS --- */\n* {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n}\n\nbody {\n    background-color: #f0f2f5;\n    font-family: 'Inter', sans-serif;\n    /* For HTML view this does not matter; the PDF renderer paginates anyway */\n    display: block;\n    padding: 40px 0;\n}\n\n/* --- SLIDE DESIGN --- */\n.slide {\n    width: 1080px;\n    height: 1350px;\n    background-color: #ffffff;\n    color: #1a1a1a;\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    padding: 90px;\n    overflow: hidden;\n    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);\n    margin: 0 auto 40px auto;\n    /* HARD PAGE-BREAK: each slide = its own page */\n    page-break-after: always;\n    break-after: page;\n}\n\n/* Last slide: no extra blank page break */\n.slide:last-child {\n    page-break-after: auto;\n    break-after: auto;\n}\n\n/* --- DECORATION --- */\n.bg-decor {\n    position: absolute;\n    top: -15%;\n    right: -15%;\n    width: 700px;\n    height: 700px;\n    background: radial-gradient(circle, #f3f4f6 0%, rgba(255, 255, 255, 0) 70%);\n    border-radius: 50%;\n    z-index: 0;\n}\n\n.header,\n.content,\n.footer {\n    position: relative;\n    z-index: 1;\n}\n\n/* --- LOGO --- */\n.header {\n    height: 100px;\n    display: flex;\n    align-items: center;\n}\n\n.logo-img {\n    height: 55px;\n    width: auto;\n    opacity: 0.8;\n}\n\n/* --- TEXT STYLES --- */\n.content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    gap: 35px;\n}\n\n.headline {\n    font-size: 60px;\n    line-height: 1.05;\n    font-weight: 900;\n    text-transform: uppercase;\n    letter-spacing: -3px;\n    color: #000;\n}\n\n.highlight {\n    background-color: #000000;\n    color: #fff;\n    padding: 2px 25px;\n    display: inline-block;\n    transform: skewX(-8deg);\n}\n\n.body-text {\n    font-size: 38px;\n    line-height: 1.5;\n    font-weight: 400;\n    color: #555;\n    border-left: 8px solid #000;\n    padding-left: 35px;\n    margin-top: 20px;\n}\n\n/* --- FOOTER --- */\n.footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 50px;\n    border-top: 2px solid #f3f3f3;\n}\n\n.profile-container {\n    display: flex;\n    align-items: center;\n    gap: 20px;\n}\n\n.profile-img {\n    width: 85px;\n    height: 85px;\n    border-radius: 50%;\n    object-fit: cover;\n    border: 2px solid #fff;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n.author-info {\n    display: flex;\n    flex-direction: column;\n}\n\n.author-name {\n    font-size: 26px;\n    font-weight: 700;\n    color: #000;\n}\n\n.author-handle {\n    font-size: 22px;\n    color: #888;\n    margin-top: 4px;\n}\n\n.pagination {\n    font-size: 26px;\n    font-weight: 700;\n    color: #000;\n    background: #f0f0f0;\n    padding: 12px 28px;\n    border-radius: 50px;\n}","html_content":"=<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Carousel Masterclass</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;900&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n</head>\n\n<body>\n    <div class=\"slide\">\n        <div class=\"bg-decor\"></div>\n        <div class=\"header\">\n            <div class=\"logo-container\"> <img src=\"https://example.com/your-logo.png\" alt=\"Logo\" class=\"logo-img\">\n            </div>\n        </div>\n        <div class=\"content\">\n            <div class=\"headline\">\n                <span class=\"highlight\">{{ $('The Linkedin Carousel Specialist').item.json.output.hook1 }}</span></div>\n            <div class=\"body-text\"> {{ $('The Linkedin Carousel Specialist').item.json.output.topic1 }} </div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"profile-container\"> <img src=\"https://example.com/your-profile-photo.png\" alt=\"Profile\" class=\"profile-img\">\n                <div class=\"author-info\"> <span class=\"author-name\">Your Name</span>\n                    <span class=\"author-handle\">@your-handle</span> </div>\n            </div>\n            <div class=\"pagination\">1 / 5</div>\n        </div>\n    </div>\n    <div class=\"slide\">\n        <div class=\"header\">\n            <div class=\"logo-container\"> <img src=\"https://example.com/your-logo.png\" alt=\"Logo\" class=\"logo-img\">\n            </div>\n        </div>\n        <div class=\"content\">\n            <div class=\"headline\">\n                <span class=\"highlight\">{{ $('The Linkedin Carousel Specialist').item.json.output.hook2 }}</span></div>\n            <div class=\"body-text\">{{ $('The Linkedin Carousel Specialist').item.json.output.topic2 }}</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"profile-container\"> <img src=\"https://example.com/your-profile-photo.png\" alt=\"Profile\" class=\"profile-img\">\n                <div class=\"author-info\"> <span class=\"author-name\">Your Name</span>\n                    <span class=\"author-handle\">@your-handle</span> </div>\n            </div>\n            <div class=\"pagination\">2 / 5</div>\n        </div>\n    </div>\n    <div class=\"slide\">\n        <div class=\"header\">\n            <div class=\"logo-container\"> <img src=\"https://example.com/your-logo.png\" alt=\"Logo\" class=\"logo-img\">\n            </div>\n        </div>\n        <div class=\"content\">\n            <div class=\"headline\">\n                <span class=\"highlight\">{{ $('The Linkedin Carousel Specialist').item.json.output.hook3 }}</span></div>\n            <div class=\"body-text\">{{ $('The Linkedin Carousel Specialist').item.json.output.topic3 }}</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"profile-container\"> <img src=\"https://example.com/your-profile-photo.png\" alt=\"Profile\" class=\"profile-img\">\n                <div class=\"author-info\"> <span class=\"author-name\">Your Name</span>\n                    <span class=\"author-handle\">@your-handle</span> </div>\n            </div>\n            <div class=\"pagination\">3 / 5</div>\n        </div>\n    </div>\n    <div class=\"slide\">\n        <div class=\"header\">\n            <div class=\"logo-container\"> <img src=\"https://example.com/your-logo.png\" alt=\"Logo\" class=\"logo-img\">\n            </div>\n        </div>\n        <div class=\"content\">\n            <div class=\"headline\">\n                <span class=\"highlight\">{{ $('The Linkedin Carousel Specialist').item.json.output.hook4 }}</span></div>\n            <div class=\"body-text\">{{ $('The Linkedin Carousel Specialist').item.json.output.topic4 }}</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"profile-container\"> <img src=\"https://example.com/your-profile-photo.png\" alt=\"Profile\" class=\"profile-img\">\n                <div class=\"author-info\"> <span class=\"author-name\">Your Name</span>\n                    <span class=\"author-handle\">@your-handle</span> </div>\n            </div>\n            <div class=\"pagination\">4 / 5</div>\n        </div>\n    </div>\n    <div class=\"slide\">\n        <div class=\"header\">\n            <div class=\"logo-container\"> <img src=\"https://example.com/your-logo.png\" alt=\"Logo\" class=\"logo-img\">\n            </div>\n        </div>\n        <div class=\"content\">\n            <div class=\"headline\">\n                <span class=\"highlight\">{{ $('The Linkedin Carousel Specialist').item.json.output.hook5 }}</span></div>\n            <div class=\"body-text\">{{ $('The Linkedin Carousel Specialist').item.json.output.topic5 }}</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"profile-container\"> <img src=\"https://example.com/your-profile-photo.png\" alt=\"Profile\" class=\"profile-img\">\n                <div class=\"author-info\"> <span class=\"author-name\">Your Name</span>\n                    <span class=\"author-handle\">@your-handle</span> </div>\n            </div>\n            <div class=\"pagination\">5 / 5</div>\n        </div>\n    </div>\n</body>\n\n</html>","output_format":"file"},"typeVersion":1},{"id":"2f1f4843-9b64-400e-afd8-d8878e498936","name":"Upload LI carousel PDF","type":"n8n-nodes-base.googleDrive","position":[2032,1888],"parameters":{"name":"LI_Carousel","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"root","cachedResultName":"/ (Root folder)"}},"typeVersion":3},{"id":"7ec61247-f585-4505-90e6-7aac3401fc45","name":"Create LI carousel asset folder","type":"n8n-nodes-base.googleDrive","position":[2256,1888],"parameters":{"name":"LI_carousel_Assets","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create project subfolder').item.json.id }}"},"resource":"folder"},"typeVersion":3},{"id":"3639e148-abf1-49a6-bbd3-bc7f3e4de7b1","name":"Move LI carousel PDF to folder","type":"n8n-nodes-base.googleDrive","position":[2480,1888],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Upload LI carousel PDF').item.json.id }}"},"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"move"},"typeVersion":3},{"id":"e7117789-a6cc-4811-ab24-59adb12ce921","name":"Save LI carousel caption to Drive","type":"n8n-nodes-base.googleDrive","position":[2704,1888],"parameters":{"name":"=Li_Carousel_post_text","content":"={{ $('The Linkedin Carousel Specialist').item.json.output.linkedin_post_text }}","driveId":{"__rl":true,"mode":"list","value":"My Drive","cachedResultUrl":"https://drive.google.com/drive/my-drive","cachedResultName":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create LI carousel asset folder').item.json.id }}"},"operation":"createFromText"},"typeVersion":3},{"id":"6d1ce1d3-1ca1-4a7d-b198-f8ae433c4429","name":"Review SM carousel in Teams","type":"n8n-nodes-base.microsoftTeams","position":[928,432],"webhookId":"00000000-0000-0000-0000-000000000001","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<h2>New Draft: Instagram/YouTube Carousel</h2>\n<p>Hello! The content for the new carousel has been created and is awaiting your approval.</p>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<h3>Social Media Caption</h3>\n<div style=\"background-color: #f0f0f0; padding: 10px; border-left: 4px solid #0078D4; margin-bottom: 15px;\">\n    <i>{{ $json.output.sm_post_text }}</i>\n</div>\n\n<h3>Carousel Slides (Content)</h3>\n<ul style=\"padding-left: 20px;\">\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 1:</strong><br><span>{{ $json.output.topic1 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 2:</strong><br><span>{{ $json.output.topic2 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 3:</strong><br><span>{{ $json.output.topic3 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 4:</strong><br><span>{{ $json.output.topic4 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 5:</strong><br><span>{{ $json.output.topic5 }}</span></li>\n</ul>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<p><strong>Next Step:</strong></p>\n<p>Is this draft okay? Please respond with <strong>\"Approved\"</strong> to start processing.</p>","options":{},"resource":"chatMessage","operation":"sendAndWait","formFields":{"values":[{"fieldType":"radio","fieldLabel":"approved","defaultValue":"yes","fieldOptions":{"values":[{"option":"yes"},{"option":"no"}]},"requiredField":true},{"fieldLabel":"Feedback","placeholder":"What should be changed?"}]},"responseType":"customForm"},"typeVersion":2},{"id":"f4ec9911-c769-418f-953a-aad11752e354","name":"Simple Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[432,448],"parameters":{"sessionKey":"={{ Math.floor($now.toSeconds()) }}","sessionIdType":"customKey"},"typeVersion":1.3},{"id":"a2cdf9a1-e3ba-4782-a460-64c65e0f0b5d","name":"IG/YT Draft Approved?","type":"n8n-nodes-base.if","position":[1328,480],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"70efc72a-2fb8-48f5-801c-3ff1bdfe2b94","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data.approved }}","rightValue":"yes"}]}},"typeVersion":2.3},{"id":"ce0b4c09-9efe-4bb5-b36e-9824d92e6ccb","name":"Download Email Attachments","type":"n8n-nodes-base.gmail","position":[-2432,2432],"webhookId":"00000000-0000-0000-0000-000000000012","parameters":{"simple":false,"options":{"downloadAttachments":true},"messageId":"={{ $json.id }}","operation":"get"},"typeVersion":2.2},{"id":"babd8ac2-6a14-4cbb-a0db-017ccd553159","name":"Adaptive Prompt Builder – IG/YT","type":"n8n-nodes-base.code","position":[96,400],"parameters":{"jsCode":"// Code Node (Run once for all items)\n// Configuration: adjust node names here\nconst AGENT_NODE_NAME = 'The IG/YT Specialist';\nconst FEEDBACK_NODE_NAME = 'Feedback Reference';\n\n// Helper: safe getter for nested properties\nconst get = (obj, path, fallback = \"\") => {\n  try {\n    const val = path.split('.').reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);\n    return val !== undefined && val !== null ? val : fallback;\n  } catch {\n    return fallback;\n  }\n};\nconst toSafeString = v => (v === undefined || v === null ? \"\" : String(v));\n\n// 1) First input (Sheet/Input)\nconst firstItem = $input.first();\nconst inputData = firstItem?.json ?? {};\nconst data = inputData.data ?? {};\n\n// 2) Determine feedback: first from input, then from the feedback reference node\nlet feedback = get(inputData, 'Feedback', \"\") || get(data, 'Feedback', \"\");\nif (!feedback) {\n  try {\n    const fbItems = $items(FEEDBACK_NODE_NAME);\n    if (Array.isArray(fbItems) && fbItems.length) {\n      const fbJson = fbItems[fbItems.length - 1].json ?? {};\n      feedback =\n        get(fbJson, 'Feedback', \"\") ||\n        get(fbJson, 'feedback', \"\") ||\n        get(fbJson, 'data.Feedback', \"\");\n    }\n  } catch (e) {\n    // Silently ignore if reference node not found\n  }\n}\nconst isLoop = String(feedback).trim() !== \"\";\n\n// 3) Retrieve previous parameters/draft from the agent\nlet previousParams = {};\ntry {\n  const agentItems = $items(AGENT_NODE_NAME);\n  if (Array.isArray(agentItems) && agentItems.length) {\n    const agentJson = agentItems[agentItems.length - 1].json ?? {};\n    const outputObj = agentJson.output ?? agentJson;\n    previousParams = outputObj.parameters ?? outputObj ?? {};\n  }\n} catch (e) {\n  // Silently ignore\n}\n\n// 4) Build result\nlet result;\nif (isLoop) {\n  // REPAIR: Clear source data, carry over previous draft from agent\n  result = {\n    feedback: toSafeString(feedback),\n    topic1: \"\",\n    topic2: \"\",\n    topic3: \"\",\n    topic4: \"\",\n    topic5: \"\",\n    output: {\n      sm_post_text: toSafeString(previousParams.sm_post_text),\n      topic1: toSafeString(previousParams.topic1),\n      topic2: toSafeString(previousParams.topic2),\n      topic3: toSafeString(previousParams.topic3),\n      topic4: toSafeString(previousParams.topic4),\n      topic5: toSafeString(previousParams.topic5),\n    },\n  };\n} else {\n  // CREATE: Source data from input, empty placeholders for output\n  result = {\n    feedback: null,\n    topic1: toSafeString(get(inputData, 'topic1', get(data, 'topic1', \"\"))),\n    topic2: toSafeString(get(inputData, 'topic2', get(data, 'topic2', \"\"))),\n    topic3: toSafeString(get(inputData, 'topic3', get(data, 'topic3', \"\"))),\n    topic4: toSafeString(get(inputData, 'topic4', get(data, 'topic4', \"\"))),\n    topic5: toSafeString(get(inputData, 'topic5', get(data, 'topic5', \"\"))),\n    output: {\n      sm_post_text: \"\",\n      topic1: \"\",\n      topic2: \"\",\n      topic3: \"\",\n      topic4: \"\",\n      topic5: \"\",\n    },\n  };\n}\n\n// 5) Important: always return items array\nreturn [{ json: result }];\n"},"typeVersion":2},{"id":"93016f16-4ff6-40f8-8b30-5e34d8dd34f4","name":"Review LI carousel in Teams","type":"n8n-nodes-base.microsoftTeams","position":[1136,1648],"webhookId":"00000000-0000-0000-0000-000000000002","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<h2>New Draft: LinkedIn Carousel</h2>\n<p>Hello! The content for the new carousel has been created and is awaiting your approval.</p>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<h3>Companion Text (Caption)</h3>\n<div style=\"background-color: #f0f0f0; padding: 10px; border-left: 4px solid #0078D4; margin-bottom: 15px;\">\n    <i>{{ $json.output.linkedin_post_text }}</i>\n</div>\n\n<h3>Carousel Slides (Content)</h3>\n<ul style=\"padding-left: 20px;\">\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 1:</strong><br><strong style=\"color: #d13438;\">{{ $json.output.hook1 }}</strong><br><span>{{ $json.output.topic1 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 2:</strong><br><strong style=\"color: #d13438;\">{{ $json.output.hook2 }}</strong><br><span>{{ $json.output.topic2 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 3:</strong><br><strong style=\"color: #d13438;\">{{ $json.output.hook3 }}</strong><br><span>{{ $json.output.topic3 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 4:</strong><br><strong style=\"color: #d13438;\">{{ $json.output.hook4 }}</strong><br><span>{{ $json.output.topic4 }}</span></li>\n    <li style=\"margin-bottom: 12px;\"><strong>Slide 5:</strong><br><strong style=\"color: #d13438;\">{{ $json.output.hook5 }}</strong><br><span>{{ $json.output.topic5 }}</span></li>\n</ul>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<p><strong>Next Step:</strong></p>\n<p>Is this draft okay? Please respond with <strong>\"Approved\"</strong> to start processing.</p>","options":{},"resource":"chatMessage","operation":"sendAndWait","formFields":{"values":[{"fieldType":"radio","fieldLabel":"approved","defaultValue":"yes","fieldOptions":{"values":[{"option":"yes"},{"option":"no"}]},"requiredField":true},{"fieldLabel":"Feedback","placeholder":"What should be changed?"}]},"responseType":"customForm"},"typeVersion":2},{"id":"2c0e87fa-9684-445f-9d88-9161d3f87f67","name":"LI Carousel Draft Approved?","type":"n8n-nodes-base.if","position":[1360,1888],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"70efc72a-2fb8-48f5-801c-3ff1bdfe2b94","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data.approved }}","rightValue":"yes"}]}},"typeVersion":2.3},{"id":"89d48210-6bcc-4abc-9440-75b6aa17fb3d","name":"Adaptive Prompt Builder – LI Carousel","type":"n8n-nodes-base.code","position":[288,1888],"parameters":{"jsCode":"// Code Node (Run once for all items)\n// Configuration: name exactly as in your workflow\nconst AGENT_NODE_NAME = 'The Linkedin Carousel Specialist';\nconst FEEDBACK_NODE_NAME = 'If1)';\n\n// Helper: safe getter for nested properties\nconst get = (obj, path, fallback = \"\") => {\n  try {\n    const val = path.split('.').reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);\n    return val !== undefined && val !== null ? val : fallback;\n  } catch {\n    return fallback;\n  }\n};\nconst toSafeString = v => (v === undefined || v === null ? \"\" : String(v));\n\n// Helper: get last item from a node (including multi-output nodes like IF)\nconst getLastItemFromNode = (nodeName) => {\n  let items = [];\n  try { items = items.concat($items(nodeName, 0) || []); } catch {}\n  try { items = items.concat($items(nodeName, 1) || []); } catch {}\n  if (!items.length) {\n    try { items = $items(nodeName) || []; } catch {}\n  }\n  return items.length ? items[items.length - 1] : null;\n};\n\n// 1) Read Sheet/Input\nconst firstItem = $input.first();\nconst inputData = firstItem?.json ?? {};\nconst data = inputData.data ?? {};\n\n// 2) Feedback: first from input, then fallback from If1) (both outputs)\nlet feedback = get(inputData, 'Feedback', \"\") || get(data, 'Feedback', \"\");\nif (!feedback) {\n  const fbItem = getLastItemFromNode(FEEDBACK_NODE_NAME);\n  if (fbItem?.json) {\n    const fbJson = fbItem.json;\n    feedback =\n      get(fbJson, 'Feedback', \"\") ||\n      get(fbJson, 'feedback', \"\") ||\n      get(fbJson, 'data.Feedback', \"\");\n  }\n}\nconst isLoop = String(feedback).trim() !== \"\";\n\n// 3) Retrieve previous output from the agent\nlet prevRoot = {};\nlet prevParams = {};\ntry {\n  const agentItem = getLastItemFromNode(AGENT_NODE_NAME);\n  if (agentItem?.json) {\n    const agentJson = agentItem.json;\n    prevRoot = agentJson.output ?? agentJson;\n    prevParams = prevRoot.parameters ?? {};\n  }\n} catch { /* silently ignore */ }\n\n// Helper: pick value from parameters or directly from root\nconst pickPrev = (field) => {\n  const fromParams = get(prevParams, field, null);\n  const fromRoot = get(prevRoot, field, \"\");\n  return toSafeString(fromParams !== null ? fromParams : fromRoot);\n};\n\n// 4) Build result\nlet result;\nif (isLoop) {\n  // REPAIR: Clear source data, carry over previous values in output\n  result = {\n    feedback: toSafeString(feedback),\n    topic1: \"\",\n    topic2: \"\",\n    topic3: \"\",\n    topic4: \"\",\n    topic5: \"\",\n    output: {\n      linkedin_post_text: pickPrev('linkedin_post_text'),\n      hook1: pickPrev('hook1'),\n      hook2: pickPrev('hook2'),\n      hook3: pickPrev('hook3'),\n      hook4: pickPrev('hook4'),\n      hook5: pickPrev('hook5'),\n      topic1: pickPrev('topic1'),\n      topic2: pickPrev('topic2'),\n      topic3: pickPrev('topic3'),\n      topic4: pickPrev('topic4'),\n      topic5: pickPrev('topic5'),\n    },\n  };\n} else {\n  // CREATE: Source data from input, empty placeholders in output\n  result = {\n    feedback: null,\n    topic1: toSafeString(get(inputData, 'topic1', get(data, 'topic1', \"\"))),\n    topic2: toSafeString(get(inputData, 'topic2', get(data, 'topic2', \"\"))),\n    topic3: toSafeString(get(inputData, 'topic3', get(data, 'topic3', \"\"))),\n    topic4: toSafeString(get(inputData, 'topic4', get(data, 'topic4', \"\"))),\n    topic5: toSafeString(get(inputData, 'topic5', get(data, 'topic5', \"\"))),\n    output: {\n      linkedin_post_text: \"\",\n      hook1: \"\",\n      hook2: \"\",\n      hook3: \"\",\n      hook4: \"\",\n      hook5: \"\",\n      topic1: \"\",\n      topic2: \"\",\n      topic3: \"\",\n      topic4: \"\",\n      topic5: \"\",\n    },\n  };\n}\n\n// 5) Important: always return items array\nreturn [{ json: result }];\n"},"typeVersion":2},{"id":"f15cde7f-afef-40aa-8778-21f354d0248c","name":"Review LI text post in Teams","type":"n8n-nodes-base.microsoftTeams","position":[928,2544],"webhookId":"00000000-0000-0000-0000-000000000003","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<h2>New Draft: LinkedIn Post</h2>\n<p>Hello! The content for the new post has been created and is awaiting your approval.</p>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<h3>Post Text</h3>\n<div style=\"background-color: #f0f0f0; padding: 15px; border-left: 4px solid #0078D4; margin-bottom: 15px; white-space: pre-wrap; font-family: sans-serif;\">\n{{ $json.output.post }}\n</div>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<p><strong>Next Step:</strong></p>\n<p>Is this draft okay? Please respond with <strong>\"Approved\"</strong> to start processing.</p>","options":{},"resource":"chatMessage","operation":"sendAndWait","formFields":{"values":[{"fieldType":"radio","fieldLabel":"approved","defaultValue":"yes","fieldOptions":{"values":[{"option":"yes"},{"option":"no"}]},"requiredField":true},{"fieldLabel":"Feedback","placeholder":"What should be changed?"}]},"responseType":"customForm"},"typeVersion":2},{"id":"feddb189-b27b-4f45-af10-97199563b1ec","name":"LI Text Post Draft Approved?","type":"n8n-nodes-base.if","position":[1152,2784],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"70efc72a-2fb8-48f5-801c-3ff1bdfe2b94","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data.approved }}","rightValue":"yes"}]}},"typeVersion":2.3},{"id":"8cd22f1a-d799-4c53-b571-797f98ee389e","name":"Adaptive Prompt Builder – LI Text Post","type":"n8n-nodes-base.code","position":[80,2784],"parameters":{"jsCode":"// Code Node (Run once for all items)\n// Configuration\nconst AGENT_NODE_NAME = 'The Linkedin Post Specialist';\nconst FEEDBACK_NODE_NAME = 'If2';\n\n// Helper: safe getter for nested properties\nconst get = (obj, path, fallback = \"\") => {\n  try {\n    const val = path.split('.').reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);\n    return val !== undefined && val !== null ? val : fallback;\n  } catch {\n    return fallback;\n  }\n};\nconst toSafeString = v => (v === undefined || v === null ? \"\" : String(v));\n\n// Helper: get last item from a node (including IF nodes with 2 outputs)\nconst getLastItemFromNode = (nodeName) => {\n  let items = [];\n  try { items = items.concat($items(nodeName, 0) || []); } catch {}\n  try { items = items.concat($items(nodeName, 1) || []); } catch {}\n  if (!items.length) {\n    try { items = $items(nodeName) || []; } catch {}\n  }\n  return items.length ? items[items.length - 1] : null;\n};\n\n// 1) Read Sheet/Input\nconst firstItem = $input.first();\nconst inputData = firstItem?.json ?? {};\nconst data = inputData.data ?? {};\n\n// 2) Feedback: primarily from $input.first().json.data.Feedback, optional fallback from If2\nlet feedback = toSafeString(get(inputData, 'data.Feedback', ''));\nif (!feedback) {\n  const fbItem = getLastItemFromNode(FEEDBACK_NODE_NAME);\n  if (fbItem?.json) {\n    const fbJson = fbItem.json;\n    feedback =\n      toSafeString(get(fbJson, 'Feedback', '')) ||\n      toSafeString(get(fbJson, 'feedback', '')) ||\n      toSafeString(get(fbJson, 'data.Feedback', ''));\n  }\n}\nconst isLoop = feedback.trim() !== \"\";\n\n// 3) Retrieve previous output (post) from the agent\nlet previousPost = \"\";\ntry {\n  const agentItem = getLastItemFromNode(AGENT_NODE_NAME);\n  if (agentItem?.json) {\n    const agentJson = agentItem.json;\n    previousPost =\n      toSafeString(get(agentJson, 'output.post', '')) ||\n      toSafeString(get(agentJson, 'post', '')) ||\n      toSafeString(get(agentJson, 'output.parameters.post', ''));\n  }\n} catch { /* silently ignore */ }\n\n// 4) Build result\nlet result;\nif (isLoop) {\n  // REPAIR: Clear source data, insert previous post\n  result = {\n    feedback,\n    topic1: \"\",\n    topic2: \"\",\n    topic3: \"\",\n    topic4: \"\",\n    topic5: \"\",\n    output: {\n      post: previousPost,\n    },\n  };\n} else {\n  // CREATE: Source data from input, empty placeholders in output\n  result = {\n    feedback: null,\n    topic1: toSafeString(get(inputData, 'topic1', get(data, 'topic1', \"\"))),\n    topic2: toSafeString(get(inputData, 'topic2', get(data, 'topic2', \"\"))),\n    topic3: toSafeString(get(inputData, 'topic3', get(data, 'topic3', \"\"))),\n    topic4: toSafeString(get(inputData, 'topic4', get(data, 'topic4', \"\"))),\n    topic5: toSafeString(get(inputData, 'topic5', get(data, 'topic5', \"\"))),\n    output: {\n      post: \"\",\n    },\n  };\n}\n\n// 5) Always return as items array\nreturn [{ json: result }];\n"},"typeVersion":2},{"id":"52619aac-8aac-42d3-91bd-16c45eb6b228","name":"Create LI text post asset folder","type":"n8n-nodes-base.googleDrive","position":[1600,2784],"parameters":{"name":"LinkedIn_Post_Assets","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create project subfolder').item.json.id }}"},"resource":"folder"},"typeVersion":3},{"id":"0d764ee1-7175-47dc-a837-c63f1e1096d4","name":"Save LI text post to Drive","type":"n8n-nodes-base.googleDrive","position":[1824,2784],"parameters":{"name":"LinkedIn_Post_Text","content":"={{ $('Update sheet: LI text post data').item.json.linkedin_post_text }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"createFromText"},"typeVersion":3},{"id":"d943507c-816c-434e-b959-dc334718dabf","name":"Publish LI text post via Blotato","type":"@blotato/n8n-nodes-blotato.blotato","position":[2048,2784],"parameters":{"options":{},"platform":"linkedin","accountId":{"__rl":true,"mode":"list","value":"YOUR_BLOTATO_ACCOUNT_ID","cachedResultUrl":"https://backend.blotato.com/v2/accounts/YOUR_ACCOUNT_ID","cachedResultName":"Your Account Name"},"postContentText":"={{ \n  $('Update sheet: LI text post data').item.json.linkedin_post_text\n  + '\\n\\nListen to the podcast episode here: '\n  + $('Extract URLs from approval data').item.json.firstUrl\n}}\n"},"typeVersion":2},{"id":"2a6baf2a-d5d4-490c-8ea8-2859a195ef7e","name":"Publish SM carousel via Blotato","type":"@blotato/n8n-nodes-blotato.blotato","position":[3120,480],"parameters":{"options":{},"accountId":{"__rl":true,"mode":"list","value":"YOUR_BLOTATO_ACCOUNT_ID_2","cachedResultUrl":"https://backend.blotato.com/v2/accounts/YOUR_ACCOUNT_ID_2","cachedResultName":"Your_Blotato_Account_2"},"postContentText":"={{ \n  $json.post_ext\n  + '\\n\\nListen to the podcast episode here: '\n  + $('Extract URLs from approval data').item.json.firstUrl\n}}\n","postContentMediaUrls":"={{ $json.img_url_1 }},{{ $json.img_url_2 }},{{ $json.img_url_3 }},{{ $json.img_url_4 }},{{ $json.img_url_5 }}"},"typeVersion":2},{"id":"ef2f8228-7673-47d1-a50b-771d85876868","name":"Check SM carousel post status","type":"@blotato/n8n-nodes-blotato.blotato","position":[3568,480],"parameters":{"operation":"get","postSubmissionId":"={{ $json.postSubmissionId }}"},"typeVersion":2},{"id":"aedad29f-5f06-4c1d-ba9a-96bb097262a1","name":"Wait 30s for SM carousel","type":"n8n-nodes-base.wait","position":[3344,480],"webhookId":"00000000-0000-0000-0000-000000000004","parameters":{"amount":30},"typeVersion":1.1},{"id":"fc83f5af-a3a4-4a1d-b402-3dfb4bc61806","name":"Route SM carousel post status","type":"n8n-nodes-base.switch","position":[3792,464],"parameters":{"rules":{"values":[{"outputKey":"success","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"32acb818-1af6-4167-aeda-f146dadfcf67","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"published"}]},"renameOutput":true},{"outputKey":"in-progress","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6b04ba55-bdce-41ac-b85d-59b70d6520f5","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"in-progress"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"287540d3-8398-4172-9d56-3d19fb6bfc30","name":"Notify: SM carousel published","type":"n8n-nodes-base.microsoftTeams","position":[4016,480],"webhookId":"00000000-0000-0000-0000-000000000005","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<p>✅ <strong>Your Instagram carousel was successfully published.</strong></p>\n<p>View the post here: <a href=\"{{ $('Check SM carousel post status').item.json.publicUrl }}\">View directly on Instagram</a></p>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"50d9986b-bfbb-4c38-99eb-827326297775","name":"Notify: SM carousel publish error","type":"n8n-nodes-base.microsoftTeams","position":[4016,672],"webhookId":"00000000-0000-0000-0000-000000000006","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div>\n  <p>⚠️ <strong style=\"color: #e81123;\">Publishing error!</strong></p>\n  <p>Your Instagram carousel could not be posted automatically.</p>\n  <p>Please check the files manually here: <a href=\"{{ $('Log run metadata in Google Sheets').item.json.g_drive_folder_url }}\">Open Google Drive folder</a></p>\n</div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"c7173322-baaa-456c-950b-1b8197f1b512","name":"Check LI text post status","type":"@blotato/n8n-nodes-blotato.blotato","position":[2496,2464],"parameters":{"operation":"get","postSubmissionId":"={{ $json.postSubmissionId }}"},"typeVersion":2},{"id":"5dbce3fb-5eb7-464a-b50a-6e354e9d8361","name":"Wait 40s for LI text post","type":"n8n-nodes-base.wait","position":[2272,2784],"webhookId":"00000000-0000-0000-0000-000000000007","parameters":{"amount":40},"typeVersion":1.1},{"id":"84079bf5-d124-4f9f-9ca9-a9a23e9308b6","name":"Route LI text post status","type":"n8n-nodes-base.switch","position":[2720,2768],"parameters":{"rules":{"values":[{"outputKey":"success","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"32acb818-1af6-4167-aeda-f146dadfcf67","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"published"}]},"renameOutput":true},{"outputKey":"in-progress","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6b04ba55-bdce-41ac-b85d-59b70d6520f5","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"in-progress"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"3da26168-12be-4071-a17a-811026e862ac","name":"Notify: LI text post published","type":"n8n-nodes-base.microsoftTeams","position":[2944,2352],"webhookId":"00000000-0000-0000-0000-000000000008","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div>\n  <p><strong>Your Instagram carousel was successfully published.</strong></p>\n  <p>View the post here: <a href=\"{{ $('Check LI text post status').item.json.publicUrl }}\">Link to LinkedIn post</a></p>\n</div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"7cb49fae-e63a-4156-b0dc-03c096fd0f6c","name":"Notify: LI text post error","type":"n8n-nodes-base.microsoftTeams","position":[2976,2848],"webhookId":"00000000-0000-0000-0000-000000000009","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div>\n  <p>❌ <strong>Status: Publishing Error</strong></p>\n  <p>Your carousel could not be posted. Please upload it manually or check the source files.</p>\n  <hr>\n  <p>📂 <strong>Assets on Google Drive:</strong><br>\n  <a href=\"{{ $('Log run metadata in Google Sheets').item.json.g_drive_folder_url }}\">Click here to open the Google Drive folder</a></p>\n</div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"0327fdb2-deb4-49cb-a51d-2af335bb6f47","name":"Validate content pillars exist","type":"n8n-nodes-base.if","position":[-368,2432],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d709f990-89e9-48fa-9f4a-c427c1fdb400","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.output.topic1 }}","rightValue":""},{"id":"0f2b45cb-fcfb-40c3-b396-303ec8f89c4f","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.output.topic2 }}","rightValue":""},{"id":"76e0be5b-bc46-4b4b-95da-e56080ea842d","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.output.topic3 }}","rightValue":""},{"id":"091f3ddf-2297-4958-b8a4-b5bc1f9c6cc1","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.output.topic4 }}","rightValue":""},{"id":"4c167469-6402-487a-92dd-e7582a5b7680","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.output.topic5 }}","rightValue":""},{"id":"05bab6a0-ac45-49f4-b6a4-57d4c7aeba7c","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.output.topic1 }}","rightValue":""},{"id":"82c3c8ea-7146-4816-bd50-6deb47a1dbee","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.output.topic2 }}","rightValue":""},{"id":"49e2ed3f-e39e-4023-bf4d-18239d4f8d7b","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.output.topic3 }}","rightValue":""},{"id":"7a88a737-a1a9-41c1-b7c8-8160bdfbf21b","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.output.topic4 }}","rightValue":""},{"id":"671625dd-85e9-4a18-b254-1b8f89c82eca","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.output.topic5 }}","rightValue":""}]}},"typeVersion":2.3},{"id":"3d9f53c6-681a-4819-bd3e-8e9c9cba1f85","name":"Notify: LI carousel assets ready","type":"n8n-nodes-base.microsoftTeams","position":[2928,1888],"webhookId":"00000000-0000-0000-0000-000000000010","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div> <p>🚀 <strong>Your LinkedIn content is ready!</strong></p> <p>The carousel and the final post text have been created and saved successfully.</p> <p>🔗 <strong>Link to Google Drive folder:</strong><br> <a href=\"https://drive.google.com/drive/u/0/folders/{{ $('Create LI carousel asset folder').item.json.id }}\">Click here to open the assets</a></p> </div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"c80b1307-1452-4d52-a393-1b1b272a8d52","name":"Auto-fixing Output Parser4","type":"@n8n/n8n-nodes-langchain.outputParserAutofixing","position":[480,3840],"parameters":{"options":{}},"typeVersion":1},{"id":"de0f2a76-d889-4ca9-8b23-c7db14a24967","name":"OpenAI Chat Model8","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[352,3840],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"c03604e7-c89d-4162-a65d-96a4e65fc968","name":"OpenAI Chat Model9","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[448,4064],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-5.1","cachedResultName":"gpt-5.1"},"options":{},"builtInTools":{}},"typeVersion":1.3},{"id":"53527b7c-9344-4052-bd98-c455989e9a56","name":"Structured Output Parser4","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[624,4048],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"guiding_statement\": {\n      \"type\": \"string\",\n      \"description\": \"Strategic pillar note summarizing the post's message in one line of 15 words.\"\n    },\n    \"post\": {\n      \"type\": \"string\",\n      \"description\": \"The LinkedIn Post (max 100 words) with \\\\n for line breaks.\"\n    }\n  },\n  \"required\": [\n    \"summary\",\n    \"post\"\n  ]\n}"},"typeVersion":1.3},{"id":"a6930517-ab36-4412-8cd1-94840b436821","name":"The Linkedin Post Specialist1","type":"@n8n/n8n-nodes-langchain.agent","maxTries":5,"position":[384,3616],"parameters":{"text":"=Role: You are an experienced LinkedIn Ghostwriter.\n\nMODE: {{ $json.mode }}  // \"CREATE\" or \"REPAIR\"\n\nOUTPUT:\nReturn exclusively a valid JSON object, exactly:\n{\n  \"guiding_statement\": \"Strategic pillar note summarizing the post's message in one line of 15 words.\",\n  \"post\": \"The actual post text here...\"\n}\n\nGlobal Rules:\n- Language: Match the language of the source content. Professional, concise, clear.\n- Maximum 100 words (strict). Line breaks encoded as \\n or \\n\\n.\n- Structure in the \"post\" field:\n  1) Hook (sentence 1: provocative/question/thesis).\n  2) Body (short paragraphs, max 2 sentences, separated by \\n\\n).\n  3) Ending (conclusion or CTA).\n\n--- MODE: CREATE ---\nWhen {{ $json.mode }} == \"CREATE\":\n- Transform exclusively the SOURCE into exactly one post.\n- Do NOT use the fields under \"LAST DRAFT.\"\n\nSOURCE:\nTopic1: {{ $json.topic1 }}\nTopic2: {{ $json.topic2 }}\nTopic3: {{ $json.topic3 }}\nTopic4: {{ $json.topic4 }}\nTopic5: {{ $json.topic5 }}\n\n--- MODE: REPAIR ---\nWhen {{ $json.mode }} == \"REPAIR\":\n- STOP! Completely ignore the SOURCE.\n- Use only the LAST DRAFT + FEEDBACK.\n- Change only what was criticized.\n\nLAST DRAFT:\nPost: {{ $json.output.post }}\nGuiding statement: {{ $json.output.guiding_statement }}\n\nFEEDBACK:\n{{ $json.feedback }}","options":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":3.1},{"id":"140eeb75-43d4-4b75-a0f6-b4f8abb91cb5","name":"Update sheet: LI media post data","type":"n8n-nodes-base.googleSheets","position":[1360,3856],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","linkedin_post_text":"={{ $('The Linkedin Post Specialist1').item.json.output.post }}","linkedin_media_post_text":"={{ $('The Linkedin Post Specialist1').item.json.output.post }}","linkedin_media_post_image_text":"={{ $('The Linkedin Post Specialist1').item.json.output.guiding_statement }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":false,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_text","type":"string","display":true,"removed":false,"required":false,"displayName":"linkedin_media_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_image_text","type":"string","display":true,"removed":false,"required":false,"displayName":"linkedin_media_post_image_text","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"21b5e364-8776-4736-ba25-9b96a29da26a","name":"Review LI media post in Teams","type":"n8n-nodes-base.microsoftTeams","position":[912,3616],"webhookId":"00000000-0000-0000-0000-000000000011","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<h2>New Draft: LinkedIn Media Post</h2>\n<p>Hello! The content for the new media post has been created and is awaiting your approval.</p>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<h3>Guiding Statement (Image Text)</h3>\n<div style=\"background-color: #f0f0f0; padding: 10px; border-left: 4px solid #0078D4; margin-bottom: 15px;\">\n    <i>{{ $json.output.guiding_statement }}</i>\n</div>\n\n<h3>Post Text</h3>\n<div style=\"background-color: #f0f0f0; padding: 15px; border-left: 4px solid #0078D4; margin-bottom: 15px; white-space: pre-wrap; font-family: sans-serif;\">\n{{ $json.output.post }}\n</div>\n\n<hr style=\"border: 1px solid #ccc;\">\n\n<p><strong>Next Step:</strong></p>\n<p>Is this draft okay? Please respond with <strong>\"Approved\"</strong> to start processing.</p>","options":{},"resource":"chatMessage","operation":"sendAndWait","formFields":{"values":[{"fieldType":"radio","fieldLabel":"approved","defaultValue":"yes","fieldOptions":{"values":[{"option":"yes"},{"option":"no"}]},"requiredField":true},{"fieldLabel":"Feedback","placeholder":"What should be changed?"}]},"responseType":"customForm"},"typeVersion":2},{"id":"a50a5deb-b2c8-44e9-8c6a-97204e40170e","name":"LI Media Post Draft Approved?","type":"n8n-nodes-base.if","position":[1136,3856],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"70efc72a-2fb8-48f5-801c-3ff1bdfe2b94","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.data.approved }}","rightValue":"yes"}]}},"typeVersion":2.3},{"id":"2eb797c1-26e3-41be-9d5f-69dd8e68c3fe","name":"Adaptive Prompt Builder – LI Media Post","type":"n8n-nodes-base.code","position":[64,3856],"parameters":{"jsCode":"// Code Node (Run once for all items)\n// Configuration\nconst AGENT_NODE_NAME = 'The Linkedin Post Specialist1';\nconst FEEDBACK_NODE_NAME = 'If4';\n\n// Helper: safe getter for nested properties\nconst get = (obj, path, fallback = \"\") => {\n  try {\n    const val = path.split('.').reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);\n    return val !== undefined && val !== null ? val : fallback;\n  } catch {\n    return fallback;\n  }\n};\nconst toSafeString = v => (v === undefined || v === null ? \"\" : String(v));\n\n// Helper: get last item from a node (including IF nodes with 2 outputs)\nconst getLastItemFromNode = (nodeName) => {\n  let items = [];\n  try { items = items.concat($items(nodeName, 0) || []); } catch {}\n  try { items = items.concat($items(nodeName, 1) || []); } catch {}\n  if (!items.length) {\n    try { items = $items(nodeName) || []; } catch {}\n  }\n  return items.length ? items[items.length - 1] : null;\n};\n\n// 1) Read Sheet/Input\nconst firstItem = $input.first();\nconst inputData = firstItem?.json ?? {};\nconst data = inputData.data ?? {};\n\n// 2) Feedback: primarily from $input.first().json.data.Feedback, fallback from If4\nlet feedback = toSafeString(get(inputData, 'data.Feedback', ''));\nif (!feedback) {\n  const fbItem = getLastItemFromNode(FEEDBACK_NODE_NAME);\n  if (fbItem?.json) {\n    const fbJson = fbItem.json;\n    feedback =\n      toSafeString(get(fbJson, 'Feedback', '')) ||\n      toSafeString(get(fbJson, 'feedback', '')) ||\n      toSafeString(get(fbJson, 'data.Feedback', ''));\n  }\n}\nconst isLoop = feedback.trim() !== \"\";\n\n// 3) Retrieve previous output (post + guiding_statement) from the agent\nlet previousPost = \"\";\nlet previousGuidingStatement = \"\";\n\ntry {\n  const agentItem = getLastItemFromNode(AGENT_NODE_NAME);\n  if (agentItem?.json) {\n    const agentJson = agentItem.json;\n\n    previousPost =\n      toSafeString(get(agentJson, 'output.post', '')) ||\n      toSafeString(get(agentJson, 'post', '')) ||\n      toSafeString(get(agentJson, 'output.parameters.post', ''));\n\n    previousGuidingStatement =\n      toSafeString(get(agentJson, 'output.guiding_statement', '')) ||\n      toSafeString(get(agentJson, 'guiding_statement', '')) ||\n      toSafeString(get(agentJson, 'output.parameters.guiding_statement', ''));\n  }\n} catch { /* silently ignore */ }\n\n// 4) Build result (with mode at root level)\nlet result;\nif (isLoop) {\n  result = {\n    mode: \"REPAIR\",\n    feedback,\n    topic1: \"\",\n    topic2: \"\",\n    topic3: \"\",\n    topic4: \"\",\n    topic5: \"\",\n    output: {\n      post: previousPost,\n      guiding_statement: previousGuidingStatement,\n    },\n  };\n} else {\n  result = {\n    mode: \"CREATE\",\n    feedback: null,\n    topic1: toSafeString(get(inputData, 'topic1', get(data, 'topic1', \"\"))),\n    topic2: toSafeString(get(inputData, 'topic2', get(data, 'topic2', \"\"))),\n    topic3: toSafeString(get(inputData, 'topic3', get(data, 'topic3', \"\"))),\n    topic4: toSafeString(get(inputData, 'topic4', get(data, 'topic4', \"\"))),\n    topic5: toSafeString(get(inputData, 'topic5', get(data, 'topic5', \"\"))),\n    output: {\n      post: \"\",\n      guiding_statement: \"\",\n    },\n  };\n}\n\n// 5) Always return as items array\nreturn [{ json: result }];\n"},"typeVersion":2},{"id":"18590ca1-aa93-4969-abdb-49f66c874272","name":"Create LI media post asset folder","type":"n8n-nodes-base.googleDrive","position":[1584,3856],"parameters":{"name":"LinkedIn_image_Post_Assets","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create project subfolder').item.json.id }}"},"resource":"folder"},"typeVersion":3},{"id":"7135f451-0287-4160-8cf1-07b9628ca447","name":"Save LI media post text to Drive","type":"n8n-nodes-base.googleDrive","position":[1808,3856],"parameters":{"name":"LinkedIn_Post_Text","content":"=Image_Text:{{ $('Update sheet: LI media post data').item.json.linkedin_media_post_image_text }}\nPost_Text:{{ $('Update sheet: LI media post data').item.json.linkedin_post_text }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"createFromText"},"typeVersion":3},{"id":"058a0af7-cd00-4bbd-a747-d93c99800897","name":"Publish LI media post via Blotato","type":"@blotato/n8n-nodes-blotato.blotato","position":[2480,3888],"parameters":{"options":{},"platform":"linkedin","accountId":{"__rl":true,"mode":"list","value":"YOUR_BLOTATO_ACCOUNT_ID","cachedResultUrl":"https://backend.blotato.com/v2/accounts/YOUR_ACCOUNT_ID","cachedResultName":"Your Account Name"},"postContentText":"={{ \n  $('Update sheet: LI media post data').item.json.linkedin_post_text\n  + '\\n\\nListen to the podcast episode here: '\n  + $('Extract URLs from approval data').item.json.firstUrl\n}}\n","postContentMediaUrls":"={{ $json.download_url }}"},"typeVersion":2},{"id":"dbdb4a46-bba7-4d3a-b5ec-f6812c6407b9","name":"Check LI media post status","type":"@blotato/n8n-nodes-blotato.blotato","position":[2928,3632],"parameters":{"operation":"get","postSubmissionId":"={{ $json.postSubmissionId }}"},"typeVersion":2},{"id":"b9490a1f-960f-40a3-a34d-ec505d3caaf8","name":"Wait 20s for LI media post","type":"n8n-nodes-base.wait","position":[2704,3888],"webhookId":"00000000-0000-0000-0000-000000000013","parameters":{"amount":20},"typeVersion":1.1},{"id":"a2ee9a98-86b7-4602-91bb-53d24db6d2e2","name":"Route LI media post status","type":"n8n-nodes-base.switch","position":[3152,3872],"parameters":{"rules":{"values":[{"outputKey":"success","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"32acb818-1af6-4167-aeda-f146dadfcf67","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"published"}]},"renameOutput":true},{"outputKey":"in-progress","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6b04ba55-bdce-41ac-b85d-59b70d6520f5","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"in-progress"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"90a8f3d2-5d88-4773-90e9-1324671d8d1c","name":"Notify: LI media post published","type":"n8n-nodes-base.microsoftTeams","position":[3360,3536],"webhookId":"00000000-0000-0000-0000-000000000014","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div>\n  <p><strong>Your Instagram carousel was successfully published.</strong></p>\n  <p>View the post here: <a href=\"{{ $('Check LI media post status').item.json.publicUrl }}\">Link to LinkedIn post</a></p>\n</div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"6a290c58-5a48-4ddb-a41d-52d8b346d3b7","name":"Notify: LI media post error","type":"n8n-nodes-base.microsoftTeams","position":[3376,3984],"webhookId":"00000000-0000-0000-0000-000000000015","parameters":{"chatId":{"__rl":true,"mode":"list","value":"YOUR_TEAMS_CHAT_ID","cachedResultUrl":"https://teams.microsoft.com/l/chat/YOUR_TEAMS_CHAT_URL","cachedResultName":"Your Teams Chat"},"message":"=<div>\n  <p>❌ <strong>Status: Publishing Error</strong></p>\n  <p>Your carousel could not be posted. Please upload it manually or check the source files.</p>\n  <hr>\n  <p>📂 <strong>Assets on Google Drive:</strong><br>\n  <a href=\"{{ $('Log run metadata in Google Sheets').item.json.g_drive_folder_url }}\">Click here to open the Google Drive folder</a></p>\n</div>","options":{},"resource":"chatMessage"},"typeVersion":2},{"id":"4810ad63-3920-4296-bb8b-732cd905cb4e","name":"Generate LI media post image","type":"n8n-nodes-base.apiTemplateIo","position":[2032,3856],"parameters":{"overridesUi":{"overrideValues":[{"propertiesUi":{"propertyValues":[{"key":"text_1.text","value":"={{ $('Update sheet: LI media post data').item.json.linkedin_media_post_image_text }}"}]}}]},"imageTemplateId":"YOUR_APITEMPLATE_TEMPLATE_ID"},"typeVersion":1},{"id":"05122eb2-9f2a-4953-bd66-243dad8e5b77","name":"Download LI media post image","type":"n8n-nodes-base.httpRequest","position":[2256,3856],"parameters":{"url":"={{ $json.download_url }}","options":{}},"typeVersion":4.3},{"id":"feac5a46-6dc3-4f9c-a86f-4a9503fef035","name":"Update sheet: SM image URLs","type":"n8n-nodes-base.googleSheets","position":[4240,480],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","sm_post_url":"={{ $('Check SM carousel post status').item.json.publicUrl }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_image_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_image_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_url","type":"string","display":true,"removed":false,"required":false,"displayName":"sm_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_text_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_text_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_media_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_media_post_url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"b2d1b26d-7970-45d1-bf2b-0e8e57485508","name":"Update sheet: LI carousel hooks","type":"n8n-nodes-base.googleSheets","position":[3168,2352],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","li_carousel_post_url":"={{ $('Check LI text post status').item.json.publicUrl }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_image_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_image_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_post_url","type":"string","display":true,"removed":false,"required":false,"displayName":"li_carousel_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_text_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_text_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_media_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_media_post_url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"302446fe-526c-4bcb-82d7-db2b7cd94a93","name":"Update sheet: LI media post image data","type":"n8n-nodes-base.googleSheets","position":[3632,3552],"parameters":{"columns":{"value":{"Run":"={{ $('Log run metadata in Google Sheets').item.json.Run }}","li_media_post_url":"={{ $('Check LI media post status').item.json.publicUrl }}"},"schema":[{"id":"Run","type":"string","display":true,"removed":false,"required":false,"displayName":"Run","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_subject","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_date","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_asset_url","type":"string","display":true,"removed":true,"required":false,"displayName":"original_asset_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"mail_url","type":"string","display":true,"removed":true,"required":false,"displayName":"mail_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"g_drive_folder_url","type":"string","display":true,"removed":true,"required":false,"displayName":"g_drive_folder_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic1","type":"string","display":true,"removed":true,"required":false,"displayName":"topic1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic2","type":"string","display":true,"removed":true,"required":false,"displayName":"topic2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic3","type":"string","display":true,"removed":true,"required":false,"displayName":"topic3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic4","type":"string","display":true,"removed":true,"required":false,"displayName":"topic4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"topic5","type":"string","display":true,"removed":true,"required":false,"displayName":"topic5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text1","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text2","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text3","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text4","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_carousel_text5","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_carousel_text5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_1","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_2","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_3","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_4","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_4","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_text_5","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_text_5","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"linkedin_media_post_image_text","type":"string","display":true,"removed":true,"required":false,"displayName":"linkedin_media_post_image_text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sm_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"sm_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_carousel_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_carousel_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_text_post_url","type":"string","display":true,"removed":true,"required":false,"displayName":"li_text_post_url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"li_media_post_url","type":"string","display":true,"removed":false,"required":false,"displayName":"li_media_post_url","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Run"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEETS_DOC_ID","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOC_ID/edit?usp=drivesdk","cachedResultName":"Your_Spreadsheet"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YAlPFiJfN53UeTV7","name":"ferasdabour92"}},"typeVersion":4.7},{"id":"de690445-9267-4fa6-b583-dc268f19e7f4","name":"Upload LI media post image to Drive","type":"n8n-nodes-base.googleDrive","position":[2480,3504],"parameters":{"name":"Li_post_image","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $('Create LI media post asset folder').item.json.id }}"}},"typeVersion":3},{"id":"55e41db8-c107-4840-b91c-bb0cc2077308","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-3536,2176],"parameters":{"width":472,"height":708,"content":"## How it works\n1. **Gmail Trigger** watches for emails with a \"Content Repurposing\" subject\n2. The attachment is extracted, saved to Google Drive in a date-stamped subfolder\n3. An **AI Strategist** agent extracts 5 content pillars from the full text\n4. Content pillars are logged in Google Sheets\n5. Three parallel AI specialist branches create: (a) IG/YT carousel + caption, (b) LinkedIn carousel, (c) LinkedIn text post, (d) LinkedIn media post\n6. Each branch sends a draft to Microsoft Teams for human review (approve / reject with a feedback loop)\n7. On approval: images are generated via APITemplate.io, assets saved to Google Drive, and posts published via Blotato\n\n## Setup steps\n1. Import the workflow and install the community nodes: `@blotato/n8n-nodes-blotato`, `n8n-nodes-htmlcsstopdf` (self-hosted n8n only)\n2. Configure all required credentials: Gmail OAuth2, Google Drive OAuth2, Google Sheets OAuth2, OpenAI API, Microsoft Teams OAuth2, APITemplate.io API, Blotato API, HTML-to-PDF API\n3. Set your Google Drive folder IDs, Google Sheets document ID, and APITemplate.io template IDs in the relevant nodes\n4. Update the Microsoft Teams channel / chat IDs for approval notifications\n5. Customize the AI agent prompts if needed, then activate the workflow"},"typeVersion":1},{"id":"6a04b643-1916-4d80-9e4d-e6ee3788ec65","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-960,2208],"parameters":{"color":7,"width":912,"height":864,"content":"## Story Teller Agent – The Repurpose Strategist\n> The core AI agent. Takes the full extracted text and distills it into 5 Content Pillars — each with a hook headline, deep-dive summary, viral factor, and key quote. Uses a Structured Output Parser with Auto-fixing to guarantee valid JSON. An If-node validates that all 5 themes are populated; if not, the agent retries automatically. The output feeds all four downstream content branches in parallel."},"typeVersion":1},{"id":"3d56ffe4-cf89-4124-a9f4-323bcbfb7440","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[0,0],"parameters":{"color":7,"width":4480,"height":1152,"content":"## Instagram Assets : Carousels \n> The IG/YT Specialist agent writes a caption and 5 carousel slide texts. An Adaptive Prompt Builder (JS node) switches between CREATE mode (first run, using Content Pillars as source) and REPAIR mode (revision loop, applying user feedback to the previous draft). After Teams approval, APITemplate.io generates 5 carousel images, which are downloaded, uploaded to Drive, merged, and published to Instagram via Blotato. A Switch node tracks publishing status and sends success/error notifications back to Teams."},"typeVersion":1},{"id":"1c94a0b2-4c37-4d41-82e1-68b2ace99391","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-16,1232],"parameters":{"color":7,"width":4512,"height":848,"content":"## Linkedin Assets : Carousels \n> The LinkedIn Carousel Specialist agent creates a companion post text plus 5 hook-headlines (2 words each) and 5 slide body texts (max 40 words). Same Adaptive Prompt Builder pattern for the feedback loop. After approval, the content is rendered into a multi-page HTML carousel, converted to PDF via HTML-to-PDF, uploaded to Drive, and published to LinkedIn via Blotato with status tracking."},"typeVersion":1},{"id":"42ed6569-fb75-4280-9170-1994dd469edd","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[0,2176],"parameters":{"color":7,"width":3344,"height":880,"content":"## Linkedin Assets : Text-Post \n> The LinkedIn Post Specialist agent writes a standalone text post (~100 words, hook-body-CTA structure). The Adaptive Prompt Builder handles CREATE vs. REPAIR mode. After Teams approval, the post text is saved as a Google Doc in Drive, published to LinkedIn via Blotato, and the public URL is logged back into the Google Sheet. Status notifications via Teams."},"typeVersion":1},{"id":"8487f3e4-c1bb-4b64-bcd9-e68ca1d4fcf8","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-16,3440],"parameters":{"color":7,"width":3840,"height":768,"content":"## Linkedin Assets : Media-Post\n> The LinkedIn Media Post Specialist agent writes a \"guiding statement\" and a media post text. Same feedback loop pattern via Adaptive Prompt Builder. After approval, an image is generated via APITemplate.io, uploaded to Drive alongside the post text, published to LinkedIn via Blotato, and status is tracked with Teams notifications. The public post URL is logged in the Sheet."},"typeVersion":1},{"id":"714ac71b-6635-4cbd-9466-81dac1092c40","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-2672,2176],"parameters":{"color":7,"width":1680,"height":864,"content":"## Trigger and documentation\n> Trigger the workflow and add new drive folder & g-sheet for the documentation of your social media assets"},"typeVersion":1}],"active":false,"pinData":{"Gmail Trigger":[{"json":{"id":"SAMPLE_GMAIL_MSG_ID","to":{"html":"<span class=\"mp_address_group\"><span class=\"mp_address_name\">Your Account Name</span> &lt;<a href=\"mailto:your-email@example.com\" class=\"mp_address_email\">your-email@example.com</a>&gt;</span>","text":"\"Your Account Name\" <your-email@example.com>","value":[{"name":"Your Account Name","address":"your-email@example.com"}]},"date":"2026-01-15T13:26:06.000Z","from":{"html":"<span class=\"mp_address_group\"><span class=\"mp_address_name\">Your Account Name</span> &lt;<a href=\"mailto:your-email@example.com\" class=\"mp_address_email\">your-email@example.com</a>&gt;</span>","text":"\"Your Account Name\" <your-email@example.com>","value":[{"name":"Your Account Name","address":"your-email@example.com"}]},"html":"<div dir=\"ltr\"><br><br><div class=\"gmail_quote gmail_quote_container\"><div dir=\"ltr\" class=\"gmail_attr\">---------- Forwarded message ---------<br>From: <strong class=\"gmail_sendername\" dir=\"auto\">Your Name</strong> <span dir=\"auto\">&lt;<a href=\"mailto:your-email-2@example.com\">your-email-2@example.com</a>&gt;</span><br>Date: Wed, Jan 14, 2026 at 6:43 PM<br>Subject: Fwd: content repurposing<br>To: Your Account Name &lt;<a href=\"mailto:your-email@example.com\">your-email@example.com</a>&gt;<br></div><br><br><div dir=\"ltr\"><div id=\"m_0000000000000000000gmail-:1ek\" style=\"direction:ltr;margin:8px 0px 0px;padding:0px;font-size:0.875rem;overflow-x:hidden;font-family:&quot;Google Sans&quot;,Roboto,RobotoDraft,Helvetica,Arial,sans-serif\"><div id=\"m_0000000000000000000gmail-:1ej\" style=\"direction:ltr;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:small;line-height:1.5;font-family:Arial,Helvetica,sans-serif;overflow:auto hidden\"><div id=\"m_0000000000000000000gmail-avWBGd-17\"><div dir=\"ltr\">link to podcast: <a href=\"https://open.spotify.com/episode/YOUR_EPISODE_ID\" target=\"_blank\">https://open.spotify.com/episode/YOUR_EPISODE_ID</a></div><div></div><div></div></div></div></div><div id=\"m_0000000000000000000gmail-:1ev\" style=\"font-size:0.875rem;margin:15px 0px;clear:both;font-family:&quot;Google Sans&quot;,Roboto,RobotoDraft,Helvetica,Arial,sans-serif\"><br></div><br><div class=\"gmail_quote\"><div dir=\"ltr\" class=\"gmail_attr\">---------- Forwarded message ---------<br>From: <strong class=\"gmail_sendername\" dir=\"auto\">Your Name</strong> <span dir=\"auto\">&lt;<a href=\"mailto:your-email-2@example.com\" target=\"_blank\">your-email-2@example.com</a>&gt;</span><br>Date: Wed, 14 Jan 2026 at 18:42<br>Subject: content repurposing<br>To: Your Account Name &lt;<a href=\"mailto:your-email@example.com\" target=\"_blank\">your-email@example.com</a>&gt;<br></div><br><br><div dir=\"ltr\"><br></div>\n</div></div>\n</div></div>\n","text":"---------- Forwarded message ---------\nFrom: Your Account Name <your-email-2@example.com>\nDate: Wed, Jan 14, 2026 at 6:43 PM\nSubject: Fwd: content repurposing\nTo: Your Account Name <your-email@example.com>\n\n\nlink to podcast: https://open.spotify.com/episode/YOUR_EPISODE_ID\n\n\n---------- Forwarded message ---------\nFrom: Your Account Name <your-email-2@example.com>\nDate: Wed, 14 Jan 2026 at 18:42\nSubject: content repurposing\nTo: Your Account Name <your-email@example.com>\n","headers":{"to":"To: Your Account Name <your-email@example.com>","date":"Date: Thu, 15 Jan 2026 14:26:06 +0100","from":"From: Your Account Name <your-email@example.com>","subject":"Subject: Fwd: content repurposing","message-id":"Message-ID: <SAMPLE_MESSAGE_ID@mail.gmail.com>","references":"References: <SAMPLE_REFERENCE_1@mail.gmail.com>\r\n\t<SAMPLE_REFERENCE_2@mail.gmail.com>","in-reply-to":"In-Reply-To: <SAMPLE_REFERENCE_2@mail.gmail.com>","content-type":"Content-Type: multipart/mixed; boundary=\"000000000000000000000000000\"","mime-version":"MIME-Version: 1.0"},"subject":"Fwd: content repurposing","labelIds":["UNREAD","IMPORTANT","SENT","INBOX"],"threadId":"SAMPLE_GMAIL_THREAD_ID","inReplyTo":"<SAMPLE_REFERENCE_2@mail.gmail.com>","messageId":"<SAMPLE_MESSAGE_ID@mail.gmail.com>","references":["<SAMPLE_REFERENCE_1@mail.gmail.com>","<SAMPLE_REFERENCE_2@mail.gmail.com>"],"textAsHtml":"<p>---------- Forwarded message ---------<br/>From: Your Account Name &lt;<a href=\"mailto:your-email-2@example.com\">your-email-2@example.com</a>&gt;<br/>Date: Wed, Jan 14, 2026 at 6:43&#x202F;PM<br/>Subject: Fwd: content repurposing<br/>To: Your Account Name &lt;<a href=\"mailto:your-email@example.com\">your-email@example.com</a>&gt;</p><p>link to podcast: <a href=\"https://open.spotify.com/episode/YOUR_EPISODE_ID\">https://open.spotify.com/episode/YOUR_EPISODE_ID</a></p><p>---------- Forwarded message ---------<br/>From: Your Account Name &lt;<a href=\"mailto:your-email-2@example.com\">your-email-2@example.com</a>&gt;<br/>Date: Wed, 14 Jan 2026 at 18:42<br/>Subject: content repurposing<br/>To: Your Account Name &lt;<a href=\"mailto:your-email@example.com\">your-email@example.com</a>&gt;</p>","sizeEstimate":77172},"pairedItem":{"item":0}}],"The Repurpose Strategist":[{"json":{"output":{"topic1":"TOPIC #1: [Sample Hook Headline for Pillar 1]\n\nCore Insight (Deep Dive):\n[This is sample output. The real agent generates a detailed 3-7 sentence deep dive based on your source content, explaining the core argument and its practical relevance.]\n\nType of Input:\nMindset shift + provocative thesis\n\nConnection to the narrative thread:\n[Explains why this is the ideal opening for the story arc and how it sets up Pillar 2.]\n\nWhy this could go viral:\n[1-2 sentences on emotional resonance and shareability.]\n\nRelevant quote/excerpt:\n[Direct quote from source text, or paraphrased summary if none available.]","topic2":"TOPIC #2: [Sample Hook Headline for Pillar 2]\n\nCore Insight (Deep Dive):\n[Sample deep dive for the second pillar, building on the foundation laid by Pillar 1.]\n\nType of Input:\nFramework / step-by-step logic\n\nConnection to the narrative thread:\n[Connects to Pillar 1 and prepares Pillar 3.]\n\nWhy this could go viral:\n[Virality factor explanation.]\n\nRelevant quote/excerpt:\n[Relevant quote from source.]","topic3":"TOPIC #3: [Sample Hook Headline for Pillar 3]\n\nCore Insight (Deep Dive):\n[Sample deep dive for the third pillar, shifting perspective or introducing a tactical element.]\n\nType of Input:\nMyth vs. reality\n\nConnection to the narrative thread:\n[Connects to Pillar 2 and prepares Pillar 4.]\n\nWhy this could go viral:\n[Virality factor explanation.]\n\nRelevant quote/excerpt:\n[Relevant quote from source.]","topic4":"TOPIC #4: [Sample Hook Headline for Pillar 4]\n\nCore Insight (Deep Dive):\n[Sample deep dive for the fourth pillar, delivering proof points or measurable results.]\n\nType of Input:\nCase study / practical example\n\nConnection to the narrative thread:\n[Connects to Pillar 3 and prepares the closing Pillar 5.]\n\nWhy this could go viral:\n[Virality factor explanation.]\n\nRelevant quote/excerpt:\n[Relevant quote from source.]","topic5":"TOPIC #5: [Sample Hook Headline for Pillar 5]\n\nCore Insight (Deep Dive):\n[Sample deep dive for the fifth and final pillar, delivering the conclusion and forward-looking vision.]\n\nType of Input:\nFuture thesis + visionary outlook\n\nConnection to the narrative thread:\n[Closes the narrative arc started in Pillar 1, delivers the key takeaway.]\n\nWhy this could go viral:\n[Virality factor explanation.]\n\nRelevant quote/excerpt:\n[Relevant quote from source.]","summary":"[SAMPLE] This is a placeholder summary. The agent analyzed the source transcript and identified five content pillars that form a coherent narrative arc from problem to solution."}},"pairedItem":{"item":0}}]},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"da27852d-f190-4524-bcb0-f85f9528b255","connections":{"HTML to PDF":{"main":[[{"node":"Upload LI carousel PDF","type":"main","index":0}]]},"Gmail Trigger":{"main":[[{"node":"Download Email Attachments","type":"main","index":0}]]},"Simple Memory":{"ai_memory":[[{"node":"The IG/YT Specialist","type":"ai_memory","index":0}]]},"Extract from File":{"main":[[{"node":"Save original content to Drive","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"The Repurpose Strategist","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model2":{"ai_languageModel":[[{"node":"The IG/YT Specialist","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model3":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser1","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model4":{"ai_languageModel":[[{"node":"The Linkedin Carousel Specialist","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model5":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser2","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model6":{"ai_languageModel":[[{"node":"The Linkedin Post Specialist","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model7":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser3","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model8":{"ai_languageModel":[[{"node":"The Linkedin Post Specialist1","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model9":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser4","type":"ai_languageModel","index":0}]]},"Generate SM slide 1":{"main":[[{"node":"Download carousel image 1","type":"main","index":0}]]},"Generate SM slide 2":{"main":[[{"node":"Download carousel image 2","type":"main","index":0}]]},"Generate SM slide 3":{"main":[[{"node":"Download carousel image 3","type":"main","index":0}]]},"Generate SM slide 4":{"main":[[{"node":"Download carousel image 4","type":"main","index":0}]]},"Generate SM slide 5":{"main":[[{"node":"Download carousel image 5","type":"main","index":0}]]},"The IG/YT Specialist":{"main":[[{"node":"Review SM carousel in Teams","type":"main","index":0}]]},"IG/YT Draft Approved?":{"main":[[{"node":"Create SM asset folder","type":"main","index":0}],[{"node":"Adaptive Prompt Builder – IG/YT","type":"main","index":0}]]},"Create SM asset folder":{"main":[[{"node":"Update sheet: SM carousel data","type":"main","index":0}]]},"Upload LI carousel PDF":{"main":[[{"node":"Create LI carousel asset folder","type":"main","index":0}]]},"Create project subfolder":{"main":[[{"node":"Move original to project folder","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser","type":"ai_outputParser","index":0}]]},"The Repurpose Strategist":{"main":[[{"node":"Validate content pillars exist","type":"main","index":0}]]},"Wait 30s for SM carousel":{"main":[[{"node":"Check SM carousel post status","type":"main","index":0}]]},"Auto-fixing Output Parser":{"ai_outputParser":[[{"node":"The Repurpose Strategist","type":"ai_outputParser","index":0}]]},"Check LI text post status":{"main":[[{"node":"Route LI text post status","type":"main","index":0}]]},"Download carousel image 1":{"main":[[{"node":"Upload SM image 1 to Drive","type":"main","index":0}]]},"Download carousel image 2":{"main":[[{"node":"Upload SM image 2 to Drive","type":"main","index":0}]]},"Download carousel image 3":{"main":[[{"node":"Upload SM image 3 to Drive","type":"main","index":0}]]},"Download carousel image 4":{"main":[[{"node":"Upload SM image 4 to Drive","type":"main","index":0}]]},"Download carousel image 5":{"main":[[{"node":"Upload SM image 5 to Drive","type":"main","index":0}]]},"Route LI text post status":{"main":[[{"node":"Notify: LI text post published","type":"main","index":0}],[{"node":"Wait 40s for LI text post","type":"main","index":0}],[{"node":"Notify: LI text post error","type":"main","index":0}]]},"Structured Output Parser1":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser1","type":"ai_outputParser","index":0}]]},"Structured Output Parser2":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser2","type":"ai_outputParser","index":0}]]},"Structured Output Parser3":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser3","type":"ai_outputParser","index":0}]]},"Structured Output Parser4":{"ai_outputParser":[[{"node":"Auto-fixing Output Parser4","type":"ai_outputParser","index":0}]]},"Wait 40s for LI text post":{"main":[[{"node":"Check LI text post status","type":"main","index":0}]]},"Auto-fixing Output Parser1":{"ai_outputParser":[[{"node":"The IG/YT Specialist","type":"ai_outputParser","index":0}]]},"Auto-fixing Output Parser2":{"ai_outputParser":[[{"node":"The Linkedin Carousel Specialist","type":"ai_outputParser","index":0}]]},"Auto-fixing Output Parser3":{"ai_outputParser":[[{"node":"The Linkedin Post Specialist","type":"ai_outputParser","index":0}]]},"Auto-fixing Output Parser4":{"ai_outputParser":[[{"node":"The Linkedin Post Specialist1","type":"ai_outputParser","index":0}]]},"Check LI media post status":{"main":[[{"node":"Route LI media post status","type":"main","index":0}]]},"Download Email Attachments":{"main":[[{"node":"Extract from File","type":"main","index":0}]]},"OpenAI Chat Model (parser)":{"ai_languageModel":[[{"node":"Auto-fixing Output Parser","type":"ai_languageModel","index":0}]]},"Route LI media post status":{"main":[[{"node":"Notify: LI media post published","type":"main","index":0}],[{"node":"Wait 20s for LI media post","type":"main","index":0}],[{"node":"Notify: LI media post error","type":"main","index":0}]]},"Save LI text post to Drive":{"main":[[{"node":"Publish LI text post via Blotato","type":"main","index":0}]]},"Upload SM image 1 to Drive":{"main":[[{"node":"Merge all SM carousel images","type":"main","index":0}]]},"Upload SM image 2 to Drive":{"main":[[{"node":"Merge all SM carousel images","type":"main","index":1}]]},"Upload SM image 3 to Drive":{"main":[[{"node":"Merge all SM carousel images","type":"main","index":2}]]},"Upload SM image 4 to Drive":{"main":[[{"node":"Merge all SM carousel images","type":"main","index":3}]]},"Upload SM image 5 to Drive":{"main":[[{"node":"Merge all SM carousel images","type":"main","index":4}]]},"Wait 20s for LI media post":{"main":[[{"node":"Check LI media post status","type":"main","index":0}]]},"LI Carousel Draft Approved?":{"main":[[{"node":"Update sheet: LI carousel data","type":"main","index":0}],[{"node":"Adaptive Prompt Builder – LI Carousel","type":"main","index":0}]]},"Review LI carousel in Teams":{"main":[[{"node":"LI Carousel Draft Approved?","type":"main","index":0}]]},"Review SM carousel in Teams":{"main":[[{"node":"IG/YT Draft Approved?","type":"main","index":0}]]},"Download LI media post image":{"main":[[{"node":"Publish LI media post via Blotato","type":"main","index":0},{"node":"Upload LI media post image to Drive","type":"main","index":0}]]},"Generate LI media post image":{"main":[[{"node":"Download LI media post image","type":"main","index":0}]]},"LI Text Post Draft Approved?":{"main":[[{"node":"Update sheet: LI text post data","type":"main","index":0}],[{"node":"Adaptive Prompt Builder – LI Text Post","type":"main","index":0}]]},"Merge all SM carousel images":{"main":[[{"node":"Collect SM image URLs for publishing","type":"main","index":0}]]},"Review LI text post in Teams":{"main":[[{"node":"LI Text Post Draft Approved?","type":"main","index":0}]]},"The Linkedin Post Specialist":{"main":[[{"node":"Review LI text post in Teams","type":"main","index":0}]]},"Check SM carousel post status":{"main":[[{"node":"Route SM carousel post status","type":"main","index":0}]]},"LI Media Post Draft Approved?":{"main":[[{"node":"Update sheet: LI media post data","type":"main","index":0}],[{"node":"Adaptive Prompt Builder – LI Media Post","type":"main","index":0}]]},"Notify: SM carousel published":{"main":[[{"node":"Update sheet: SM image URLs","type":"main","index":0}]]},"Review LI media post in Teams":{"main":[[{"node":"LI Media Post Draft Approved?","type":"main","index":0}]]},"Route SM carousel post status":{"main":[[{"node":"Notify: SM carousel published","type":"main","index":0}],[{"node":"Wait 30s for SM carousel","type":"main","index":0}],[{"node":"Notify: SM carousel publish error","type":"main","index":0}]]},"The Linkedin Post Specialist1":{"main":[[{"node":"Review LI media post in Teams","type":"main","index":0}]]},"Update sheet: content pillars":{"main":[[{"node":"Adaptive Prompt Builder – LI Media Post","type":"main","index":0},{"node":"Adaptive Prompt Builder – LI Text Post","type":"main","index":0},{"node":"Adaptive Prompt Builder – LI Carousel","type":"main","index":0},{"node":"Adaptive Prompt Builder – IG/YT","type":"main","index":0}]]},"Move LI carousel PDF to folder":{"main":[[{"node":"Save LI carousel caption to Drive","type":"main","index":0}]]},"Notify: LI text post published":{"main":[[{"node":"Update sheet: LI carousel hooks","type":"main","index":0}]]},"Save original content to Drive":{"main":[[{"node":"Create project subfolder","type":"main","index":0}]]},"Update sheet: LI carousel data":{"main":[[{"node":"HTML to PDF","type":"main","index":0}]]},"Update sheet: SM carousel data":{"main":[[{"node":"Generate SM slide 1","type":"main","index":0},{"node":"Generate SM slide 3","type":"main","index":0},{"node":"Generate SM slide 4","type":"main","index":0},{"node":"Generate SM slide 5","type":"main","index":0},{"node":"Generate SM slide 2","type":"main","index":0}]]},"Validate content pillars exist":{"main":[[{"node":"Update sheet: content pillars","type":"main","index":0}],[{"node":"The Repurpose Strategist","type":"main","index":0}]]},"Create LI carousel asset folder":{"main":[[{"node":"Move LI carousel PDF to folder","type":"main","index":0}]]},"Extract URLs from approval data":{"main":[[{"node":"Log run metadata in Google Sheets","type":"main","index":0}]]},"Move original to project folder":{"main":[[{"node":"Extract URLs from approval data","type":"main","index":0}]]},"Notify: LI media post published":{"main":[[{"node":"Update sheet: LI media post image data","type":"main","index":0}]]},"Publish SM carousel via Blotato":{"main":[[{"node":"Wait 30s for SM carousel","type":"main","index":0}]]},"Update sheet: LI text post data":{"main":[[{"node":"Create LI text post asset folder","type":"main","index":0}]]},"Create LI text post asset folder":{"main":[[{"node":"Save LI text post to Drive","type":"main","index":0}]]},"Publish LI text post via Blotato":{"main":[[{"node":"Wait 40s for LI text post","type":"main","index":0}]]},"Save LI media post text to Drive":{"main":[[{"node":"Generate LI media post image","type":"main","index":0}]]},"The Linkedin Carousel Specialist":{"main":[[{"node":"Review LI carousel in Teams","type":"main","index":0}]]},"Update sheet: LI media post data":{"main":[[{"node":"Create LI media post asset folder","type":"main","index":0}]]},"Adaptive Prompt Builder – IG/YT":{"main":[[{"node":"The IG/YT Specialist","type":"main","index":0}]]},"Create LI media post asset folder":{"main":[[{"node":"Save LI media post text to Drive","type":"main","index":0}]]},"Log run metadata in Google Sheets":{"main":[[{"node":"The Repurpose Strategist","type":"main","index":0}]]},"Publish LI media post via Blotato":{"main":[[{"node":"Wait 20s for LI media post","type":"main","index":0}]]},"Save LI carousel caption to Drive":{"main":[[{"node":"Notify: LI carousel assets ready","type":"main","index":0}]]},"Collect SM image URLs for publishing":{"main":[[{"node":"Save SM post text to Drive","type":"main","index":0},{"node":"Publish SM carousel via Blotato","type":"main","index":0}]]},"Adaptive Prompt Builder – LI Carousel":{"main":[[{"node":"The Linkedin Carousel Specialist","type":"main","index":0}]]},"Adaptive Prompt Builder – LI Text Post":{"main":[[{"node":"The Linkedin Post Specialist","type":"main","index":0}]]},"Adaptive Prompt Builder – LI Media Post":{"main":[[{"node":"The Linkedin Post Specialist1","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":112,"nodeTypes":{"n8n-nodes-base.if":{"count":5},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":5},"n8n-nodes-base.wait":{"count":3},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":3},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.googleDrive":{"count":19},"n8n-nodes-base.httpRequest":{"count":6},"n8n-nodes-base.gmailTrigger":{"count":1},"n8n-nodes-base.googleSheets":{"count":9},"n8n-nodes-base.apiTemplateIo":{"count":6},"n8n-nodes-base.microsoftTeams":{"count":11},"@n8n/n8n-nodes-langchain.agent":{"count":5},"n8n-nodes-base.extractFromFile":{"count":1},"@blotato/n8n-nodes-blotato.blotato":{"count":6},"n8n-nodes-htmlcsstopdf.htmlcsstopdf":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":10},"@n8n/n8n-nodes-langchain.memoryBufferWindow":{"count":1},"@n8n/n8n-nodes-langchain.outputParserAutofixing":{"count":5},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":5}}},"status":"published","readyToDemo":null,"user":{"name":"Feras Dabour","username":"ferasdabour","bio":"","verified":true,"links":["https://www.linkedin.com/in/ferasdabour/"],"avatar":"https://gravatar.com/avatar/315bf48ed72eaa70cb84b9c47a1cd9ec3249a9761420e236272c4e53dabd8629?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":58,"icon":"file:googleDrive.svg","name":"n8n-nodes-base.googleDrive","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Drive"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Google Drive","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":368,"icon":"file:teams.svg","name":"n8n-nodes-base.microsoftTeams","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.microsoftteams/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/microsoft/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"input\"]","defaults":{"name":"Microsoft Teams"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMzgxLjQgMjM1NC41Ij48cGF0aCBmaWxsPSIjNTU1OGFmIiBkPSJNMjAxNS42IDg5OS4yYzE5LjUgMTkuNSA0Mi41IDM1IDY3LjkgNDUuOCA1MyAyMi4yIDExMi43IDIyLjIgMTY1LjggMCA1MS4yLTIxLjggOTItNjIuNSAxMTMuNy0xMTMuNyAyMi4yLTUzIDIyLjItMTEyLjcgMC0xNjUuOC0yMS44LTUxLjItNjIuNS05Mi0xMTMuNy0xMTMuNy01My0yMi4yLTExMi43LTIyLjItMTY1LjggMC01MS4yIDIxLjgtOTIgNjIuNS0xMTMuNyAxMTMuNy0yMi4yIDUzLTIyLjIgMTEyLjcgMCAxNjUuOCAxMC44IDI1LjMgMjYuNCA0OC40IDQ1LjggNjcuOW0tNjIuNCAxOTcuOHY2NDIuMWgxMDdjMzYuOC0uMiA3My40LTMuNiAxMDkuNS0xMC40IDM2LjMtNi40IDcxLjMtMTguNiAxMDMuNy0zNi4yIDMwLjYtMTYuNiA1Ny00MCA3Ny4zLTY4LjIgMjEuMy0zMS4zIDMyLTY4LjYgMzAuNS0xMDYuNVYxMDk3em0tMzQ2LjgtMjY5LjJjMjguNC4yIDU2LjYtNS41IDgyLjgtMTYuNyA1MS4yLTIxLjggOTEuOS02Mi41IDExMy42LTExMy43IDIyLjItNTMgMjIuMi0xMTIuNy0uMS0xNjUuOC0yMS44LTUxLjItNjIuNS05Mi0xMTMuNy0xMTMuNy0yNi4yLTExLjItNTQuNC0xNi45LTgyLjktMTYuNy0yOC4zLS4yLTU2LjMgNS41LTgyLjMgMTYuNy0xOS40IDguMy0yNS41IDE5LjEtNTIuMiAzMi4xdjMyOWMyNi44IDEzLjEgMzIuOCAyMy44IDUyLjIgMzIuMSAyNi4xIDExLjMgNTQuMiAxNi45IDgyLjYgMTYuN20tMTM0LjggMTA4MS4xYzI2LjggNS44IDM2LjQgMTAuMyA1NS40IDEyLjkgMjAuOCAzIDQxLjggNC41IDYyLjggNC42IDMyLjQtLjIgNjQuOC0zLjYgOTYuNS0xMC40IDMyLjMtNi41IDYzLjMtMTguNiA5MS41LTM1LjcgMjcuNy0xNyA1MS00MC4yIDY4LjItNjcuNyAxOS0zMi4xIDI4LjMtNjkuMSAyNi45LTEwNi40di03NDNoLTQwMS4zek0wIDIxMTMuN2wxMzkxLjMgMjQwLjhWMEwwIDI0MC44eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0xMDE2LjcgNzIyLjQtNjQyLjEgMzkuMXYxNDguMWwyNDAuOC05Ljd2Njg2LjdsMTYwLjUgOS40Vjg5My42bDI0MC44LTEwLjd6Ii8+PC9zdmc+"},"displayName":"Microsoft Teams","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":461,"icon":"file:apiTemplateIo.svg","name":"n8n-nodes-base.apiTemplateIo","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.apitemplateio/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/apitemplateio/"}]},"categories":["Marketing"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"transform\"]","defaults":{"name":"APITemplate.io"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgdmlld0JveD0iMCAwIDIzLjE2NyAyMS4xNjciPjxwYXRoIGZpbGw9IiM5MWJjZTUiIGQ9Ik0xOC42MTEuNTA0IDMuNDczIDExLjI0bDQuNTk3IDIuMjEzIDEuMDY2IDMuODgzIDMuMTcxLTIuMjI2IDIuODAyLjk1MXoiLz48cGF0aCBmaWxsPSIjMWYyMTJiIiBkPSJNOS4xNzIgMTcuNTk3YS4yNjQuMjY0IDAgMCAxLS4yOS0uMTkybC0xLjAzNS0zLjc2Ny00LjQ4OC0yLjE2YS4yNjUuMjY1IDAgMCAxLS4wMzktLjQ1NEwxOC40NTguMjg4YS4yNjQuMjY0IDAgMCAxIC40MS4yNzRsLTMuNSAxNS41NTZhLjI2NS4yNjUgMCAwIDEtLjM0NC4xOTNsLTIuNjc0LS45MDgtMy4wNjEgMi4xNWEuMy4zIDAgMCAxLS4xMTcuMDQ0bS01LjE4LTYuNDAxIDQuMTkzIDIuMDE3Yy4wNjkuMDM0LjEyLjA5NS4xNC4xNjlsLjk2NyAzLjUyIDIuODYzLTIuMDFhLjI3LjI3IDAgMCAxIC4yMzctLjAzM2wyLjUyNC44NTZMMTguMiAxLjExOXoiLz48cGF0aCBmaWxsPSIjM2E4NGMxIiBkPSJtOS4zMzkgMTcuMDc5Ljk0Ni0yLjkxM0wxOC42NDIuNzI4IDguMjI2IDEzLjIzNXoiLz48cGF0aCBmaWxsPSIjMWYyMTJiIiBkPSJNOS4zNTYgMTcuMjFhLjEzMi4xMzIgMCAwIDEtLjE0My0uMTcybC45NDYtMi45MTMuMDE0LS4wMyA3LjM5My0xMS44ODgtOS40MTkgMTEuMTU2YS4xMzMuMTMzIDAgMCAxLS4yMDItLjE3MUwxOC41NC42NDJhLjEzMi4xMzIgMCAwIDEgLjIxNC4xNTZsLTguMzQ4IDEzLjQyNC0uOTQxIDIuODk4YS4xMy4xMyAwIDAgMS0uMTA5LjA5bS0zLjIxNSAxLjA0NWMtMS4xNjguMDI5LTIuMzAzLS4zNzMtMy4wNjctMS4yODctLjQ4NS0uNTgtLjY4My0xLjU3NC4yNzUtMS43MDUuODU5LS4xMTkgMS4yMjkuNDg1IDEuNDggMS4xOTYuODA0IDIuMDI2LjE2IDIuOTM4LTEuNjggNC4yNzItLjE0NC4wOS4wMTUuMjk2LjE1OS4yMDYgMS4yMTgtMSAxLjgyOS0xLjQ2NiAyLjEtMi40NDguMTM0LTEuMzYtLjQwMi0zLjA5MS0xLjM4NC0zLjQzNi0xLjEyLS4zODItMi4wNjMuNTE2LTEuNDk5IDEuNTg1LjY5OSAxLjMyNCAyLjIzIDEuOTE0IDMuNjUyIDEuODc4LjE3LS4wMDQuMTMzLS4yNjYtLjAzNi0uMjYxIi8+PHBhdGggZmlsbD0iIzFmMjEyYiIgZD0iTTcuMjM1IDE4LjE0YTE1IDE1IDAgMCAxLS43NTkuMDljLS4xNy4wMTctLjEzMy4yNzkuMDM2LjI2Mi4yNTMtLjAyNS41MDctLjA1Mi43NTgtLjA5LjE2OS0uMDI2LjEzMy0uMjg4LS4wMzUtLjI2Mm0xLjE5NC0uNTA0YTkgOSAwIDAgMS0uODY1LjM0NGMtLjE2Mi4wNTQtLjA1Ny4yOTcuMTA0LjI0M2E4IDggMCAwIDAgLjg2NS0uMzQ0Yy4xNTQtLjA3MS4wNS0uMzE1LS4xMDQtLjI0MyIvPjxwYXRoIGQ9Ik0xMi41OTkgMTUuMjJhLjEzLjEzIDAgMCAxLS4wNy0uMDFsLTIuMTY4LS45MjRhLjEzMy4xMzMgMCAwIDEgLjEwMy0uMjQzbDIuMTY5LjkyM2EuMTMzLjEzMyAwIDAgMS0uMDM0LjI1M3oiLz48L3N2Zz4="},"displayName":"APITemplate.io","typeVersion":1,"nodeCategories":[{"id":27,"name":"Marketing"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":824,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmailTrigger","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Gmail Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1163,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.memoryBufferWindow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Memory"],"Memory":["For beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Memory"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Memory","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1175,"icon":"fa:tools","name":"@n8n/n8n-nodes-langchain.outputParserAutofixing","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Auto-fixing Output Parser"},"iconData":{"icon":"tools","type":"icon"},"displayName":"Auto-fixing Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1235,"icon":"file:extractFromFile.svg","name":"n8n-nodes-base.extractFromFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","decode","decoding","Move Binary Data","Binary","File","PDF","JSON","HTML","ICS","iCal","txt","Text","RTF","XML","64","Base64","Convert"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.extractfromfile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Extract from File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuOTM3NSAyQzAuNDE5NzMzIDIgMCAyLjQxOTczIDAgMi45Mzc1VjM3LjMyMjFDMCAzNy44Mzk5IDAuNDE5NzMzIDM4LjI1OTYgMC45Mzc1IDM4LjI1OTZIMjYuMjE1NEMyNi43MzMyIDM4LjI1OTYgMjcuMTUyOSAzNy44Mzk5IDI3LjE1MjkgMzcuMzIyMUwyNy4xNTI5IDMwLjY3MTlMMTYuNzk2OSAzMC42NzE5QzE0Ljg5ODQgMzAuNjcxOSAxMy4zNTk0IDI5LjEzMjkgMTMuMzU5NCAyNy4yMzQ0VjI1LjM1OTRDMTMuMzU5NCAyMy40NjA5IDE0Ljg5ODQgMjEuOTIxOSAxNi43OTY5IDIxLjkyMTlIMjcuMTUyOUwyNy4xNTI5IDE1Ljc4MjFIMTQuMzA4M0MxMy43OTA2IDE1Ljc4MjEgMTMuMzcwOCAxNS4zNjI0IDEzLjM3MDggMTQuODQ0NlYySDAuOTM3NVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTE2LjAyNzEgMkMxNS45NDA4IDIgMTUuODcwOCAyLjA2OTk2IDE1Ljg3MDggMi4xNTYyNVYxMi44MTM0QzE1Ljg3MDggMTMuMDcyMyAxNi4wODA3IDEzLjI4MjEgMTYuMzM5NiAxMy4yODIxSDI2Ljk5NjdDMjcuMDgzIDEzLjI4MjEgMjcuMTUyOSAxMy4yMTIyIDI3LjE1MjkgMTMuMTI1OUwyNy4xNTI5IDEyLjYxNzFDMjcuMTUyOSAxMi4zNjg4IDI3LjA1NDUgMTIuMTMwNyAyNi44NzkxIDExLjk1NUwxNy4yMjI1IDIuMjc1MzhDMTcuMDQ2NiAyLjA5OTA4IDE2LjgwNzkgMiAxNi41NTg4IDJIMTYuMDI3MVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTI5Ljc2NDIgMzQuNjUwM0MyOS4wMzQgMzMuOTE2IDI5LjAzNzQgMzIuNzI4OCAyOS43NzE2IDMxLjk5ODZMMzMuNjE5NyAyOC4xNzE5TDE2Ljc5NjkgMjguMTcxOUMxNi4yNzkxIDI4LjE3MTkgMTUuODU5NCAyNy43NTIxIDE1Ljg1OTQgMjcuMjM0NFYyNS4zNTk0QzE1Ljg1OTQgMjQuODQxNiAxNi4yNzkxIDI0LjQyMTkgMTYuNzk2OSAyNC40MjE5TDMzLjU0MTIgMjQuNDIxOUwyOS43NzE2IDIwLjY3MzNDMjkuMDM3NCAxOS45NDMxIDI5LjAzNCAxOC43NTU5IDI5Ljc2NDIgMTguMDIxNkMzMC40OTQ0IDE3LjI4NzQgMzEuNjgxNiAxNy4yODQgMzIuNDE1OSAxOC4wMTQyTDM5LjQ0NzEgMjUuMDA2NEMzOS44MDEgMjUuMzU4MyA0MCAyNS44MzY4IDQwIDI2LjMzNTlDNDAgMjYuODM1IDM5LjgwMSAyNy4zMTM1IDM5LjQ0NzEgMjcuNjY1NUwzMi40MTU5IDM0LjY1NzZDMzEuNjgxNiAzNS4zODc4IDMwLjQ5NDQgMzUuMzg0NSAyOS43NjQyIDM0LjY1MDNaIiBmaWxsPSIjMzUzRjZFIi8+Cjwvc3ZnPgo="},"displayName":"Extract from File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}