{"workflow":{"id":13698,"name":"Route engineering risks with Anthropic multi-agents and Slack alerts","views":39,"recentViews":0,"totalViews":39,"createdAt":"2026-02-25T10:18:52.761Z","description":"## How It Works\nThis workflow automates engineering governance by deploying a multi-agent AI system that validates designs, checks compliance, optimises safety, and predicts maintenance needs. Designed for engineering teams, quality assurance officers, and operations managers in regulated industries, it eliminates manual review bottlenecks and ensures systemic risk issues are escalated promptly. A schedule trigger fetches design specifications and operational data, merges them, then routes to three parallel agent tracks: Design Validation (with Compliance Verification, Resource Coordination, and Testing Validation sub-agents), Safety Optimisation, and Predictive Maintenance. All outputs consolidate into a risk score calculator, which routes by risk level—critical and high issues trigger Slack alerts immediately, while medium and low issues are logged for review.\n\n## Setup Steps\n1. Set schedule trigger interval to match governance review frequency.\n2. Add Anthropic API credentials to all Anthropic Model nodes.\n3. Connect design specification and operational data sources to fetch nodes.\n4. Configure Slack credentials for critical and high-priority alert channels.\n5. Define risk scoring thresholds in the Calculate Risk Scores node.\n\n## Prerequisites\n- Slack workspace with bot token\n- Design and operational data sources (API or database)\n## Use Cases\n- Automated design compliance auditing for aerospace or manufacturing\n- Real-time safety risk detection in industrial operations\n## Customization\n- Add sub-agents for environmental, cost, or regulatory compliance\n## Benefits\n- Automates multi-dimensional engineering governance on a schedule","workflow":{"id":"OvyBQyKUIrh1wEO_Y0oHI","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI engineering governance system with multi-agent safety and risk routing","tags":[],"nodes":[{"id":"29c0ea5e-f51e-4bdc-a8b9-bb9a57a9ca15","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-16,656],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":6}]}},"typeVersion":1.3},{"id":"6fcc9469-82d8-4978-89a5-3c0d6bd1a99d","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[208,656],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"designSpecsApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Design Specifications API URL__>"},{"id":"id-2","name":"operationalDataApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Operational Data API URL__>"},{"id":"id-3","name":"slackChannelId","type":"string","value":"<__PLACEHOLDER_VALUE__Slack Channel ID for alerts__>"},{"id":"id-4","name":"criticalRiskThreshold","type":"number","value":80},{"id":"id-5","name":"highRiskThreshold","type":"number","value":60},{"id":"id-6","name":"mediumRiskThreshold","type":"number","value":40}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"8d4164dc-dd18-46e1-8e57-fb9b0b632c4f","name":"Fetch Design Specifications","type":"n8n-nodes-base.httpRequest","position":[432,560],"parameters":{"url":"={{ $('Workflow Configuration').first().json.designSpecsApiUrl }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"259913ca-c039-46c2-802a-6cef052d5a7d","name":"Fetch Operational Data","type":"n8n-nodes-base.httpRequest","position":[432,752],"parameters":{"url":"={{ $('Workflow Configuration').first().json.operationalDataApiUrl }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"3f270a6a-3a59-439b-af8c-a0b54b135c38","name":"Merge Engineering Data","type":"n8n-nodes-base.set","position":[656,656],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"designSpecs","type":"object","value":"={{ $('Fetch Design Specifications').first().json }}"},{"id":"id-2","name":"operationalData","type":"object","value":"={{ $('Fetch Operational Data').first().json }}"},{"id":"id-3","name":"timestamp","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-4","name":"projectId","type":"string","value":"={{ $('Fetch Design Specifications').first().json.projectId || 'UNKNOWN' }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"74502f13-d5b3-40aa-869c-5bbbaa6b94dd","name":"Design Validation Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1312,48],"parameters":{"text":"={{ $json }}","options":{"systemMessage":"You are a Design Validation Specialist Agent responsible for comprehensive analysis of engineering design specifications, CAD models, simulations, materials, and components.\n\nYour task is to:\n1. Analyze design specifications for structural integrity, performance characteristics, and manufacturability\n2. Identify structural weaknesses, stress concentration points, and potential failure modes\n3. Evaluate material selection against design requirements and environmental conditions\n4. Assess component compatibility and integration risks\n5. Detect design non-conformances against engineering standards\n6. Call Compliance Verification Agent Tool to verify regulatory compliance (ISO, ASME, IEC standards)\n7. Call Resource Coordination Agent Tool to assess manufacturing resource requirements\n8. Call Testing Validation Agent Tool to recommend validation testing protocols\n9. Calculate design risk score (0-100) based on identified issues\n10. Provide detailed validation report with findings and recommendations\n\nConsider: load-bearing capacity, thermal management, vibration tolerance, corrosion resistance, and lifecycle durability.\n\nReturn structured validation results with risk assessment and actionable recommendations."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"72bb3638-3552-4096-8a28-72afa56c0342","name":"Safety Optimization Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1392,736],"parameters":{"text":"={{ $json }}","options":{"systemMessage":"You are a Safety Optimization Specialist Agent responsible for identifying and mitigating safety hazards in engineering systems.\n\nYour task is to:\n1. Analyze design and operational data for safety hazards and failure scenarios\n2. Identify critical safety risks including mechanical failures, electrical hazards, thermal events, and human factors\n3. Evaluate safety margins and redundancy mechanisms\n4. Assess emergency shutdown systems and fail-safe mechanisms\n5. Detect potential cascading failure scenarios\n6. Call Compliance Verification Agent Tool to verify safety standards compliance (OSHA, NFPA, IEC 61508)\n7. Call Resource Coordination Agent Tool to coordinate safety equipment and personnel requirements\n8. Call Testing Validation Agent Tool to recommend safety testing protocols\n9. Calculate safety risk score (0-100) based on hazard severity and likelihood\n10. Provide safety optimization recommendations with mitigation strategies\n\nConsider: hazard severity, exposure frequency, detection probability, and consequence analysis.\n\nReturn structured safety analysis with risk prioritization and mitigation actions."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"f028e673-64e3-43d3-bcf1-fa942b8fcd66","name":"Predictive Maintenance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1520,1120],"parameters":{"text":"={{ $json }}","options":{"systemMessage":"You are a Predictive Maintenance Specialist Agent responsible for analyzing operational data and predicting maintenance requirements.\n\nYour task is to:\n1. Analyze real-time operational data including temperature, vibration, pressure, flow rates, and performance metrics\n2. Identify degradation patterns and anomalies indicating impending failures\n3. Predict remaining useful life (RUL) for critical components\n4. Assess performance bottlenecks and efficiency degradation\n5. Detect early warning signs of bearing failures, seal degradation, and wear patterns\n6. Call Compliance Verification Agent Tool to verify maintenance compliance with regulatory schedules\n7. Call Resource Coordination Agent Tool to coordinate maintenance resources, parts, and personnel\n8. Call Testing Validation Agent Tool to recommend diagnostic testing procedures\n9. Calculate maintenance urgency score (0-100) based on failure probability and impact\n10. Provide predictive maintenance schedule with prioritized interventions\n\nConsider: failure modes, operational history, environmental conditions, and business impact.\n\nReturn structured maintenance predictions with timeline and resource requirements."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"3d13b92e-f2d5-470f-9990-d7ce520fddb8","name":"Compliance Verification Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1024,256],"parameters":{"text":"={{ $fromAI('engineeringData', 'Engineering design, safety, or maintenance data requiring compliance verification', 'json') }}","options":{"systemMessage":"You are a Compliance Verification Specialist Agent responsible for verifying regulatory and standards compliance.\n\nYour task is to:\n1. Analyze engineering data against applicable regulatory frameworks (ISO, ASME, IEC, OSHA, NFPA, FDA)\n2. Identify compliance gaps and non-conformances\n3. Verify documentation completeness for regulatory submissions\n4. Assess certification requirements and testing protocols\n5. Evaluate traceability and audit trail adequacy\n6. Determine compliance risk level (COMPLIANT, MINOR_GAP, MAJOR_GAP, NON_COMPLIANT)\n7. Provide detailed compliance report with gap analysis and remediation steps\n\nConsider: industry-specific regulations, regional requirements, and certification timelines.\n\nReturn structured compliance assessment with findings and action items."},"hasOutputParser":true,"toolDescription":"Verifies regulatory compliance against engineering standards (ISO, ASME, IEC, OSHA, NFPA) and identifies compliance gaps"},"typeVersion":3},{"id":"a9bffa47-38d3-4787-871e-f2712ef1f556","name":"Resource Coordination Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1312,256],"parameters":{"text":"={{ $fromAI('resourceRequirements', 'Resource requirements for manufacturing, maintenance, or testing activities', 'json') }}","options":{"systemMessage":"You are a Resource Coordination Specialist Agent responsible for cross-system resource allocation and scheduling.\n\nYour task is to:\n1. Analyze resource requirements for manufacturing, maintenance, and testing activities\n2. Assess resource availability including personnel, equipment, materials, and facilities\n3. Identify resource conflicts and bottlenecks\n4. Optimize resource allocation across multiple projects and priorities\n5. Calculate resource utilization efficiency and capacity constraints\n6. Coordinate cross-functional teams and equipment scheduling\n7. Provide resource allocation plan with timelines and dependencies\n\nConsider: skill requirements, equipment capabilities, material lead times, and priority levels.\n\nReturn structured resource coordination plan with allocation schedule and contingencies."},"hasOutputParser":true,"toolDescription":"Coordinates cross-system resource allocation including personnel, equipment, materials, and facilities for engineering activities"},"typeVersion":3},{"id":"27356240-2b2f-4723-b722-279fbfca7b32","name":"Testing Validation Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1600,256],"parameters":{"text":"={{ $fromAI('testingRequirements', 'Testing requirements for design validation, safety verification, or maintenance diagnostics', 'json') }}","options":{"systemMessage":"You are a Testing Validation Specialist Agent responsible for closed-loop testing and validation protocols.\n\nYour task is to:\n1. Analyze testing requirements for design validation, safety verification, and maintenance diagnostics\n2. Design comprehensive test protocols including functional, stress, environmental, and lifecycle testing\n3. Define test acceptance criteria and pass/fail thresholds\n4. Identify required test equipment, instrumentation, and measurement systems\n5. Assess test coverage and identify gaps in validation strategy\n6. Recommend test sequencing and dependencies\n7. Provide detailed testing plan with procedures, resources, and timelines\n\nConsider: test standards, measurement accuracy, repeatability, and documentation requirements.\n\nReturn structured testing validation plan with protocols and success criteria."},"hasOutputParser":true,"toolDescription":"Designs closed-loop testing and validation protocols for design validation, safety verification, and maintenance diagnostics"},"typeVersion":3},{"id":"b15d49ec-b3c5-4af9-9a76-a4a5e7db7a9a","name":"Design Validation Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1888,256],"parameters":{"jsonSchemaExample":"{\n  \"validationStatus\": \"PASS | FAIL | CONDITIONAL\",\n  \"designRiskScore\": 0,\n  \"structuralWeaknesses\": [\n    {\n      \"location\": \"Component or area identifier\",\n      \"severity\": \"CRITICAL | HIGH | MEDIUM | LOW\",\n      \"description\": \"Detailed weakness description\",\n      \"recommendation\": \"Mitigation action\"\n    }\n  ],\n  \"materialIssues\": [\n    {\n      \"material\": \"Material name\",\n      \"issue\": \"Issue description\",\n      \"impact\": \"Performance impact\"\n    }\n  ],\n  \"complianceFindings\": [],\n  \"resourceRequirements\": {},\n  \"testingRecommendations\": [],\n  \"overallAssessment\": \"Summary of validation findings\",\n  \"criticalActions\": [\"Action 1\", \"Action 2\"],\n  \"confidenceScore\": 0\n}"},"typeVersion":1.3},{"id":"33754639-45b5-4feb-9854-8f102f290873","name":"Safety Optimization Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1616,896],"parameters":{"jsonSchemaExample":"{\n  \"safetyStatus\": \"SAFE | AT_RISK | UNSAFE\",\n  \"safetyRiskScore\": 0,\n  \"identifiedHazards\": [\n    {\n      \"hazardType\": \"MECHANICAL | ELECTRICAL | THERMAL | CHEMICAL | HUMAN_FACTORS\",\n      \"severity\": \"CATASTROPHIC | CRITICAL | MARGINAL | NEGLIGIBLE\",\n      \"likelihood\": \"FREQUENT | PROBABLE | OCCASIONAL | REMOTE | IMPROBABLE\",\n      \"description\": \"Hazard description\",\n      \"affectedSystems\": [\"System 1\", \"System 2\"],\n      \"mitigationStrategy\": \"Recommended mitigation\"\n    }\n  ],\n  \"failureScenarios\": [\n    {\n      \"scenario\": \"Failure scenario description\",\n      \"cascadingEffects\": [\"Effect 1\", \"Effect 2\"],\n      \"preventionMeasures\": [\"Measure 1\", \"Measure 2\"]\n    }\n  ],\n  \"safetyMargins\": {},\n  \"complianceStatus\": {},\n  \"resourceNeeds\": {},\n  \"testingProtocols\": [],\n  \"prioritizedActions\": [\"Action 1\", \"Action 2\"],\n  \"confidenceScore\": 0\n}"},"typeVersion":1.3},{"id":"cd467ade-7f63-450d-aaea-ab298a02d1c8","name":"Predictive Maintenance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1776,1312],"parameters":{"jsonSchemaExample":"{\n  \"maintenanceUrgency\": \"IMMEDIATE | URGENT | SCHEDULED | ROUTINE\",\n  \"maintenanceRiskScore\": 0,\n  \"predictedFailures\": [\n    {\n      \"component\": \"Component identifier\",\n      \"failureMode\": \"Failure mode description\",\n      \"remainingUsefulLife\": \"Time estimate\",\n      \"failureProbability\": 0,\n      \"businessImpact\": \"HIGH | MEDIUM | LOW\",\n      \"earlyWarningSignals\": [\"Signal 1\", \"Signal 2\"]\n    }\n  ],\n  \"performanceBottlenecks\": [\n    {\n      \"system\": \"System identifier\",\n      \"bottleneck\": \"Bottleneck description\",\n      \"efficiencyLoss\": \"Percentage or metric\",\n      \"optimizationAction\": \"Recommended action\"\n    }\n  ],\n  \"degradationPatterns\": [],\n  \"maintenanceSchedule\": [\n    {\n      \"activity\": \"Maintenance activity\",\n      \"priority\": \"CRITICAL | HIGH | MEDIUM | LOW\",\n      \"recommendedDate\": \"Date or timeframe\",\n      \"estimatedDuration\": \"Duration estimate\"\n    }\n  ],\n  \"complianceStatus\": {},\n  \"resourceAllocation\": {},\n  \"diagnosticTests\": [],\n  \"confidenceScore\": 0\n}"},"typeVersion":1.3},{"id":"2b00996f-9cf2-4362-9157-be3dacc260bd","name":"Compliance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1168,464],"parameters":{"jsonSchemaExample":"{\n  \"complianceStatus\": \"COMPLIANT | MINOR_GAP | MAJOR_GAP | NON_COMPLIANT\",\n  \"applicableStandards\": [\"ISO 9001\", \"ASME BPVC\", \"IEC 61508\"],\n  \"complianceGaps\": [\n    {\n      \"standard\": \"Standard identifier\",\n      \"requirement\": \"Requirement description\",\n      \"gapSeverity\": \"CRITICAL | HIGH | MEDIUM | LOW\",\n      \"currentState\": \"Current compliance state\",\n      \"requiredState\": \"Required compliance state\",\n      \"remediationAction\": \"Action to close gap\"\n    }\n  ],\n  \"documentationStatus\": \"COMPLETE | INCOMPLETE | MISSING\",\n  \"certificationRequirements\": [],\n  \"auditReadiness\": \"READY | NEEDS_WORK | NOT_READY\",\n  \"complianceRiskScore\": 0,\n  \"recommendations\": [\"Recommendation 1\", \"Recommendation 2\"]\n}"},"typeVersion":1.3},{"id":"227a6331-4bfe-48f6-a2a7-a976f084e544","name":"Resource Coordination Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1472,464],"parameters":{"jsonSchemaExample":"{\n  \"resourceAllocationStatus\": \"ALLOCATED | PARTIAL | CONFLICT | UNAVAILABLE\",\n  \"personnelRequirements\": [\n    {\n      \"role\": \"Role or skill required\",\n      \"quantity\": 0,\n      \"availability\": \"AVAILABLE | LIMITED | UNAVAILABLE\",\n      \"assignedPersonnel\": [\"Person 1\", \"Person 2\"]\n    }\n  ],\n  \"equipmentRequirements\": [\n    {\n      \"equipment\": \"Equipment identifier\",\n      \"quantity\": 0,\n      \"availability\": \"AVAILABLE | SCHEDULED | UNAVAILABLE\",\n      \"scheduledTime\": \"Time slot\"\n    }\n  ],\n  \"materialRequirements\": [\n    {\n      \"material\": \"Material identifier\",\n      \"quantity\": \"Quantity with units\",\n      \"leadTime\": \"Lead time estimate\",\n      \"supplier\": \"Supplier name\"\n    }\n  ],\n  \"resourceConflicts\": [],\n  \"allocationPlan\": {},\n  \"utilizationEfficiency\": 0,\n  \"contingencyOptions\": [\"Option 1\", \"Option 2\"]\n}"},"typeVersion":1.3},{"id":"7181aaff-a3a9-4600-b39f-27e098ecee20","name":"Testing Validation Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1744,464],"parameters":{"jsonSchemaExample":"{\n  \"testingStrategy\": \"COMPREHENSIVE | TARGETED | MINIMAL\",\n  \"testProtocols\": [\n    {\n      \"testType\": \"FUNCTIONAL | STRESS | ENVIRONMENTAL | LIFECYCLE | SAFETY\",\n      \"testName\": \"Test protocol name\",\n      \"objective\": \"Test objective\",\n      \"procedure\": \"Test procedure summary\",\n      \"acceptanceCriteria\": \"Pass/fail criteria\",\n      \"estimatedDuration\": \"Duration estimate\"\n    }\n  ],\n  \"requiredEquipment\": [],\n  \"testSequence\": [],\n  \"coverageAnalysis\": \"Test coverage assessment\",\n  \"testGaps\": [],\n  \"documentationRequirements\": [],\n  \"estimatedCost\": \"Cost estimate\",\n  \"recommendations\": [\"Recommendation 1\", \"Recommendation 2\"]\n}"},"typeVersion":1.3},{"id":"4307be8e-5028-4d2e-aed9-0ad0441a9f7a","name":"Anthropic Model - Design Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[896,256],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"5232995b-a46f-46f2-ac97-b1f0f390409c","name":"Anthropic Model - Safety Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1232,912],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"c3fc0e20-7ee0-45e6-8797-a14538efc472","name":"Anthropic Model - Maintenance Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1472,1312],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"f2cfab73-db1a-40c3-b543-d54606d97104","name":"Anthropic Model - Compliance Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1024,464],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"48f68337-17f0-4260-a9c4-67290263c396","name":"Anthropic Model - Resource Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1312,464],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"0840c22a-625a-4232-8331-599a43f16341","name":"Anthropic Model - Testing Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1600,464],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"31e1981e-0249-4105-8e3c-d81a3f7d8623","name":"Consolidate Analysis Results","type":"n8n-nodes-base.merge","position":[2096,696],"parameters":{"numberInputs":3},"typeVersion":3.2},{"id":"d36b84db-b77b-44da-b43f-85d891b2d94d","name":"Calculate Risk Scores","type":"n8n-nodes-base.code","position":[2320,712],"parameters":{"jsCode":"// Calculate Risk Scores from Agent Outputs\n// Consolidates analysis from Design Validation, Safety Optimization, and Predictive Maintenance agents\n\nconst items = $input.all();\nconst results = [];\n\n// Get workflow configuration thresholds\nconst config = $('Workflow Configuration').first().json;\nconst criticalThreshold = config.criticalRiskThreshold || 80;\nconst highThreshold = config.highRiskThreshold || 60;\nconst mediumThreshold = config.mediumRiskThreshold || 40;\n\nfor (const item of items) {\n  const json = item.json;\n  \n  // Extract risk scores from each agent's output\n  const designRisk = json.designValidation?.riskScore || 0;\n  const safetyRisk = json.safetyOptimization?.riskScore || 0;\n  const maintenanceRisk = json.predictiveMaintenance?.riskScore || 0;\n  \n  // Calculate weighted overall risk score\n  // Design: 30%, Safety: 40%, Maintenance: 30%\n  const overallRiskScore = Math.round(\n    (designRisk * 0.3) + \n    (safetyRisk * 0.4) + \n    (maintenanceRisk * 0.3)\n  );\n  \n  // Determine risk level based on thresholds\n  let riskLevel = 'low';\n  if (overallRiskScore >= criticalThreshold) {\n    riskLevel = 'critical';\n  } else if (overallRiskScore >= highThreshold) {\n    riskLevel = 'high';\n  } else if (overallRiskScore >= mediumThreshold) {\n    riskLevel = 'medium';\n  }\n  \n  // Compile all issues from agents\n  const allIssues = [\n    ...(json.designValidation?.issues || []),\n    ...(json.safetyOptimization?.issues || []),\n    ...(json.predictiveMaintenance?.issues || [])\n  ];\n  \n  // Count issues by severity\n  const issueCounts = {\n    critical: allIssues.filter(i => i.severity === 'critical').length,\n    high: allIssues.filter(i => i.severity === 'high').length,\n    medium: allIssues.filter(i => i.severity === 'medium').length,\n    low: allIssues.filter(i => i.severity === 'low').length\n  };\n  \n  results.push({\n    json: {\n      ...json,\n      riskAnalysis: {\n        overallRiskScore,\n        riskLevel,\n        componentScores: {\n          design: designRisk,\n          safety: safetyRisk,\n          maintenance: maintenanceRisk\n        },\n        issueCounts,\n        allIssues,\n        timestamp: new Date().toISOString(),\n        thresholdsUsed: {\n          critical: criticalThreshold,\n          high: highThreshold,\n          medium: mediumThreshold\n        }\n      }\n    }\n  });\n}\n\nreturn results;"},"typeVersion":2},{"id":"ff468557-cb06-4b2e-8d08-677f0650f3a8","name":"Route by Risk Level","type":"n8n-nodes-base.switch","position":[2544,680],"parameters":{"rules":{"values":[{"outputKey":"CRITICAL","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.overallRiskScore }}","rightValue":"={{ $('Workflow Configuration').item.json.criticalRiskThreshold }}"}]},"renameOutput":true},{"outputKey":"HIGH","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.overallRiskScore }}","rightValue":"={{ $('Workflow Configuration').item.json.highRiskThreshold }}"}]},"renameOutput":true},{"outputKey":"MEDIUM","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.overallRiskScore }}","rightValue":"={{ $('Workflow Configuration').item.json.mediumRiskThreshold }}"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"LOW"}},"typeVersion":3.4},{"id":"145abb6c-9963-4ed7-87b1-03d31eda3e99","name":"Alert Critical Issues","type":"n8n-nodes-base.slack","position":[2768,320],"webhookId":"1cc26fa9-c123-4b4f-9316-b55d1f6d4b84","parameters":{"text":"=🚨 *CRITICAL ENGINEERING ALERT*\n\n*Project:* {{ $json.projectId }}\n*Overall Risk Score:* {{ $json.overallRiskScore }}/100\n*Timestamp:* {{ $json.timestamp }}\n\n*Design Validation:* {{ $json.designValidation.validationStatus }} (Risk: {{ $json.designValidation.designRiskScore }})\n*Safety Analysis:* {{ $json.safetyOptimization.safetyStatus }} (Risk: {{ $json.safetyOptimization.safetyRiskScore }})\n*Maintenance Prediction:* {{ $json.predictiveMaintenance.maintenanceUrgency }} (Risk: {{ $json.predictiveMaintenance.maintenanceRiskScore }})\n\n*Critical Actions Required:*\n{{ $json.criticalActions.map((action, i) => `${i+1}. ${action}`).join('\\n') }}\n\n*Immediate Attention Required* ⚠️","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.slackChannelId }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"d17a6f8a-75c2-4744-9be2-c96a4332e971","name":"Alert High Priority Issues","type":"n8n-nodes-base.slack","position":[2768,520],"webhookId":"de65c8da-258c-4e52-8979-50c81d18ed0d","parameters":{"text":"=⚠️ *HIGH PRIORITY ENGINEERING ALERT*\n\n*Project:* {{ $json.projectId }}\n*Overall Risk Score:* {{ $json.overallRiskScore }}/100\n*Timestamp:* {{ $json.timestamp }}\n\n*Design Validation:* {{ $json.designValidation.validationStatus }} (Risk: {{ $json.designValidation.designRiskScore }})\n*Safety Analysis:* {{ $json.safetyOptimization.safetyStatus }} (Risk: {{ $json.safetyOptimization.safetyRiskScore }})\n*Maintenance Prediction:* {{ $json.predictiveMaintenance.maintenanceUrgency }} (Risk: {{ $json.predictiveMaintenance.maintenanceRiskScore }})\n\n*Priority Actions:*\n{{ $json.priorityActions.map((action, i) => `${i+1}. ${action}`).join('\\n') }}\n\n*Review and address within 24 hours*","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.slackChannelId }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"8338bfa3-1248-4e9f-83ce-adf8c67012d4","name":"Log Medium Priority Issues","type":"n8n-nodes-base.set","position":[2768,720],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"logLevel","type":"string","value":"MEDIUM"},{"id":"id-2","name":"logMessage","type":"string","value":"={{ 'Medium priority issues logged for project ' + $json.projectId }}"},{"id":"id-3","name":"loggedAt","type":"string","value":"={{ $now.toISO() }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"2d1a5ae1-aa9e-4353-be23-2d2ee66495e5","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[32,-304],"parameters":{"width":672,"height":272,"content":"## How It Works\nThis workflow automates engineering governance by deploying a multi-agent AI system that validates designs, checks compliance, optimises safety, and predicts maintenance needs. Designed for engineering teams, quality assurance officers, and operations managers in regulated industries, it eliminates manual review bottlenecks and ensures systemic risk issues are escalated promptly. A schedule trigger fetches design specifications and operational data, merges them, then routes to three parallel agent tracks: Design Validation (with Compliance Verification, Resource Coordination, and Testing Validation sub-agents), Safety Optimisation, and Predictive Maintenance. All outputs consolidate into a risk score calculator, which routes by risk level—critical and high issues trigger Slack alerts immediately, while medium and low issues are logged for review.\n"},"typeVersion":1},{"id":"e28aa4e1-34ea-40d6-8b72-2418741d4fc2","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[768,-304],"parameters":{"width":480,"height":240,"content":"## Setup Steps\n1. Set schedule trigger interval to match governance review frequency.\n2. Add Anthropic API credentials to all Anthropic Model nodes.\n3. Connect design specification and operational data sources to fetch nodes.\n4. Configure Slack credentials for critical and high-priority alert channels.\n5. Define risk scoring thresholds in the Calculate Risk Scores node."},"typeVersion":1},{"id":"aee29c0c-df18-43a5-8736-97c500c3f265","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1280,-400],"parameters":{"color":5,"width":544,"height":320,"content":"## Prerequisites\n- Slack workspace with bot token\n- Design and operational data sources (API or database)\n## Use Cases\n- Automated design compliance auditing for aerospace or manufacturing\n- Real-time safety risk detection in industrial operations\n## Customization\n- Add sub-agents for environmental, cost, or regulatory compliance\n## Benefits\n- Automates multi-dimensional engineering governance on a schedule"},"typeVersion":1},{"id":"aef8a71b-4706-4250-8e06-832cea586d50","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-16,288],"parameters":{"color":7,"width":848,"height":784,"content":"## Merge Engineering Data\n**What** – Combines design and operational inputs into unified context.\n**Why** – Provides all agents with complete, consistent data for accurate analysis."},"typeVersion":1},{"id":"4447214e-31eb-4ee6-a9b0-f9067e324438","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[864,-48],"parameters":{"color":7,"width":1200,"height":656,"content":"## Design Validation Agent\n**What** – Runs compliance, resource coordination, and testing validation sub-agents.\n**Why** – Covers all design governance dimensions in a single orchestrated pass."},"typeVersion":1},{"id":"71493d0c-1f03-4884-bf0a-5c0d3a32e702","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[880,624],"parameters":{"color":7,"width":1184,"height":432,"content":"## Safety Optimisation Agent\n**What** – Analyses merged data for safety risks and optimisation opportunities.\n**Why** – Proactively identifies hazards before they escalate to incidents."},"typeVersion":1},{"id":"2cb760c9-cfc3-4785-88b5-4d9a0b13c6a4","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[880,1088],"parameters":{"color":7,"width":1168,"height":368,"content":"## Predictive Maintenance Agent\n**What** – Forecasts maintenance needs from operational data patterns.\n**Why** – Prevents unplanned downtime through early intervention signals."},"typeVersion":1},{"id":"1640d8ab-77aa-40c9-bb73-e93785bcf5b7","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[2080,224],"parameters":{"color":7,"width":896,"height":720,"content":"## Consolidate, Score & Route\n**What** – Merges all outputs, calculates risk scores, routes by severity level.\n**Why** – Ensures critical and high-risk findings trigger immediate Slack alerts.\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"d9908947-28dc-487d-9728-e05bd73c4150","connections":{"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Route by Risk Level":{"main":[[{"node":"Alert Critical Issues","type":"main","index":0}],[{"node":"Alert High Priority Issues","type":"main","index":0}],[{"node":"Log Medium Priority Issues","type":"main","index":0}]]},"Calculate Risk Scores":{"main":[[{"node":"Route by Risk Level","type":"main","index":0}]]},"Fetch Operational Data":{"main":[[{"node":"Merge Engineering Data","type":"main","index":0}]]},"Merge Engineering Data":{"main":[[{"node":"Design Validation Agent","type":"main","index":0},{"node":"Safety Optimization Agent","type":"main","index":0},{"node":"Predictive Maintenance Agent","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Fetch Design Specifications","type":"main","index":0},{"node":"Fetch Operational Data","type":"main","index":0}]]},"Design Validation Agent":{"main":[[{"node":"Consolidate Analysis Results","type":"main","index":0}]]},"Compliance Output Parser":{"ai_outputParser":[[{"node":"Compliance Verification Agent Tool","type":"ai_outputParser","index":0}]]},"Safety Optimization Agent":{"main":[[{"node":"Consolidate Analysis Results","type":"main","index":1}]]},"Fetch Design Specifications":{"main":[[{"node":"Merge Engineering Data","type":"main","index":0}]]},"Consolidate Analysis Results":{"main":[[{"node":"Calculate Risk Scores","type":"main","index":0}]]},"Predictive Maintenance Agent":{"main":[[{"node":"Consolidate Analysis Results","type":"main","index":2}]]},"Testing Validation Agent Tool":{"ai_tool":[[{"node":"Design Validation Agent","type":"ai_tool","index":0},{"node":"Safety Optimization Agent","type":"ai_tool","index":0},{"node":"Predictive Maintenance Agent","type":"ai_tool","index":0}]]},"Anthropic Model - Design Agent":{"ai_languageModel":[[{"node":"Design Validation Agent","type":"ai_languageModel","index":0}]]},"Anthropic Model - Safety Agent":{"ai_languageModel":[[{"node":"Safety Optimization Agent","type":"ai_languageModel","index":0}]]},"Anthropic Model - Testing Tool":{"ai_languageModel":[[{"node":"Testing Validation Agent Tool","type":"ai_languageModel","index":0}]]},"Anthropic Model - Resource Tool":{"ai_languageModel":[[{"node":"Resource Coordination Agent Tool","type":"ai_languageModel","index":0}]]},"Design Validation Output Parser":{"ai_outputParser":[[{"node":"Design Validation Agent","type":"ai_outputParser","index":0}]]},"Resource Coordination Agent Tool":{"ai_tool":[[{"node":"Design Validation Agent","type":"ai_tool","index":0},{"node":"Safety Optimization Agent","type":"ai_tool","index":0},{"node":"Predictive Maintenance Agent","type":"ai_tool","index":0}]]},"Testing Validation Output Parser":{"ai_outputParser":[[{"node":"Testing Validation Agent Tool","type":"ai_outputParser","index":0}]]},"Anthropic Model - Compliance Tool":{"ai_languageModel":[[{"node":"Compliance Verification Agent Tool","type":"ai_languageModel","index":0}]]},"Safety Optimization Output Parser":{"ai_outputParser":[[{"node":"Safety Optimization Agent","type":"ai_outputParser","index":0}]]},"Compliance Verification Agent Tool":{"ai_tool":[[{"node":"Design Validation Agent","type":"ai_tool","index":0},{"node":"Safety Optimization Agent","type":"ai_tool","index":0},{"node":"Predictive Maintenance Agent","type":"ai_tool","index":0}]]},"Anthropic Model - Maintenance Agent":{"ai_languageModel":[[{"node":"Predictive Maintenance Agent","type":"ai_languageModel","index":0}]]},"Resource Coordination Output Parser":{"ai_outputParser":[[{"node":"Resource Coordination Agent Tool","type":"ai_outputParser","index":0}]]},"Predictive Maintenance Output Parser":{"ai_outputParser":[[{"node":"Predictive Maintenance Agent","type":"ai_outputParser","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":37,"nodeTypes":{"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.slack":{"count":2},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":3},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":3},"@n8n/n8n-nodes-langchain.lmChatAnthropic":{"count":6},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":6}}},"status":"published","readyToDemo":null,"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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":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":1145,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.lmChatAnthropic","codex":{"data":{"alias":["claude","sonnet","opus"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="},"displayName":"Anthropic Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1310,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agentTool","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent Tool","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent Tool","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":5,"name":"Engineering"},{"id":47,"name":"AI Chatbot"}],"image":[]}}