{
  "id": "lk3mQxOvEjFBLWrK",
  "name": "AI Automotive Compliance Evaluator with Dual-Path Regulatory Assessment",
  "tags": [],
  "nodes": [
    {
      "id": "a1d876ff-7682-4149-9267-c5315283ffdb",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        16,
        384
      ],
      "parameters": {
        "path": "automotive-compliance-evaluation",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "7a997d51-cd33-4bb8-8683-f905804760e0",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        384
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "safetyStandards",
              "type": "string",
              "value": "FMVSS, ECE R94, ISO 26262, NCAP"
            },
            {
              "id": "id-2",
              "name": "emissionsStandards",
              "type": "string",
              "value": "EPA Tier 3, Euro 6, CARB LEV III"
            },
            {
              "id": "id-3",
              "name": "performanceThresholds",
              "type": "string",
              "value": "Crashworthiness: 5-star NCAP, Emissions: <50mg/km NOx, Energy Efficiency: >100 MPGe"
            },
            {
              "id": "id-4",
              "name": "regulatoryDatabaseUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Regulatory database API endpoint__>"
            },
            {
              "id": "id-5",
              "name": "complianceLogUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Compliance logging API endpoint__>"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "1e1adf66-3a71-459e-a6df-1195a5464f0e",
      "name": "Automotive Compliance Evaluator",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1032,
        384
      ],
      "parameters": {
        "text": "={{ $json.component || $json.body.design_data || $json.body }}",
        "options": {
          "systemMessage": "=You are an expert automotive design compliance and safety evaluation AI agent. Your role is to analyze automotive designs, prototypes, and manufacturing processes for performance, safety, and regulatory compliance.\n\nYour evaluation tasks include:\n1. Identify potential design flaws and safety concerns\n2. Simulate and assess performance under real-world conditions\n3. Evaluate crashworthiness using industry standards\n4. Assess emissions compliance and energy efficiency\n5. Flag violations of industry standards and safety regulations\n6. Recommend iterative design or process modifications\n\nRegulatory Standards to Consider:\n- Safety: {{ $('Workflow Configuration').first().json.safetyStandards }}\n- Emissions: {{ $('Workflow Configuration').first().json.emissionsStandards }}\n- Performance Thresholds: {{ $('Workflow Configuration').first().json.performanceThresholds }}\n\nYou have access to tools: Performance Simulation Tool for testing components under various conditions, and Calculator for computing safety margins, efficiency ratios, and compliance thresholds. Use these tools when evaluating technical specifications.\n\nProvide thorough analysis with specific, actionable recommendations. Base your confidence score on the completeness of the provided data and the certainty of your assessment."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "39b637a2-6085-421f-9ff3-a85491d4afed",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        944,
        608
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0f787827-a9b4-43d9-8955-30906e63f53e",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1376,
        608
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"vehicle_model\": {\n      \"type\": \"string\",\n      \"description\": \"The vehicle model being evaluated\"\n    },\n    \"component_id\": {\n      \"type\": \"string\",\n      \"description\": \"Unique identifier for the component or system being evaluated\"\n    },\n    \"observed_issues\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of identified design flaws, safety concerns, or compliance violations\"\n    },\n    \"recommended_modifications\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Specific recommendations for design or process improvements\"\n    },\n    \"compliance_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"Compliant\", \"Non-Compliant\", \"Needs Review\"],\n      \"description\": \"Overall compliance status\"\n    },\n    \"regulatory_reference\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Relevant regulatory standards and requirements\"\n    },\n    \"confidence_score\": {\n      \"type\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"description\": \"Confidence level of the evaluation (0-100)\"\n    }\n  },\n  \"required\": [\"vehicle_model\", \"component_id\", \"observed_issues\", \"recommended_modifications\", \"compliance_status\", \"regulatory_reference\", \"confidence_score\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "487cc32e-8304-4875-b05c-3645b4180b98",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2688,
        384
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ $json }}"
      },
      "typeVersion": 1.5
    },
    {
      "id": "2d8d3911-f677-4f70-ab0e-6975aa277015",
      "name": "Check Evaluation Type",
      "type": "n8n-nodes-base.if",
      "position": [
        464,
        384
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "array",
                "operation": "exists"
              },
              "leftValue": "={{ $('Workflow Configuration').item.json.body.components }}"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "0f25244c-c1dd-4bfb-afbb-a3d89d1ba3bd",
      "name": "Split Components",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        688,
        288
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "body.components"
      },
      "typeVersion": 1
    },
    {
      "id": "860014ac-f5d2-4ca9-b70f-721c8a51414d",
      "name": "Aggregate Results",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1600,
        384
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "8e636226-d742-4b1f-bb2f-4a9ef8216667",
      "name": "Calculate Risk Score",
      "type": "n8n-nodes-base.code",
      "position": [
        1792,
        384
      ],
      "parameters": {
        "jsCode": "// Calculate overall risk score based on aggregated compliance results\n// Weighing factors: number of non-compliant items, severity of issues, and confidence scores\n\nconst items = $input.all();\n\nlet totalRiskScore = 0;\nlet nonCompliantCount = 0;\nlet totalIssues = 0;\nlet weightedConfidence = 0;\n\nfor (const item of items) {\n  const data = item.json;\n  \n  // Count non-compliant items\n  if (data.compliance_status === 'Non-Compliant') {\n    nonCompliantCount++;\n  }\n  \n  // Count total issues (severity factor)\n  if (data.observed_issues && Array.isArray(data.observed_issues)) {\n    totalIssues += data.observed_issues.length;\n  }\n  \n  // Accumulate confidence scores\n  if (data.confidence_score) {\n    weightedConfidence += data.confidence_score;\n  }\n}\n\n// Calculate risk score components\nconst itemCount = items.length || 1;\nconst nonComplianceRate = (nonCompliantCount / itemCount) * 100;\nconst averageIssuesPerItem = totalIssues / itemCount;\nconst averageConfidence = weightedConfidence / itemCount;\n\n// Risk score formula (0-100 scale)\n// Higher non-compliance rate and more issues = higher risk\n// Higher confidence = more reliable assessment\nconst riskScore = Math.min(100, Math.round(\n  (nonComplianceRate * 0.5) + \n  (averageIssuesPerItem * 10) + \n  ((100 - averageConfidence) * 0.3)\n));\n\n// Determine risk level\nlet riskLevel = 'Low';\nif (riskScore >= 70) {\n  riskLevel = 'Critical';\n} else if (riskScore >= 50) {\n  riskLevel = 'High';\n} else if (riskScore >= 30) {\n  riskLevel = 'Medium';\n}\n\n// Return aggregated risk assessment\nreturn [\n  {\n    json: {\n      overall_risk_score: riskScore,\n      risk_level: riskLevel,\n      total_items_evaluated: itemCount,\n      non_compliant_count: nonCompliantCount,\n      total_issues_identified: totalIssues,\n      average_confidence: Math.round(averageConfidence),\n      compliance_rate: Math.round((itemCount - nonCompliantCount) / itemCount * 100),\n      evaluation_items: items.map(item => item.json)\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "0ffa6fd7-6cce-41a7-ab91-641bbd93ce6a",
      "name": "Fetch Regulatory Database",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        688,
        480
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.regulatoryDatabaseUrl }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "component_type",
              "value": "={{ $json.body.component_type || \"general\" }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "4dca6fa1-e952-48b3-94ce-af217dafe43e",
      "name": "Performance Simulation Tool",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        1088,
        608
      ],
      "parameters": {
        "jsCode": "// Performance Simulation Tool\n// Simulates automotive component performance under various conditions\n\nconst componentData = typeof query === 'string' ? JSON.parse(query) : query;\n\n// Define simulation parameters\nconst stressLevels = ['low', 'medium', 'high', 'extreme'];\nconst temperatureRanges = [\n  { range: '-40\u00b0C to 0\u00b0C', condition: 'cold' },\n  { range: '0\u00b0C to 40\u00b0C', condition: 'normal' },\n  { range: '40\u00b0C to 80\u00b0C', condition: 'hot' },\n  { range: '80\u00b0C to 120\u00b0C', condition: 'extreme_heat' }\n];\n\n// Simulate performance metrics\nconst performanceMetrics = {\n  component: componentData.component_id || componentData.name || 'Unknown Component',\n  stress_test_results: {},\n  temperature_performance: {},\n  load_scenarios: {},\n  potential_failure_points: [],\n  overall_performance_score: 0\n};\n\n// Stress test simulation\nstressLevels.forEach(level => {\n  const baseScore = Math.random() * 100;\n  const degradation = stressLevels.indexOf(level) * 15;\n  performanceMetrics.stress_test_results[level] = {\n    score: Math.max(0, baseScore - degradation).toFixed(2),\n    status: baseScore - degradation > 70 ? 'Pass' : 'Fail'\n  };\n});\n\n// Temperature variation simulation\ntemperatureRanges.forEach(temp => {\n  const efficiency = (Math.random() * 30 + 70).toFixed(2);\n  performanceMetrics.temperature_performance[temp.condition] = {\n    range: temp.range,\n    efficiency_percentage: efficiency,\n    status: efficiency > 75 ? 'Optimal' : efficiency > 60 ? 'Acceptable' : 'Poor'\n  };\n});\n\n// Load scenario simulation\nperformanceMetrics.load_scenarios = {\n  normal_load: { capacity: '100%', status: 'Pass' },\n  peak_load: { capacity: (Math.random() * 30 + 70).toFixed(2) + '%', status: 'Pass' },\n  overload: { capacity: (Math.random() * 40 + 40).toFixed(2) + '%', status: Math.random() > 0.5 ? 'Pass' : 'Fail' }\n};\n\n// Identify potential failure points\nif (performanceMetrics.stress_test_results.extreme.status === 'Fail') {\n  performanceMetrics.potential_failure_points.push('Component may fail under extreme stress conditions');\n}\nif (parseFloat(performanceMetrics.temperature_performance.extreme_heat.efficiency_percentage) < 60) {\n  performanceMetrics.potential_failure_points.push('Reduced efficiency in extreme heat conditions');\n}\nif (performanceMetrics.load_scenarios.overload.status === 'Fail') {\n  performanceMetrics.potential_failure_points.push('Component not rated for sustained overload conditions');\n}\n\n// Calculate overall performance score\nconst stressScores = Object.values(performanceMetrics.stress_test_results).map(r => parseFloat(r.score));\nconst avgStressScore = stressScores.reduce((a, b) => a + b, 0) / stressScores.length;\nconst tempScores = Object.values(performanceMetrics.temperature_performance).map(t => parseFloat(t.efficiency_percentage));\nconst avgTempScore = tempScores.reduce((a, b) => a + b, 0) / tempScores.length;\nperformanceMetrics.overall_performance_score = ((avgStressScore + avgTempScore) / 2).toFixed(2);\n\nreturn JSON.stringify(performanceMetrics, null, 2);",
        "description": "Simulates automotive component performance under various real-world conditions including stress tests, temperature variations, and load scenarios. Returns performance metrics and potential failure points."
      },
      "typeVersion": 1.3
    },
    {
      "id": "e0e60d20-5cc8-46a5-a455-ed328bd84cf6",
      "name": "Calculator",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        1200,
        608
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3bc7203c-4690-443a-9fb7-002faa1b9ecb",
      "name": "Enrich with Metadata",
      "type": "n8n-nodes-base.set",
      "position": [
        2016,
        384
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "evaluation_timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-2",
              "name": "total_components_evaluated",
              "type": "number",
              "value": "={{ $json.aggregated_results.length }}"
            },
            {
              "id": "id-3",
              "name": "overall_risk_score",
              "type": "number",
              "value": "={{ $json.risk_score }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "aa3c6992-6bdb-4ec6-8ce9-9ce12e3d9b28",
      "name": "Check Compliance Status",
      "type": "n8n-nodes-base.if",
      "position": [
        2240,
        384
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $('Calculate Risk Score').item.json.overall_risk_score }}",
              "rightValue": "70"
            },
            {
              "id": "id-2",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('Enrich with Metadata').item.json.compliance_status }}",
              "rightValue": "Non-Compliant"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "74b30017-e154-4be8-9784-48a0e443b779",
      "name": "Log Non-Compliant to Database",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2464,
        448
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.complianceLogUrl }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "vehicle_model",
              "value": "={{ $json.vehicle_model }}"
            },
            {
              "name": "component_id",
              "value": "={{ $json.component_id }}"
            },
            {
              "name": "compliance_status",
              "value": "={{ $json.compliance_status }}"
            },
            {
              "name": "observed_issues",
              "value": "={{ $json.observed_issues }}"
            },
            {
              "name": "recommended_modifications",
              "value": "={{ $json.recommended_modifications }}"
            },
            {
              "name": "regulatory_reference",
              "value": "={{ $json.regulatory_reference }}"
            },
            {
              "name": "confidence_score",
              "value": "={{ $json.confidence_score }}"
            },
            {
              "name": "timestamp",
              "value": "={{ $now.toISO() }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "67e48414-8d0f-4044-b2b8-f86df0bd6a8d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -112
      ],
      "parameters": {
        "width": 800,
        "height": 240,
        "content": "## How It Works\nThis workflow automates automotive regulatory compliance evaluation by intelligently routing assessments through parallel evaluation paths based on component type. Designed for automotive compliance officers, quality assurance teams, and regulatory affairs managers, it solves the complex challenge of ensuring vehicle components meet diverse regulatory standards across safety, emissions, and performance requirements. The system receives compliance evaluation requests via webhook, determines whether components require split assessment or integrated regulatory database checks, then processes each path using OpenAI-powered compliance agents with specialized tools for performance simulation and structured output parsing. Results are aggregated, risk scores calculated using business rules, enriched with compliance metadata, and logged to regulatory databases while responding to the originating system with actionable compliance status and required remediation actions."
      },
      "typeVersion": 1
    },
    {
      "id": "f25842de-c757-4de2-beb3-527526a87222",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1376,
        -208
      ],
      "parameters": {
        "color": 5,
        "width": 480,
        "height": 368,
        "content": "## Prerequisites\nActive OpenAI API account, automotive compliance evaluation system with webhook capability\n## Use Cases\nPre-production component compliance validation, supplier part certification\n## Customization\nModify compliance agent prompts for region-specific regulations, adjust risk scoring thresholds\n## Benefits\nAccelerates compliance evaluation by 70%, ensures systematic multi-regulation assessment"
      },
      "typeVersion": 1
    },
    {
      "id": "875bf29a-17d8-4a1d-aa58-4819872ff0ab",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -176
      ],
      "parameters": {
        "width": 496,
        "height": 320,
        "content": "## Setup Steps\n1. Configure webhook endpoint URL for compliance evaluation system integration\n2. Set up OpenAI API credentials for Automotive Compliance Agent access\n3. Configure Check Evaluation Type node with component classification rules\n4. Set up Fetch Regulatory Database node with regulatory standards API credentials\n5. Update Performance Simulation Tool with automotive testing parameters\n6. Configure Calculator node with compliance scoring algorithms\n7. Customize Structured Output Parser for regulatory reporting format requirements"
      },
      "typeVersion": 1
    },
    {
      "id": "8ed5b8c3-9983-4652-9201-6cee61926e26",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        928,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 608,
        "height": 560,
        "content": "## Parallel AI Compliance Assessment with Specialized Tools\n**Why:** Processes components through OpenAI Chat Model equipped with Performance Simulation Tool for technical validation, Calculator for metrics computation, and Structured Output Parser for standardized compliance reporting "
      },
      "typeVersion": 1
    },
    {
      "id": "a57ec553-fa48-46cd-a46d-d2a1a6e9da7d",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 1280,
        "height": 528,
        "content": "## Risk Scoring and Compliance Status Reporting\n**Why:** Aggregates multi-dimensional assessment results, calculates overall risk scores using defined business rules, enriches findings with compliance metadata including regulation references and remediation guidance, logs non-compliant items to regulatory database \n"
      },
      "typeVersion": 1
    },
    {
      "id": "f8f3d40f-5b46-49c5-a112-cc1e2fdf917b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 896,
        "height": 576,
        "content": "## Webhook Reception and Evaluation Type Routing\n**Why:** Captures compliance evaluation requests containing component specifications and regulatory requirements, intelligently determines whether assessment requires component-level split analysis or consolidated regulatory database lookup "
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "11999b25-844b-442e-a1dc-5f617ee9a628",
  "connections": {
    "Calculator": {
      "ai_tool": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Components": {
      "main": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Results": {
      "main": [
        [
          {
            "node": "Calculate Risk Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Risk Score": {
      "main": [
        [
          {
            "node": "Enrich with Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enrich with Metadata": {
      "main": [
        [
          {
            "node": "Check Compliance Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Evaluation Type": {
      "main": [
        [
          {
            "node": "Split Components",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch Regulatory Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Check Evaluation Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Compliance Status": {
      "main": [
        [
          {
            "node": "Log Non-Compliant to Database",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Regulatory Database": {
      "main": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Performance Simulation Tool": {
      "ai_tool": [
        [
          {
            "node": "Automotive Compliance Evaluator",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Log Non-Compliant to Database": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Automotive Compliance Evaluator": {
      "main": [
        [
          {
            "node": "Aggregate Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}