{
  "workflow": {
    "id": 8963,
    "name": "Automate influencer evaluation & campaign management with Instagram/YouTube APIs",
    "views": 745,
    "recentViews": 1,
    "totalViews": 745,
    "createdAt": "2025-09-26T15:28:03.640Z",
    "description": "# Automated Influencer Campaign Management System\n\nA comprehensive **n8n workflow template** for streamlining influencer application processing with **real-time social media data validation**, **intelligent scoring algorithms**, and **automated onboarding workflows**.\n\n---\n\n## Who’s It For\n\n* Marketing agencies managing high-volume influencer applications\n* Brand marketing teams screening social media creators\n* Influencer platforms automating creator onboarding\n* Digital marketing consultants reducing manual workload\n* E-commerce brands building creator partnerships\n* Social media management companies scaling operations\n\n---\n\n## How It Works\n\n1. Capture influencer applications via **Webhook** (connected to forms/websites).\n2. Validate applicant emails using **VerifiEmail** to prevent fake submissions.\n3. Fetch real-time social data from **Instagram (via Instagram120 API)** and **YouTube (via YouTube138 API)**.\n4. Calculate **engagement scores** using a weighted algorithm (Instagram 60% + YouTube 40%).\n5. Auto-approve qualified influencers based on follower count & engagement thresholds.\n6. Log approved applications in **Google Sheets** with complete metrics.\n7. Send **personalized welcome emails** with campaign information & next steps.\n8. Reject low-quality applications with detailed reasoning (for internal tracking).\n9. Generate **scoring breakdown** with platform-specific analytics & tier classification.\n10. Track **application volume and approval rates** for performance optimization.\n\n**Offers:** Real-time API integration, intelligent scoring, automated actions, scalable processing.\n\n---\n\n## 🛠️ How to Set Up\n\n1. Connect your application form to Webhook:\n\n   ```http\n   POST → https://[your-n8n-url]/webhook/influencer-signup\n   ```\n2. Sign up for **RapidAPI** and subscribe to **Instagram120 + YouTube138 APIs**.\n3. Get **VerifiEmail API key** (100 free verifications/month).\n4. Configure **Gmail OAuth2** in Google Cloud Console for email automation.\n5. Create a **Google Sheets database** for approved influencer storage.\n6. Add credentials in n8n: RapidAPI, VerifiEmail, Gmail, Google Sheets.\n7. Customize **scoring thresholds** & **email templates** in Function nodes.\n8. Test with sample data:\n\n   ```json\n   {\n     \"name\": \"Test Creator\",\n     \"email\": \"test@gmail.com\",\n     \"social_handles\": {\n       \"instagram\": \"testuser\",\n       \"youtube\": \"testchannel\"\n     },\n     \"niche\": \"fitness\",\n     \"rate_card\": 500\n   }\n   ```\n\n---\n\n## Requirements\n\n* **n8n instance** (cloud or self-hosted)\n* **API credentials**:\n\n  * RapidAPI (Instagram120 + YouTube138 APIs)\n  * VerifiEmail\n  * Gmail OAuth2\n  * Google Sheets access\n* **Form/website integration** → sends webhook data\n* **Google Sheets** for database & reporting\n\n---\n\n## RapidAPI Integration Details\n\n### Instagram120 API\n\n* **Pricing Plans:**\n\n  * Free: 1,000 requests/month\n  * Pro: 10,000 requests/month ($10/mo)\n  * Ultra: 100,000 requests/month ($50/mo)\n* **n8n Example:**\n\n  ```json\n  {\n    \"method\": \"POST\",\n    \"url\": \"https://instagram120.p.rapidapi.com/api/instagram/profile\",\n    \"headers\": {\n      \"X-RapidAPI-Host\": \"instagram120.p.rapidapi.com\",\n      \"X-RapidAPI-Key\": \"YOUR_RAPIDAPI_KEY\",\n      \"Content-Type\": \"application/json\"\n    },\n    \"body\": {\n      \"username\": \"{{ $('Data Sanitizer').item.json.social_handles.instagram }}\"\n    }\n  }\n  ```\n\n### YouTube138 API\n\n* **Pricing Plans:**\n\n  * Free: 1,000 requests/month\n  * Pro: 10,000 requests/month ($15/mo)\n  * Ultra: 100,000 requests/month ($75/mo)\n* **n8n Example:**\n\n  ```json\n  {\n    \"method\": \"GET\",\n    \"url\": \"https://youtube138.p.rapidapi.com/channel/details\",\n    \"headers\": {\n      \"X-RapidAPI-Host\": \"youtube138.p.rapidapi.com\",\n      \"X-RapidAPI-Key\": \"YOUR_RAPIDAPI_KEY\"\n    },\n    \"queryParameters\": {\n      \"id\": \"{{ $('Webhook').item.json.body.social_handles.youtube }}\",\n      \"hl\": \"en\",\n      \"gl\": \"US\"\n    }\n  }\n  ```\n\n---\n\n## Core Features\n\n* **Social Media Validation**\n\n  * Instagram follower counts, engagement, verification\n  * YouTube subscriber counts, channel stats\n  * Cross-platform scoring algorithm\n  * Fraud prevention via email validation\n\n* **Intelligent Scoring**\n\n  * Multi-tier classification (Nano, Micro, Macro, Mega)\n  * Engagement analysis per platform\n  * Customizable approval thresholds\n\n* **Automation Actions**\n\n  * Auto-approve/reject with reasoning\n  * Store results in Google Sheets\n  * Send onboarding emails\n  * Track performance stats\n\n---\n\n## Use Cases & Applications\n\n* **Marketing Agencies** → Process 100+ daily influencer applications automatically\n* **Brands** → Validate influencer metrics before partnerships\n* **Platforms** → Qualify creators for platform admission automatically\n* **E-commerce** → Build authentic influencer partnerships\n\n---\n\n## Key Benefits\n\n✔️ Saves 80-90% processing costs\n✔️ Cuts manual review time from **15 minutes → 30 seconds**\n✔️ Prevents fraud with real-time validation\n✔️ Scales infinitely with no extra staffing\n\n---\n\n## Technical Specifications\n\n* **Execution time:** 30–45 sec per application\n* **Throughput:** 100+ applications/hour\n* **Success rate:** 95%+ valid applications\n* **Cost:** ~$0.05–$0.15 per application\n\n---\n\n## ROI & Cost Breakdown\n\n* **Manual:** $15–25/hour human review\n* **Automated:** $0.05–0.15/application\n* **Savings:** 80–90% at scale\n* **Break-even:** 50–100 apps/month\n\n---\n\n## Integration Example\n\n```javascript\n// Example website form submission\nfetch('https://your-n8n-instance.com/webhook/influencer-signup', {\n  method: 'POST',\n  headers: {'Content-Type': 'application/json'},\n  body: JSON.stringify(formData)\n});\n```\n\nSample Application Data:\n\n```json\n{\n  \"name\": \"Sarah Johnson\",\n  \"email\": \"sarah.fitness@gmail.com\",\n  \"social_handles\": {\n    \"instagram\": \"sarahfitlife\",\n    \"youtube\": \"SarahFitnessJourney\"\n  },\n  \"niche\": \"fitness\",\n  \"country\": \"US\",\n  \"rate_card\": 750\n}\n```\n\n---\n\n## Installation\n\n1. Import workflow JSON file into n8n\n2. Add API credentials (RapidAPI, VerifiEmail, Gmail, Sheets)\n3. Configure Sheets with correct columns\n4. Customize scoring & emails\n5. Test with sample apps\n6. Activate workflow\n\n---\n\n## Disclaimers\n\n* Requires paid **RapidAPI plans** for scale\n* API rate limiting applies\n* Data accuracy depends on APIs\n* Ensure **GDPR/CCPA compliance** before production\n* Always test before live deployment\n\n---\n\n## License\n\nThis template is provided **as-is** for educational and commercial use.\nUsers are responsible for ensuring compliance with laws, platform TOS, and data privacy rules.",
    "workflow": {
      "id": "FTBefJJksAo6vP1K",
      "meta": {
        "instanceId": "e56288a9b12ad2dc7c19cc4170f20f7abcacaad5fb3972dd882c9ce4f34e7668",
        "templateCredsSetupCompleted": true
      },
      "name": "Automated Influencer Campaign Management System",
      "tags": [],
      "nodes": [
        {
          "id": "12f8177d-3695-45f1-badb-4fd24c4e149c",
          "name": "Webhook",
          "type": "n8n-nodes-base.webhook",
          "position": [
            0,
            0
          ],
          "webhookId": "8af0a960-bcc4-4b06-bfb6-698007cad216",
          "parameters": {
            "path": "/YOUR_CUSTOM_WEBHOOK_PATH",
            "options": {
              "rawBody": false
            },
            "httpMethod": "POST"
          },
          "typeVersion": 2.1
        },
        {
          "id": "bb59a3b4-d17d-4eb0-b2de-26df8ea7fd6f",
          "name": "Data Sanitizer",
          "type": "n8n-nodes-base.code",
          "position": [
            224,
            0
          ],
          "parameters": {
            "jsCode": "// Debug: Log the incoming data first\nconsole.log('Incoming data:', JSON.stringify($input.all(), null, 2));\n\n// Get the data from webhook\nconst inputData = $input.first();\nconsole.log('Input item:', JSON.stringify(inputData, null, 2));\n\n// Extract JSON data (webhook data is nested differently)\nlet data;\nif (inputData.json.body) {\n  // If data comes in request body\n  data = inputData.json.body;\n} else if (inputData.json.query) {\n  // If data comes as query parameters\n  data = inputData.json.query;\n} else {\n  // Direct JSON data\n  data = inputData.json;\n}\n\nconsole.log('Processed data:', JSON.stringify(data, null, 2));\n\n// Handle case where data might be a string (needs parsing)\nif (typeof data === 'string') {\n  try {\n    data = JSON.parse(data);\n  } catch (e) {\n    throw new Error('Invalid JSON format in request');\n  }\n}\n\n// Required fields validation\nconst required = ['name', 'email', 'social_handles', 'niche', 'country'];\nconst missing = required.filter(field => !data || !data[field]);\n\nif (missing.length > 0) {\n  console.log('Available fields:', Object.keys(data || {}));\n  throw new Error(`Missing required fields: ${missing.join(', ')}. Available fields: ${Object.keys(data || {}).join(', ')}`);\n}\n\n// Email format validation\nconst emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nif (!emailRegex.test(data.email)) {\n  throw new Error('Invalid email format');\n}\n\n// Clean social handles (remove @ symbols, extract usernames)\nconst cleanHandles = {};\nfor (const [platform, handle] of Object.entries(data.social_handles)) {\n  if (handle) {\n    cleanHandles[platform] = handle.replace(/[@\\/]/g, '').split('/').pop();\n  }\n}\n\nreturn [{\n  json: {\n    ...data,\n    social_handles: cleanHandles,\n    created_at: new Date().toISOString(),\n    status: 'pending_validation'\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "62f128f9-6a68-4d78-baae-908153106221",
          "name": "Verifi Email",
          "type": "n8n-nodes-verifiemail.verifiEmail",
          "position": [
            448,
            0
          ],
          "parameters": {
            "email": "={{ $json.email }}"
          },
          "credentials": {
            "verifiEmailApi": {
              "id": "credential-id",
              "name": "verifiEmailApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "afbbc1e1-76c2-4ca1-a75f-a7fe0946f130",
          "name": "Switch",
          "type": "n8n-nodes-base.switch",
          "position": [
            624,
            0
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "aea5e85b-3bb5-4db3-942b-7ada2f17ab2a",
                        "operator": {
                          "type": "boolean",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.valid }}",
                        "rightValue": true
                      }
                    ]
                  }
                },
                {
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "de79caea-c28e-47da-bc90-c2d6ca9a94e3",
                        "operator": {
                          "type": "boolean",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $json.valid }}",
                        "rightValue": false
                      }
                    ]
                  }
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "a01052ae-f470-44c9-bbd0-b9dc44e241c0",
          "name": "Stop and Error",
          "type": "n8n-nodes-base.stopAndError",
          "position": [
            496,
            288
          ],
          "parameters": {
            "errorMessage": "invalid email"
          },
          "typeVersion": 1
        },
        {
          "id": "9a885214-eb51-4f09-92b6-92f202a28245",
          "name": "Instagram Profile Stats",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            928,
            -256
          ],
          "parameters": {
            "url": "https://instagram120.p.rapidapi.com/api/instagram/profile",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "bodyParameters": {
              "parameters": [
                {
                  "name": "username",
                  "value": "={{ $('Data Sanitizer').item.json.social_handles.instagram }}"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "x-rapidapi-host",
                  "value": "instagram120.p.rapidapi.com"
                },
                {
                  "name": "x-rapidapi-key",
                  "value": "YOUR_RAPIDAPI_KEY_HERE"
                }
              ]
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "d77393c1-9fc2-45bc-9b13-b48f5c3593bf",
          "name": "Parse Instagram Data",
          "type": "n8n-nodes-base.code",
          "position": [
            1328,
            -112
          ],
          "parameters": {
            "jsCode": "const instagramResponse = $input.first().json;\n\n// Get the user data from a previous node (you need to reference the correct node name)\nlet userData;\ntry {\n  // Replace 'Data Sanitizer' with your actual previous node name that has user data\n  userData = $('Data Sanitizer').first().json;\n} catch (e) {\n  // Fallback if node reference fails\n  userData = {\n    name: 'Test User',\n    email: 'test@example.com',\n    niche: 'sports',\n    country: 'US',\n    rate_card: 1000,\n    social_handles: { instagram: 'cristiano' }\n  };\n}\n\nconsole.log('User Data:', JSON.stringify(userData, null, 2));\nconsole.log('Instagram Response:', JSON.stringify(instagramResponse, null, 2));\n\ntry {\n  const profileData = instagramResponse.result;\n  \n  if (!profileData) {\n    throw new Error('No Instagram profile data found');\n  }\n\n  // Parse the real Instagram data from RapidAPI\n  const instagramData = {\n    id: profileData.id,\n    username: profileData.username,\n    followers: profileData.edge_followed_by.count || 0,\n    following: profileData.edge_follow.count || 0,\n    posts_count: profileData.edge_owner_to_timeline_media.count || 0,\n    is_private: profileData.is_private || false,\n    verified: profileData.is_verified || false,\n    biography: profileData.biography || '',\n    full_name: profileData.full_name || '',\n    profile_pic_url: profileData.profile_pic_url || '',\n    profile_pic_url_hd: profileData.profile_pic_url_hd || ''\n  };\n  \n  // Calculate realistic engagement for mega-influencer (Cristiano)\n  let engagement_rate = 1.2; // Mega influencers typically have lower engagement rates\n  if (instagramData.followers < 1000000) {\n    engagement_rate = 3.5; // Regular influencers\n  } else if (instagramData.followers < 100000000) {\n    engagement_rate = 1.8; // Major influencers  \n  }\n  \n  const avg_engagement = Math.floor(instagramData.followers * (engagement_rate / 100));\n  \n  instagramData.engagement_rate = parseFloat(engagement_rate.toFixed(2));\n  instagramData.avg_engagement = avg_engagement;\n  instagramData.avg_likes = Math.floor(avg_engagement * 0.85);\n  instagramData.avg_comments = Math.floor(avg_engagement * 0.15);\n\n  return [{\n    json: {\n      ...userData,\n      social_stats: {\n        instagram: {\n          ...instagramData,\n          api_source: 'rapidapi_real',\n          fetched_at: new Date().toISOString()\n        }\n      }\n    }\n  }];\n  \n} catch (error) {\n  console.log('Parse error:', error.message);\n  \n  return [{\n    json: {\n      ...userData,\n      social_stats: {\n        instagram: {\n          followers: 0,\n          following: 0,\n          posts_count: 0,\n          verified: false,\n          biography: '',\n          username: userData.social_handles?.instagram || 'unknown',\n          avg_engagement: 0,\n          engagement_rate: 0,\n          api_source: 'parse_failed',\n          error: error.message,\n          fetched_at: new Date().toISOString()\n        }\n      }\n    }\n  }];\n}"
          },
          "typeVersion": 2
        },
        {
          "id": "4a2298b1-e9a9-4667-8482-fd2580810c24",
          "name": "YouTube Channel Stats",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            928,
            176
          ],
          "parameters": {
            "url": "https://youtube138.p.rapidapi.com/channel/details",
            "options": {},
            "sendQuery": true,
            "sendHeaders": true,
            "queryParameters": {
              "parameters": [
                {
                  "name": "id",
                  "value": "={{ $('Webhook').item.json.body.social_handles.youtube }}"
                },
                {
                  "name": "hl",
                  "value": "en"
                },
                {
                  "name": "gl",
                  "value": "US"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "x-rapidapi-host",
                  "value": "youtube138.p.rapidapi.com"
                },
                {
                  "name": "x-rapidapi-key",
                  "value": "YOUR_RAPIDAPI_KEY_HERE"
                }
              ]
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "0f58c1a3-b441-4e80-bc9a-010e4da46d2d",
          "name": "Parse YouTube Data",
          "type": "n8n-nodes-base.code",
          "position": [
            1328,
            80
          ],
          "parameters": {
            "jsCode": "const input = $input.first().json;\n\nconsole.log('Full YouTube input:', JSON.stringify(input, null, 2));\n\n// Try to get user data from previous nodes in the workflow\nlet userData;\ntry {\n  // Try different possible node names - update these to match your actual node names\n  userData = $('Parse Instagram Data').first().json || \n             $('Data Sanitizer').first().json ||\n             $('Process Email Validation').first().json ||\n             $('Mock Instagram Data').first().json;\n  \n  console.log('Found user data from previous node:', JSON.stringify(userData, null, 2));\n} catch (e) {\n  console.log('Could not find user data from previous nodes, using fallback');\n  // Fallback user data for testing\n  userData = {\n    name: \"Sarah Johnson\",\n    email: \"user@example.com\",\n    niche: \"fitness\", \n    country: \"US\",\n    rate_card: 750,\n    social_handles: {\n      instagram: \"sarahfitlife\",\n      youtube: \"SarahFitnessJourney\"\n    },\n    social_stats: {},\n    created_at: new Date().toISOString(),\n    status: 'processing'\n  };\n}\n\n// Parse the YouTube channel data from the current input\nconst channelData = input;\n\ntry {\n  if (!channelData.stats) {\n    throw new Error('No YouTube stats found in response');\n  }\n\n  const youtubeData = {\n    channel_id: channelData.channelId || '',\n    username: channelData.username || '',\n    title: channelData.title || '',\n    subscribers: channelData.stats.subscribers || 0,\n    subscribers_text: channelData.stats.subscribersText || '',\n    total_views: channelData.stats.views || 0,\n    video_count: channelData.stats.videos || 0,\n    description: channelData.description || '',\n    is_verified: channelData.isVerified || false,\n    is_verified_artist: channelData.isVerifiedArtist || false,\n    joined_date: channelData.joinedDate || '',\n    joined_date_text: channelData.joinedDateText || '',\n    country: channelData.country || '',\n    has_business_email: channelData.hasBusinessEmail || false,\n    avatar_url: channelData.avatar?.[0]?.url || '',\n    banner_url: channelData.banner?.desktop?.[0]?.url || '',\n    is_family_safe: channelData.isFamilySafe || true\n  };\n\n  // Calculate engagement metrics\n  const avg_views_per_video = youtubeData.video_count > 0 ? \n    Math.floor(youtubeData.total_views / youtubeData.video_count) : 0;\n  \n  // YouTube engagement rate: (avg views per video / subscribers) * 100\n  const engagement_rate = youtubeData.subscribers > 0 ? \n    parseFloat(((avg_views_per_video / youtubeData.subscribers) * 100).toFixed(2)) : 0;\n  \n  // Estimate social engagement based on YouTube norms\n  const estimated_avg_likes = Math.floor(avg_views_per_video * 0.03); // ~3% of views\n  const estimated_avg_comments = Math.floor(avg_views_per_video * 0.005); // ~0.5% of views\n  const estimated_total_engagement = estimated_avg_likes + estimated_avg_comments;\n  \n  // Add calculated metrics\n  youtubeData.avg_views_per_video = avg_views_per_video;\n  youtubeData.engagement_rate = engagement_rate;\n  youtubeData.estimated_avg_likes = estimated_avg_likes;\n  youtubeData.estimated_avg_comments = estimated_avg_comments;\n  youtubeData.estimated_total_engagement = estimated_total_engagement;\n\n  // Channel age calculation (for scoring purposes)\n  const joinedDate = new Date(channelData.joinedDate);\n  const now = new Date();\n  const monthsActive = Math.floor((now - joinedDate) / (1000 * 60 * 60 * 24 * 30));\n  youtubeData.months_active = monthsActive;\n  youtubeData.videos_per_month = monthsActive > 0 ? (youtubeData.video_count / monthsActive).toFixed(1) : 0;\n\n  console.log('Successfully parsed YouTube data:', JSON.stringify(youtubeData, null, 2));\n\n  return [{\n    json: {\n      ...userData,\n      social_stats: {\n        ...userData.social_stats,\n        youtube: {\n          ...youtubeData,\n          api_source: 'rapidapi_real',\n          fetched_at: new Date().toISOString()\n        }\n      }\n    }\n  }];\n  \n} catch (error) {\n  console.log('YouTube Parse Error:', error.message);\n  \n  return [{\n    json: {\n      ...userData,\n      social_stats: {\n        ...userData.social_stats,\n        youtube: {\n          channel_id: '',\n          username: '',\n          title: '',\n          subscribers: 0,\n          total_views: 0,\n          video_count: 0,\n          engagement_rate: 0,\n          avg_views_per_video: 0,\n          estimated_avg_likes: 0,\n          estimated_avg_comments: 0,\n          api_source: 'parse_failed',\n          error: error.message,\n          fetched_at: new Date().toISOString()\n        }\n      }\n    }\n  }];\n}"
          },
          "typeVersion": 2
        },
        {
          "id": "bebd9b90-7868-4c26-9eec-18fa9a4754c5",
          "name": "Merge",
          "type": "n8n-nodes-base.merge",
          "position": [
            1536,
            -16
          ],
          "parameters": {},
          "typeVersion": 3.2
        },
        {
          "id": "867b3df2-09b1-459c-a619-12e30c753782",
          "name": "Calculate Influencer Score",
          "type": "n8n-nodes-base.code",
          "position": [
            1760,
            -16
          ],
          "parameters": {
            "jsCode": "const allData = $input.all(); // Get all items from merge node\nconsole.log('Number of merge items:', allData.length);\n\n// Find the item with both Instagram and YouTube data\nlet data;\nif (allData.length === 2) {\n  // Two separate items from merge - combine them\n  const item1 = allData[0].json;\n  const item2 = allData[1].json;\n  \n  data = {\n    ...item1,\n    social_stats: {\n      ...item1.social_stats,\n      ...item2.social_stats\n    }\n  };\n} else {\n  // Single item with both platforms\n  data = allData[0].json;\n}\n\nconst socialStats = data.social_stats || {};\n\nconsole.log('Combined data check:', {\n  hasInstagram: !!socialStats.instagram,\n  hasYoutube: !!socialStats.youtube,\n  instagramFollowers: socialStats.instagram?.followers,\n  youtubeSubscribers: socialStats.youtube?.subscribers\n});\n\n// Rest of scoring configuration (same as before)\nconst SCORING_CONFIG = {\n  platform_weights: {\n    instagram: 0.6,\n    youtube: 0.4\n  },\n  follower_tiers: {\n    nano: { min: 1000, max: 10000, score: 50 },\n    micro: { min: 10000, max: 100000, score: 70 },\n    macro: { min: 100000, max: 1000000, score: 90 },\n    mega: { min: 1000000, max: Infinity, score: 100 }\n  },\n  engagement_tiers: {\n    youtube: {\n      excellent: { min: 10, score: 100 },\n      good: { min: 5, score: 85 },\n      average: { min: 2, score: 65 },\n      poor: { min: 0, score: 40 }\n    },\n    instagram: {\n      excellent: { min: 6, score: 100 },\n      good: { min: 3, score: 85 },\n      average: { min: 1.5, score: 65 },\n      poor: { min: 0, score: 40 }\n    }\n  }\n};\n\nfunction calculatePlatformScore(platformData, platform) {\n  if (!platformData || platformData.error) return null;\n  \n  const followers = platformData.followers || platformData.subscribers || 0;\n  const engagementRate = platformData.engagement_rate || 0;\n  \n  let followerScore = 40;\n  for (const [tier, config] of Object.entries(SCORING_CONFIG.follower_tiers)) {\n    if (followers >= config.min && followers <= config.max) {\n      followerScore = config.score;\n      break;\n    }\n  }\n  \n  let engagementScore = 40;\n  const thresholds = SCORING_CONFIG.engagement_tiers[platform] || SCORING_CONFIG.engagement_tiers.instagram;\n  \n  for (const [tier, config] of Object.entries(thresholds)) {\n    if (engagementRate >= config.min) {\n      engagementScore = config.score;\n      break;\n    }\n  }\n  \n  let qualityBonus = 0;\n  if (platformData.verified || platformData.is_verified) qualityBonus += 10;\n  if (platformData.has_business_email) qualityBonus += 5;\n  if (platform === 'youtube' && parseFloat(platformData.videos_per_month) > 4) qualityBonus += 5;\n  if (platform === 'instagram' && !platformData.is_private) qualityBonus += 5;\n  \n  const totalScore = Math.min(100, Math.round(\n    (followerScore * 0.4) + \n    (engagementScore * 0.5) + \n    qualityBonus\n  ));\n  \n  return {\n    total: totalScore,\n    breakdown: {\n      follower_score: followerScore,\n      engagement_score: engagementScore,\n      quality_bonus: qualityBonus,\n      followers: followers,\n      engagement_rate: engagementRate,\n      tier: followers >= 1000000 ? 'mega' : followers >= 100000 ? 'macro' : followers >= 10000 ? 'micro' : 'nano'\n    }\n  };\n}\n\n// Calculate scores for each platform\nconst scores = {};\nlet weightedScore = 0;\nlet totalWeight = 0;\n\n// Instagram scoring\nif (socialStats.instagram && !socialStats.instagram.error) {\n  scores.instagram = calculatePlatformScore(socialStats.instagram, 'instagram');\n  if (scores.instagram) {\n    weightedScore += scores.instagram.total * SCORING_CONFIG.platform_weights.instagram;\n    totalWeight += SCORING_CONFIG.platform_weights.instagram;\n  }\n}\n\n// YouTube scoring  \nif (socialStats.youtube && !socialStats.youtube.error) {\n  scores.youtube = calculatePlatformScore(socialStats.youtube, 'youtube');\n  if (scores.youtube) {\n    weightedScore += scores.youtube.total * SCORING_CONFIG.platform_weights.youtube;\n    totalWeight += SCORING_CONFIG.platform_weights.youtube;\n  }\n}\n\nconst overallScore = totalWeight > 0 ? Math.round(weightedScore / totalWeight) : 0;\n\n// Status determination\nconst totalFollowers = (socialStats.instagram?.followers || 0) + (socialStats.youtube?.subscribers || 0);\nconst followersPerDollar = totalFollowers / (data.rate_card || 1);\n\nlet status = 'rejected_low_score';\nlet rejection_reason = '';\n\nif (totalFollowers < 5000) {\n  status = 'rejected_insufficient_reach';\n  rejection_reason = 'Total audience below 5K minimum';\n} else if (data.rate_card > 2000 && followersPerDollar < 100) {\n  status = 'rejected_overpriced';\n  rejection_reason = 'Rate card too high for audience size';\n} else if (overallScore >= 80) {\n  status = 'approved';\n} else if (overallScore >= 65) {\n  status = 'pending_review';\n} else {\n  status = 'rejected_low_score';\n  rejection_reason = `Score ${overallScore}/100 below threshold`;\n}\n\nreturn [{\n  json: {\n    ...data,\n    scoring: {\n      platform_scores: scores,\n      overall_score: overallScore,\n      total_followers: totalFollowers,\n      followers_per_dollar: Math.round(followersPerDollar),\n      calculated_at: new Date().toISOString()\n    },\n    status: status,\n    rejection_reason: rejection_reason || null\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "dc6b665b-58de-409b-9dde-e3c7fe442c70",
          "name": "If",
          "type": "n8n-nodes-base.if",
          "position": [
            2032,
            -16
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "d48efcf5-0146-4bea-82e4-66164aefa314",
                  "operator": {
                    "name": "filter.operator.equals",
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{$json.status}}",
                  "rightValue": "approved"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "f1ba8012-bf02-4dac-91f6-165425a57f06",
          "name": "Stop and Error1",
          "type": "n8n-nodes-base.stopAndError",
          "position": [
            2272,
            144
          ],
          "parameters": {
            "errorMessage": "Engagement score doesn't meet the expectations"
          },
          "typeVersion": 1
        },
        {
          "id": "0091470e-520c-4bb9-9172-fe66348f0137",
          "name": "Add to Approved Database",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            2272,
            -128
          ],
          "parameters": {
            "columns": {
              "value": {
                "Name": "={{$json.name}}",
                "Email": "={{$json.email}}",
                "niche": "={{ $json.niche }}",
                "Status": "={{$json.status}}",
                "YouTube": "={{$json.social_stats.youtube.username}}",
                "Instagram": "=@{{$json.social_stats.instagram.username}}",
                "Rate Card": "=${{$json.rate_card}}",
                "Overall Score": "={{$json.scoring.overall_score}}",
                "Total followers": "={{ $json.scoring.total_followers }}",
                "Instagram Followers": "={{$json.social_stats.instagram.followers}}",
                "YouTube Subscribers": "={{$json.social_stats.youtube.subscribers}}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "niche",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "niche",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Instagram",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instagram",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Instagram Followers",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instagram Followers",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "YouTube",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "YouTube",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "YouTube Subscribers",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "YouTube Subscribers",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Total followers",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "Total followers",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Overall Score",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Overall Score",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Rate Card",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Rate Card",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MoHJiDjjw3EJGBS4YgbOcgeQ0oDYyrVLE2aVxTte1GY/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_GOOGLE_SHEETS_ID_HERE",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MoHJiDjjw3EJGBS4YgbOcgeQ0oDYyrVLE2aVxTte1GY/edit?usp=drivesdk",
              "cachedResultName": "Add to Approved Database"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "95394f91-7907-4e96-b1bb-e12e4fe241e8",
          "name": "Send Welcome Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            2480,
            -128
          ],
          "webhookId": "f804aa4c-71f0-4f81-929a-a3c3d87430eb",
          "parameters": {
            "sendTo": "={{ $json.Email }}",
            "message": "=Hi {{ $json.Name }},\n\nCongratulations! Your influencer application has been approved with an outstanding score of {{ $json['Overall Score'] }}/100.\n\nHere's what impressed us about your profile:\n- Instagram: {{ $json.Instagram }}  with {{ $json['Instagram Followers'] }} engaged followers\n- YouTube: {{ $json.YouTube }} with {{ $json['YouTube Subscribers'] }} subscribers\n- Combined audience reach: {{ $json['Total followers'] }} across platforms\n- Strong engagement in the {{ $json.niche }}  space\n\nWHAT'S NEXT:\n1. Our partnerships team will contact you within 24-48 hours\n2. We'll discuss campaign opportunities that match your content style\n3. You'll receive our brand guidelines and content requirements\n4. First campaign opportunities typically start within 1-2 weeks\n\nCAMPAIGN TYPES WE OFFER:\n- Sponsored posts and stories\n- Product collaborations\n- Long-term brand partnerships\n- Exclusive launch campaigns\n\nYour rate card of {{ $json['Rate Card'] }} per post fits well within our budget range for {{$json.niche}} creators.\n\nIf you have any questions before our team reaches out, feel free to reply to this email.\n\nWelcome to the [Your Brand Name] family!\n\nBest regards,\nThe [Your Brand Name] Influencer Team\n\n---\nBusiness Contact: partnerships@yourbrand.com\nThis is an automated message from our influencer management system.",
            "options": {},
            "subject": "Welcome to YOUR_BRAND_NAME - You're Approved!",
            "emailType": "text"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "fda6ffae-e542-4c65-9b59-2ede839805c9",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -288,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 400,
            "height": 400,
            "content": "## WEBHOOK ENDPOINT\n\n**URL**: **/YOUR_CUSTOM_WEBHOOK_PATH**\nMethod: **POST**\nContent-Type: **application/json**\n\nTest payload:\n```{\n  \"name\": \"Test User\",\n  \"email\": \"test@example.com\", \n  \"social_handles\": {\n    \"instagram\": \"username\",\n    \"youtube\": \"channelname\"\n  },\n  \"niche\": \"fitness\",\n  \"country\": \"US\", \n  \"rate_card\": 500\n}\n```"
          },
          "typeVersion": 1
        },
        {
          "id": "7fe7b968-9b40-435c-9abc-aeeda1fc6c45",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            192,
            -224
          ],
          "parameters": {
            "color": 7,
            "width": 560,
            "height": 384,
            "content": "## REQUIRED FIELDS\n\n✓ name, email, social_handles\n✓ niche, country\n✓ Email format validation\n✓ Social handle cleanup\n\nMissing fields = **workflow stops**\n**Invalid email** = workflow stops"
          },
          "typeVersion": 1
        },
        {
          "id": "f52e79de-92f2-44b7-8a6b-e0bfab2b1b15",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            848,
            -272
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 608,
            "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n## API SETUP REQUIRED\n\n🔑 **RapidAPI Key**: Update in both nodes\n\n📊 **Instagram120** API\n📊 **YouTube138** API\n\nRate limits:\n- Add **2-3 sec** delays for production\n- Monitor quota usage\n- Have backup mock data ready\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "9cba5934-8d84-4a8a-ac14-ef738a18f653",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1664,
            -32
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 464,
            "content": "\n\n\n\n\n\n\n\n\n\n\n\n## SCORING BREAKDOWN\n\n**Instagram**: 60% weight\n**YouTube**: 40% weight\n\nThresholds:\n- **80+** = Auto-approved\n- **65-79** = Manual review  \n- **<65** = Auto-rejected\n\nAdditional checks:\n- **Min 5K** total followers\n- **Rate card** vs **audience ratio**"
          },
          "typeVersion": 1
        },
        {
          "id": "0943217e-1983-4c7c-894c-53b7cf1801ad",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2208,
            -432
          ],
          "parameters": {
            "color": 7,
            "width": 432,
            "height": 480,
            "content": "## APPROVED PATH ACTIONS\n\n1. Add to **Google Sheets** database\n2. Send **welcome email**\n3. Future: **Create Trello card**\n\n## PRODUCTION UPDATES NEEDED\n- **Replace YOUR_BRAND_NAME**\n- **Update Google Sheets ID**\n- **Set up email credentials**"
          },
          "typeVersion": 1
        },
        {
          "id": "d6ae6ef3-ef78-46b4-86c2-9aad9d265b8e",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2192,
            128
          ],
          "parameters": {
            "color": 7,
            "width": 288,
            "height": 384,
            "content": "\n\n\n\n\n\n\n\n\n\n\n\n## REJECTION REASONS\n- Low engagement score\n- Insufficient total reach (<5K)\n- Overpriced rate card\n- Invalid email\n- Missing required data\n\nAll rejections logged for analysis"
          },
          "typeVersion": 1
        },
        {
          "id": "b0753d3d-365e-45a6-bc2e-037c1bbf65e8",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1392,
            512
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 272,
            "content": "## MONITORING CHECKLIST\n\n□ API quota usage tracking\n□ Webhook response times\n□ Email delivery rates\n□ Google Sheets write errors\n□ False positive/negative rates\n\nAdd Slack alerts for system failures\nWeekly performance review recommended"
          },
          "typeVersion": 1
        },
        {
          "id": "4d1a7fc8-af75-4682-9567-a56b8c564e62",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -272,
            448
          ],
          "parameters": {
            "color": 7,
            "width": 320,
            "height": 224,
            "content": "## CREDENTIALS TO SETUP\n\n□ **VerifiEmail** API key\n□ **RapidAPI** key **(Instagram/YouTube)**\n□ **Google Sheets OAuth2**\n□ **Gmail OAuth2**\n\n⚠️ Delete old credential IDs before import\n⚠️ Test with real data before production"
          },
          "typeVersion": 1
        },
        {
          "id": "e95556ec-f5c8-402d-b101-905523dd11dd",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -816,
            -256
          ],
          "parameters": {
            "color": 7,
            "width": 464,
            "height": 672,
            "content": "## AUTOMATED INFLUENCER CAMPAIGN MANAGEMENT SYSTEM\n\n**PURPOSE**: **Streamline influencer application processing** from form to approval\nFOR: **Marketing agencies, brands, influencer platforms with high application volume**\n\nWHAT IT DOES:\n- **Validates influencer applications automatically**\n- Fetches **real Instagram + YouTube** audience data  \n- Scores **influencers using engagement + follower metrics**\n- Auto-approves qualified candidates\n- **Sends welcome emails** + adds to database\n- Rejects low-quality applications with reasons\n\nREQUIREMENTS:\n- **RapidAPI** subscription (Instagram/YouTube APIs)\n- **Google Sheets** for database\n- Email service (Gmail/SMTP)\n- n8n workflow platform\n\n## BUSINESS VALUE:\n- Saves **15-20 minutes** per application review\n- Consistent evaluation criteria\n- **24/7 automated processing**\n- Reduces manual screening workload by **80%**\n\n**CAPACITY**: Handles 100+ applications per day"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "e2fa68ce-ab34-459c-b0a9-cfad3ace15a7",
      "connections": {
        "If": {
          "main": [
            [
              {
                "node": "Add to Approved Database",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Stop and Error1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Merge": {
          "main": [
            [
              {
                "node": "Calculate Influencer Score",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Switch": {
          "main": [
            [
              {
                "node": "Instagram Profile Stats",
                "type": "main",
                "index": 0
              },
              {
                "node": "YouTube Channel Stats",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Stop and Error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Webhook": {
          "main": [
            [
              {
                "node": "Data Sanitizer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Verifi Email": {
          "main": [
            [
              {
                "node": "Switch",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Data Sanitizer": {
          "main": [
            [
              {
                "node": "Verifi Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse YouTube Data": {
          "main": [
            [
              {
                "node": "Merge",
                "type": "main",
                "index": 1
              }
            ]
          ]
        },
        "Parse Instagram Data": {
          "main": [
            [
              {
                "node": "Merge",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "YouTube Channel Stats": {
          "main": [
            [
              {
                "node": "Parse YouTube Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Instagram Profile Stats": {
          "main": [
            [
              {
                "node": "Parse Instagram Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Add to Approved Database": {
          "main": [
            [
              {
                "node": "Send Welcome Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Calculate Influencer Score": {
          "main": [
            [
              {
                "node": "If",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 24,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 4
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.merge": {
          "count": 1
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 9
        },
        "n8n-nodes-base.httpRequest": {
          "count": 2
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.stopAndError": {
          "count": 2
        },
        "n8n-nodes-verifiemail.verifiEmail": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Jitesh Dugar",
      "username": "jiteshdugar",
      "bio": "AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/jiteshdugar"
      ],
      "avatar": "https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 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": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "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/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/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "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/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "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/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/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-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/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.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "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": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "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/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with 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-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/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 528,
        "icon": "fa:exclamation-triangle",
        "name": "n8n-nodes-base.stopAndError",
        "codex": {
          "data": {
            "alias": [
              "Throw error",
              "Error",
              "Exception"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Utility"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Stop and Error",
          "color": "#ff0000"
        },
        "iconData": {
          "icon": "exclamation-triangle",
          "type": "icon"
        },
        "displayName": "Stop and Error",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 7,
            "name": "Utility"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 37,
        "name": "Lead Generation"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}