{
  "workflow": {
    "id": 10757,
    "name": "Qualify and route sales leads with Mistral-Saba AI and MCDM scoring",
    "views": 11,
    "recentViews": 0,
    "totalViews": 11,
    "createdAt": "2025-11-12T14:17:38.862Z",
    "description": "## How It Works\nThe workflow starts with a scheduled trigger that activates at set intervals. Behavioral data from multiple sources is parsed and sent to the MCDN routing engine, which intelligently assigns leads to the right teams based on predefined rules. AI-powered scoring evaluates each prospect’s potential, ensuring high-quality leads are prioritized. The results are synced to the CRM, and updates are reflected on an analytics dashboard for real-time visibility.\n\n## Setup Steps\n1. **Trigger:** Define schedule frequency.\n2. **Data Fetch:** Configure APIs for all behavioral data sources.\n3. **MCDN Router:** Set routing rules, thresholds, and team assignments.\n4. **AI Models:** Connect OpenAI/NVIDIA APIs and configure scoring prompts.\n5. **CRM Integration:** Enter credentials for Salesforce, HubSpot, or other CRMs.\n6. **Dashboard:** Link to analytics tools like Tableau or Google Sheets for reporting.\n\n## Prerequisites\nAPI credentials: NVIDIA AI, OpenAI, CRM platform; data sources; spreadsheet/analytics access\n\n## Use Cases\nLead prioritization for sales teams; customer segmentation; automated routing; \n\n## Customization\nAdjust routing rules, add custom scoring models, modify team assignments, expand data sources, integrate additional AI providers\n\n## Benefits\nReduces manual lead routing 90%; improves scoring accuracy; accelerates sales cycle; enables data-driven team assignments;  \n",
    "workflow": {
      "id": "sjlmtePgbFjeBF9c",
      "meta": {
        "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
        "templateCredsSetupCompleted": true
      },
      "name": "Qualify and Route Sales Leads with Mistral-Saba AI and MCDM Scoring",
      "tags": [],
      "nodes": [
        {
          "id": "2410ac7c-3026-41a2-b63b-591612723de4",
          "name": "Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -3872,
            304
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "hours"
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "91d73e7a-46e3-4e85-a63b-0a7dc347bd99",
          "name": "Workflow Configuration",
          "type": "n8n-nodes-base.set",
          "position": [
            -3616,
            160
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "id-1",
                  "name": "demographicApiUrl",
                  "type": "string",
                  "value": "<__PLACEHOLDER_VALUE__Demographic Data API Endpoint__>"
                },
                {
                  "id": "id-2",
                  "name": "behavioralApiUrl",
                  "type": "string",
                  "value": "<__PLACEHOLDER_VALUE__Behavioral Data API Endpoint__>"
                },
                {
                  "id": "id-3",
                  "name": "transactionalApiUrl",
                  "type": "string",
                  "value": "<__PLACEHOLDER_VALUE__Transactional Data API Endpoint__>"
                },
                {
                  "id": "id-4",
                  "name": "crmApiUrl",
                  "type": "string",
                  "value": "<__PLACEHOLDER_VALUE__CRM API Endpoint__>"
                },
                {
                  "id": "id-5",
                  "name": "analyticsApiUrl",
                  "type": "string",
                  "value": "<__PLACEHOLDER_VALUE__Analytics Dashboard API Endpoint__>"
                },
                {
                  "id": "id-6",
                  "name": "enterpriseThreshold",
                  "type": "number",
                  "value": 85
                },
                {
                  "id": "id-7",
                  "name": "midMarketThreshold",
                  "type": "number",
                  "value": 70
                },
                {
                  "id": "id-8",
                  "name": "smbThreshold",
                  "type": "number",
                  "value": 50
                },
                {
                  "id": "id-9",
                  "name": "ahpWeights",
                  "type": "object",
                  "value": "{\"demographic\": 0.3, \"behavioral\": 0.4, \"transactional\": 0.3}"
                }
              ]
            },
            "includeOtherFields": true
          },
          "typeVersion": 3.4
        },
        {
          "id": "5ca10112-7824-47f6-ba15-9729dac1e58a",
          "name": "Fetch Demographic Data",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -3376,
            16
          ],
          "parameters": {
            "url": "={{ $('Workflow Configuration').first().json.demographicApiUrl }}",
            "options": {},
            "sendHeaders": true,
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "3a596f6b-8d56-4093-9310-575a7a338cbd",
          "name": "Fetch Behavioral Data",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -3392,
            160
          ],
          "parameters": {
            "url": "={{ $('Workflow Configuration').first().json.behavioralApiUrl }}",
            "options": {},
            "sendHeaders": true,
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "434bff0d-e1d6-4c94-a0c4-4685f0ab7f52",
          "name": "Fetch Transactional Data",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -3392,
            352
          ],
          "parameters": {
            "url": "={{ $('Workflow Configuration').first().json.transactionalApiUrl }}",
            "options": {},
            "sendHeaders": true,
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "850c94fe-646c-40a5-8dd5-7f34ce0cd279",
          "name": "Merge Lead Data Sources",
          "type": "n8n-nodes-base.aggregate",
          "position": [
            -3184,
            64
          ],
          "parameters": {
            "options": {},
            "aggregate": "aggregateAllItemData",
            "destinationFieldName": "leadData"
          },
          "typeVersion": 1
        },
        {
          "id": "6c0328d2-0b4d-43f0-92f2-88e1e422870b",
          "name": "MCDM Scoring Engine (AHP-TOPSIS)",
          "type": "n8n-nodes-base.code",
          "position": [
            -2944,
            64
          ],
          "parameters": {
            "jsCode": "// MCDM Scoring Engine: AHP-TOPSIS Implementation\n// Multi-Criteria Decision Making for Lead Scoring\n\n// Get input items (merged lead data)\nconst leads = $input.all();\n\n// Get configuration from Workflow Configuration node\nconst config = $('Workflow Configuration').first().json;\n\n// Default criteria weights (AHP-derived) if not in config\nconst criteriaWeights = config.criteriaWeights || {\n  companySize: 0.25,\n  budget: 0.30,\n  engagement: 0.20,\n  fitScore: 0.15,\n  urgency: 0.10\n};\n\n// Extract criteria values from leads\nconst criteria = ['companySize', 'budget', 'engagement', 'fitScore', 'urgency'];\n\n// Step 1: Build decision matrix\nconst decisionMatrix = leads.map(lead => {\n  return {\n    leadId: lead.json.leadId || lead.json.id,\n    values: criteria.map(criterion => parseFloat(lead.json[criterion]) || 0),\n    originalData: lead.json\n  };\n});\n\n// Step 2: Normalize the decision matrix (vector normalization)\nconst normalizedMatrix = [];\nfor (let j = 0; j < criteria.length; j++) {\n  const columnSum = Math.sqrt(\n    decisionMatrix.reduce((sum, row) => sum + Math.pow(row.values[j], 2), 0)\n  );\n  \n  decisionMatrix.forEach((row, i) => {\n    if (!normalizedMatrix[i]) normalizedMatrix[i] = [];\n    normalizedMatrix[i][j] = columnSum > 0 ? row.values[j] / columnSum : 0;\n  });\n}\n\n// Step 3: Apply weights to normalized matrix\nconst weightedMatrix = normalizedMatrix.map(row => \n  row.map((value, j) => value * criteriaWeights[criteria[j]])\n);\n\n// Step 4: Determine ideal best (A+) and ideal worst (A-) solutions\nconst idealBest = [];\nconst idealWorst = [];\n\nfor (let j = 0; j < criteria.length; j++) {\n  const column = weightedMatrix.map(row => row[j]);\n  idealBest[j] = Math.max(...column);\n  idealWorst[j] = Math.min(...column);\n}\n\n// Step 5: Calculate separation measures\nconst separations = weightedMatrix.map(row => {\n  const distanceToBest = Math.sqrt(\n    row.reduce((sum, value, j) => sum + Math.pow(value - idealBest[j], 2), 0)\n  );\n  \n  const distanceToWorst = Math.sqrt(\n    row.reduce((sum, value, j) => sum + Math.pow(value - idealWorst[j], 2), 0)\n  );\n  \n  return { distanceToBest, distanceToWorst };\n});\n\n// Step 6: Calculate closeness coefficient (TOPSIS score)\nconst scoredLeads = decisionMatrix.map((lead, i) => {\n  const { distanceToBest, distanceToWorst } = separations[i];\n  const closenessCoefficient = distanceToWorst / (distanceToBest + distanceToWorst) || 0;\n  \n  return {\n    json: {\n      ...lead.originalData,\n      leadId: lead.leadId,\n      mcdmScore: Math.round(closenessCoefficient * 100) / 100,\n      normalizedScore: Math.round(closenessCoefficient * 100), // 0-100 scale\n      criteriaBreakdown: {\n        companySize: lead.values[0],\n        budget: lead.values[1],\n        engagement: lead.values[2],\n        fitScore: lead.values[3],\n        urgency: lead.values[4]\n      },\n      weightedScores: {\n        companySize: weightedMatrix[i][0],\n        budget: weightedMatrix[i][1],\n        engagement: weightedMatrix[i][2],\n        fitScore: weightedMatrix[i][3],\n        urgency: weightedMatrix[i][4]\n      },\n      distanceToBest: Math.round(separations[i].distanceToBest * 1000) / 1000,\n      distanceToWorst: Math.round(separations[i].distanceToWorst * 1000) / 1000,\n      scoringMethod: 'AHP-TOPSIS',\n      scoredAt: new Date().toISOString()\n    }\n  };\n});\n\n// Step 7: Rank leads by MCDM score (descending)\nscoredLeads.sort((a, b) => b.json.mcdmScore - a.json.mcdmScore);\n\n// Add rank to each lead\nscoredLeads.forEach((lead, index) => {\n  lead.json.rank = index + 1;\n  lead.json.percentile = Math.round((1 - index / scoredLeads.length) * 100);\n});\n\nconsole.log(`MCDM Scoring Complete: ${scoredLeads.length} leads scored and ranked`);\nconsole.log(`Top Lead Score: ${scoredLeads[0]?.json.mcdmScore}`);\nconsole.log(`Criteria Weights Used:`, criteriaWeights);\n\nreturn scoredLeads;"
          },
          "typeVersion": 2
        },
        {
          "id": "ee6ed16c-eb18-4b8d-acfc-a541a599b997",
          "name": "AI Lead Qualification Agent",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -2784,
            160
          ],
          "parameters": {
            "text": "You are an expert lead qualification analyst. Analyze the provided lead data with MCDM scores and provide a comprehensive qualification assessment. Consider demographic fit, behavioral engagement, transactional history, and overall score. Provide actionable insights for sales teams including key strengths, potential objections, recommended approach, and priority level. Use the enrichLeadData tool to gather additional context.",
            "options": {},
            "promptType": "define"
          },
          "typeVersion": 3
        },
        {
          "id": "f575333e-9a96-4e0a-814f-fd60f3bf4e1d",
          "name": "Lead Enrichment Tool",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            -2592,
            352
          ],
          "parameters": {
            "jsCode": "// Extract lead information from the query\nconst leadData = typeof query === 'string' ? JSON.parse(query) : query;\n\n// Analyze MCDM scores and patterns\nconst mcdmScore = leadData.mcdmScore || 0;\nconst ahpScore = leadData.ahpScore || 0;\nconst topsisScore = leadData.topsisScore || 0;\n\n// Determine lead quality tier\nlet qualityTier = 'Low';\nlet qualificationInsights = [];\n\nif (mcdmScore >= 0.8) {\n  qualityTier = 'Enterprise';\n  qualificationInsights.push('High MCDM score indicates strong fit for enterprise sales');\n} else if (mcdmScore >= 0.6) {\n  qualityTier = 'Mid-Market';\n  qualificationInsights.push('Moderate MCDM score suitable for mid-market engagement');\n} else if (mcdmScore >= 0.4) {\n  qualityTier = 'SMB';\n  qualificationInsights.push('MCDM score indicates SMB potential');\n} else {\n  qualityTier = 'Nurture';\n  qualificationInsights.push('Low MCDM score - recommend nurture campaign');\n}\n\n// Analyze behavioral patterns\nif (leadData.engagementScore && leadData.engagementScore > 0.7) {\n  qualificationInsights.push('High engagement score indicates active interest');\n}\n\nif (leadData.companySize && leadData.companySize > 500) {\n  qualificationInsights.push('Large company size increases enterprise potential');\n}\n\nif (leadData.budget && leadData.budget > 100000) {\n  qualificationInsights.push('Significant budget allocation detected');\n}\n\n// Create enriched lead profile\nconst enrichedData = {\n  ...leadData,\n  qualityTier,\n  qualificationInsights,\n  enrichmentTimestamp: new Date().toISOString(),\n  recommendedAction: qualityTier === 'Nurture' ? 'Add to nurture campaign' : `Route to ${qualityTier} sales team`,\n  priorityScore: mcdmScore,\n  confidenceLevel: (ahpScore + topsisScore) / 2\n};\n\n// Return enriched data as JSON string\nreturn JSON.stringify(enrichedData, null, 2);",
            "description": "Enriches lead data with additional context and insights based on MCDM scores"
          },
          "typeVersion": 1.3
        },
        {
          "id": "c508c747-30e9-4bb2-9033-daa74adaf07e",
          "name": "Prepare Lead Scores",
          "type": "n8n-nodes-base.set",
          "position": [
            -2496,
            160
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "id-1",
                  "name": "leadScore",
                  "type": "number",
                  "value": "={{ $json.mcdmScore }}"
                },
                {
                  "id": "id-2",
                  "name": "leadTier",
                  "type": "string",
                  "value": "={{ $json.tier }}"
                },
                {
                  "id": "id-3",
                  "name": "aiInsights",
                  "type": "string",
                  "value": "={{ $json.output }}"
                },
                {
                  "id": "id-4",
                  "name": "routingDecision",
                  "type": "string",
                  "value": "={{ $json.routingDecision }}"
                }
              ]
            },
            "includeOtherFields": true
          },
          "typeVersion": 3.4
        },
        {
          "id": "9218e955-5d21-43c7-9409-4c9d8a39e3cf",
          "name": "Route by Lead Quality",
          "type": "n8n-nodes-base.switch",
          "position": [
            -2320,
            224
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "outputKey": "Enterprise",
                  "conditions": {
                    "options": {
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "operator": {
                          "type": "number",
                          "operation": "gte"
                        },
                        "leftValue": "={{ $json.leadScore }}",
                        "rightValue": "={{ $('Workflow Configuration').first().json.enterpriseThreshold }}"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Mid-Market",
                  "conditions": {
                    "options": {
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "operator": {
                          "type": "number",
                          "operation": "gte"
                        },
                        "leftValue": "={{ $json.leadScore }}",
                        "rightValue": "={{ $('Workflow Configuration').first().json.midMarketThreshold }}"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "SMB",
                  "conditions": {
                    "options": {
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "operator": {
                          "type": "number",
                          "operation": "gte"
                        },
                        "leftValue": "={{ $json.leadScore }}",
                        "rightValue": "={{ $('Workflow Configuration').first().json.smbThreshold }}"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Nurture",
                  "conditions": {
                    "options": {
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "operator": {
                          "type": "number",
                          "operation": "lt"
                        },
                        "leftValue": "={{ $json.leadScore }}",
                        "rightValue": "={{ $('Workflow Configuration').first().json.smbThreshold }}"
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.3
        },
        {
          "id": "e9345b1d-b546-4098-8f87-55228bab52dc",
          "name": "Assign to Enterprise Sales Team",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -2064,
            80
          ],
          "parameters": {
            "url": "<__PLACEHOLDER_VALUE__Enterprise Sales Team Assignment API__>",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "bodyParameters": {
              "parameters": [
                {
                  "name": "leadId",
                  "value": "={{ $json.leadId }}"
                },
                {
                  "name": "leadData",
                  "value": "={{ $json.leadData }}"
                },
                {
                  "name": "score",
                  "value": "={{ $json.score }}"
                },
                {
                  "name": "tier",
                  "value": "={{ $json.tier }}"
                },
                {
                  "name": "aiInsights",
                  "value": "={{ $json.aiInsights }}"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "baab50d2-df84-4256-a5e7-ab11bb6f31ad",
          "name": "Assign to Mid-Market Team",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -2096,
            256
          ],
          "parameters": {
            "url": "<__PLACEHOLDER_VALUE__Mid-Market Team Assignment API__>",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "bodyParameters": {
              "parameters": [
                {
                  "name": "lead_data",
                  "value": "={{ $json.lead_data }}"
                },
                {
                  "name": "score",
                  "value": "={{ $json.score }}"
                },
                {
                  "name": "tier",
                  "value": "={{ $json.tier }}"
                },
                {
                  "name": "ai_insights",
                  "value": "={{ $json.ai_insights }}"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "b09653ea-5fea-4487-a6ae-a7e66f5b5463",
          "name": "Assign to SMB Team",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -2096,
            448
          ],
          "parameters": {
            "url": "<__PLACEHOLDER_VALUE__SMB Team Assignment API__>",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "bodyParameters": {
              "parameters": [
                {
                  "name": "lead_id",
                  "value": "={{ $json.lead_id }}"
                },
                {
                  "name": "lead_data",
                  "value": "={{ $json.lead_data }}"
                },
                {
                  "name": "score",
                  "value": "={{ $json.score }}"
                },
                {
                  "name": "tier",
                  "value": "={{ $json.tier }}"
                },
                {
                  "name": "ai_insights",
                  "value": "={{ $json.ai_insights }}"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "67fb8eef-ceac-4ca8-8e71-cc270d2838c2",
          "name": "Send to Nurture Campaign",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -2096,
            640
          ],
          "parameters": {
            "url": "<__PLACEHOLDER_VALUE__Nurture Campaign API__>",
            "method": "POST",
            "options": {},
            "jsonBody": "={{ {\n  \"leadId\": $json.leadId,\n  \"email\": $json.email,\n  \"name\": $json.name,\n  \"score\": $json.score,\n  \"qualificationStatus\": $json.qualificationStatus,\n  \"nurtureRecommendations\": $json.nurtureRecommendations,\n  \"assignedCampaign\": \"nurture\",\n  \"timestamp\": $now\n} }}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "e2cff35d-64d8-43b8-962e-5d34aa722fe1",
          "name": "Collect Routing Results",
          "type": "n8n-nodes-base.aggregate",
          "position": [
            -1792,
            144
          ],
          "parameters": {
            "options": {},
            "aggregate": "aggregateAllItemData",
            "destinationFieldName": "routingResults"
          },
          "typeVersion": 1
        },
        {
          "id": "9fff038a-72fd-4860-a620-594e9aa79b3d",
          "name": "Update CRM with Lead Scores",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -1616,
            144
          ],
          "parameters": {
            "url": "={{ $('Workflow Configuration').first().json.crmApiUrl }}",
            "method": "POST",
            "options": {},
            "jsonBody": "={{ {\n  \"leadId\": $json.leadId,\n  \"leadScore\": $json.leadScore,\n  \"tier\": $json.tier,\n  \"routingDecision\": $json.routingDecision,\n  \"assignedTeam\": $json.assignedTeam,\n  \"aiInsights\": $json.aiInsights,\n  \"demographicScore\": $json.demographicScore,\n  \"behavioralScore\": $json.behavioralScore,\n  \"transactionalScore\": $json.transactionalScore,\n  \"qualificationTimestamp\": $now.toISO()\n} }}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "f69e1819-7713-4dac-87cf-f2256b8860cb",
          "name": "Calculate Performance KPIs",
          "type": "n8n-nodes-base.code",
          "position": [
            -1376,
            128
          ],
          "parameters": {
            "jsCode": "// Calculate Performance KPIs for Lead Qualification System\n\nconst items = $input.all();\n\n// Initialize counters and metrics\nconst tierCounts = {\n  enterprise: 0,\n  midMarket: 0,\n  smb: 0,\n  nurture: 0\n};\n\nconst tierScores = {\n  enterprise: [],\n  midMarket: [],\n  smb: [],\n  nurture: []\n};\n\nconst tierConversions = {\n  enterprise: 0,\n  midMarket: 0,\n  smb: 0,\n  nurture: 0\n};\n\nconst responseTimes = [];\nconst processingTimes = [];\nlet totalLeads = items.length;\nlet accurateQualifications = 0;\n\n// Process each lead\nfor (const item of items) {\n  const json = item.json;\n  \n  // Determine tier from routing or score\n  let tier = 'nurture';\n  const score = json.leadScore || json.score || 0;\n  \n  if (json.tier) {\n    tier = json.tier.toLowerCase();\n  } else if (score >= 80) {\n    tier = 'enterprise';\n  } else if (score >= 60) {\n    tier = 'midMarket';\n  } else if (score >= 40) {\n    tier = 'smb';\n  }\n  \n  // Count leads by tier\n  tierCounts[tier]++;\n  \n  // Collect scores by tier\n  tierScores[tier].push(score);\n  \n  // Track conversions (if conversion data exists)\n  if (json.converted === true || json.status === 'converted') {\n    tierConversions[tier]++;\n  }\n  \n  // Collect response times (if available)\n  if (json.responseTime) {\n    responseTimes.push(json.responseTime);\n  }\n  \n  // Collect processing times (if available)\n  if (json.processingTime) {\n    processingTimes.push(json.processingTime);\n  }\n  \n  // Track model accuracy (if validation data exists)\n  if (json.actualQuality && json.predictedQuality) {\n    if (json.actualQuality === json.predictedQuality) {\n      accurateQualifications++;\n    }\n  }\n}\n\n// Calculate average scores by tier\nconst avgScoresByTier = {};\nfor (const [tier, scores] of Object.entries(tierScores)) {\n  if (scores.length > 0) {\n    avgScoresByTier[tier] = scores.reduce((a, b) => a + b, 0) / scores.length;\n  } else {\n    avgScoresByTier[tier] = 0;\n  }\n}\n\n// Calculate conversion rates by tier\nconst conversionRatesByTier = {};\nfor (const [tier, count] of Object.entries(tierCounts)) {\n  if (count > 0) {\n    conversionRatesByTier[tier] = (tierConversions[tier] / count) * 100;\n  } else {\n    conversionRatesByTier[tier] = 0;\n  }\n}\n\n// Calculate average response time\nconst avgResponseTime = responseTimes.length > 0\n  ? responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length\n  : 0;\n\n// Calculate average processing time\nconst avgProcessingTime = processingTimes.length > 0\n  ? processingTimes.reduce((a, b) => a + b, 0) / processingTimes.length\n  : 0;\n\n// Calculate model accuracy\nconst modelAccuracy = totalLeads > 0\n  ? (accurateQualifications / totalLeads) * 100\n  : 0;\n\n// Calculate lead distribution percentages\nconst leadDistribution = {};\nfor (const [tier, count] of Object.entries(tierCounts)) {\n  leadDistribution[tier] = totalLeads > 0 ? (count / totalLeads) * 100 : 0;\n}\n\n// Compile KPIs\nconst kpis = {\n  timestamp: new Date().toISOString(),\n  totalLeadsProcessed: totalLeads,\n  \n  conversionRates: {\n    enterprise: conversionRatesByTier.enterprise.toFixed(2) + '%',\n    midMarket: conversionRatesByTier.midMarket.toFixed(2) + '%',\n    smb: conversionRatesByTier.smb.toFixed(2) + '%',\n    nurture: conversionRatesByTier.nurture.toFixed(2) + '%',\n    overall: ((Object.values(tierConversions).reduce((a, b) => a + b, 0) / totalLeads) * 100).toFixed(2) + '%'\n  },\n  \n  averageLeadScores: {\n    enterprise: avgScoresByTier.enterprise.toFixed(2),\n    midMarket: avgScoresByTier.midMarket.toFixed(2),\n    smb: avgScoresByTier.smb.toFixed(2),\n    nurture: avgScoresByTier.nurture.toFixed(2)\n  },\n  \n  leadDistribution: {\n    enterprise: leadDistribution.enterprise.toFixed(2) + '%',\n    midMarket: leadDistribution.midMarket.toFixed(2) + '%',\n    smb: leadDistribution.smb.toFixed(2) + '%',\n    nurture: leadDistribution.nurture.toFixed(2) + '%'\n  },\n  \n  leadCounts: tierCounts,\n  \n  performanceMetrics: {\n    averageResponseTime: avgResponseTime.toFixed(2) + ' ms',\n    averageProcessingTime: avgProcessingTime.toFixed(2) + ' ms',\n    modelAccuracy: modelAccuracy.toFixed(2) + '%'\n  }\n};\n\nreturn [{ json: kpis }];"
          },
          "typeVersion": 2
        },
        {
          "id": "4642b3cf-8ef8-431b-980a-dc66214e95d3",
          "name": "Log KPIs to Analytics Dashboard",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -1200,
            128
          ],
          "parameters": {
            "url": "={{ $('Workflow Configuration').first().json.analyticsApiUrl }}",
            "method": "POST",
            "options": {},
            "jsonBody": "={{ {\n  \"kpis\": $json,\n  \"timestamp\": $now\n} }}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.3
        },
        {
          "id": "755a24b3-ce8d-4f19-a7b8-acc30c2f1001",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3920,
            -256
          ],
          "parameters": {
            "width": 656,
            "height": 192,
            "content": "## How It Works\nThe workflow starts with a scheduled trigger that activates at set intervals. Behavioral data from multiple sources is parsed and sent to the MCDN routing engine, which intelligently assigns leads to the right teams based on predefined rules. AI-powered scoring evaluates each prospect’s potential, ensuring high-quality leads are prioritized. The results are synced to the CRM, and updates are reflected on an analytics dashboard for real-time visibility.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "1453438a-89f0-493a-87d7-859de1060ad3",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3248,
            -256
          ],
          "parameters": {
            "width": 576,
            "height": 192,
            "content": "## Setup Steps\n1. **Trigger:** Define schedule frequency.\n2. **Data Fetch:** Configure APIs for all behavioral data sources.\n3. **MCDN Router:** Set routing rules, thresholds, and team assignments.\n4. **AI Models:** Connect OpenAI/NVIDIA APIs and configure scoring prompts.\n5. **CRM Integration:** Enter credentials for Salesforce, HubSpot, or other CRMs.\n6. **Dashboard:** Link to analytics tools like Tableau or Google Sheets for reporting.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "e2219910-ab39-4b05-8219-98b1c1d284d3",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2640,
            -256
          ],
          "parameters": {
            "color": 4,
            "width": 672,
            "content": "## Prerequisites\nAPI credentials: NVIDIA AI, OpenAI, CRM platform; data sources; spreadsheet/analytics access\n\n## Use Cases\nLead prioritization for sales teams; customer segmentation; automated routing; "
          },
          "typeVersion": 1
        },
        {
          "id": "fca6d1b5-68f8-4d5a-82ef-9f16454fa202",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1936,
            -272
          ],
          "parameters": {
            "color": 3,
            "content": "## Customization\nAdjust routing rules, add custom scoring models, modify team assignments, expand data sources "
          },
          "typeVersion": 1
        },
        {
          "id": "52914015-7d55-4ef4-824b-fab34ef818b5",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1648,
            -272
          ],
          "parameters": {
            "color": 6,
            "width": 336,
            "height": 128,
            "content": "## Benefits\nReduces manual lead routing 90%; improves scoring accuracy; accelerates sales cycle "
          },
          "typeVersion": 1
        },
        {
          "id": "95272b07-2b31-4895-a068-8682d009c3ad",
          "name": "OpenRouter Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -2768,
            352
          ],
          "parameters": {
            "model": "mistralai/mistral-saba",
            "options": {}
          },
          "credentials": {
            "openRouterApi": {
              "id": "credential-id",
              "name": "openRouterApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "8a3a9dd6-44bc-4f46-91c4-17621f32f851",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3920,
            -48
          ],
          "parameters": {
            "color": 7,
            "height": 512,
            "content": "## Schedule Lead Processing\nTriggers workflow at defined intervals to process batches of incoming leads\nWhy: Consistent cadence ensures leads don't sit unqualified; "
          },
          "typeVersion": 1
        },
        {
          "id": "f3a3bac6-e7bd-4fa2-8e81-1a809d3fb196",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3664,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 416,
            "height": 720,
            "content": "## Fetch Behavioral Data\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nRetrieves multi-source lead information: form submissions, website interactions, email engagement, past purchase signals\nWhy: Rich behavioral data reveals intent "
          },
          "typeVersion": 1
        },
        {
          "id": "d1cc1263-e929-4114-ba26-fdcd1c2fbf32",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3232,
            -48
          ],
          "parameters": {
            "color": 7,
            "height": 608,
            "content": "## Parse Multi-Format Inputs\n\n\n\n\n\n\n\n\n\n\n\n\n\nStandardizes data from different sources (APIs, spreadsheets, webhooks, forms) into consistent structure\nWhy: email parsing ensures AI and routing engine work with clean, normalized information  "
          },
          "typeVersion": 1
        },
        {
          "id": "b6d4d290-7d4a-495e-b8cd-29fb3174961a",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2976,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 160,
            "height": 608,
            "content": "## MCDN Route\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nRoutes leads to the right sales teams using account size, industry, region, product interests.\n**Why:** Ensures reps focus on the right opportunities "
          },
          "typeVersion": 1
        },
        {
          "id": "7489c24d-2b64-4905-9411-39ab65d72244",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2800,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 416,
            "height": 608,
            "content": "## AI Scores Lead Quality\nAnalyzes behavioral, transactional, and firmographic data to rank leads by conversion probability\nWhy: AI scoring reveals which prospects are sales-ready "
          },
          "typeVersion": 1
        },
        {
          "id": "c6b6a7be-0f1c-4010-8284-26cf782e9d27",
          "name": "Sticky Note10",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2368,
            -80
          ],
          "parameters": {
            "color": 7,
            "width": 496,
            "height": 880,
            "content": "## Assign to Specialized Team\nRoutes qualified lead to the right team: enterprise, mid-market, SMB, or vertical specialist based on scoring and routing rules\nWhy:  proper assignment cuts sales cycle time and improves close rates"
          },
          "typeVersion": 1
        },
        {
          "id": "a87da9c7-d2e0-419b-8879-9b4e7a7f140b",
          "name": "Sticky Note11",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1856,
            -80
          ],
          "parameters": {
            "color": 7,
            "width": 384,
            "height": 400,
            "content": "## Sync Assignment Metadata\nCaptures which team received the lead, reasoning for routing, and AI confidence score in CRM fields\nWhy: Understand why a lead went to team A instead of B, and refine rules based on outcomes"
          },
          "typeVersion": 1
        },
        {
          "id": "765bc70b-5101-498c-843f-6d34b1c20241",
          "name": "Sticky Note12",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1456,
            -80
          ],
          "parameters": {
            "color": 7,
            "width": 448,
            "height": 368,
            "content": "## Generate Performance Dashboard & Log\nCompiles metrics: leads processed, quality distribution, routing accuracy, team assignment rates, conversion tracking\nWhy: Transforms individual routing decisions into strategic visibility "
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "70da3d90-a427-422a-8641-822ee81af49e",
      "connections": {
        "Schedule Trigger": {
          "main": [
            [
              {
                "node": "Workflow Configuration",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Assign to SMB Team": {
          "main": [
            [
              {
                "node": "Collect Routing Results",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare Lead Scores": {
          "main": [
            [
              {
                "node": "Route by Lead Quality",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Lead Enrichment Tool": {
          "ai_tool": [
            [
              {
                "node": "AI Lead Qualification Agent",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Behavioral Data": {
          "main": [
            [
              {
                "node": "Merge Lead Data Sources",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Lead Qualification Agent",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Route by Lead Quality": {
          "main": [
            [
              {
                "node": "Assign to Enterprise Sales Team",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Assign to Mid-Market Team",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Assign to SMB Team",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Send to Nurture Campaign",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Demographic Data": {
          "main": [
            [
              {
                "node": "Merge Lead Data Sources",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Workflow Configuration": {
          "main": [
            [
              {
                "node": "Fetch Demographic Data",
                "type": "main",
                "index": 0
              },
              {
                "node": "Fetch Behavioral Data",
                "type": "main",
                "index": 0
              },
              {
                "node": "Fetch Transactional Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Collect Routing Results": {
          "main": [
            [
              {
                "node": "Update CRM with Lead Scores",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Merge Lead Data Sources": {
          "main": [
            [
              {
                "node": "MCDM Scoring Engine (AHP-TOPSIS)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Transactional Data": {
          "main": [
            [
              {
                "node": "Merge Lead Data Sources",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send to Nurture Campaign": {
          "main": [
            [
              {
                "node": "Collect Routing Results",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Assign to Mid-Market Team": {
          "main": [
            [
              {
                "node": "Collect Routing Results",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Calculate Performance KPIs": {
          "main": [
            [
              {
                "node": "Log KPIs to Analytics Dashboard",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Lead Qualification Agent": {
          "main": [
            [
              {
                "node": "Prepare Lead Scores",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Update CRM with Lead Scores": {
          "main": [
            [
              {
                "node": "Calculate Performance KPIs",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Assign to Enterprise Sales Team": {
          "main": [
            [
              {
                "node": "Collect Routing Results",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "MCDM Scoring Engine (AHP-TOPSIS)": {
          "main": [
            [
              {
                "node": "AI Lead Qualification Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 33,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 2
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.aggregate": {
          "count": 2
        },
        "n8n-nodes-base.stickyNote": {
          "count": 13
        },
        "n8n-nodes-base.httpRequest": {
          "count": 9
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolCode": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenRouter": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Cheng Siong Chin",
      "username": "cschin",
      "bio": "Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n",
      "verified": true,
      "links": [
        "https://gravatar.com/mysticluminary9fa255f7f5"
      ],
      "avatar": "https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 19,
        "icon": "file:httprequest.svg",
        "name": "n8n-nodes-base.httpRequest",
        "codex": {
          "data": {
            "alias": [
              "API",
              "Request",
              "URL",
              "Build",
              "cURL"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/",
                  "icon": "🎨",
                  "label": "Automate Designs with Bannerbear and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/",
                  "icon": "🧰",
                  "label": "How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HTTP Request",
          "color": "#0004F5"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "HTTP Request",
        "typeVersion": 4,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 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": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1197,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.toolCode",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Recommended Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code Tool"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Code Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1236,
        "icon": "file:aggregate.svg",
        "name": "n8n-nodes-base.aggregate",
        "codex": {
          "data": {
            "alias": [
              "Aggregate",
              "Combine",
              "Flatten",
              "Transform",
              "Array",
              "List",
              "Item"
            ],
            "details": "",
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Aggregate"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="
        },
        "displayName": "Aggregate",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1281,
        "icon": "file:openrouter.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenRouter Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTRBM0I4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5PcGVuUm91dGVyPC90aXRsZT48cGF0aCBkPSJNMTYuODA0IDEuOTU3bDcuMjIgNC4xMDV2LjA4N0wxNi43MyAxMC4yMWwuMDE3LTIuMTE3LS44MjEtLjAzYy0xLjA1OS0uMDI4LTEuNjExLjAwMi0yLjI2OC4xMS0xLjA2NC4xNzUtMi4wMzguNTc3LTMuMTQ3IDEuMzUyTDguMzQ1IDExLjAzYy0uMjg0LjE5NS0uNDk1LjMzNi0uNjguNDU1bC0uNTE1LjMyMi0uMzk3LjIzNC4zODUuMjMuNTMuMzM4Yy40NzYuMzE0IDEuMTcuNzk2IDIuNzAxIDEuODY2IDEuMTEuNzc1IDIuMDgzIDEuMTc3IDMuMTQ3IDEuMzUybC4zLjA0NWMuNjk0LjA5MSAxLjM3NS4wOTQgMi44MjUuMDMzbC4wMjItMi4xNTkgNy4yMiA0LjEwNXYuMDg3TDE2LjU4OSAyMmwuMDE0LTEuODYyLS42MzUuMDIyYy0xLjM4Ni4wNDItMi4xMzcuMDAyLTMuMTM4LS4xNjItMS42OTQtLjI4LTMuMjYtLjkyNi00Ljg4MS0yLjA1OWwtMi4xNTgtMS41YTIxLjk5NyAyMS45OTcgMCAwMC0uNzU1LS40OThsLS40NjctLjI4YTU1LjkyNyA1NS45MjcgMCAwMC0uNzYtLjQzQzIuOTA4IDE0LjczLjU2MyAxNC4xMTYgMCAxNC4xMTZWOS44ODhsLjE0LjAwNGMuNTY0LS4wMDcgMi45MS0uNjIyIDMuODA5LTEuMTI0bDEuMDE2LS41OC40MzgtLjI3NGMuNDI4LS4yOCAxLjA3Mi0uNzI2IDIuNjg2LTEuODUzIDEuNjIxLTEuMTMzIDMuMTg2LTEuNzggNC44ODEtMi4wNTkgMS4xNTItLjE5IDEuOTc0LS4yMTMgMy44MTQtLjEzOGwuMDItMS45MDd6Ij48L3BhdGg+PC9zdmc+Cg=="
        },
        "displayName": "OpenRouter Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 37,
        "name": "Lead Generation"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}