{"workflow":{"id":14257,"name":"Track AI search winners and uncover topic gaps with SE Ranking and Google Sheets","views":19,"recentViews":1,"totalViews":19,"createdAt":"2026-03-23T05:56:40.999Z","description":"# Track who wins AI search and find the topics you're missing with SE Ranking\n\n![Screenshot 20260323 at 00.16.30.png](fileId:5082)\n\n## Who is this for\n- SEO teams comparing AI search visibility against competitors\n- Content strategists planning editorial calendars around AI search gaps\n- Marketing managers reporting share of voice across ChatGPT, Perplexity, and Gemini\n\n## What this workflow does\nSee who's winning AI search across all major LLMs, then find the organic keyword gaps and unanswered questions your competitors are capturing that you're not — and save everything to Google Sheets.\n\n## What you'll get\n- AI search leaderboard with share of voice across ChatGPT, Perplexity, Gemini, AI Overviews, and AI Mode\n- Organic keyword gaps where competitors rank but you don't, sorted by volume\n- Question keywords your audience asks around your seed topic — ready to write against\n- Prompts where you already appear in AI search results\n- SEO topics where your competitor shows up in AI answers but you don't\n\n## How it works\n1. Add your domain and 2 competitors in the form — it looks up the AI search leaderboard across all 5 LLM engines and shows who's winning\n![Screenshot 20260323 at 06.53.28.png](fileId:5083)\n2. Pulls organic keyword gaps against both competitors sorted by volume, filtered for English keywords\n3. Finds question keywords your audience asks around your seed topic, filtered by informational intent\n4. Gets the top prompts where you already show up in AI search results\n5. Pulls your competitors' top SEO prompts and compares against your footprint to find where they appear but you don't\n6. Saves all five data sets to separate tabs in Google Sheets\n\n## Requirements\n- SE Ranking community node installed\n- SE Ranking API token ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\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 API credentials\n3. Connect your Google Sheets account and set a spreadsheet URL in each export node\n4. Activate the workflow — n8n generates a unique form URL you can share or embed\n5. Open the form, fill in your domain and competitors, and the workflow runs automatically\n\n## Customization\n- Change `volume_min` in the Configuration node to raise or lower the keyword volume threshold\n- Change `source` in the Configuration node for a different regional database (us, uk, de, fr, es, etc.)\n- Swap `seed_topic` in Configuration to any keyword your business targets to get a fresh set of questions","workflow":{"name":"Track who wins AI search and find the topics you're missing with SE Ranking","tags":[],"nodes":[{"id":"5cfd1015-76d4-4a32-bac2-92f9306865e5","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[3584,1664],"parameters":{"color":5,"width":568,"height":1448,"content":"## Track who wins AI search and find the topics you're missing with SE Ranking\n\n## Who is this for\n- SEO teams comparing AI search visibility against competitors\n- Content strategists planning editorial calendars around AI search gaps\n- Marketing managers reporting share of voice across ChatGPT, Perplexity, and Gemini\n\n## What this workflow does\nSee who's winning AI search across all major LLMs, then find the organic keyword gaps and unanswered questions your competitors are capturing that you're not — and save everything to Google Sheets.\n\n## What you'll get\n- AI search leaderboard with share of voice across ChatGPT, Perplexity, Gemini, AI Overviews, and AI Mode\n- Organic keyword gaps where competitors rank but you don't, sorted by volume\n- Question keywords your audience asks around your seed topic — ready to write against\n- Prompts where you already appear in AI search results\n- SEO topics where your competitor shows up in AI answers but you don't\n\n## How it works\n1. Add your domain and 2 competitors in the form — it looks up the AI search leaderboard across all 5 LLM engines and shows who's winning\n2. Pulls organic keyword gaps against both competitors sorted by volume, filtered for English keywords\n3. Finds question keywords your audience asks around your seed topic, filtered by informational intent\n4. Gets the top prompts where you already show up in AI search results\n5. Pulls your competitors' top SEO prompts and compares against your footprint to find where they appear but you don't\n6. Saves all five data sets to separate tabs in Google Sheets\n\n## Requirements\n- SE Ranking community node installed\n- SE Ranking API token ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\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 API credentials\n3. Connect your Google Sheets account and set a spreadsheet URL in each export node\n4. Activate the workflow — n8n generates a unique form URL you can share or embed\n5. Open the form, fill in your domain and competitors, and the workflow runs automatically\n\n## Customization\n- Change `volume_min` in the Configuration node to raise or lower the keyword volume threshold\n- Change `source` in the Configuration node for a different regional database (us, uk, de, fr, es, etc.)\n- Swap `seed_topic` in Configuration to any keyword your business targets to get a fresh set of questions"},"typeVersion":1},{"id":"e773dbac-6dbe-45a0-a015-6b4c05f56aae","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[4064,3248],"parameters":{"color":7,"width":456,"height":464,"content":"### 📋 How to share or embed this form\n\n1. **Activate** the workflow using the toggle in the top right\n2. Open the **Domain Input Form** node and copy the **Production URL**\n3. **Share the link** directly — anyone with the URL can fill in their domain and trigger the workflow\n4. **Embed on your website** using an iframe:\n\n```html\n<iframe\n  src=\"YOUR_PRODUCTION_URL\"\n  width=\"600\"\n  height=\"500\"\n  frameborder=\"0\">\n</iframe>\n```\n\nEach form submission runs the full workflow automatically."},"typeVersion":1},{"id":"eba74508-75d0-465a-af5c-637533f30207","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[4624,1984],"parameters":{"color":7,"width":868,"height":334,"content":"### 🏆 AI Search Leaderboard\nCompares you and up to 2 competitors across ChatGPT, Perplexity, Gemini, AI Overviews, and AI Mode — returns share of voice and presence scores per engine."},"typeVersion":1},{"id":"0891b8ae-04c0-4672-ad30-03a8e303f474","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[4784,3040],"parameters":{"color":7,"width":1172,"height":846,"content":"### 🤖 AI Footprint Comparison\nYour AI topics and both competitors' topics merge before the gap code runs. \nOnly SEO-context prompts are kept — filters out unrelated brand mentions."},"typeVersion":1},{"id":"836d8671-7dbd-495e-acb0-03fce1988827","name":"Domain Input Form","type":"n8n-nodes-base.formTrigger","position":[4320,3008],"webhookId":"4de873b1-b2ea-4972-b3dc-9fb2fb924350","parameters":{"options":{},"formTitle":"AI Search Gap Analysis","formFields":{"values":[{"fieldLabel":"Your Domain","placeholder":"example.com","requiredField":true},{"fieldLabel":"Your Brand Name","placeholder":"Example","requiredField":true},{"fieldLabel":"Seed Topic","placeholder":"seo software","requiredField":true},{"fieldLabel":"Competitor 1 Domain","placeholder":"competitor1.com","requiredField":true},{"fieldLabel":"Competitor 1 Brand","placeholder":"Competitor One","requiredField":true},{"fieldLabel":"Competitor 2 Domain","placeholder":"competitor2.com"},{"fieldLabel":"Competitor 2 Brand","placeholder":"Competitor Two"},{"fieldType":"dropdown","fieldLabel":"Target Market","fieldOptions":{"values":[{"option":"us"},{"option":"uk"},{"option":"de"},{"option":"fr"},{"option":"es"},{"option":"it"},{"option":"au"},{"option":"ca"},{"option":"pl"}]},"requiredField":true}]},"formDescription":"Enter your domain and up to 2 competitors to see who's winning AI search and find the topics you're missing."},"typeVersion":2.2},{"id":"940ff7c6-93f6-48d1-a834-ec408d770e93","name":"Configuration","type":"n8n-nodes-base.set","position":[4512,3008],"parameters":{"fields":{"values":[{"name":"your_domain","stringValue":"={{ $json['Your Domain'] }}"},{"name":"your_brand","stringValue":"={{ $json['Your Brand Name'] }}"},{"name":"competitor_domain_1","stringValue":"={{ $json['Competitor 1 Domain'] }}"},{"name":"competitor_brand_1","stringValue":"={{ $json['Competitor 1 Brand'] }}"},{"name":"competitor_domain_2","stringValue":"={{ $json['Competitor 2 Domain'] || $json['Competitor 1 Domain'] }}"},{"name":"competitor_brand_2","stringValue":"={{ $json['Competitor 2 Brand'] || $json['Competitor 1 Brand'] }}"},{"name":"seed_topic","stringValue":"={{ $json['Seed Topic'] }}"},{"name":"source","stringValue":"={{ $json['Target Market'] }}"},{"name":"scope","stringValue":"base_domain"},{"name":"volume_min","stringValue":"500"},{"name":"results_limit","stringValue":"200"}]},"options":{}},"typeVersion":3},{"id":"0d58b9d5-49ae-4c1d-bf78-d549014949f9","name":"Get AI leaderboard","type":"@seranking/n8n-nodes-seranking.seRanking","position":[4800,2144],"parameters":{"source":"={{ $json.source }}","engines":["ai-overview","chatgpt","perplexity","gemini"],"resource":"aiSearch","operation":"getLeaderboard","competitors":{"competitorValues":[{"brand":"={{ $json.competitor_brand_1 }}","target":"={{ $json.competitor_domain_1 }}"},{"brand":"={{ $json.competitor_brand_2 }}","target":"={{ $json.competitor_domain_2 }}"}]},"primaryBrand":"={{ $json.your_brand }}","primaryTarget":"={{ $json.your_domain }}"},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"6834e6f3-56a0-434e-bddc-9e078dc54650","name":"Format leaderboard","type":"n8n-nodes-base.code","position":[5008,2144],"parameters":{"jsCode":"const data = $input.first().json;\nconst leaderboard = data.leaderboard || [];\nconst results = data.results || {};\n\nreturn leaderboard.map(item => ({\n  json: {\n    rank: item.rank,\n    domain: item.domain,\n    share_of_voice_pct: ((item.share_of_voice || 0) * 100).toFixed(1) + '%',\n    brand_presence_total: item.brand_presence || 0,\n    link_presence_total: item.link_presence || 0,\n    is_your_domain: item.is_primary_target ? 'Yes' : 'No',\n    chatgpt_brand: results[item.domain]?.chatgpt?.brand_presence || 0,\n    chatgpt_links: results[item.domain]?.chatgpt?.link_presence || 0,\n    perplexity_brand: results[item.domain]?.perplexity?.brand_presence || 0,\n    perplexity_links: results[item.domain]?.perplexity?.link_presence || 0,\n    gemini_brand: results[item.domain]?.gemini?.brand_presence || 0,\n    gemini_links: results[item.domain]?.gemini?.link_presence || 0,\n    ai_overview_brand: results[item.domain]?.['ai-overview']?.brand_presence || 0,\n    ai_overview_links: results[item.domain]?.['ai-overview']?.link_presence || 0,\n    ai_mode_brand: results[item.domain]?.['ai-mode']?.brand_presence || 0,\n    ai_mode_links: results[item.domain]?.['ai-mode']?.link_presence || 0,\n    date: new Date().toISOString().split('T')[0]\n  }\n}));"},"typeVersion":2},{"id":"c352e9d6-50f6-4ab7-b186-99bb85d1e73a","name":"Export to Sheets: AI Leaderboard","type":"n8n-nodes-base.googleSheets","position":[5312,2144],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0"},"documentId":{"__rl":true,"mode":"url","value":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.4},{"id":"6ba86cc5-4111-4646-abca-3c0e13dc5b0c","name":"Wait before keyword gap (3s)","type":"n8n-nodes-base.wait","position":[4816,2512],"webhookId":"rate-limit-kw1","parameters":{"amount":3},"typeVersion":1.1},{"id":"105ca5bf-d3a5-4c64-a5c1-dda76f1317d7","name":"Get keyword gaps 1st Competitor","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5152,2432],"parameters":{"diff":"1","domain":"={{ $('Configuration').item.json.competitor_domain_1 }}","source":"={{ $('Configuration').item.json.source }}","operation":"getKeywordsComparison","compareDomain":"={{ $('Configuration').item.json.your_domain }}","additionalFields":{"limit":"={{ $('Configuration').item.json.results_limit }}","orderType":"desc","orderField":"volume"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"d8388977-87a7-4de9-aae4-065cd9c4ee1a","name":"Wait before keyword gap (3s)1","type":"n8n-nodes-base.wait","position":[5040,2608],"webhookId":"rate-limit-kw2","parameters":{"amount":3},"typeVersion":1.1},{"id":"e7697519-dddb-4e40-8042-6283a72f4779","name":"Get keyword gaps 2nd Competitor","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5264,2608],"parameters":{"diff":"1","domain":"={{ $('Configuration').item.json.competitor_domain_2 }}","source":"={{ $('Configuration').item.json.source }}","operation":"getKeywordsComparison","compareDomain":"={{ $('Configuration').item.json.your_domain }}","additionalFields":{"limit":"={{ $('Configuration').item.json.results_limit }}","orderType":"desc","orderField":"volume"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"39606454-3fb5-4cc3-88e1-08da7c2e9ae4","name":"Merge keyword gaps","type":"n8n-nodes-base.merge","position":[5488,2512],"parameters":{},"typeVersion":2.1},{"id":"79404595-eb60-4ce8-bd03-d371fb290962","name":"Format keyword gaps","type":"n8n-nodes-base.code","position":[5712,2512],"parameters":{"jsCode":"const items = $input.all();\nconst config = $('Configuration').first().json;\nconst volumeMin = parseInt(config.volume_min) || 500;\n\n// Keep only Latin/English keywords — filters out Asian and non-Latin scripts\nconst isLatin = kw => /^[a-zA-Z0-9\\s\\-_'\".,?!&%()/\\\\+:;]+$/.test(kw.trim());\n\n// Deduplicate across both competitor calls\nconst seen = new Set();\n\nreturn items\n  .filter(item => {\n    const kw = item.json.keyword || '';\n    return kw && isLatin(kw) && (item.json.volume || 0) >= volumeMin;\n  })\n  .filter(item => {\n    const key = item.json.keyword.toLowerCase().trim();\n    if (seen.has(key)) return false;\n    seen.add(key);\n    return true;\n  })\n  .map(item => ({\n    json: {\n      keyword: item.json.keyword,\n      volume: item.json.volume || 0,\n      difficulty: item.json.difficulty || 0,\n      cpc: item.json.cpc || 0,\n      competitor_position: item.json.position || '—',\n      competitor_url: item.json.url || '',\n      your_position: item.json.compare_position || '—',\n      your_domain: config.your_domain,\n      date: new Date().toISOString().split('T')[0]\n    }\n  }))\n  .slice(0, 40);"},"typeVersion":2},{"id":"4dfa9aaf-62d9-47c9-afed-1b82aa5ee16e","name":"Export to Sheets: Organic Gaps","type":"n8n-nodes-base.googleSheets","position":[5936,2512],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0"},"documentId":{"__rl":true,"mode":"url","value":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.4},{"id":"c8cdd7bb-c1de-4567-8c99-6f5de6991d3b","name":"Wait before questions (6s)","type":"n8n-nodes-base.wait","position":[4896,2800],"webhookId":"rate-limit-q","parameters":{"amount":6},"typeVersion":1.1},{"id":"12019e1e-6ba7-4f8a-b8e1-8b5936bff850","name":"Get question keywords","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5104,2800],"parameters":{"source":"={{ $('Configuration').item.json.source }}","keyword":"={{ $('Configuration').item.json.seed_topic }}","resource":"keywordResearch","operation":"getQuestions","additionalFields":{"limit":30,"intents":["I"],"volumeFrom":"={{ $('Configuration').item.json.volume_min }}"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"85853350-254c-44f3-a738-dff0c52151eb","name":"Format questions","type":"n8n-nodes-base.code","position":[5360,2800],"parameters":{"jsCode":"const data = $input.first().json;\nconst keywords = data.keywords || [];\nconst config = $('Configuration').first().json;\n\nreturn keywords\n  .filter(kw => kw.keyword)\n  .map(kw => ({\n    json: {\n      question: kw.keyword,\n      volume: kw.volume || 0,\n      difficulty: kw.difficulty || 0,\n      cpc: kw.cpc || 0,\n      serp_features: (kw.serp_features || []).join(', '),\n      intent: (kw.intents || []).join(', '),\n      seed_topic: config.seed_topic,\n      date: new Date().toISOString().split('T')[0]\n    }\n  }))\n  .slice(0, 30);"},"typeVersion":2},{"id":"231c7a4e-a48c-4e55-85b0-1e3694529099","name":"Export to Sheets: Questions","type":"n8n-nodes-base.googleSheets","position":[5616,2800],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0"},"documentId":{"__rl":true,"mode":"url","value":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.4},{"id":"9a74573c-6cef-4859-94e2-f3415fafcb8b","name":"Wait before your AI topics (9s)","type":"n8n-nodes-base.wait","position":[4832,3184],"webhookId":"rate-limit-your","parameters":{"amount":9},"typeVersion":1.1},{"id":"9d2150b2-7d44-4e7d-b281-efb77f3489c6","name":"Get your AI topics","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5040,3184],"parameters":{"scope":"={{ $('Configuration').item.json.scope }}","domain":"={{ $('Configuration').item.json.your_domain }}","engine":"ai-overview","source":"={{ $('Configuration').item.json.source }}","resource":"aiSearch","operation":"getPromptsByTarget","additionalFields":{"sort":"volume","limit":"={{ $('Configuration').item.json.results_limit }}","sortOrder":"desc","volumeFrom":500}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"aeb0a034-82a2-46b3-9f36-e31b3e14bfc4","name":"Format your AI topics","type":"n8n-nodes-base.code","position":[5264,3184],"parameters":{"jsCode":"const data = $input.first().json;\nconst prompts = data.prompts || [];\nconst config = $('Configuration').first().json;\n\nreturn prompts.map(p => ({\n  json: {\n    prompt: p.prompt || '',\n    volume: p.volume || 0,\n    appearance_type: p.type || '',\n    snippet_preview: (() => { try { return (p.answer?.text || '').substring(0, 200); } catch(e) { return ''; } })(),\n    your_domain: config.your_domain,\n    date: new Date().toISOString().split('T')[0]\n  }\n}));"},"typeVersion":2},{"id":"3bf02165-88d5-4121-8e62-28dbfc0aabd0","name":"Export to Sheets: Your AI Topics","type":"n8n-nodes-base.googleSheets","position":[5552,3184],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0"},"documentId":{"__rl":true,"mode":"url","value":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.4},{"id":"84c52904-e14f-4105-ae10-4ae655e48180","name":"Wait before competitor topics (12s)","type":"n8n-nodes-base.wait","position":[4832,3424],"webhookId":"rate-limit-comp","parameters":{"amount":12},"typeVersion":1.1},{"id":"539fe1f1-1fc3-4701-bb92-42e9cfb94132","name":"Wait before competitor topics (10s)","type":"n8n-nodes-base.wait","position":[4832,3648],"webhookId":"rate-limit-comp2","parameters":{"amount":12},"typeVersion":1.1},{"id":"b30db186-858a-4b0f-b1e6-1aa01383f398","name":"Get 1st competitor AI topics","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5040,3424],"parameters":{"engine":"ai-overview","source":"={{ $('Configuration').item.json.source }}","resource":"aiSearch","brandName":"={{ $('Configuration').item.json.competitor_brand_1 }}","operation":"getPromptsByBrand","additionalFields":{"sort":"volume","limit":"={{ $('Configuration').item.json.results_limit }}","sortOrder":"desc","volumeFrom":"={{ $('Configuration').item.json.volume_min }}","multiKeywordIncluded":"seo"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"ccc3cd38-819e-4d0b-91c1-5058a12bba6f","name":"Get 2nd competitor AI topics","type":"@seranking/n8n-nodes-seranking.seRanking","position":[5040,3648],"parameters":{"engine":"ai-overview","source":"={{ $('Configuration').item.json.source }}","resource":"aiSearch","brandName":"={{ $('Configuration').item.json.competitor_brand_2 }}","operation":"getPromptsByBrand","additionalFields":{"sort":"volume","limit":"={{ $('Configuration').item.json.results_limit }}","sortOrder":"desc","volumeFrom":"={{ $('Configuration').item.json.volume_min }}","multiKeywordIncluded":"seo"}},"credentials":{"seRankingApi":{"id":"credential-id","name":"SE Ranking account"}},"typeVersion":1},{"id":"f60eea69-4efc-4665-875c-a9fe91dbb137","name":"Merge your topics and competitor topics","type":"n8n-nodes-base.merge","position":[5376,3408],"parameters":{"numberInputs":3},"typeVersion":3.2},{"id":"cc5119e1-7b50-48c9-be7a-0e1a54b16fff","name":"Find topics you're missing","type":"n8n-nodes-base.code","position":[5568,3424],"parameters":{"jsCode":"const allInputs = $input.all();\nconst config = $('Configuration').first().json;\n\n// SEO context filter — keeps only prompts related to SEO topics\nconst seoTerms = ['seo', 'keyword', 'ranking', 'backlink', 'serp', 'traffic',\n  'search engine', 'rank track', 'domain', 'audit', 'content', 'google', 'organic',\n  'link building', 'on-page', 'off-page', 'site speed', 'crawl', 'index'];\nconst isSeoRelated = prompt =>\n  seoTerms.some(t => (prompt || '').toLowerCase().includes(t));\n\n// Your topics: formatted rows — each has your_domain field\nconst yourItems = allInputs.filter(i => i.json.your_domain !== undefined);\nconst yourPrompts = new Set(\n  yourItems.map(i => (i.json.prompt || '').toLowerCase().trim())\n);\n\n// Competitor data: raw API responses — items with prompts array\n// Tag each prompt with its source competitor brand before flattening\nconst competitorItems = allInputs.filter(i => i.json.prompts !== undefined);\nconst competitorPrompts = competitorItems.flatMap((item, idx) => {\n  const brand = idx === 0 ? config.competitor_brand_1 : config.competitor_brand_2;\n  return (item.json.prompts || []).map(p => ({ ...p, _competitor: brand }));\n});\n\nconst seen = new Set();\n\nconst gaps = competitorPrompts\n  .filter(p => {\n    const normalised = (p.prompt || '').toLowerCase().trim();\n    if (!normalised || yourPrompts.has(normalised) || !isSeoRelated(p.prompt)) return false;\n    if (seen.has(normalised)) return false;\n    seen.add(normalised);\n    return true;\n  })\n  .map(p => ({\n    json: {\n      prompt: p.prompt || '',\n      volume: p.volume || 0,\n      their_appearance_type: p.type || '',\n      snippet_preview: (() => { try { return (p.answer?.text || '').substring(0, 200); } catch(e) { return ''; } })(),\n      competitor: p._competitor,\n      gap_note: 'Competitor appears here — you do not',\n      date: new Date().toISOString().split('T')[0]\n    }\n  }));\n\nreturn gaps.slice(0, 300);"},"typeVersion":2},{"id":"95f4fa5a-0e17-4f3b-b5c0-87f9d4196dfe","name":"Export to Sheets: Competitor AI Topics","type":"n8n-nodes-base.googleSheets","position":[5776,3424],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0"},"documentId":{"__rl":true,"mode":"url","value":""}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Google Sheets account"}},"typeVersion":4.4}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Configuration":{"main":[[{"node":"Get AI leaderboard","type":"main","index":0},{"node":"Wait before keyword gap (3s)","type":"main","index":0},{"node":"Wait before questions (6s)","type":"main","index":0},{"node":"Wait before your AI topics (9s)","type":"main","index":0},{"node":"Wait before competitor topics (12s)","type":"main","index":0},{"node":"Wait before competitor topics (10s)","type":"main","index":0}]]},"Format questions":{"main":[[{"node":"Export to Sheets: Questions","type":"main","index":0}]]},"Domain Input Form":{"main":[[{"node":"Configuration","type":"main","index":0}]]},"Format leaderboard":{"main":[[{"node":"Export to Sheets: AI Leaderboard","type":"main","index":0}]]},"Get AI leaderboard":{"main":[[{"node":"Format leaderboard","type":"main","index":0}]]},"Get your AI topics":{"main":[[{"node":"Format your AI topics","type":"main","index":0}]]},"Merge keyword gaps":{"main":[[{"node":"Format keyword gaps","type":"main","index":0}]]},"Format keyword gaps":{"main":[[{"node":"Export to Sheets: Organic Gaps","type":"main","index":0}]]},"Format your AI topics":{"main":[[{"node":"Export to Sheets: Your AI Topics","type":"main","index":0},{"node":"Merge your topics and competitor topics","type":"main","index":0}]]},"Get question keywords":{"main":[[{"node":"Format questions","type":"main","index":0}]]},"Find topics you're missing":{"main":[[{"node":"Export to Sheets: Competitor AI Topics","type":"main","index":0}]]},"Wait before questions (6s)":{"main":[[{"node":"Get question keywords","type":"main","index":0}]]},"Get 1st competitor AI topics":{"main":[[{"node":"Merge your topics and competitor topics","type":"main","index":1}]]},"Get 2nd competitor AI topics":{"main":[[{"node":"Merge your topics and competitor topics","type":"main","index":2}]]},"Wait before keyword gap (3s)":{"main":[[{"node":"Get keyword gaps 1st Competitor","type":"main","index":0},{"node":"Wait before keyword gap (3s)1","type":"main","index":0}]]},"Wait before keyword gap (3s)1":{"main":[[{"node":"Get keyword gaps 2nd Competitor","type":"main","index":0}]]},"Get keyword gaps 1st Competitor":{"main":[[{"node":"Merge keyword gaps","type":"main","index":0}]]},"Get keyword gaps 2nd Competitor":{"main":[[{"node":"Merge keyword gaps","type":"main","index":1}]]},"Wait before your AI topics (9s)":{"main":[[{"node":"Get your AI topics","type":"main","index":0}]]},"Wait before competitor topics (10s)":{"main":[[{"node":"Get 2nd competitor AI topics","type":"main","index":0}]]},"Wait before competitor topics (12s)":{"main":[[{"node":"Get 1st competitor AI topics","type":"main","index":0}]]},"Merge your topics and competitor topics":{"main":[[{"node":"Find topics you're missing","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":31,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":5},"n8n-nodes-base.wait":{"count":6},"n8n-nodes-base.merge":{"count":2},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.googleSheets":{"count":5},"@seranking/n8n-nodes-seranking.seRanking":{"count":7}}},"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":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":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":32,"name":"Market Research"},{"id":48,"name":"AI RAG"}],"image":[{"id":5082,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Screenshot_2026_03_23_at_00_16_30_4fc3d60df1.png"},{"id":5083,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Screenshot_2026_03_23_at_06_53_28_09d0b6d560.png"}]}}