{"workflow":{"id":13381,"name":"Generate AI SEO blog posts with human review using SE Ranking and Claude","views":287,"recentViews":1,"totalViews":287,"createdAt":"2026-02-13T14:27:25.895Z","description":"![Zrzut ekranu 20260216 o 10.17.18.png](fileId:4411)\n\n# Generate AI blog posts with human review using SE Ranking and Claude\n\n## Who is this for\n- Content teams scaling blog production with AI\n- SEO agencies creating client content at scale\n- Marketing teams with editorial calendars\n\n## What this workflow does\nFind high-opportunity keywords, generate AI content briefs and draft articles, then send everything to a human reviewer before anything gets published.\n\n## What you'll get\n- Keyword opportunities scored by volume, difficulty, and ranking potential\n- AI-generated content briefs with outlines and related keywords\n- Full draft articles written by Claude based on the briefs\n![Zrzut ekranu 20260213 o 14.44.55.png](fileId:4410)\n![Zrzut ekranu 20260213 o 14.48.29.png](fileId:4409)\n- Email-based human review with one-click approve/reject\n![Zrzut ekranu 20260213 o 15.24.22.png](fileId:4408)\n- Everything tracked in Google Sheets\n\n## How it works\n1. Pulls keyword opportunities for your domain from SE Ranking\n2. Scores and filters the best targets by volume and difficulty\n3. Grabs related keywords and \"People Also Ask\" questions\n4. AI creates a detailed content brief for each keyword\n5. AI writes a full draft article based on the brief\n6. Sends a review email with approve/reject buttons\n7. Updates Google Sheets with the decision\n8. Approved articles are split and ready for publishing\n\n## Requirements\n- Self-hosted n8n instance\n- SE Ranking community node v1.3.5+ ([Install from npm](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking))\n- SE Ranking API token ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\n- Anthropic API key (for Claude)\n- SMTP credentials for review emails\n- Google Sheets account (optional)\n\n## Setup\n1. Install the [SE Ranking community node](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking)\n2. Add your SE Ranking, Anthropic, and SMTP credentials\n3. Update the Configuration node with your domain, brand, and reviewer email\n4. Connect Google Sheets for tracking (optional)\n\n## Customization\n- Change `min_volume` and `max_difficulty` to adjust keyword targeting\n- Edit `articles_per_run` to generate more or fewer articles per batch\n- Swap Claude models in the AI nodes for different quality/cost tradeoffs","workflow":{"name":"Generate AI blog posts with human review using SE Ranking and Claude","tags":[],"nodes":[{"name":"Overview","type":"n8n-nodes-base.stickyNote","position":[-848,304],"parameters":{"color":5,"width":560,"height":1380,"content":"## Generate AI SEO content with human review using SE Ranking and Claude\n\n## Who is this for\n- Content teams scaling blog production with AI\n- SEO agencies creating client content at scale\n- Marketing teams with editorial calendars to fill\n\n## What this workflow does\nFind high-opportunity keywords, generate AI content briefs and draft articles, then send everything to a human reviewer before anything gets published.\n\n## What you'll get\n- Keyword opportunities scored by volume, difficulty, and ranking potential\n- AI-generated content briefs with outlines and related keywords\n- Full draft articles written by Claude based on the briefs\n- Email-based human review with one-click approve/reject\n- Everything tracked in Google Sheets\n\n## How it works\n1. Pulls keyword opportunities for your domain from SE Ranking\n2. Scores and filters the best targets by volume and difficulty\n3. Grabs related keywords and \"People Also Ask\" questions\n4. Claude creates a detailed content brief for each keyword\n5. Claude writes a full draft article based on the brief\n6. Sends a review email with approve/reject buttons\n7. Updates Google Sheets with the decision and approved content\n\n## Setup\n1. Install the [SE Ranking community node](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking)\n2. Add your SE Ranking, Anthropic, and SMTP credentials\n3. Update the Configuration node with your domain, brand, and reviewer email\n4. Connect Google Sheets for tracking (optional)\n\n## Requirements\n- Self-hosted n8n instance\n- SE Ranking community node installed ([Install from npm](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking))\n- SE Ranking API token ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\n- Anthropic API key (for Claude)\n- SMTP credentials for review emails\n- Google Sheets account (optional)\n\n## Customization\n- Change `min_volume` and `max_difficulty` to adjust keyword targeting\n- Edit `articles_per_run` to generate more or fewer articles per batch\n- Swap Claude models in the AI nodes for different quality/cost tradeoffs"},"typeVersion":1},{"name":"Run Content Pipeline","type":"n8n-nodes-base.manualTrigger","position":[-192,784],"parameters":{},"typeVersion":1},{"name":"Configuration","type":"n8n-nodes-base.set","position":[32,784],"parameters":{"mode":"raw","options":{},"jsonOutput":"{\n  \"your_domain\": \"example.com\",\n  \"your_brand\": \"Your Brand\",\n  \"brand_voice\": \"professional and helpful\",\n  \"source\": \"us\",\n  \"min_volume\": 500,\n  \"max_difficulty\": 50,\n  \"articles_per_run\": 3,\n  \"target_word_count\": 1500,\n  \"content_type\": \"blog_post\",\n  \"reviewer_email\": \"user@example.com\",\n  \"approval_webhook\": \"https://your-n8n-instance.com/webhook/content-approval\"\n}"},"typeVersion":3.4},{"name":"Keyword Research Phase","type":"n8n-nodes-base.stickyNote","position":[224,576],"parameters":{"color":7,"width":560,"height":100,"content":"### Keyword Research\nFinds high-opportunity keywords and scores them by volume, difficulty, and ranking potential"},"typeVersion":1},{"name":"Get Keyword Opportunities","type":"@seranking/n8n-nodes-seranking.seRanking","position":[256,784],"parameters":{"domain":"={{ $json.your_domain }}","source":"={{ $json.source }}","operation":"getKeywords","additionalFields":{"limit":100,"orderType":"desc","orderField":"volume","volumeFrom":"={{ $json.min_volume }}"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"name":"Filter & Score Opportunities","type":"n8n-nodes-base.code","position":[464,784],"parameters":{"jsCode":"const config = $('Configuration').first().json;\nconst keywords = $input.all();\n\n// Score and filter keywords\nconst scored = keywords\n  .map(item => {\n    const k = item.json;\n    \n    // Opportunity score: high volume + low difficulty + not top 3 = good target\n    const volumeScore = Math.min(k.volume / 100, 50); // Cap at 50 points\n    const difficultyScore = (100 - k.difficulty) * 0.3; // Lower is better\n    const positionBonus = (k.position > 10 && k.position <= 30) ? 20 : 0; // Sweet spot\n    const opportunityScore = Math.round(volumeScore + difficultyScore + positionBonus);\n    \n    return {\n      json: {\n        source: $('Configuration').first().json.source,\n        brand: $('Configuration').first().json.your_brand,\n        target_word_count: $('Configuration').first().json.target_word_count,\n        keyword: k.keyword,\n        volume: k.volume,\n        difficulty: k.difficulty,\n        current_position: k.position || 'Not ranking',\n        cpc: k.cpc || 0,\n        estimated_traffic: Math.round(k.volume * 0.15),\n        opportunity_score: opportunityScore,\n        content_type: determineContentType(k.keyword)\n      }\n    };\n  })\n  .filter(item => item.json.opportunity_score > 30)\n  .sort((a, b) => b.json.opportunity_score - a.json.opportunity_score)\n  .slice(0, config.articles_per_run);\n\nfunction determineContentType(keyword) {\n  const kw = keyword.toLowerCase();\n  if (kw.includes('how to') || kw.includes('guide')) return 'tutorial';\n  if (kw.includes('vs') || kw.includes('versus') || kw.includes('comparison')) return 'comparison';\n  if (kw.includes('best') || kw.includes('top')) return 'listicle';\n  if (kw.includes('what is') || kw.includes('definition')) return 'explainer';\n  if (kw.includes('review')) return 'review';\n  return 'informational';\n}\n\nreturn scored.length > 0 ? [scored[0]] : [];"},"typeVersion":2},{"name":"Content Brief Phase","type":"n8n-nodes-base.stickyNote","position":[1232,608],"parameters":{"color":7,"width":400,"height":100,"content":"### Content Brief Generation\nClaude creates detailed briefs with outlines, related keywords, and questions to answer"},"typeVersion":1},{"name":"Get Related Keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[720,688],"parameters":{"source":"={{ $json.source }}","keyword":"={{ $json.keyword }}","resource":"keywordResearch","operation":"getRelated","additionalFields":{"limit":20}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"name":"Get Questions (PAA)","type":"@seranking/n8n-nodes-seranking.seRanking","position":[736,880],"parameters":{"source":"={{ $json.source }}","keyword":"={{ $('Filter & Score Opportunities').item.json.keyword }}","resource":"keywordResearch","operation":"getQuestions","additionalFields":{"limit":10}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"name":"Merge Keyword Data","type":"n8n-nodes-base.merge","position":[944,784],"parameters":{"mode":"combine","options":{},"combineBy":"combineAll"},"typeVersion":3},{"name":"Content Writing Phase","type":"n8n-nodes-base.stickyNote","position":[1680,608],"parameters":{"color":7,"width":400,"height":100,"content":"### AI Content Writing\nClaude writes full draft articles based on the briefs"},"typeVersion":1},{"name":"Human Review Phase","type":"n8n-nodes-base.stickyNote","position":[-112,1408],"parameters":{"color":7,"width":560,"height":100,"content":"### Human Review (Required)\nReviewer gets an email with article previews and one-click approve/reject buttons"},"typeVersion":1},{"name":"Prepare Review Package","type":"n8n-nodes-base.code","position":[2000,784],"parameters":{"jsCode":"const config = $('Configuration').first().json;\nconst rawText = $input.first().json.content[0].text;\n\n// Split articles by \"## Article N:\" header\nconst articleBlocks = rawText.split(/## Article \\d+:\\s*/i).filter(a => a.trim());\n\n// Generate unique review ID\nconst review_id = `review_${Date.now()}`;\nconst MAX_CHARS = 40000;\n\n// Build output with separate columns per article\nconst output = {\n  review_id: review_id,\n  status: 'pending_review',\n  created_at: new Date().toISOString(),\n  total_articles: articleBlocks.length,\n  brand: config.your_brand,\n  reviewer_email: config.reviewer_email\n};\n\n// Add each article as separate columns\narticleBlocks.forEach((articleContent, index) => {\n  const num = index + 1;\n  \n  // Extract keyword from first line (title)\n  const lines = articleContent.trim().split('\\n');\n  const keyword = lines[0].replace(/^#*\\s*/, '').trim();\n  \n  // Truncate content if needed\n  const content = articleContent.length > MAX_CHARS \n    ? articleContent.substring(0, MAX_CHARS) + '\\n\\n[TRUNCATED]'\n    : articleContent;\n  \n  output[`keyword_${num}`] = keyword;\n  output[`article_${num}`] = content.trim();\n  output[`word_count_${num}`] = articleContent.split(/\\s+/).length;\n});\n\nreturn [{ json: output }];"},"typeVersion":2},{"name":"Save Draft to Sheets","type":"n8n-nodes-base.googleSheets","position":[2208,784],"parameters":{"columns":{"value":{},"schema":[{"id":"review_id","type":"string","display":true,"removed":false,"required":false,"displayName":"review_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":false,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"created_at","type":"string","display":true,"removed":false,"required":false,"displayName":"created_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"total_articles","type":"string","display":true,"removed":false,"required":false,"displayName":"total_articles","defaultMatch":false,"canBeUsedToMatch":true},{"id":"brand","type":"string","display":true,"removed":false,"required":false,"displayName":"brand","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviewer_email","type":"string","display":true,"removed":false,"required":false,"displayName":"reviewer_email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_1","type":"string","display":true,"removed":false,"required":false,"displayName":"keyword_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_1","type":"string","display":true,"removed":false,"required":false,"displayName":"article_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_1","type":"string","display":true,"removed":false,"required":false,"displayName":"word_count_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_2","type":"string","display":true,"removed":false,"required":false,"displayName":"keyword_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_2","type":"string","display":true,"removed":false,"required":false,"displayName":"article_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_2","type":"string","display":true,"removed":false,"required":false,"displayName":"word_count_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_3","type":"string","display":true,"removed":false,"required":false,"displayName":"keyword_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_3","type":"string","display":true,"removed":false,"required":false,"displayName":"article_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_3","type":"string","display":true,"removed":false,"required":false,"displayName":"word_count_3","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"autoMapInputData","matchingColumns":["brand"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.5},{"name":"Create Content Brief","type":"@n8n/n8n-nodes-langchain.anthropic","position":[1360,784],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"claude-sonnet-4-5-20250929"},"options":{"system":"You are an expert SEO Content Writer. Today's date is {{ $now.format('MMMM D, YYYY') }}.\n\nCRITICAL: All content must be written for {{ $now.format('YYYY') }}. Do not reference 2024 or 2025 as current years - they are in the past. Any \"best tools\" lists, trends, or predictions should be for {{ $now.format('YYYY') }}.\n\n**Writing Style:**\n- Follow the brand voice specified\n- Write in a conversational yet authoritative tone\n- Use short paragraphs (2-3 sentences max)\n- Include transition phrases between sections\n- Add specific examples and data where relevant\n\n**SEO Requirements:**\n- Include primary keyword in first 100 words\n- Use primary keyword 3-5 times naturally\n- Include secondary keywords throughout\n- Answer People Also Ask questions\n- Use proper heading hierarchy (H2, H3)\n\n**Structure:**\n- Compelling introduction (hook + promise)\n- Follow the outline from the brief exactly\n- Include actionable takeaways\n- Strong conclusion with CTA\n\n**Formatting:**\n- Use bullet points for lists\n- Add bold for key terms\n- Include [IMAGE: description] placeholders\n- Add [INTERNAL LINK: anchor text] placeholders\n\n**Quality Standards:**\n- No fluff or filler content\n- Every sentence adds value\n- Factual accuracy (note where verification needed)\n- Original insights, not generic advice\n\nOutput the complete article in markdown format.","maxTokens":8000,"temperature":0.7},"messages":{"values":[{"content":"=Create detailed content briefs for ALL of these keywords:\n\n{{ JSON.stringify($json.keywords_batch, null, 2) }}\n\nBrand: {{ $json.brand }}\nTarget Word Count: {{ $json.target_word_count }}\n\nGenerate a separate, complete brief for EACH keyword. Label them clearly:\n## Brief 1: [keyword]\n## Brief 2: [keyword]\n## Brief 3: [keyword]"}]},"simplify":false},"credentials":{"anthropicApi":{"id":"credential-id","name":"Anthropic account"}},"typeVersion":1},{"name":"Write Article Draft","type":"@n8n/n8n-nodes-langchain.anthropic","position":[1664,784],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"claude-opus-4-6","cachedResultName":"claude-opus-4-6"},"options":{"system":"You are an expert SEO Content Writer. Write a complete, publish-ready article following these guidelines:  **Writing Style:** - Follow the brand voice specified - Write in a conversational yet authoritative tone - Use short paragraphs (2-3 sentences max) - Include transition phrases between sections - Add specific examples and data where relevant  **SEO Requirements:** - Include primary keyword in first 100 words - Use primary keyword 3-5 times naturally - Include secondary keywords throughout - Answer People Also Ask questions - Use proper heading hierarchy (H2, H3)  **Structure:** - Compelling introduction (hook + promise) - Follow the outline from the brief exactly - Include actionable takeaways - Strong conclusion with CTA  **Formatting:** - Use bullet points for lists - Add bold for key terms - Include [IMAGE: description] placeholders - Add [INTERNAL LINK: anchor text] placeholders  **Quality Standards:** - No fluff or filler content - Every sentence adds value - Factual accuracy (note where verification needed) - Original insights, not generic advice  Output the complete article in markdown format.","maxTokens":16000,"temperature":0.7},"messages":{"values":[{"content":"=Write complete articles based on these content briefs:\n\n{{ $json.content[0].text }}\n\n---\n\n**Today's Date:** {{ $now.format('MMMM D') }}\n**Current Year:** {{ $now.format('yyyy') }}\n**Brand Voice:** {{ $('Configuration').first().json.brand_voice }}\n**Target Word Count:** {{ $('Configuration').first().json.target_word_count }} words per article\n\n**IMPORTANT - Date Context:**\n- Today is {{ $now.format('MMMM D, YYYY') }}\n- Write all content as if publishing TODAY\n- Do NOT reference 2024 or 2025 as current or future years - they are in the past\n- Use \"{{ $now.format('YYYY') }}\" when referring to the current year\n- Any trends, predictions, or \"best of\" lists should be for {{ $now.format('YYYY') }}\n- Replace phrases like \"in 2024\" with \"in {{ $now.format('YYYY') }}\"\n\n**Instructions:**\n- Write a complete, publish-ready article for EACH brief above\n- Follow the exact outline provided in each brief\n- Include all H2 and H3 sections as specified\n- Use the keywords at the frequency recommended\n- Answer all the questions listed\n- Add [IMAGE: description] placeholders where visuals would help\n- Add [INTERNAL LINK: anchor text] placeholders for linking opportunities\n- Label each article clearly:\n\n## Article 1: [keyword]\n[full article content]\n\n## Article 2: [keyword]\n[full article content]\n\n## Article 3: [keyword]\n[full article content]"}]}},"credentials":{"anthropicApi":{"id":"credential-id","name":"Anthropic account"}},"typeVersion":1},{"name":"Combine all keywords into single prompt","type":"n8n-nodes-base.code","position":[1152,784],"parameters":{"jsCode":"const config = $('Configuration').first().json;\nconst keywords = $('Filter & Score Opportunities').all();\nconst relatedData = $('Get Related Keywords').all();\nconst questionsData = $('Get Questions (PAA)').all();\n\n// Combine all into one object\nconst batchData = keywords.map((kw, index) => ({\n  keyword: kw.json.keyword,\n  volume: kw.json.volume,\n  difficulty: kw.json.difficulty,\n  content_type: kw.json.content_type,\n  related: relatedData[index]?.json.keywords || [],\n  questions: questionsData[index]?.json.keywords || []\n}));\n\nreturn [{\n  json: {\n    keywords_batch: batchData,\n    brand: config.your_brand,\n    target_word_count: config.target_word_count,\n    brand_voice: config.brand_voice\n  }\n}];"},"typeVersion":2},{"name":"Approval Webhook","type":"n8n-nodes-base.webhook","position":[288,1168],"parameters":{"path":"content-approval","options":{},"responseMode":"responseNode"},"typeVersion":2},{"name":"Route Decision","type":"n8n-nodes-base.switch","position":[496,1168],"parameters":{"rules":{"values":[{"outputKey":"Approved","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"70305a01-ef1f-4a3f-b9aa-402b912612eb","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.query.action }}","rightValue":"approve"}]},"renameOutput":true},{"outputKey":"Rejected","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"11cc5468-cf15-4fb6-84d5-02d44750c333","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.query.action }}","rightValue":"reject"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"name":"Update Status Approved","type":"n8n-nodes-base.googleSheets","position":[736,1088],"parameters":{"columns":{"value":{"status":"approved","review_id":"={{ $json.query.review_id }}","created_at":"={{ $now.toISO() }}"},"schema":[{"id":"review_id","type":"string","display":true,"removed":false,"required":false,"displayName":"review_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":false,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"created_at","type":"string","display":true,"required":false,"displayName":"created_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"total_articles","type":"string","display":true,"required":false,"displayName":"total_articles","defaultMatch":false,"canBeUsedToMatch":true},{"id":"brand","type":"string","display":true,"required":false,"displayName":"brand","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviewer_email","type":"string","display":true,"required":false,"displayName":"reviewer_email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_1","type":"string","display":true,"required":false,"displayName":"keyword_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_1","type":"string","display":true,"required":false,"displayName":"article_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_1","type":"string","display":true,"required":false,"displayName":"word_count_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_2","type":"string","display":true,"required":false,"displayName":"keyword_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_2","type":"string","display":true,"required":false,"displayName":"article_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_2","type":"string","display":true,"required":false,"displayName":"word_count_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_3","type":"string","display":true,"required":false,"displayName":"keyword_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_3","type":"string","display":true,"required":false,"displayName":"article_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_3","type":"string","display":true,"required":false,"displayName":"word_count_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["review_id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.5},{"name":"Update Status Rejected","type":"n8n-nodes-base.googleSheets","position":[736,1344],"parameters":{"columns":{"value":{"status":"rejected","review_id":"={{ $json.query.review_id }}","created_at":"={{ $now.toISO() }}"},"schema":[{"id":"review_id","type":"string","display":true,"removed":false,"required":false,"displayName":"review_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":false,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"created_at","type":"string","display":true,"required":false,"displayName":"created_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"total_articles","type":"string","display":true,"required":false,"displayName":"total_articles","defaultMatch":false,"canBeUsedToMatch":true},{"id":"brand","type":"string","display":true,"required":false,"displayName":"brand","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviewer_email","type":"string","display":true,"required":false,"displayName":"reviewer_email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_1","type":"string","display":true,"required":false,"displayName":"keyword_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_1","type":"string","display":true,"required":false,"displayName":"article_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_1","type":"string","display":true,"required":false,"displayName":"word_count_1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_2","type":"string","display":true,"required":false,"displayName":"keyword_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_2","type":"string","display":true,"required":false,"displayName":"article_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_2","type":"string","display":true,"required":false,"displayName":"word_count_2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"keyword_3","type":"string","display":true,"required":false,"displayName":"keyword_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article_3","type":"string","display":true,"required":false,"displayName":"article_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"word_count_3","type":"string","display":true,"required":false,"displayName":"word_count_3","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["review_id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.5},{"name":"Send Review Email","type":"n8n-nodes-base.emailSend","position":[2416,784],"parameters":{"message":"=<html>\n<body style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; padding: 20px;\">\n\n<div style=\"background: #1e293b; color: white; padding: 24px; border-radius: 8px;\">\n  <h1 style=\"margin: 0;\">Content Review Required</h1>\n  <p style=\"margin: 8px 0 0 0; opacity: 0.8;\">{{ $json.total_articles }} articles ready for review</p>\n</div>\n\n<div style=\"background: #f8fafc; padding: 24px; border: 1px solid #e2e8f0; margin-top: 2px;\">\n  \n  <table style=\"margin-bottom: 24px;\">\n    <tr>\n      <td style=\"background: white; padding: 12px 16px; border: 1px solid #e2e8f0; border-radius: 6px; margin-right: 16px;\">\n        <div style=\"font-size: 12px; color: #64748b;\">REVIEW ID</div>\n        <div style=\"font-size: 16px; font-weight: 600;\">{{ $json.review_id }}</div>\n      </td>\n      <td style=\"width: 16px;\"></td>\n      <td style=\"background: white; padding: 12px 16px; border: 1px solid #e2e8f0; border-radius: 6px;\">\n        <div style=\"font-size: 12px; color: #64748b;\">BRAND</div>\n        <div style=\"font-size: 16px; font-weight: 600;\">{{ $json.brand }}</div>\n      </td>\n      <td style=\"width: 16px;\"></td>\n      <td style=\"background: white; padding: 12px 16px; border: 1px solid #e2e8f0; border-radius: 6px;\">\n        <div style=\"font-size: 12px; color: #64748b;\">CREATED</div>\n        <div style=\"font-size: 16px; font-weight: 600;\">{{ $json.created_at.split('T')[0] }}</div>\n      </td>\n    </tr>\n  </table>\n\n  <div style=\"background: white; border: 1px solid #e2e8f0; border-radius: 8px; margin-bottom: 16px; padding: 16px;\">\n    <h3 style=\"margin: 0 0 4px 0;\">Article 1: {{ $json.keyword_1 }}</h3>\n    <p style=\"margin: 0; color: #64748b; font-size: 14px;\">{{ $json.word_count_1 }} words</p>\n    <div style=\"margin-top: 12px; padding: 12px; background: #f5f5f5; border-radius: 4px; max-height: 200px; overflow: hidden;\">\n      <pre style=\"margin: 0; white-space: pre-wrap; font-family: Arial, sans-serif; font-size: 13px;\">{{ $json.article_1.substring(0, 1500) }}...</pre>\n    </div>\n  </div>\n\n  <div style=\"background: white; border: 1px solid #e2e8f0; border-radius: 8px; margin-bottom: 16px; padding: 16px;\">\n    <h3 style=\"margin: 0 0 4px 0;\">Article 2: {{ $json.keyword_2 }}</h3>\n    <p style=\"margin: 0; color: #64748b; font-size: 14px;\">{{ $json.word_count_2 }} words</p>\n    <div style=\"margin-top: 12px; padding: 12px; background: #f5f5f5; border-radius: 4px; max-height: 200px; overflow: hidden;\">\n      <pre style=\"margin: 0; white-space: pre-wrap; font-family: Arial, sans-serif; font-size: 13px;\">{{ $json.article_2.substring(0, 1500) }}...</pre>\n    </div>\n  </div>\n\n  <div style=\"background: white; border: 1px solid #e2e8f0; border-radius: 8px; margin-bottom: 16px; padding: 16px;\">\n    <h3 style=\"margin: 0 0 4px 0;\">Article 3: {{ $json.keyword_3 }}</h3>\n    <p style=\"margin: 0; color: #64748b; font-size: 14px;\">{{ $json.word_count_3 }} words</p>\n    <div style=\"margin-top: 12px; padding: 12px; background: #f5f5f5; border-radius: 4px; max-height: 200px; overflow: hidden;\">\n      <pre style=\"margin: 0; white-space: pre-wrap; font-family: Arial, sans-serif; font-size: 13px;\">{{ $json.article_3.substring(0, 1500) }}...</pre>\n    </div>\n  </div>\n\n  <div style=\"background: #fffbeb; border: 1px solid #fcd34d; border-radius: 8px; padding: 16px; margin: 24px 0;\">\n    <h3 style=\"margin: 0 0 12px 0; color: #92400e;\">Review Checklist</h3>\n    <ul style=\"margin: 0; padding-left: 20px; color: #78350f;\">\n      <li>Facts verified and accurate</li>\n      <li>Brand voice aligned</li>\n      <li>No AI hallucinations</li>\n      <li>Internal links appropriate</li>\n      <li>No legal or compliance issues</li>\n    </ul>\n  </div>\n\n</div>\n\n<div style=\"text-align: center; padding: 24px; background: white; border: 1px solid #e2e8f0; border-top: none; border-radius: 0 0 8px 8px;\">\n  <a href=\"{{ $json.approval_webhook || \"https://your-n8n-instance.com/webhook/content-approval\" }}?action=approve&review_id={{ $json.review_id }}\" \n     style=\"display: inline-block; background: #22c55e; color: white; padding: 14px 32px; font-size: 16px; font-weight: 600; text-decoration: none; border-radius: 6px; margin: 0 8px;\">\n     Approve All\n  </a>\n  <a href=\"{{ $json.approval_webhook || \"https://your-n8n-instance.com/webhook/content-approval\" }}?action=reject&review_id={{ $json.review_id }}\" \n     style=\"display: inline-block; background: #ef4444; color: white; padding: 14px 32px; font-size: 16px; font-weight: 600; text-decoration: none; border-radius: 6px; margin: 0 8px;\">\n     Reject\n  </a>\n</div>\n\n<p style=\"text-align: center; color: #999; font-size: 12px; margin-top: 16px;\">\n  Full articles available in Google Sheets\n</p>\n\n</body>\n</html>","options":{"appendAttribution":true},"subject":"=Content Review Required: {{ $json.total_articles }} Articles Ready [{{ $json.review_id }}]","toEmail":"={{ $json.reviewer_email }}","fromEmail":"user@example.com","operation":"sendAndWait","approvalOptions":{"values":{"approvalType":"double"}}},"credentials":{"smtp":{"id":"credential-id","name":"SMTP account"}},"typeVersion":2.1},{"name":"Get Approved Content","type":"n8n-nodes-base.googleSheets","position":[992,1088],"parameters":{"options":{},"filtersUI":{"values":[{"lookupValue":"={{ $('Approval Webhook').first().json.query.review_id }}","lookupColumn":"review_id"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.7},{"name":"Split Articles","type":"n8n-nodes-base.code","position":[1152,1088],"parameters":{"jsCode":"const row = $input.first().json;\n\nconst articles = [];\n\n// Article 1\nif (row.keyword_1 && row.article_1) {\n  articles.push({\n    keyword: row.keyword_1,\n    title: row.keyword_1.charAt(0).toUpperCase() + row.keyword_1.slice(1),\n    content: row.article_1,\n    word_count: row.word_count_1\n  });\n}\n\n// Article 2\nif (row.keyword_2 && row.article_2) {\n  articles.push({\n    keyword: row.keyword_2,\n    title: row.keyword_2.charAt(0).toUpperCase() + row.keyword_2.slice(1),\n    content: row.article_2,\n    word_count: row.word_count_2\n  });\n}\n\n// Article 3\nif (row.keyword_3 && row.article_3) {\n  articles.push({\n    keyword: row.keyword_3,\n    title: row.keyword_3.charAt(0).toUpperCase() + row.keyword_3.slice(1),\n    content: row.article_3,\n    word_count: row.word_count_3\n  });\n}\n\nreturn articles.map(a => ({ json: a }));"},"typeVersion":2},{"name":"Publishing Phase","type":"n8n-nodes-base.stickyNote","position":[1488,1184],"parameters":{"color":7,"width":400,"height":100,"content":"### Publishing (Optional)\nApproved articles are split and ready to publish to WordPress or any CMS"},"typeVersion":1},{"name":"Respond to Webhook Approved","type":"n8n-nodes-base.respondToWebhook","position":[1152,1264],"parameters":{"options":{},"respondWith":"text","responseBody":"==<!DOCTYPE html><html><head><title>Content Approved</title><style>body{font-family:-apple-system,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0;background:#f0fdf4}.card{background:white;padding:40px;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,0.1);text-align:center;max-width:400px}.icon{font-size:48px;margin-bottom:16px}h1{color:#166534;margin:0 0 8px 0}p{color:#666;margin:0}</style></head><body><div class=\"card\"><div class=\"icon\">[OK]</div><h1>Content Approved</h1><p>Articles are being published to WordPress.</p></div></body></html>"},"typeVersion":1.5},{"name":"Respond to Webhook Rejected","type":"n8n-nodes-base.respondToWebhook","position":[944,1344],"parameters":{"options":{},"respondWith":"text","responseBody":"==<!DOCTYPE html><html><head><title>Content Rejected</title><style>body{font-family:-apple-system,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0;background:#fef2f2}.card{background:white;padding:40px;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,0.1);text-align:center;max-width:400px}.icon{font-size:48px;margin-bottom:16px}h1{color:#991b1b;margin:0 0 8px 0}p{color:#666;margin:0}</style></head><body><div class=\"card\"><div class=\"icon\">[X]</div><h1>Content Rejected</h1><p>Articles will not be published.</p></div></body></html>"},"typeVersion":1.5}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Configuration":{"main":[[{"node":"Get Keyword Opportunities","type":"main","index":0}]]},"Route Decision":{"main":[[{"node":"Update Status Approved","type":"main","index":0}],[{"node":"Update Status Rejected","type":"main","index":0}]]},"Split Articles":{"main":[[]]},"Approval Webhook":{"main":[[{"node":"Route Decision","type":"main","index":0}]]},"Merge Keyword Data":{"main":[[{"node":"Combine all keywords into single prompt","type":"main","index":0}]]},"Get Questions (PAA)":{"main":[[{"node":"Merge Keyword Data","type":"main","index":1}]]},"Write Article Draft":{"main":[[{"node":"Prepare Review Package","type":"main","index":0}]]},"Create Content Brief":{"main":[[{"node":"Write Article Draft","type":"main","index":0}]]},"Get Approved Content":{"main":[[{"node":"Split Articles","type":"main","index":0}]]},"Get Related Keywords":{"main":[[{"node":"Merge Keyword Data","type":"main","index":0}]]},"Run Content Pipeline":{"main":[[{"node":"Configuration","type":"main","index":0}]]},"Save Draft to Sheets":{"main":[[{"node":"Send Review Email","type":"main","index":0}]]},"Prepare Review Package":{"main":[[{"node":"Save Draft to Sheets","type":"main","index":0}]]},"Update Status Approved":{"main":[[{"node":"Get Approved Content","type":"main","index":0},{"node":"Respond to Webhook Approved","type":"main","index":0}]]},"Update Status Rejected":{"main":[[{"node":"Respond to Webhook Rejected","type":"main","index":0}]]},"Get Keyword Opportunities":{"main":[[{"node":"Filter & Score Opportunities","type":"main","index":0}]]},"Filter & Score Opportunities":{"main":[[{"node":"Get Related Keywords","type":"main","index":0},{"node":"Get Questions (PAA)","type":"main","index":0}]]},"Combine all keywords into single prompt":{"main":[[{"node":"Create Content Brief","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":27,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":4},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.googleSheets":{"count":4},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":2},"@n8n/n8n-nodes-langchain.anthropic":{"count":2},"@seranking/n8n-nodes-seranking.seRanking":{"count":3}}},"status":"published","readyToDemo":null,"user":{"name":"Eugene Melnychenko","username":"eugene-m","bio":"","verified":true,"links":[""],"avatar":"https://gravatar.com/avatar/7042b6697a3942388f99612572551b2ec8d8b8ba648f0cc851e8b89c99b28e2c?r=pg&d=retro&size=200"},"nodes":[{"id":11,"icon":"fa:envelope","name":"n8n-nodes-base.emailSend","codex":{"data":{"alias":["SMTP","email","human","form","wait","hitl","approval"],"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/sendemail/"}]},"categories":["Communication","HITL","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Send Email","color":"#00bb88"},"iconData":{"icon":"envelope","type":"icon"},"displayName":"Send Email","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":9,"name":"Core Nodes"},{"id":28,"name":"HITL"}]},{"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":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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/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/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/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/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, 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/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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"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/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-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"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":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"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":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":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1312,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.anthropic","codex":{"data":{"alias":["LangChain","document","image","assistant","claude"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.anthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPgo="},"displayName":"Anthropic","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[{"id":4408,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Zrzut_ekranu_2026_02_13_o_15_24_22_2769ebdab0.png"},{"id":4409,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Zrzut_ekranu_2026_02_13_o_14_48_29_72bbb20454.png"},{"id":4410,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Zrzut_ekranu_2026_02_13_o_14_44_55_08f7350be9.png"},{"id":4411,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Zrzut_ekranu_2026_02_16_o_10_17_18_8e90d960f4.png"}]}}