{"workflow":{"id":12084,"name":"Research content keywords with SE Ranking and export to Google Sheets","views":72,"recentViews":0,"totalViews":72,"createdAt":"2025-12-24T03:46:34.664Z","description":"![image.png](fileId:4238)\n\n## Who is this for\n- Content creators looking for topic ideas\n- SEO specialists doing keyword research  \n- Marketing teams planning content calendars\n\n## What this workflow does\nDiscover keyword opportunities from 4 different sources (longtail, questions, similar, related) and export analyzed results to Google Sheets.\n\n## What you'll get\n- Longtail, question, similar, and related keyword variations\n- Opportunity scores based on volume, difficulty, and CPC\n- Search intent classification (informational, commercial, transactional, navigational)\n- Content type suggestions (how-to guide, listicle, comparison, etc.)\n- Trend analysis with historical search volume data\n- Estimated monthly traffic potential\n- Priority ranking (HIGH/MEDIUM/LOW)\n- SERP features analysis\n- All results automatically exported to Google Sheets\n\n## How it works\n1. Fetches 4 types of keywords from SE Ranking (longtail, questions, similar, related)\n2. Merges and deduplicates all results\n3. Analyzes each keyword with custom scoring algorithm\n4. Calculates opportunity scores (volume 40%, difficulty 40%, CPC 20%)\n5. Detects search intent and suggests content types\n6. Exports enriched data to Google Sheets with 17 columns\n\n## Requirements\n- SE Ranking account with API access ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\n- SE Ranking community node installed ([Install from npm](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking))\n- Google Sheets account\n\n## Setup steps\n1. Install the [SE Ranking community node](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking)\n2. Add your SE Ranking API credentials\n3. Connect your Google Sheets account\n4. Update the seed keyword in all 4 SE Ranking nodes (default: \"digital marketing\")\n5. Select or create a Google Sheet for export\n\n## Customization\n- Adjust `volumeFrom` and `difficultyTo` filters in SE Ranking nodes for different opportunity ranges\n- Change `limit` parameter to fetch more/fewer keywords per source (max 1000)\n- Modify opportunity score formula in the Code node (currently: volume 40%, difficulty 40%, CPC 20%)\n- Update content type detection patterns to match your industry\n- Change `source` parameter for different countries (us, uk, de, fr, etc.)","workflow":{"id":"","meta":{"instanceId":"","templateCredsSetupCompleted":false},"name":"Research keywords for content ideas with SE Ranking","tags":[],"nodes":[{"id":"142c3916-8a3b-42e6-9cff-d85e0ebe9678","name":"When clicking 'Execute workflow'","type":"n8n-nodes-base.manualTrigger","position":[4816,2256],"parameters":{},"typeVersion":1},{"id":"66a11c08-8d6d-4a26-af10-c3c27569b88b","name":"Get longtail keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5200,1776],"parameters":{"keyword":"digital marketing","resource":"keywordResearch","operation":"getLongtail","additionalFields":{"limit":50}},"credentials":{"seRankingApi":{"id":"YOUR_SE_RANKING_CREDENTIAL_ID","name":"SE Ranking API"}},"typeVersion":1},{"id":"ba8a180d-222e-4bfa-8877-6b101d4f3383","name":"Get question keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5184,2064],"parameters":{"keyword":"digital marketing","resource":"keywordResearch","operation":"getQuestions","additionalFields":{"limit":50,"volumeFrom":500,"difficultyTo":50,"historyTrend":true}},"credentials":{"seRankingApi":{"id":"YOUR_SE_RANKING_CREDENTIAL_ID","name":"SE Ranking API"}},"typeVersion":1},{"id":"8b6e5354-3fe8-4df4-a359-6ad65ce50570","name":"Get similar keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5136,2336],"parameters":{"keyword":"digital marketing","resource":"keywordResearch","operation":"getSimilar","additionalFields":{"limit":50,"volumeFrom":500,"difficultyTo":50,"historyTrend":true}},"credentials":{"seRankingApi":{"id":"YOUR_SE_RANKING_CREDENTIAL_ID","name":"SE Ranking API"}},"typeVersion":1},{"id":"f88dbe26-3126-45ab-8d7a-2dd0c0af607c","name":"Get related keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5136,2624],"parameters":{"keyword":"digital marketing","resource":"keywordResearch","operation":"getRelated","additionalFields":{"limit":50,"volumeFrom":500,"difficultyTo":50,"historyTrend":true}},"credentials":{"seRankingApi":{"id":"YOUR_SE_RANKING_CREDENTIAL_ID","name":"SE Ranking API"}},"typeVersion":1},{"id":"c3934474-713b-4cd0-83a3-3b3a279aa41d","name":"Merge all keyword types","type":"n8n-nodes-base.merge","position":[5456,2256],"parameters":{"numberInputs":4},"typeVersion":3},{"id":"9e937807-6e2e-43f2-a1d3-9952528518f4","name":"Analyze & Score Keywords for Content","type":"n8n-nodes-base.code","position":[5680,2256],"parameters":{"jsCode":"// Content Generation Keyword Analyzer\nconst allInput = $input.all();\nconst timestamp = new Date().toISOString().split('T')[0];\nlet allKeywords = [];\nconst seenKeywords = new Set();\n\n// Extract and deduplicate keywords from all sources\nallInput.forEach((item, sectionIndex) => {\n  const section = item.json;\n  \n  if (!section || !section.keywords || !Array.isArray(section.keywords)) {\n    return;\n  }\n  \n  section.keywords.forEach(kw => {\n    // Handle both string and object keyword formats\n    const keywordText = typeof kw === 'string' ? kw : kw.keyword;\n    const keywordLower = keywordText.toLowerCase().trim();\n    \n    // Skip duplicates\n    if (seenKeywords.has(keywordLower)) {\n      return;\n    }\n    seenKeywords.add(keywordLower);\n    \n    // For object keywords with full metrics\n    if (typeof kw === 'object' && kw.keyword) {\n      // Calculate opportunity score (0-100)\n      const volumeScore = Math.min((kw.volume || 0) / 10000, 1) * 40;\n      const difficultyScore = (100 - (kw.difficulty || 0)) / 100 * 40;\n      const cpcScore = Math.min((kw.cpc || 0) / 20, 1) * 20;\n      const opportunityScore = Math.round(volumeScore + difficultyScore + cpcScore);\n      \n      // Determine search intent\n      let intent = 'informational';\n      const kwText = keywordText.toLowerCase();\n      \n      if (kwText.match(/\\\\b(buy|purchase|price|cost|cheap|deal|discount|order)\\\\b/)) {\n        intent = 'transactional';\n      } else if (kwText.match(/\\\\b(best|top|review|vs|versus|compare|alternative)\\\\b/)) {\n        intent = 'commercial';\n      } else if (kwText.match(/\\\\b(how|what|why|when|where|guide|tutorial|tips|learn)\\\\b/)) {\n        intent = 'informational';\n      } else if (kwText.match(/\\\\b(login|sign up|download|free trial|official)\\\\b/)) {\n        intent = 'navigational';\n      }\n      \n      // Suggest content type\n      let contentType = 'blog post';\n      \n      if (kwText.startsWith('how to') || kwText.includes('step by step')) {\n        contentType = 'how-to guide';\n      } else if (kwText.startsWith('what is') || kwText.startsWith('why is')) {\n        contentType = 'explainer article';\n      } else if (kwText.match(/\\\\?$/)) {\n        contentType = 'FAQ / Q&A';\n      } else if (kwText.match(/\\\\b(best|top [0-9]|top ten)\\\\b/)) {\n        contentType = 'listicle';\n      } else if (kwText.match(/\\\\b(vs|versus|compare|comparison)\\\\b/)) {\n        contentType = 'comparison article';\n      } else if (kwText.includes('guide') || kwText.includes('complete')) {\n        contentType = 'comprehensive guide';\n      } else if (kwText.match(/\\\\b(review|reviews)\\\\b/)) {\n        contentType = 'review article';\n      } else if (kwText.match(/\\\\b(tips|strategies|tactics|ideas)\\\\b/)) {\n        contentType = 'tips & tactics';\n      }\n      \n      // Analyze trend\n      let trendStatus = 'stable';\n      let trendAvg = 0;\n      let trendDirection = 0;\n      \n      if (kw.history_trend && typeof kw.history_trend === 'object') {\n        const trendValues = Object.values(kw.history_trend);\n        if (trendValues.length >= 6) {\n          const recent3 = trendValues.slice(-3).reduce((a, b) => a + b, 0) / 3;\n          const older3 = trendValues.slice(0, 3).reduce((a, b) => a + b, 0) / 3;\n          trendAvg = Math.round(trendValues.reduce((a, b) => a + b, 0) / trendValues.length);\n          \n          if (recent3 > older3 * 1.3) {\n            trendStatus = 'trending up';\n            trendDirection = Math.round(((recent3 - older3) / older3) * 100);\n          } else if (recent3 < older3 * 0.7) {\n            trendStatus = 'trending down';\n            trendDirection = Math.round(((recent3 - older3) / older3) * 100);\n          }\n        }\n      }\n      \n      // Calculate estimated monthly traffic (CTR assumptions)\n      let estimatedTraffic = 0;\n      if (kw.volume) {\n        // Assume 30% CTR for position 1, 15% for 2-3, 10% for 4-5, 5% for 6-10\n        // For content generation, estimate top 5 ranking potential\n        estimatedTraffic = Math.round(kw.volume * 0.15);\n      }\n      \n      // Priority classification\n      let priority = 'LOW';\n      if (opportunityScore >= 70) {\n        priority = 'HIGH';\n      } else if (opportunityScore >= 50) {\n        priority = 'MEDIUM';\n      }\n      \n      // Extract SERP features and intents if available\n      const serpFeatures = kw.serp_features ? \n        (Array.isArray(kw.serp_features) ? kw.serp_features.join('; ') : kw.serp_features) : '';\n      const intents = kw.intents ? \n        (Array.isArray(kw.intents) ? kw.intents.join('; ') : kw.intents) : intent;\n      \n      allKeywords.push({\n        date: timestamp,\n        keyword: keywordText,\n        volume: kw.volume || 0,\n        cpc: kw.cpc || 0,\n        difficulty: kw.difficulty || 0,\n        competition: kw.competition || 0,\n        relevance: kw.relevance || null,\n        opportunity_score: opportunityScore,\n        priority: priority,\n        search_intent: intents || intent,\n        content_type: contentType,\n        trend_status: trendStatus,\n        trend_direction_pct: trendDirection,\n        trend_avg_volume: trendAvg,\n        estimated_monthly_traffic: estimatedTraffic,\n        serp_features: serpFeatures,\n        section_source: sectionIndex === 0 ? 'longtail' : \n                       sectionIndex === 1 ? 'questions' : \n                       sectionIndex === 2 ? 'similar' : 'related'\n      });\n    }\n    // For simple string keywords\n    else {\n      allKeywords.push({\n        date: timestamp,\n        keyword: keywordText,\n        volume: 0,\n        cpc: 0,\n        difficulty: 0,\n        competition: 0,\n        relevance: null,\n        opportunity_score: 0,\n        priority: 'UNKNOWN',\n        search_intent: 'unknown',\n        content_type: 'blog post',\n        trend_status: 'unknown',\n        trend_direction_pct: 0,\n        trend_avg_volume: 0,\n        estimated_monthly_traffic: 0,\n        serp_features: '',\n        section_source: sectionIndex === 0 ? 'longtail' : \n                       sectionIndex === 1 ? 'questions' : \n                       sectionIndex === 2 ? 'similar' : 'related'\n      });\n    }\n  });\n});\n\n// Sort by opportunity score descending\nallKeywords.sort((a, b) => b.opportunity_score - a.opportunity_score);\n\nreturn allKeywords.map(kw => ({ json: kw }));"},"typeVersion":2},{"id":"203c0b4a-02ae-4f81-b55a-4ee80d894542","name":"Export to Google Sheets","type":"n8n-nodes-base.googleSheets","position":[5904,2256],"parameters":{"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"id","value":"","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"id","value":"","cachedResultUrl":"","cachedResultName":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"YOUR_GOOGLE_SHEETS_CREDENTIAL_ID","name":"Google Sheets API"}},"typeVersion":4.7},{"id":"92482d94-bb31-4b29-bc3e-9fee8a7d461b","name":"Overview","type":"n8n-nodes-base.stickyNote","position":[4208,1744],"parameters":{"color":5,"width":504,"height":768,"content":"## Research keywords for content ideas\n\n## Who is this for\n- Content creators planning articles\n- SEO professionals finding opportunities\n- Marketing teams building content calendars\n\n## What you'll get\n- Longtail, question, similar, and related keywords\n- Opportunity scores based on volume, difficulty, and CPC\n- Search intent classification\n- Content type suggestions\n- Trend analysis with historical data\n- Traffic estimates and priority rankings\n- All results exported to Google Sheets\n\n## How it works\n1. Fetches 4 keyword types from SE Ranking\n2. Merges and deduplicates results\n3. Analyzes with scoring algorithm\n4. Detects search intent and suggests content types\n5. Exports to Google Sheets\n\n## Setup steps\n1. Install SE Ranking community node\n2. Add SE Ranking API credentials\n3. Update seed keyword in all 4 nodes\n4. Connect Google Sheets credentials\n5. Select your spreadsheet\n\n## Customization\nAdjust volume and difficulty filters in nodes or modify scoring formula in Code node."},"typeVersion":1},{"id":"24ca7591-012a-46a9-b926-aabe61d29b54","name":"Longtail Keywords","type":"n8n-nodes-base.stickyNote","position":[5120,1936],"parameters":{"color":4,"width":280,"height":80,"content":"### Longtail Keywords\nRetrieves up to 50 longtail variations. Update the keyword parameter with your target topic."},"typeVersion":1},{"id":"1301ca6b-46e8-4dae-b3b1-58fd3e3176bd","name":"Question Keywords","type":"n8n-nodes-base.stickyNote","position":[5088,2224],"parameters":{"color":4,"width":280,"height":80,"content":"### Question Keywords\nFinds question-based keywords with min 500 volume and max 50 difficulty. Perfect for FAQ content."},"typeVersion":1},{"id":"3f605bab-6964-4d8e-b843-dc65c7000407","name":"Similar Keywords","type":"n8n-nodes-base.stickyNote","position":[5056,2496],"parameters":{"color":4,"width":280,"height":80,"content":"### Similar Keywords\nGets semantically similar keywords with the same filters. Helps expand topic coverage."},"typeVersion":1},{"id":"3f7bdb82-c609-414c-a707-3e27fed960df","name":"Related Keywords","type":"n8n-nodes-base.stickyNote","position":[5056,2784],"parameters":{"color":4,"width":280,"height":80,"content":"### Related Keywords\nFinds related suggestions based on your seed term. Uncovers adjacent topics."},"typeVersion":1},{"id":"ca07827d-d588-4ca3-8fa2-f21ab6aa52cd","name":"Merge Results","type":"n8n-nodes-base.stickyNote","position":[5440,2496],"parameters":{"color":4,"height":80,"content":"### Merge Results\nCombines all 4 keyword sources into a single dataset."},"typeVersion":1},{"id":"1ad7b71d-8f83-411d-a901-9ff17a91c8ee","name":"Analysis","type":"n8n-nodes-base.stickyNote","position":[5616,2080],"parameters":{"color":4,"content":"### Analysis\nScores keywords by volume, difficulty, and CPC. Detects search intent, suggests content types, and assigns priority rankings."},"typeVersion":1},{"id":"de459f21-44b9-4a5e-b503-18735e26e9b7","name":"Export","type":"n8n-nodes-base.stickyNote","position":[5904,2128],"parameters":{"color":4,"height":80,"content":"### Export\nAppends analyzed keywords to Google Sheets with 17 columns including metrics and recommendations."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"","connections":{"Get related keywords":{"main":[[{"node":"Merge all keyword types","type":"main","index":3}]]},"Get similar keywords":{"main":[[{"node":"Merge all keyword types","type":"main","index":2}]]},"Get longtail keywords":{"main":[[{"node":"Merge all keyword types","type":"main","index":0}]]},"Get question keywords":{"main":[[{"node":"Merge all keyword types","type":"main","index":1}]]},"Merge all keyword types":{"main":[[{"node":"Analyze & Score Keywords for Content","type":"main","index":0}]]},"When clicking 'Execute workflow'":{"main":[[{"node":"Get longtail keywords","type":"main","index":0},{"node":"Get question keywords","type":"main","index":0},{"node":"Get similar keywords","type":"main","index":0},{"node":"Get related keywords","type":"main","index":0}]]},"Analyze & Score Keywords for Content":{"main":[[{"node":"Export to Google Sheets","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":16,"nodeTypes":{"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.googleSheets":{"count":1},"n8n-nodes-base.manualTrigger":{"count":1},"@seranking/n8n-nodes-seranking.seRanking":{"count":4}}},"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":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":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"}]}],"categories":[{"id":32,"name":"Market Research"},{"id":49,"name":"AI Summarization"}],"image":[{"id":4238,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/image_6121c21e4d.png"}]}}