{
  "workflow": {
    "id": 6570,
    "name": "Website intelligence & lead scoring with ScrapeGraphAI, HubSpot and Slack",
    "views": 337,
    "recentViews": 0,
    "totalViews": 337,
    "createdAt": "2025-07-28T10:56:46.130Z",
    "description": "# How it works\n\nThis workflow automatically analyzes website visitors in real-time, enriches their data with company intelligence, and provides lead scoring and sales alerts.\n\n## Key Steps\n\n1. **Webhook Trigger** - Receives visitor data from your website tracking system.\n2. **AI-Powered Company Intelligence** - Uses ScrapeGraphAI to extract comprehensive company information from visitor domains.\n3. **Visitor Enrichment** - Combines visitor behavior data with company intelligence to create detailed visitor profiles.\n4. **Lead Scoring** - Automatically scores leads based on company size, industry, engagement, and intent signals.\n5. **CRM Integration** - Updates your CRM with enriched visitor data and lead scores.\n6. **Sales Alerts** - Sends real-time notifications to your sales team for high-priority leads.\n\n## Set up steps\n\n**Setup time: 10-15 minutes**\n\n1. **Configure ScrapeGraphAI credentials** - Add your ScrapeGraphAI API key for company intelligence gathering.\n2. **Set up HubSpot connection** - Connect your HubSpot CRM to automatically update contact records.\n3. **Configure Slack integration** - Set up your Slack workspace and specify the sales alert channel.\n4. **Customize lead scoring criteria** - Adjust the scoring algorithm to match your target customer profile.\n5. **Set up website tracking** - Configure your website to send visitor data to the webhook endpoint.\n6. **Test the workflow** - Verify all integrations are working correctly with a test visitor.\n\n## Key Features\n\n- **Real-time visitor analysis** with company intelligence enrichment\n- **Automated lead scoring** based on multiple factors (company size, industry, engagement)\n- **Intent signal detection** (pricing interest, demo requests, contact intent)\n- **Priority-based sales alerts** with recommended actions\n- **CRM integration** for seamless lead management\n- **Deal size estimation** based on company characteristics\n",
    "workflow": {
      "id": "VhEwspDqzu7ssFVE",
      "meta": {
        "instanceId": "f4b0efaa33080e7774e0d9285c40c7abcd2c6f7cf1a8b901fa7106170dd4cda3",
        "templateCredsSetupCompleted": true
      },
      "name": "My workflow 2",
      "tags": [
        {
          "id": "DxXGubfBzRKh6L8T",
          "name": "Revenue Optimization",
          "createdAt": "2025-07-25T16:24:30.370Z",
          "updatedAt": "2025-07-25T16:24:30.370Z"
        },
        {
          "id": "IxkcJ2IpYIxivoHV",
          "name": "Content Strategy",
          "createdAt": "2025-07-25T12:57:37.677Z",
          "updatedAt": "2025-07-25T12:57:37.677Z"
        },
        {
          "id": "PAKIJ2Mm9EvRcR3u",
          "name": "Trend Monitoring",
          "createdAt": "2025-07-25T12:57:37.670Z",
          "updatedAt": "2025-07-25T12:57:37.670Z"
        },
        {
          "id": "YtfXmaZk44MYedPO",
          "name": "Dynamic Pricing",
          "createdAt": "2025-07-25T16:24:30.369Z",
          "updatedAt": "2025-07-25T16:24:30.369Z"
        }
      ],
      "nodes": [
        {
          "id": "2edae932-a3e1-42b6-b898-24adff666dd8",
          "name": "Webhook Trigger",
          "type": "n8n-nodes-base.webhook",
          "position": [
            -1600,
            672
          ],
          "webhookId": "fc8ca16a-2ac9-4099-a19b-96057eb1a554",
          "parameters": {
            "path": "visitor-tracking",
            "options": {},
            "httpMethod": "POST"
          },
          "typeVersion": 1.1
        },
        {
          "id": "f8ff3605-a05d-49a8-b739-9b07ca1497a6",
          "name": "ScrapeGraphAI - Company Intel",
          "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
          "position": [
            -1088,
            640
          ],
          "parameters": {
            "userPrompt": "Extract comprehensive company information from this website. Use the following schema for response: { \"company_name\": \"Company Name\", \"industry\": \"Technology/Healthcare/etc\", \"company_size\": \"1-50/51-200/201-1000/1000+\", \"description\": \"Brief company description\", \"services\": [\"Service 1\", \"Service 2\"], \"contact_info\": { \"email\": \"user@example.com\", \"phone\": \"+1-555-0123\", \"address\": \"123 Business St, City, State\" }, \"social_media\": { \"linkedin\": \"linkedin.com/company/name\", \"twitter\": \"@company\" }, \"key_personnel\": [{ \"name\": \"John Doe\", \"title\": \"CEO\" }], \"technologies\": [\"React\", \"AWS\", \"etc\"], \"recent_news\": [\"Recent announcement or news\"], \"funding_info\": \"Series A, $5M raised\", \"competitors\": [\"Competitor 1\", \"Competitor 2\"] }",
            "websiteUrl": "={{ $json.company_domain ? 'https://' + $json.company_domain : 'https://' + $json.visitor_ip_domain }}"
          },
          "typeVersion": 1
        },
        {
          "id": "50729cf8-6781-4f80-9b4f-acb57f4a1d4c",
          "name": "Visitor Enricher",
          "type": "n8n-nodes-base.code",
          "position": [
            -480,
            656
          ],
          "parameters": {
            "jsCode": "// Get input data from webhook and scraped company data\nconst visitorData = $input.first().json;\nconst companyData = $input.last().json.result || {};\n\n// Enrich visitor data with company intelligence\nfunction enrichVisitorData(visitor, company) {\n  const enrichedData = {\n    // Original visitor data\n    visitor_id: visitor.visitor_id || generateVisitorId(),\n    timestamp: visitor.timestamp || new Date().toISOString(),\n    ip_address: visitor.ip_address,\n    user_agent: visitor.user_agent,\n    page_visited: visitor.page_visited,\n    referrer: visitor.referrer,\n    session_duration: visitor.session_duration || 0,\n    pages_viewed: visitor.pages_viewed || 1,\n    \n    // Enriched company data\n    company: {\n      name: company.company_name || 'Unknown Company',\n      domain: visitor.company_domain || visitor.visitor_ip_domain,\n      industry: company.industry || 'Unknown',\n      size: company.company_size || 'Unknown',\n      description: company.description || '',\n      services: company.services || [],\n      technologies: company.technologies || [],\n      funding_info: company.funding_info || '',\n      competitors: company.competitors || []\n    },\n    \n    // Contact information\n    contact_info: company.contact_info || {},\n    social_media: company.social_media || {},\n    key_personnel: company.key_personnel || [],\n    \n    // Behavioral data\n    behavior: {\n      visit_type: determineVisitType(visitor),\n      engagement_level: calculateEngagement(visitor),\n      intent_signals: identifyIntentSignals(visitor),\n      device_type: getDeviceType(visitor.user_agent),\n      location: visitor.location || 'Unknown'\n    },\n    \n    // Recent company activity\n    recent_activity: {\n      news: company.recent_news || [],\n      last_updated: new Date().toISOString()\n    }\n  };\n  \n  return enrichedData;\n}\n\nfunction generateVisitorId() {\n  return 'visitor_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);\n}\n\nfunction determineVisitType(visitor) {\n  if (visitor.referrer && visitor.referrer.includes('google.com')) {\n    return 'organic_search';\n  } else if (visitor.referrer && visitor.referrer.includes('linkedin.com')) {\n    return 'social_media';\n  } else if (!visitor.referrer) {\n    return 'direct';\n  } else {\n    return 'referral';\n  }\n}\n\nfunction calculateEngagement(visitor) {\n  const duration = visitor.session_duration || 0;\n  const pages = visitor.pages_viewed || 1;\n  \n  if (duration > 300 && pages > 3) return 'high';\n  if (duration > 120 && pages > 1) return 'medium';\n  return 'low';\n}\n\nfunction identifyIntentSignals(visitor) {\n  const signals = [];\n  const page = visitor.page_visited || '';\n  \n  if (page.includes('/pricing')) signals.push('pricing_interest');\n  if (page.includes('/demo')) signals.push('demo_request');\n  if (page.includes('/contact')) signals.push('contact_intent');\n  if (page.includes('/case-study')) signals.push('research_mode');\n  if (page.includes('/careers')) signals.push('hiring_interest');\n  \n  return signals;\n}\n\nfunction getDeviceType(userAgent) {\n  if (!userAgent) return 'unknown';\n  if (/Mobile|Android|iPhone/i.test(userAgent)) return 'mobile';\n  if (/Tablet|iPad/i.test(userAgent)) return 'tablet';\n  return 'desktop';\n}\n\n// Process the enrichment\nconst enrichedVisitor = enrichVisitorData(visitorData, companyData);\n\nconsole.log('Visitor enriched with company intelligence:', enrichedVisitor.company.name);\n\nreturn {\n  json: enrichedVisitor\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "e79a7dce-bbad-49ae-9f59-cc41593b503f",
          "name": "Lead Scorer",
          "type": "n8n-nodes-base.code",
          "position": [
            48,
            656
          ],
          "parameters": {
            "jsCode": "// Get enriched visitor data\nconst enrichedData = $input.first().json;\n\n// Lead scoring algorithm\nfunction calculateLeadScore(data) {\n  let score = 0;\n  const factors = {};\n  \n  // Company size scoring (0-25 points)\n  const companySize = data.company.size;\n  if (companySize === '1000+') {\n    score += 25;\n    factors.company_size = 25;\n  } else if (companySize === '201-1000') {\n    score += 20;\n    factors.company_size = 20;\n  } else if (companySize === '51-200') {\n    score += 15;\n    factors.company_size = 15;\n  } else if (companySize === '1-50') {\n    score += 10;\n    factors.company_size = 10;\n  } else {\n    factors.company_size = 0;\n  }\n  \n  // Industry relevance (0-20 points)\n  const targetIndustries = ['Technology', 'SaaS', 'Software', 'Finance', 'Healthcare'];\n  if (targetIndustries.includes(data.company.industry)) {\n    score += 20;\n    factors.industry_fit = 20;\n  } else {\n    factors.industry_fit = 0;\n  }\n  \n  // Engagement level (0-20 points)\n  if (data.behavior.engagement_level === 'high') {\n    score += 20;\n    factors.engagement = 20;\n  } else if (data.behavior.engagement_level === 'medium') {\n    score += 12;\n    factors.engagement = 12;\n  } else {\n    score += 5;\n    factors.engagement = 5;\n  }\n  \n  // Intent signals (0-25 points)\n  const intentPoints = data.behavior.intent_signals.length * 5;\n  score += Math.min(intentPoints, 25);\n  factors.intent_signals = Math.min(intentPoints, 25);\n  \n  // Technology stack alignment (0-10 points)\n  const ourTechnologies = ['React', 'AWS', 'Python', 'Node.js', 'Docker'];\n  const commonTech = data.company.technologies.filter(tech => \n    ourTechnologies.includes(tech)\n  ).length;\n  const techScore = Math.min(commonTech * 2, 10);\n  score += techScore;\n  factors.tech_alignment = techScore;\n  \n  return { score, factors };\n}\n\n// Calculate lead qualification\nfunction qualifyLead(score) {\n  if (score >= 80) return 'hot';\n  if (score >= 60) return 'warm';\n  if (score >= 40) return 'qualified';\n  if (score >= 20) return 'cold';\n  return 'unqualified';\n}\n\n// Determine priority level\nfunction getPriority(qualification, intentSignals) {\n  if (qualification === 'hot' || intentSignals.includes('demo_request')) {\n    return 'immediate';\n  }\n  if (qualification === 'warm' || intentSignals.includes('pricing_interest')) {\n    return 'high';\n  }\n  if (qualification === 'qualified') {\n    return 'medium';\n  }\n  return 'low';\n}\n\n// Generate recommended actions\nfunction getRecommendedActions(data, qualification, priority) {\n  const actions = [];\n  \n  if (priority === 'immediate') {\n    actions.push('Schedule immediate sales call');\n    actions.push('Send personalized demo invitation');\n  }\n  \n  if (data.behavior.intent_signals.includes('pricing_interest')) {\n    actions.push('Share pricing information');\n    actions.push('Offer custom quote');\n  }\n  \n  if (data.behavior.intent_signals.includes('contact_intent')) {\n    actions.push('Initiate contact within 24 hours');\n  }\n  \n  if (qualification === 'warm' || qualification === 'hot') {\n    actions.push('Add to priority nurture campaign');\n    actions.push('Research key contacts at company');\n  }\n  \n  if (data.company.funding_info) {\n    actions.push('Review recent funding for expansion opportunities');\n  }\n  \n  return actions;\n}\n\n// Process scoring\nconst scoringResult = calculateLeadScore(enrichedData);\nconst qualification = qualifyLead(scoringResult.score);\nconst priority = getPriority(qualification, enrichedData.behavior.intent_signals);\nconst recommendedActions = getRecommendedActions(enrichedData, qualification, priority);\n\n// Create final scored lead data\nconst scoredLead = {\n  ...enrichedData,\n  lead_score: {\n    total_score: scoringResult.score,\n    max_score: 100,\n    scoring_factors: scoringResult.factors,\n    qualification: qualification,\n    priority: priority,\n    scored_at: new Date().toISOString()\n  },\n  recommendations: {\n    actions: recommendedActions,\n    next_steps: getNextSteps(qualification, priority),\n    estimated_deal_size: estimateDealSize(enrichedData.company.size, enrichedData.company.industry)\n  }\n};\n\nfunction getNextSteps(qualification, priority) {\n  if (priority === 'immediate') {\n    return 'Contact within 1 hour';\n  } else if (priority === 'high') {\n    return 'Contact within 4 hours';\n  } else if (priority === 'medium') {\n    return 'Contact within 24 hours';\n  }\n  return 'Add to nurture sequence';\n}\n\nfunction estimateDealSize(companySize, industry) {\n  let baseSize = 5000; // Base deal size\n  \n  // Adjust by company size\n  if (companySize === '1000+') baseSize *= 10;\n  else if (companySize === '201-1000') baseSize *= 5;\n  else if (companySize === '51-200') baseSize *= 2;\n  \n  // Adjust by industry\n  if (['Finance', 'Healthcare'].includes(industry)) baseSize *= 1.5;\n  if (industry === 'Technology') baseSize *= 1.3;\n  \n  return `$${baseSize.toLocaleString()} - $${(baseSize * 3).toLocaleString()}`;\n}\n\nconsole.log(`Lead scored: ${scoringResult.score}/100 - ${qualification} (${priority} priority)`);\n\nreturn {\n  json: scoredLead\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "2b7a58ba-2086-479d-b90b-99487760145a",
          "name": "CRM Update",
          "type": "n8n-nodes-base.hubspot",
          "position": [
            576,
            672
          ],
          "parameters": {
            "email": "={{ $json.contact_info.email || $json.visitor_id + '@' + $json.company.domain }}",
            "options": {},
            "additionalFields": {
              "industry": "={{ $json.company.industry }}"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "f8703761-8c95-41e1-a1a7-6a1f937021ce",
          "name": "Sales Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            1056,
            800
          ],
          "webhookId": "c558d86d-104d-4ca0-aa1d-c4cef09f35da",
          "parameters": {
            "text": "🚨 **HIGH PRIORITY LEAD ALERT** 🚨\n\n👤 **Visitor Details:**\n• Company: {{ $json.company.name }}\n• Industry: {{ $json.company.industry }}\n• Size: {{ $json.company.size }}\n• Website: {{ $json.company.domain }}\n\n📊 **Lead Score: {{ $json.lead_score.total_score }}/100**\n🎯 **Qualification: {{ $json.lead_score.qualification.toUpperCase() }}**\n⚡ **Priority: {{ $json.lead_score.priority.toUpperCase() }}**\n\n🔍 **Intent Signals:**\n{{ $json.behavior.intent_signals.length > 0 ? $json.behavior.intent_signals.map(signal => '• ' + signal.replace('_', ' ')).join('\\n') : '• No specific signals detected' }}\n\n🎯 **Recommended Actions:**\n{{ $json.recommendations.actions.map(action => '• ' + action).join('\\n') }}\n\n💰 **Estimated Deal Size:** {{ $json.recommendations.estimated_deal_size }}\n⏰ **Next Steps:** {{ $json.recommendations.next_steps }}\n\n📱 **Visit Details:**\n• Page: {{ $json.page_visited }}\n• Source: {{ $json.behavior.visit_type }}\n• Engagement: {{ $json.behavior.engagement_level }}\n• Device: {{ $json.behavior.device_type }}\n\n🕐 **Detected:** {{ new Date($json.timestamp).toLocaleString() }}\n\n---\n*Visitor ID: {{ $json.visitor_id }}*",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C1234567890"
            },
            "otherOptions": {
              "mrkdwn": true
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "5225845d-d700-4fec-95bd-8c4fc4d9a309",
          "name": "Sticky Note 1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1808,
            32
          ],
          "parameters": {
            "color": 4,
            "width": 550,
            "height": 962,
            "content": "# Step 1: Webhook Trigger 🎣\n\nCaptures visitor data from your website tracking code.\n\n## Expected Data Format\n```json\n{\n  \"visitor_id\": \"unique_id\",\n  \"ip_address\": \"192.168.1.1\",\n  \"company_domain\": \"example.com\",\n  \"page_visited\": \"/pricing\",\n  \"referrer\": \"google.com\",\n  \"user_agent\": \"browser_info\",\n  \"session_duration\": 180,\n  \"pages_viewed\": 3\n}\n```\n\n## Setup\n- Install tracking script on your website\n- Configure webhook URL in your analytics\n- Test with sample visitor data"
          },
          "typeVersion": 1
        },
        {
          "id": "ffe05945-e48b-418e-90f1-9a60b089a33a",
          "name": "Sticky Note 2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1264,
            32
          ],
          "parameters": {
            "color": 5,
            "width": 550,
            "height": 962,
            "content": "# Step 2: ScrapeGraphAI - Company Intel 🕵️\n\nScrapes the visitor's company website to gather intelligence.\n\n## What It Extracts\n- Company name and description\n- Industry and company size\n- Services and technologies\n- Contact information\n- Key personnel\n- Recent news and funding\n- Competitor analysis\n\n## Configuration\n- Add your ScrapeGraphAI API credentials\n- Uses dynamic URL from visitor data\n- Comprehensive company profiling"
          },
          "typeVersion": 1
        },
        {
          "id": "2f417273-502f-4063-b645-ea0768282376",
          "name": "Sticky Note 3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -720,
            32
          ],
          "parameters": {
            "color": 6,
            "width": 550,
            "height": 962,
            "content": "# Step 3: Visitor Enricher 🔍\n\nCombines visitor behavior with company intelligence.\n\n## Enrichment Process\n- Merges visitor data with company info\n- Analyzes behavioral patterns\n- Identifies intent signals\n- Determines engagement level\n- Extracts device and location data\n\n## Output\n- Complete visitor profile\n- Company context\n- Behavioral insights\n- Intent indicators"
          },
          "typeVersion": 1
        },
        {
          "id": "16cdaabe-0e33-46d0-ac39-cdac97f5469b",
          "name": "Sticky Note 4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -192,
            32
          ],
          "parameters": {
            "color": 7,
            "width": 550,
            "height": 962,
            "content": "# Step 4: Lead Scorer 📊\n\nCalculates lead score based on multiple factors.\n\n## Scoring Factors (0-100 points)\n- **Company Size** (0-25): Larger = higher score\n- **Industry Fit** (0-20): Target industries get max\n- **Engagement Level** (0-20): Time + pages viewed\n- **Intent Signals** (0-25): Pricing, demo, contact pages\n- **Tech Alignment** (0-10): Matching technology stack\n\n## Qualification Levels\n- **Hot** (80+): Immediate action needed\n- **Warm** (60-79): High priority follow-up\n- **Qualified** (40-59): Standard nurturing\n- **Cold** (20-39): Long-term nurturing\n- **Unqualified** (<20): Monitor only"
          },
          "typeVersion": 1
        },
        {
          "id": "62de77ee-8872-4dd9-8697-630d7cb38740",
          "name": "Sticky Note 5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            352,
            32
          ],
          "parameters": {
            "color": 3,
            "width": 550,
            "height": 962,
            "content": "# Step 5: CRM Update 💾\n\nUpdates your CRM with enriched lead data.\n\n## CRM Integration (HubSpot)\n- Creates/updates contact record\n- Sets lead score and qualification\n- Adds company information\n- Updates custom properties\n- Assigns to appropriate pipeline\n\n## Data Sync\n- Visitor behavior data\n- Company intelligence\n- Lead scoring results\n- Intent signals\n- Estimated deal size\n\n## Configuration\n- Add HubSpot API credentials\n- Map custom properties\n- Set up lead routing rules"
          },
          "typeVersion": 1
        },
        {
          "id": "13f3e379-bc37-4fd8-98c0-6506801d7016",
          "name": "Sticky Note 6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            912,
            32
          ],
          "parameters": {
            "color": 2,
            "width": 550,
            "height": 978,
            "content": "# Step 6: Sales Alert 🚨\n\nSends real-time alerts to your sales team.\n\n## Alert Triggers\n- High-priority leads (Warm/Hot)\n- Specific intent signals\n- Large company visitors\n- Repeat visitors\n\n## Alert Details\n- Lead score and qualification\n- Company information\n- Intent signals detected\n- Recommended actions\n- Estimated deal size\n- Next steps timeline\n\n## Channels\n- Slack notifications\n- Email alerts\n- SMS for urgent leads\n- Mobile push notifications\n\n## Configuration\n- Set up Slack workspace integration\n- Configure alert thresholds\n- Customize message templates"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "8d04ee78-cffe-4783-9d8a-f0aae110ca60",
      "connections": {
        "CRM Update": {
          "main": [
            [
              {
                "node": "Sales Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Lead Scorer": {
          "main": [
            [
              {
                "node": "CRM Update",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Webhook Trigger": {
          "main": [
            [
              {
                "node": "ScrapeGraphAI - Company Intel",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Visitor Enricher": {
          "main": [
            [
              {
                "node": "Lead Scorer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "ScrapeGraphAI - Company Intel": {
          "main": [
            [
              {
                "node": "Visitor Enricher",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 12,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.hubspot": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 6
        },
        "n8n-nodes-scrapegraphai.scrapegraphAi": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "vinci-king-01",
      "username": "vinci-king-01",
      "bio": "",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/"
      ],
      "avatar": "https://gravatar.com/avatar/d939eeef03a5fcb5df08bee8196f12ccb248c38209487414e419032004f0c014?r=pg&d=retro&size=200"
    },
    "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": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 76,
        "icon": "file:hubspot.svg",
        "name": "n8n-nodes-base.hubspot",
        "codex": {
          "data": {
            "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/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/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "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"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.hubspot/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/hubspot/"
                }
              ]
            },
            "categories": [
              "Sales"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HubSpot"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjIuODgzIDY5Ljg4MyI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMi40NDIiIHk9IjIuNDQyIi8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxwYXRoIGZpbGw9IiNmODc2MWYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBkPSJNNTUuNTA0IDMwLjQwMWExNi4yNiAxNi4yNiAwIDAgMC01LjkwNC01Ljg2NGMtMS44NjUtMS4wODQtMy43OTQtMS43NzMtNS45NzItMi4wN3YtNy43OThhNS43MSA1LjcxIDAgMCAwIDMuNTI1LTUuMzU3IDUuODYgNS44NiAwIDAgMC01Ljg1OS01Ljg4OSA1LjkxIDUuOTEgMCAwIDAtNS45MDggNS44ODljMCAyLjM5MyAxLjI3IDQuNDM0IDMuNDUyIDUuMzU3djcuNzU0YTE3IDE3IDAgMCAwLTUuMTk1IDEuNjMxTDEyLjc2OSA4LjI0N2MuMTQ2LS41NTIuMjczLTEuMTIzLjI3My0xLjcyNEE2LjUyIDYuNTIgMCAwIDAgNi41MTkgMCA2LjUyIDYuNTIgMCAwIDAgMCA2LjUyNGE2LjUyMyA2LjUyMyAwIDAgMCA2LjUyNCA2LjUyNCA2LjQ3IDYuNDcgMCAwIDAgMy4zNS0uOTUybDEuMzY3IDEuMDM1IDE4LjcyNiAxMy41MDFjLS45OTEuOTA4LTEuOTE0IDEuOTQzLTIuNjUxIDMuMTA1LTEuNDk0IDIuMzY4LTIuNDA3IDQuOTcxLTIuNDA3IDcuODEzdi41ODZhMTYuNCAxNi40IDAgMCAwIDEuMDI1IDUuNjQ1QzI2LjUgNDUuMzI0IDI3LjMzIDQ2LjczIDI4LjM2MSA0OGwtNi4yMjEgNi4yMzVhNS4wMSA1LjAxIDAgMCAwLTUuMjk4IDEuMTYyYy0uOTQ3Ljk0Mi0xLjQ4IDIuMjI3LTEuNDc1IDMuNTY1cy41MjcgMi42MTIgMS40NzkgMy41NjQgMi4yMjcgMS40OCAzLjU2NSAxLjQ4YTUgNSAwIDAgMCAzLjU2NS0xLjQ4IDUuMDUgNS4wNSAwIDAgMCAxLjQ3NS0zLjU2NCA1IDUgMCAwIDAtLjIzNC0xLjUxNGw2LjQyNi02LjQyNmExNiAxNiAwIDAgMCAyLjg1NiAxLjU2MyAxNi43IDE2LjcgMCAwIDAgNi42ODUgMS40MDZoLjQzOWExNS43NiAxNS43NiAwIDAgMCA3LjYyNy0xLjkyOSAxNS43NyAxNS43NyAwIDAgMCA1Ljk3Ny01LjYzYzEuNDk5LTIuMzkzIDIuMzE5LTUuMDQ0IDIuMzE5LTcuOTU5di0uMTQ2YzAtMi44NjYtLjY2NC01LjUwOC0yLjA1MS03Ljkzem0tNy44NDcgMTMuNDg3Yy0xLjc0MyAxLjkzOC0zLjc1IDMuMTM1LTYuMDE2IDMuMTM1aC0uNDNjLTEuMjk0IDAtMi41NjQtLjM1Ni0zLjc5OS0xLjAxMWE4LjggOC44IDAgMCAxLTMuMzMtMy4wMzJjLS44OTgtMS4yNy0xLjM4Ny0yLjY1Ni0xLjM4Ny00LjEyNnYtLjQzOWMwLTEuNDQ1LjI3OC0yLjgxNy45NzctNC4xMTEuNzQ3LTEuNDY1IDEuNzU4LTIuNTE1IDMuMTAxLTMuMzg5YTcuNiA3LjYgMCAwIDEgNC4yOTctMS4yOTRoLjE0N2MxLjQxNiAwIDIuNzY5LjI3OCA0LjAzOC45MjhhOC41NiA4LjU2IDAgMCAxIDMuMTc0IDIuODg2IDkuMiA5LjIgMCAwIDEgMS40MjEgNC4wNTNsLjAzNC45MTNjMCAxLjk4Ny0uNzYyIDMuODI4LTIuMjggNS40OTh6Ii8+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "HubSpot",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 2,
            "name": "Sales"
          }
        ]
      },
      {
        "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"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 37,
        "name": "Lead Generation"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}