{"workflow":{"id":14956,"name":"Generate competitor content gap reports in Slack with GPT-4o-mini","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-09T09:57:40.299Z","description":"\n### Description\n\nSubmit your page URL, a competitor's page URL, and a target keyword using a simple form. The workflow automatically scrapes both pages, strips all HTML, and sends the full comparison to GPT-4o-mini for analysis. Within seconds, a structured 6-section content gap report lands in your Slack channel — ready to act on. Built for SEO teams, content strategists, and agency analysts who need fast, repeatable competitor insights.\n\n---\n\n## What This Workflow Does\n\n- **Parallel page scraping** — Fetches your page and the competitor's page simultaneously so you get results faster, not one site at a time\n- **HTML cleaning** — Strips all scripts, ads, and navigation clutter from both pages, leaving only the actual content GPT-4o-mini needs to compare\n- **Content gap identification** — AI pinpoints exactly which topics, subtopics, and questions your page is missing that the competitor already covers\n- **Competitive advantage mapping** — Surfaces what your page has that the competitor lacks, so you know what to protect and promote\n- **Priority action list** — Delivers 5 concrete, ranked improvements specific to your page — not generic SEO advice\n- **Token-efficient processing** — Caps each page at 8,000 characters so every run stays fast and API costs stay predictable\n- **Slack report delivery** — Posts the full 6-section analysis with business name, keyword, both URLs, and run date directly to your team channel — ready to act on or forward to a client\n\n---\n\n## Setup Requirements\n\n### Tools Needed\n- n8n instance (self-hosted or cloud)\n- OpenAI account with GPT-4o-mini API access\n- Slack workspace with OAuth2 app configured\n\n**Estimated Setup Time: 10–15 minutes**\n\n---\n\n## Step-by-Step Setup\n\n1. **Import the workflow** — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import\n2. **Connect your OpenAI credential** — Go to node **10. OpenAI — GPT-4o-mini Model** → click the credential dropdown → add your OpenAI API key → test the connection\n3. **Connect your Slack credential** — Go to node **12. Slack — Send Gap Report** → click the credential dropdown → select OAuth2 → follow the Slack OAuth flow to connect your workspace\n4. **Set your Slack channel** — In node **12. Slack — Send Gap Report**, set the channel field to the channel name where reports should be posted (e.g. `#seo-reports`)\n5. **Activate the workflow** — Toggle the workflow to Active → copy the Form URL from node **1. Form — Submit Page URLs** → open it in a browser to test\n\n&gt; ⚠️ **Bot-Protected Sites** — Some sites return a 403 Forbidden error when scraped. If this happens, open nodes **3. HTTP — Scrape Your Page** and **4. HTTP — Scrape Competitor Page**, add a header with Name = `User-Agent` and Value = `Mozilla/5.0 (compatible; n8n-bot/1.0)` in both nodes.\n\n---\n\n## How It Works (Step by Step)\n\n**Step 1 — Form: Submit Page URLs**\nYou open the form URL in a browser and fill in four fields: your page URL, the competitor's page URL, the target keyword, and your business name. Submitting the form kicks off the entire workflow automatically.\n\n**Step 2 — Set: Extract Form Fields**\nAll four form inputs are mapped to clean named variables. A run timestamp is automatically added so every report is dated. These variables flow into every downstream step.\n\n**Step 3 — HTTP: Scrape Your Page (parallel)**\nAn HTTP request fetches the full HTML content of your page. This step runs at the same time as Step 4, so both pages are retrieved simultaneously without waiting.\n\n**Step 4 — HTTP: Scrape Competitor Page (parallel)**\nAn identical HTTP request fetches the competitor's page in parallel with Step 3. Both pages are ready at the same time.\n\n**Step 5 — Code: Clean Your Page HTML**\nA code step removes all script tags, style tags, and HTML markup from your page. The result is plain readable text, trimmed to 8,000 characters to keep AI costs low and responses fast.\n\n**Step 6 — Code: Clean Competitor Page HTML**\nThe same cleaning process runs on the competitor's page. This step also carries forward all the form variables (keyword, URLs, business name, run date) so nothing is lost in the merge.\n\n**Step 7 — Merge: Combine Both Pages**\nBoth cleaned page texts — yours and the competitor's — flow into a merge step that combines them into a single pipeline for the next step.\n\n**Step 8 — Code: Combine Page Data**\nA code step safely joins both items into one clean object. If either page failed to scrape, it uses a fallback message instead of crashing the workflow.\n\n**Step 9 — AI Agent: Gap Analyzer**\nGPT-4o-mini receives both page texts, the target keyword, business name, and both URLs. It produces a plain-text 6-section analysis: keyword usage comparison, topics your page is missing, topics you have that the competitor lacks, content depth and quality comparison, five priority actions ranked by impact, and a quick 3-sentence verdict.\n\n**Step 10 — OpenAI: GPT-4o-mini Model**\nThis is the language model powering the AI Agent. It is configured with a temperature of 0.4 for consistent, factual analysis and a max token limit of 1,500 to keep reports concise.\n\n**Step 11 — Set: Prepare Slack Message**\nAll report fields are assembled into a single clean object: the AI analysis, both URLs, target keyword, business name, and run date. This is the complete payload that goes to Slack.\n\n**Step 12 — Slack: Send Gap Report**\nThe full report is posted to your Slack channel in a formatted message. It includes the business name, keyword, run date, both URLs, the full 6-section AI analysis, and a footer noting the report was generated by n8n + GPT-4o-mini.\n\n---\n\n## Key Features\n\n✅ **Parallel scraping** — Both pages are fetched at the same time, not one after the other, saving you time on every run\n✅ **Auto HTML stripping** — Scripts, styles, and all tags are removed automatically — no manual cleanup needed\n✅ **Token budget control** — Each page is hard-capped at 8,000 characters so API costs stay predictable\n✅ **Fallback handling** — If a page fails to scrape, the workflow continues and notes the failure rather than crashing\n✅ **6-section structured report** — Every report follows the same format so results are easy to compare across competitors and dates\n✅ **Slack delivery with metadata** — Reports arrive with business name, keyword, run date, and both URLs for full context\n✅ **Plain text output** — No markdown symbols in the AI analysis, making it easy to paste directly into a doc or client report\n✅ **One-form trigger** — The whole workflow starts with a single form submission — no coding, no manual steps\n\n---\n\n## Customisation Options\n\n**Change the text limit per page** — In nodes **5. Code — Clean Your Page HTML** and **6. Code — Clean Competitor Page HTML**, change `.substring(0, 8000)` to a higher number (e.g. 12000) if you want deeper analysis on long-form pages. Note this will increase GPT token usage.\n\n**Add email delivery** — After node **11. Set — Prepare Slack Message**, add a Gmail or SMTP node to also send the report by email. Use the same `gapReport` variable for the email body.\n\n**Save reports to Google Sheets** — Add a Google Sheets node after the Slack node to log every run: business name, keyword, date, competitor URL, and a summary of the verdict section.\n\n**Schedule weekly competitor checks** — Replace the form trigger with a Schedule trigger and a Set node with hardcoded URLs and keywords to automatically run gap analysis every Monday morning.\n\n**Expand the AI report sections** — In node **9. AI Agent — Gap Analyzer**, edit the prompt to add a Section 7 covering suggested internal links, or a Section 8 comparing schema markup signals.\n\n---\n\n## Troubleshooting\n\n**OpenAI credential not working:**\n- Confirm you added the API key in node **10. OpenAI — GPT-4o-mini Model**, not elsewhere\n- Check that your OpenAI account has available credits\n- Make sure you are using a key with access to GPT-4o-mini (not a restricted key)\n\n**Scraping returns a 403 or empty result:**\n- Add a User-Agent header to both **3. HTTP — Scrape Your Page** and **4. HTTP — Scrape Competitor Page**\n- Header Name: `User-Agent`, Value: `Mozilla/5.0 (compatible; n8n-bot/1.0)`\n- Some enterprise or Cloudflare-protected sites cannot be scraped — try the mobile version of the URL instead\n\n**Slack message not arriving:**\n- Confirm the OAuth2 credential in node **12. Slack — Send Gap Report** is connected and authorised\n- Check that the channel name is correct and the bot has been invited to that channel\n- In Slack, go to the channel → click the channel name → Integrations → confirm the n8n app is listed\n\n**Report is too short or generic:**\n- The page text may have been mostly scripts with little readable content — check the cleaned text in node **5** or **6** by running a test\n- Try a different URL format (e.g. without trailing slash) or the AMP version of the page\n- Increase the max token setting in node **10** from 1500 to 2000 for more detailed output\n\n**Form submission not triggering the workflow:**\n- Make sure the workflow is set to Active (toggle in the top right of the workflow editor)\n- Copy the Form URL fresh from node **1. Form — Submit Page URLs** after activating — inactive workflows generate a test URL, not a live one\n\n---\n\n## Support\n\nNeed help setting this up or want a custom version built for your team or agency?\n\n📧 Email: [info@incrementors.com](info@incrementors.com)\n🌐 Website: [https://www.incrementors.com/contact-us/](https://www.incrementors.com/contact-us/)","workflow":{"meta":{"instanceId":"bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2"},"nodes":[{"id":"1c4e1f91-f6fa-4e4b-a90b-cd8d1a269904","name":"Overview","type":"n8n-nodes-base.stickyNote","position":[-1136,-576],"parameters":{"width":460,"height":936,"content":"## Competitor Content Gap Analyzer — GPT-4o-mini + Slack\n\nFor SEO teams, content strategists, and agency analysts who want to instantly compare any two web pages and get a detailed content gap report in Slack. Submit your page URL, a competitor page URL, and a target keyword via the form. The workflow scrapes both pages in parallel, strips all HTML leaving only readable text, and passes both to GPT-4o-mini which produces a 6-section analysis covering keyword usage, missing topics, your competitive advantages, content depth, five priority actions, and a quick verdict. The full report is posted directly to your Slack channel.\n\n## How it works\n- **1. Form — Submit Page URLs** collects your URL, competitor URL, target keyword, and business name\n- **2. Set — Extract Form Fields** maps inputs to clean variables and adds a run timestamp\n- **3–4. HTTP nodes** scrape both pages simultaneously in parallel\n- **5–6. Code nodes** strip scripts, styles, and HTML tags — keeping only readable text limited to 8000 characters\n- **7. Merge — Combine Both Pages** joins both cleaned pages into one pipeline\n- **8. Code — Combine Page Data** safely merges both items into one clean object\n- **9. AI Agent — Gap Analyzer** uses GPT-4o-mini to produce a 6-section content gap report\n- **11. Set — Prepare Slack Message** assembles all report fields\n- **12. Slack — Send Gap Report** posts the full analysis to your channel\n\n## Set up steps\n1. In **10. OpenAI — GPT-4o-mini Model** — connect your OpenAI API credential\n2. In **12. Slack — Send Gap Report** — connect your Slack OAuth2 credential and set your channel name\n3. Activate the workflow and copy the Form URL from node 1\n4. Open the Form URL in a browser, fill in all four fields, and submit"},"typeVersion":1},{"id":"8279653d-a645-49d2-b8d3-d27b4e9e6214","name":"Section — Form Input and Field Extraction","type":"n8n-nodes-base.stickyNote","position":[-624,-304],"parameters":{"color":5,"width":436,"height":404,"content":"## Form Input and Field Extraction\nUser submits both page URLs, the target keyword, and business name. All inputs are mapped to clean variables with a run timestamp added automatically."},"typeVersion":1},{"id":"0af6d093-d6fe-4368-9cc5-683427fe4a2e","name":"Section — Parallel Page Scraping and Cleaning","type":"n8n-nodes-base.stickyNote","position":[-160,-432],"parameters":{"color":6,"width":420,"height":660,"content":"## Parallel Page Scraping and HTML Cleaning\nBoth pages are scraped simultaneously. Each Code node strips scripts, styles, and all HTML tags — keeping only readable text limited to 8000 characters for GPT token efficiency."},"typeVersion":1},{"id":"10c3dfc2-19c5-4e6e-972d-6bdbdf694bf9","name":"Section — Data Merge","type":"n8n-nodes-base.stickyNote","position":[304,-320],"parameters":{"color":6,"width":420,"height":420,"content":"## Data Merge\nBoth cleaned page texts are merged into a single pipeline item. A Code node safely combines them with fallback handling if either page failed to scrape."},"typeVersion":1},{"id":"06247d1a-6f92-4dde-b547-89fbe572d051","name":"Section — AI Content Gap Analysis","type":"n8n-nodes-base.stickyNote","position":[768,-416],"parameters":{"color":6,"width":344,"height":644,"content":"## AI Content Gap Analysis\nGPT-4o-mini compares both pages and produces a 6-section report: keyword usage, missing topics, your advantages, content depth, five priority actions, and a quick verdict."},"typeVersion":1},{"id":"54cc755a-8708-40da-926a-2662e09afa60","name":"Section — Slack Report Delivery","type":"n8n-nodes-base.stickyNote","position":[1152,-272],"parameters":{"color":4,"width":420,"height":388,"content":"## Slack Report Delivery\nAssembles the full report message with business name, keyword, URLs, and AI analysis. Posts the complete 6-section gap report to your Slack channel."},"typeVersion":1},{"id":"68df874f-a996-445a-8c1a-7595e22571cd","name":"Note — Bot-Protected Sites May Block Scraping","type":"n8n-nodes-base.stickyNote","position":[128,288],"parameters":{"color":3,"width":700,"content":"## ⚠️ Bot-Protected Sites May Return 403\nSome websites block automated HTTP requests and return a 403 Forbidden error. If scraping fails, add a User-Agent header to this node: Name = User-Agent, Value = Mozilla/5.0 (compatible; n8n-bot/1.0). Do the same for node 4."},"typeVersion":1},{"id":"a9879d2d-85da-46ff-9563-d7fbf2ab4326","name":"1. Form — Submit Page URLs","type":"n8n-nodes-base.formTrigger","position":[-576,-112],"webhookId":"c58ced79-0fef-4445-bcf9-b72a965d325f","parameters":{"options":{},"formTitle":"Competitor Content Gap Analyzer","formFields":{"values":[{"fieldLabel":"Your Page URL","placeholder":"https://www.yoursite.com/your-page","requiredField":true},{"fieldLabel":"Competitor Page URL","placeholder":"https://www.competitorsite.com/their-page","requiredField":true},{"fieldLabel":"Target Keyword","placeholder":"e.g. dental implants london","requiredField":true},{"fieldLabel":"Your Business Name","placeholder":"e.g. Incrementors","requiredField":true}]},"formDescription":"Enter your page URL and a competitor's page URL. AI will scrape both, compare them, and send a full content gap report to your Slack channel."},"typeVersion":2.2},{"id":"33c6adfd-f768-43a5-9120-218521ea1e78","name":"2. Set — Extract Form Fields","type":"n8n-nodes-base.set","position":[-352,-112],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"yourUrl","type":"string","value":"={{ $json['Your Page URL'] }}"},{"id":"cfg-002","name":"competitorUrl","type":"string","value":"={{ $json['Competitor Page URL'] }}"},{"id":"cfg-003","name":"targetKeyword","type":"string","value":"={{ $json['Target Keyword'] }}"},{"id":"cfg-004","name":"businessName","type":"string","value":"={{ $json['Your Business Name'] }}"},{"id":"cfg-005","name":"runDate","type":"string","value":"={{ $now.toFormat('dd MMM yyyy HH:mm') }}"}]}},"typeVersion":3.4},{"id":"0b52a604-0d33-4dbf-84a8-03ab464d5aaf","name":"3. HTTP — Scrape Your Page","type":"n8n-nodes-base.httpRequest","position":[-112,-256],"parameters":{"url":"={{ $json.yourUrl }}","options":{"timeout":15000,"response":{"response":{}}}},"typeVersion":4.2},{"id":"22aff6a2-8c0d-4801-9f53-3493f738eeaf","name":"4. HTTP — Scrape Competitor Page","type":"n8n-nodes-base.httpRequest","position":[-112,32],"parameters":{"url":"={{ $('2. Set — Extract Form Fields').item.json.competitorUrl }}","options":{"timeout":15000,"response":{"response":{}}}},"typeVersion":4.2},{"id":"6a4f7779-4912-467e-9693-402d60eeeb4c","name":"5. Code — Clean Your Page HTML","type":"n8n-nodes-base.code","position":[112,-256],"parameters":{"jsCode":"// Get both scraped pages\nconst yourHtml = $input.first().json.data || $input.first().json.body || $input.first().json || '';\nconst config = $('2. Set — Extract Form Fields').item.json;\n\n// Clean HTML — remove scripts, styles, keep text\nfunction cleanHtml(html) {\n  if (typeof html !== 'string') html = JSON.stringify(html);\n  return html\n    .replace(/<script[\\s\\S]*?<\\/script>/gi, '')\n    .replace(/<style[\\s\\S]*?<\\/style>/gi, '')\n    .replace(/<[^>]+>/g, ' ')\n    .replace(/\\s+/g, ' ')\n    .trim()\n    .substring(0, 8000);\n}\n\nconst cleanedYours = cleanHtml(yourHtml);\n\nreturn [{\n  json: {\n    yourPageText: cleanedYours,\n    yourUrl: config.yourUrl,\n    competitorUrl: config.competitorUrl,\n    targetKeyword: config.targetKeyword,\n    businessName: config.businessName,\n    runDate: config.runDate\n  }\n}];"},"typeVersion":2},{"id":"041aaf0d-c096-46d3-bb15-175353b652f1","name":"6. Code — Clean Competitor Page HTML","type":"n8n-nodes-base.code","position":[112,32],"parameters":{"jsCode":"// Get competitor scraped page\nconst competitorHtml = $input.first().json.data || $input.first().json.body || $input.first().json || '';\nconst yourPageData = $('5. Code — Clean Your Page HTML').item.json;\n\n// Clean HTML — remove scripts, styles, keep text\nfunction cleanHtml(html) {\n  if (typeof html !== 'string') html = JSON.stringify(html);\n  return html\n    .replace(/<script[\\s\\S]*?<\\/script>/gi, '')\n    .replace(/<style[\\s\\S]*?<\\/style>/gi, '')\n    .replace(/<[^>]+>/g, ' ')\n    .replace(/\\s+/g, ' ')\n    .trim()\n    .substring(0, 8000);\n}\n\nconst cleanedCompetitor = cleanHtml(competitorHtml);\n\nreturn [{\n  json: {\n    yourPageText: yourPageData.yourPageText,\n    competitorPageText: cleanedCompetitor,\n    yourUrl: yourPageData.yourUrl,\n    competitorUrl: yourPageData.competitorUrl,\n    targetKeyword: yourPageData.targetKeyword,\n    businessName: yourPageData.businessName,\n    runDate: yourPageData.runDate\n  }\n}];"},"typeVersion":2},{"id":"2a05b77c-e1eb-4ee5-9b10-595e2c808857","name":"7. Merge — Combine Both Pages","type":"n8n-nodes-base.merge","position":[368,-112],"parameters":{"mode":"combine","options":{}},"typeVersion":3},{"id":"f434b710-929c-4eab-b5f3-c0be60e761d5","name":"8. Code — Combine Page Data","type":"n8n-nodes-base.code","position":[576,-112],"parameters":{"jsCode":"// Merge both cleaned page texts into one item for AI Agent\nconst items = $input.all();\n\n// Item 0 = Your page (from Clean Your Page HTML)\n// Item 1 = Competitor page (from Clean Competitor Page HTML)\nconst yourData = items[0]?.json || {};\nconst competitorData = items[1]?.json || {};\n\nreturn [{\n  json: {\n    yourPageText: yourData.yourPageText || 'Could not scrape your page.',\n    competitorPageText: competitorData.competitorPageText || 'Could not scrape competitor page.',\n    yourUrl: yourData.yourUrl || competitorData.yourUrl,\n    competitorUrl: yourData.competitorUrl || competitorData.competitorUrl,\n    targetKeyword: yourData.targetKeyword || competitorData.targetKeyword,\n    businessName: yourData.businessName || competitorData.businessName,\n    runDate: yourData.runDate || competitorData.runDate\n  }\n}];"},"typeVersion":2},{"id":"ac6a3d06-bbff-4a5c-ba51-1473927e5764","name":"9. AI Agent — Gap Analyzer","type":"@n8n/n8n-nodes-langchain.agent","position":[816,-112],"parameters":{"text":"=You are a senior SEO content strategist.\n\nYour job is to compare two web pages targeting the same keyword and produce a detailed content gap analysis.\n\nBUSINESS: {{ $json.businessName }}\nTARGET KEYWORD: {{ $json.targetKeyword }}\nYOUR PAGE URL: {{ $json.yourUrl }}\nCOMPETITOR PAGE URL: {{ $json.competitorUrl }}\n\nYOUR PAGE CONTENT:\n{{ $json.yourPageText }}\n\nCOMPETITOR PAGE CONTENT:\n{{ $json.competitorPageText }}\n\nAnalyze both pages carefully and produce the following report. Use plain text only. No markdown. No asterisks. Use CAPS for all section headings.\n\nSECTION 1 — KEYWORD USAGE COMPARISON\nFor the target keyword and related terms, compare how each page uses them. Note which page uses the keyword more naturally, in headings, in opening paragraphs, and throughout the body.\n\nSECTION 2 — CONTENT TOPICS YOUR PAGE IS MISSING\nList the specific topics, subtopics, questions, or angles the competitor covers that your page does not. Number each gap. Be specific — not generic.\n\nSECTION 3 — CONTENT TOPICS YOU HAVE THAT COMPETITOR LACKS\nList what your page covers that the competitor does not. This is your competitive advantage. Number each point.\n\nSECTION 4 — CONTENT DEPTH AND QUALITY COMPARISON\nCompare word count estimate, use of examples, use of data or stats, use of FAQs, clarity of value proposition, and calls to action.\n\nSECTION 5 — TOP 5 PRIORITY ACTIONS\nList exactly 5 specific actions to improve your page based on the gap analysis. Each action must be concrete and actionable. Number them 1 to 5. Prioritize highest impact first.\n\nSECTION 6 — QUICK VERDICT\nIn 3 sentences or less: is your page stronger or weaker than the competitor for this keyword, and what is the single most important thing to fix first.\n\nRULES:\n- Plain text only. No markdown symbols.\n- Be specific and data-driven. Reference actual content from both pages.\n- Do not write generic SEO advice. Only insights from these two specific pages.","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"bdf72fa1-45cf-43cc-a5bd-069501a9544e","name":"10. OpenAI — GPT-4o-mini Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[816,96],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{"maxTokens":1500,"temperature":0.4}},"typeVersion":1.2},{"id":"9bd4af4b-4f8c-4b96-8b28-35b994eb3a28","name":"11. Set — Prepare Slack Message","type":"n8n-nodes-base.set","position":[1200,-112],"parameters":{"options":{},"assignments":{"assignments":[{"id":"slack-001","name":"gapReport","type":"string","value":"={{ $json.output || 'Gap analysis could not be generated. Please check OpenAI credentials.' }}"},{"id":"slack-002","name":"yourUrl","type":"string","value":"={{ $('8. Code — Combine Page Data').item.json.yourUrl }}"},{"id":"slack-003","name":"competitorUrl","type":"string","value":"={{ $('8. Code — Combine Page Data').item.json.competitorUrl }}"},{"id":"slack-004","name":"targetKeyword","type":"string","value":"={{ $('8. Code — Combine Page Data').item.json.targetKeyword }}"},{"id":"slack-005","name":"businessName","type":"string","value":"={{ $('8. Code — Combine Page Data').item.json.businessName }}"},{"id":"slack-006","name":"runDate","type":"string","value":"={{ $('8. Code — Combine Page Data').item.json.runDate }}"}]}},"typeVersion":3.4},{"id":"ac4cccec-ae59-4383-bb20-68867ff0f123","name":"12. Slack — Send Gap Report","type":"n8n-nodes-base.slack","position":[1408,-112],"webhookId":"13321e68-57cc-4966-b4a1-4f907c5deef3","parameters":{"text":"=*Competitor Content Gap Report*\n\n*Business:* {{ $json.businessName }}\n*Target Keyword:* {{ $json.targetKeyword }}\n*Run Date:* {{ $json.runDate }}\n\n*Your Page:* {{ $json.yourUrl }}\n*Competitor Page:* {{ $json.competitorUrl }}\n\n---\n\n{{ $json.gapReport }}\n\n---\n_Report generated by n8n + GPT-4o-mini_","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2.2}],"pinData":{},"connections":{"1. Form — Submit Page URLs":{"main":[[{"node":"2. Set — Extract Form Fields","type":"main","index":0}]]},"3. HTTP — Scrape Your Page":{"main":[[{"node":"5. Code — Clean Your Page HTML","type":"main","index":0}]]},"9. AI Agent — Gap Analyzer":{"main":[[{"node":"11. Set — Prepare Slack Message","type":"main","index":0}]]},"8. Code — Combine Page Data":{"main":[[{"node":"9. AI Agent — Gap Analyzer","type":"main","index":0}]]},"2. Set — Extract Form Fields":{"main":[[{"node":"3. HTTP — Scrape Your Page","type":"main","index":0},{"node":"4. HTTP — Scrape Competitor Page","type":"main","index":0}]]},"7. Merge — Combine Both Pages":{"main":[[{"node":"8. Code — Combine Page Data","type":"main","index":0}]]},"10. OpenAI — GPT-4o-mini Model":{"ai_languageModel":[[{"node":"9. AI Agent — Gap Analyzer","type":"ai_languageModel","index":0}]]},"5. Code — Clean Your Page HTML":{"main":[[{"node":"7. Merge — Combine Both Pages","type":"main","index":0}]]},"11. Set — Prepare Slack Message":{"main":[[{"node":"12. Slack — Send Gap Report","type":"main","index":0}]]},"4. HTTP — Scrape Competitor Page":{"main":[[{"node":"6. Code — Clean Competitor Page HTML","type":"main","index":0}]]},"6. Code — Clean Competitor Page HTML":{"main":[[{"node":"7. Merge — Combine Both Pages","type":"main","index":1}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Incrementors","username":"incrementors","bio":"","verified":true,"links":["https://www.incrementors.com/"],"avatar":"https://gravatar.com/avatar/e09b4b6a8c5a00f886a9eedf3be23a4af5a50cc216cd6b2aee2a12c2dfba99dd?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"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/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/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/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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":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":49,"name":"AI Summarization"}],"image":[]}}