{
  "workflow": {
    "id": 9659,
    "name": "Automate vehicle inspections & maintenance workflows with OpenAI & Jotform",
    "views": 194,
    "recentViews": 0,
    "totalViews": 194,
    "createdAt": "2025-10-14T20:59:37.272Z",
    "description": "Transform your fleet operations from paper-based chaos to intelligent automation - achieving 40% reduction in breakdowns, 100% inspection compliance, and predictive maintenance that saves thousands in repair costs.\n## What This Workflow Does\nRevolutionizes fleet management with AI-driven vehicle inspections and predictive maintenance:\n\n📝 Digital Inspections - Jotform captures daily vehicle checks with photos, mileage, and comprehensive checklists\n🤖 AI Condition Analysis - Advanced AI Agent evaluates vehicle condition, safety ratings, and maintenance needs\n⚠️ Smart Prioritization - Automatically flags critical issues (brakes, safety concerns, DOT compliance)\n🔧 Maintenance Routing - Routes issues to appropriate shop teams with detailed work orders\n📊 Predictive Maintenance - Tracks mileage thresholds and predicts upcoming service needs\n✉️ Automated Notifications - Sends alerts to maintenance teams and confirmation to drivers\n📈 Compliance Tracking - Monitors DOT inspections, registrations, and annual certifications\n💰 Cost Management - Estimates repair costs and tracks downtime to optimize fleet budget\n📋 Complete Documentation - Logs all inspections to Google Sheets for audits and analytics\n\n## Key Features\n\n1. AI-Powered Vehicle Assessment: GPT-4 analyzes inspection data across 10+ components with safety ratings (0-100)\n2. Critical Issue Detection: Automatic identification of safety concerns, DOT violations, and immediate action items\nMileage-Based Scheduling: Tracks oil changes, tire rotations, brake inspections with automated reminders\n3. Compliance Management: Monitors annual inspections, DOT certifications, and registration expiries\n4. Work Order Generation: Creates detailed maintenance orders with instructions, parts needed, and cost estimates\n5. Driver Performance Tracking: Evaluates vehicle care quality and identifies training needs\n6. Predictive Analytics: Forecasts upcoming maintenance based on usage patterns and vehicle age\n7. Emergency Routing: Critical issues trigger immediate alerts to maintenance supervisors\n8. Photo Documentation: Captures damage and odometer photos for insurance and warranty claims\n9. Real-Time Fleet Status: Tracks operational, out-of-service, and maintenance-required vehicles\n10. Cost Estimation: AI-generated repair cost ranges and downtime predictions\n11. DOT Audit Ready: Complete inspection logs formatted for regulatory compliance\n\n## Perfect For\n\n1. Commercial Fleet Operators: Delivery companies, logistics firms managing 10-500+ vehicles\n2. Transportation Companies: Trucking fleets requiring DOT compliance and safety standards\nService Businesses: Plumbing, HVAC, electrical companies with service vehicle fleets\n3. Government Fleets: Municipal vehicles, police departments, public works departments\n4. Rental Car Companies: Daily inspections and damage documentation for rental fleets\n5. Construction Companies: Heavy equipment and vehicle maintenance tracking\n6. Food Delivery Services: High-mileage vehicles requiring frequent inspections\n7. Ride-Share Fleet Managers: TNC vehicles needing daily safety checks\n\n## What You'll Need\nRequired Integrations\n\n1. Jotform - Digital inspection form with photo upload (free tier works)\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)\n\n2. OpenAI API - GPT-4 for AI vehicle analysis (~$0.15-0.40 per inspection)\n\n3. Gmail - Automated notifications to maintenance teams and drivers\n4. Google Sheets - Inspection database, maintenance tracking, and compliance logs\n\n## Optional Enhancements\n\n1. Twilio - SMS alerts for critical issues and driver notifications\n2. Google Calendar - Automated maintenance scheduling\n3. QuickBooks - Expense tracking and repair cost management\n4. Fleet Management Software - Integration with Geotab, Samsara, or Fleetio\n5. Zapier - Additional integration bridges for specialty systems\n6. Google Drive - Photo backup and document storage\n7. Maintenance Software - Connect to shop management systems\n8. Telematics Integration - Real-time mileage and diagnostics data\n\n## Quick Start\n\n1. Import Template - Copy JSON and import into n8n\n2. Add OpenAI Credentials - Set up OpenAI API key (GPT-4 recommended for accuracy)\n3. Create Jotform - Build vehicle inspection form with these essential fields:\n\nDriver Info: Name, Email\nVehicle Details: Vehicle ID, Make, Model, Year, License Plate\nMileage: Current Odometer Reading\nFuel Level: Dropdown (Full, 3/4, 1/2, 1/4, Empty)\nInspection Checklist: Dropdowns for each component (Good, Fair, Poor, Needs Immediate Attention)\n\nTires\nBrakes\nLights (headlights, taillights, turn signals)\nFluid Levels (oil, coolant, brake fluid)\nEngine\nTransmission\nInterior Condition\nExterior Condition\n\n\nIssues: Yes/No dropdown + Long text for description\nPhotos: File upload for damage photos and odometer photo\nCleanliness Rating: 1-5 star rating\nDriver Notes: Textarea for additional comments\n\n\n4. Configure Gmail - Add Gmail OAuth2 credentials for notifications\nSetup Google Sheets:\n\n5. Create new spreadsheet for fleet tracking\nAdd sheet named \"Inspections\"\nReplace YOUR_GOOGLE_SHEET_ID in the workflow\nGoogle Sheets will auto-populate columns on first run\n\n## Customization Options\n\n1. AI Prompt Refinement: Tailor analysis for specific vehicle types (trucks, vans, sedans, heavy equipment)\n2. Custom Maintenance Intervals: Adjust service schedules based on manufacturer recommendations\n3. Multi-Location Support: Route work orders to different shop locations based on vehicle assignment\n4. Priority Escalation: Add manager approval workflows for expensive repairs\n5. Driver Training Module: Track recurring issues per driver and generate training recommendations\n6. Seasonal Adjustments: Different inspection criteria for winter/summer (tire tread, AC, heating)\n7. Vehicle Categories: Separate workflows for passenger vehicles, trucks, specialty equipment\n8. Cost Approval Thresholds: Require manager sign-off for repairs over $X amount\n9. Parts Inventory Integration: Check parts availability before scheduling maintenance\n10. Vendor Management: Route different issue types to specialized vendors\n11. Mobile Optimization: Design Jotform specifically for mobile/tablet use in vehicles\n12. Offline Mode: Enable Jotform offline submissions for areas with poor connectivity\n\n## Expected Results\n\n1. 40% reduction in breakdowns - Predictive maintenance catches issues early\n2. 100% inspection compliance - Digital tracking eliminates missed checks\n24-hour turnaround on maintenance scheduling vs days of manual coordination\n3. 30% cost savings - Preventive maintenance avoids expensive emergency repairs\n4. 60% faster inspections - Digital forms take 5 minutes vs 15+ for paper\n5. Zero lost paperwork - All inspections digitally stored and searchable\n6. 85% better DOT audit results - Complete, organized documentation\n7. 50% reduction in vehicle downtime - Proactive maintenance scheduling\n8. 95% driver compliance - Easy mobile forms increase participation\n9. Real-time fleet visibility - Instant status of all vehicles\n\n## Pro Tips\n\n1. QR Code Access: Place QR codes in each vehicle linking directly to that vehicle's inspection form\n2. Pre-Fill Vehicle Data: Use Jotform conditional logic to auto-fill vehicle details when driver enters Vehicle ID\n3. Photo Requirements: Make damage and odometer photos mandatory for compliance\n4. Daily Reminders: Set up automated daily email/SMS reminders for drivers to complete inspections\n5. Seasonal Checklists: Adjust inspection criteria seasonally (winter: tire tread/battery; summer: AC/coolant)\n6. Benchmark Analysis: After 100+ inspections, analyze AI accuracy and refine the prompt with real examples\n7. Driver Training: Use AI driver performance ratings to identify training needs\n8. Telematics Integration: Connect to vehicle GPS/diagnostics for automatic mileage updates\n9. Parts Pre-Ordering: Use predictive maintenance to pre-order common parts before needed\n10. Maintenance History: Track vehicle-specific patterns (e.g., Vehicle #12 always needs brake work)\n11. Incentive Programs: Reward drivers with best vehicle care ratings\n12. Mobile-First Design: Ensure Jotform works perfectly on phones - most inspections done on mobile\n\n## Learning Resources\nThis workflow demonstrates advanced n8n automation:\n\n1. AI Agents with structured JSON output for reliable vehicle assessment\n2. Conditional routing based on criticality and safety ratings\n3. Database lookups for vehicle maintenance history\n4. Predictive analytics using mileage thresholds and time intervals\n5. Multi-recipient notifications with role-based messaging\n6. Compliance tracking with automatic deadline monitoring\n7. Cost estimation algorithms for budget planning\n8. Photo handling for documentation and insurance claims\n9. Error handling with fallback assessments\n\nPerfect for learning fleet operations automation and AI integration!\n📊 Workflow Architecture\n📝 Jotform Daily Inspection\n    ↓\n🧾 Parse Inspection Data\n    ↓\n📊 Get Vehicle History\n    │   ├─ Last service dates\n    │   ├─ Mileage calculations\n    │   └─ Compliance deadlines\n    ↓\n🤖 AI Fleet Analysis (GPT-4)\n    │   ├─ Condition assessment\n    │   ├─ Safety rating (0-100)\n    │   ├─ Critical issue detection\n    │   ├─ Maintenance recommendations\n    │   ├─ Cost estimation\n    │   ├─ DOT compliance check\n    │   └─ Work order generation\n    ↓\n🔗 Extract & Merge AI Analysis\n    ↓\n⚡ Critical Issue Check\n    ├─ TRUE → 🚨 Critical Alert Email (Maintenance)\n    └─ FALSE → 📋 Routine Report Email (Maintenance)\n    ↓\n✉️ Driver Confirmation Email\n    │   ├─ Inspection received\n    │   ├─ Vehicle status\n    │   ├─ Maintenance scheduled\n    │   └─ Safety notices\n    ↓\n📊 Log to Google Sheets\n    └─ Inspection database\n    └─ Audit trail\n    └─ Analytics data\n🔐 Compliance & Security\n\n\n\nReady to transform your fleet management? Import this template and eliminate breakdowns, ensure compliance, and save thousands in maintenance costs through AI-powered predictive maintenance! 🚗✨\nQuestions or customization needs? The workflow includes detailed sticky notes explaining each component and decision point.",
    "workflow": {
      "meta": {
        "instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8",
        "templateCredsSetupCompleted": true
      },
      "nodes": [
        {
          "id": "d2e9183f-f32a-4e71-af56-402f3b93a80c",
          "name": "Parse Inspection Data",
          "type": "n8n-nodes-base.code",
          "position": [
            272,
            112
          ],
          "parameters": {
            "jsCode": "// Parse vehicle inspection form data\nconst formData = $input.first().json;\n\nreturn {\n  json: {\n    inspectionId: formData.submissionID || 'INS-' + Date.now(),\n    inspectionDate: formData.inspectionDate || new Date().toISOString().split('T')[0],\n    driverName: formData.driverName || formData.q3_driverName,\n    driverEmail: formData.driverEmail || formData.q4_driverEmail,\n    vehicleId: formData.vehicleId || formData.q5_vehicleId,\n    vehicleMake: formData.vehicleMake || formData.q6_vehicleMake,\n    vehicleModel: formData.vehicleModel || formData.q7_vehicleModel,\n    vehicleYear: formData.vehicleYear || formData.q8_vehicleYear,\n    licensePlate: formData.licensePlate || formData.q9_licensePlate,\n    currentMileage: parseInt(formData.currentMileage || formData.q10_currentMileage),\n    fuelLevel: formData.fuelLevel || formData.q11_fuelLevel,\n    tiresCondition: formData.tiresCondition || formData.q12_tiresCondition || 'good',\n    brakesCondition: formData.brakesCondition || formData.q13_brakesCondition || 'good',\n    lightsCondition: formData.lightsCondition || formData.q14_lightsCondition || 'good',\n    fluidLevels: formData.fluidLevels || formData.q15_fluidLevels || 'good',\n    engineCondition: formData.engineCondition || formData.q16_engineCondition || 'good',\n    transmissionCondition: formData.transmissionCondition || formData.q17_transmissionCondition || 'good',\n    interiorCondition: formData.interiorCondition || formData.q18_interiorCondition || 'good',\n    exteriorCondition: formData.exteriorCondition || formData.q19_exteriorCondition || 'good',\n    hasIssues: formData.hasIssues || formData.q20_hasIssues || 'no',\n    issueDescription: formData.issueDescription || formData.q21_issueDescription || '',\n    damagePhotos: formData.damagePhotos || formData.q22_damagePhotos || '',\n    cleanlinessRating: formData.cleanlinessRating || formData.q23_cleanlinessRating || '5',\n    odometerPhoto: formData.odometerPhoto || formData.q24_odometerPhoto || '',\n    notes: formData.notes || formData.q25_notes || '',\n    submittedAt: new Date().toISOString(),\n    status: 'pending_review'\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "383f6d18-ad13-4f9c-ba67-50128170ef73",
          "name": "Get Vehicle History",
          "type": "n8n-nodes-base.code",
          "position": [
            528,
            80
          ],
          "parameters": {
            "jsCode": "// Retrieve maintenance history for vehicle\nconst data = $input.first().json;\n\nconst vehicleDatabase = {\n  lastInspectionMileage: data.currentMileage - 3500,\n  lastOilChangeMileage: data.currentMileage - 2800,\n  lastTireRotationMileage: data.currentMileage - 4200,\n  lastBrakeInspectionMileage: data.currentMileage - 5100,\n  oilChangeIntervalMiles: 5000,\n  tireRotationIntervalMiles: 6000,\n  brakeInspectionIntervalMiles: 10000,\n  annualInspectionDue: '2025-12-15',\n  registrationExpiry: '2025-11-30',\n  insuranceExpiry: '2026-03-15',\n  vehicleAge: new Date().getFullYear() - parseInt(data.vehicleYear),\n  fleetCategory: 'delivery',\n  dotInspectionDue: '2025-10-20'\n};\n\nconst oilChangeDue = (data.currentMileage - vehicleDatabase.lastOilChangeMileage) >= (vehicleDatabase.oilChangeIntervalMiles * 0.9);\nconst tireRotationDue = (data.currentMileage - vehicleDatabase.lastTireRotationMileage) >= (vehicleDatabase.tireRotationIntervalMiles * 0.9);\nconst brakeInspectionDue = (data.currentMileage - vehicleDatabase.lastBrakeInspectionMileage) >= (vehicleDatabase.brakeInspectionIntervalMiles * 0.9);\n\nconst today = new Date();\nconst annualInspectionOverdue = new Date(vehicleDatabase.annualInspectionDue) < today;\nconst dotInspectionOverdue = new Date(vehicleDatabase.dotInspectionDue) < today;\nconst registrationExpiringSoon = (new Date(vehicleDatabase.registrationExpiry) - today) / (1000 * 60 * 60 * 24) < 30;\n\nreturn {\n  json: {\n    ...data,\n    lastOilChangeMileage: vehicleDatabase.lastOilChangeMileage,\n    lastTireRotationMileage: vehicleDatabase.lastTireRotationMileage,\n    lastBrakeInspectionMileage: vehicleDatabase.lastBrakeInspectionMileage,\n    oilChangeDue: oilChangeDue,\n    tireRotationDue: tireRotationDue,\n    brakeInspectionDue: brakeInspectionDue,\n    milesSinceOilChange: data.currentMileage - vehicleDatabase.lastOilChangeMileage,\n    milesSinceTireRotation: data.currentMileage - vehicleDatabase.lastTireRotationMileage,\n    milesSinceBrakeInspection: data.currentMileage - vehicleDatabase.lastBrakeInspectionMileage,\n    annualInspectionDue: vehicleDatabase.annualInspectionDue,\n    annualInspectionOverdue: annualInspectionOverdue,\n    dotInspectionDue: vehicleDatabase.dotInspectionDue,\n    dotInspectionOverdue: dotInspectionOverdue,\n    registrationExpiry: vehicleDatabase.registrationExpiry,\n    registrationExpiringSoon: registrationExpiringSoon,\n    vehicleAge: vehicleDatabase.vehicleAge,\n    fleetCategory: vehicleDatabase.fleetCategory\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "f11733cb-050d-48a2-9009-7006b707a37d",
          "name": "AI Fleet Analysis",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            752,
            144
          ],
          "parameters": {
            "text": "=You are an expert fleet maintenance analyst. Analyze this vehicle inspection:\n\n**Vehicle:** {{ $json.vehicleYear }} {{ $json.vehicleMake }} {{ $json.vehicleModel }} (ID: {{ $json.vehicleId }})\n**Mileage:** {{ $json.currentMileage }}\n**Age:** {{ $json.vehicleAge }} years\n**Category:** {{ $json.fleetCategory }}\n\n**Inspection Results:**\n- Tires: {{ $json.tiresCondition }}\n- Brakes: {{ $json.brakesCondition }}\n- Lights: {{ $json.lightsCondition }}\n- Fluids: {{ $json.fluidLevels }}\n- Engine: {{ $json.engineCondition }}\n- Transmission: {{ $json.transmissionCondition }}\n- Interior: {{ $json.interiorCondition }}\n- Exterior: {{ $json.exteriorCondition }}\n- Fuel: {{ $json.fuelLevel }}\n\n**Issues:** {{ $json.hasIssues }}\n{{ $json.issueDescription }}\n\n**Maintenance Status:**\n- Miles since oil change: {{ $json.milesSinceOilChange }}\n- Oil change due: {{ $json.oilChangeDue }}\n- Tire rotation due: {{ $json.tireRotationDue }}\n- Brake inspection due: {{ $json.brakeInspectionDue }}\n- Annual inspection overdue: {{ $json.annualInspectionOverdue }}\n- DOT inspection overdue: {{ $json.dotInspectionOverdue }}\n\nProvide JSON analysis:\n{\n  \"overallStatus\": {\n    \"condition\": \"excellent|good|fair|poor|critical\",\n    \"driveable\": true|false,\n    \"requiresImmediateAction\": true|false,\n    \"safetyRating\": 0-100,\n    \"summary\": \"brief assessment\"\n  },\n  \"criticalIssues\": [{\"component\": \"\", \"severity\": \"\", \"description\": \"\", \"action_required\": \"\", \"estimated_cost\": \"\", \"safety_concern\": true|false}],\n  \"maintenanceRequired\": {\n    \"immediate\": [{\"service\": \"\", \"reason\": \"\", \"urgency\": \"\", \"estimated_hours\": 0, \"estimated_cost\": \"\"}],\n    \"scheduled\": [{\"service\": \"\", \"due_in_miles\": 0, \"reason\": \"\"}]\n  },\n  \"complianceStatus\": {\"dotCompliant\": true|false, \"roadworthy\": true|false, \"complianceIssues\": []},\n  \"costAnalysis\": {\"totalEstimatedCost\": \"\", \"potentialDowntime\": \"\"},\n  \"workOrderGeneration\": {\"createWorkOrder\": true|false, \"workOrderType\": \"\", \"assignTo\": \"\", \"instructions\": []}\n}",
            "options": {
              "systemMessage": "You are an expert fleet maintenance analyst with DOT compliance expertise."
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 1.6
        },
        {
          "id": "fd9848b3-1f60-459f-9abd-ace76e907b6d",
          "name": "Extract AI Analysis",
          "type": "n8n-nodes-base.set",
          "position": [
            1024,
            256
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "aiAnalysis",
                  "name": "aiAnalysis",
                  "type": "string",
                  "value": "={{ $json.output }}"
                }
              ]
            }
          },
          "typeVersion": 3.3
        },
        {
          "id": "ec1bfb09-a6b4-4981-97d1-0664f114f77c",
          "name": "Merge Fleet Analysis",
          "type": "n8n-nodes-base.code",
          "position": [
            1200,
            160
          ],
          "parameters": {
            "jsCode": "const inspectionData = $input.first().json;\nconst aiAnalysisRaw = inspectionData.aiAnalysis;\n\nlet aiAnalysis;\ntry {\n  aiAnalysis = JSON.parse(aiAnalysisRaw);\n} catch (e) {\n  aiAnalysis = {\n    overallStatus: {condition: 'good', driveable: true, requiresImmediateAction: false, safetyRating: 85, summary: 'Vehicle in acceptable condition'},\n    criticalIssues: [],\n    maintenanceRequired: {immediate: [], scheduled: []},\n    complianceStatus: {dotCompliant: true, roadworthy: true, complianceIssues: []},\n    costAnalysis: {totalEstimatedCost: '$0-500', potentialDowntime: '0 hours'},\n    workOrderGeneration: {createWorkOrder: false, workOrderType: 'routine', assignTo: 'general_maintenance', instructions: []}\n  };\n}\n\nlet vehicleStatus = 'operational';\nif (!aiAnalysis.overallStatus.driveable) {\n  vehicleStatus = 'out_of_service';\n} else if (aiAnalysis.overallStatus.requiresImmediateAction) {\n  vehicleStatus = 'requires_attention';\n}\n\nconst workOrderNumber = aiAnalysis.workOrderGeneration.createWorkOrder ? 'WO-' + inspectionData.vehicleId + '-' + Date.now() : null;\n\nreturn {\n  json: {\n    ...inspectionData,\n    overallCondition: aiAnalysis.overallStatus.condition,\n    driveable: aiAnalysis.overallStatus.driveable,\n    requiresImmediateAction: aiAnalysis.overallStatus.requiresImmediateAction,\n    safetyRating: aiAnalysis.overallStatus.safetyRating,\n    statusSummary: aiAnalysis.overallStatus.summary,\n    vehicleStatus: vehicleStatus,\n    criticalIssues: aiAnalysis.criticalIssues,\n    criticalIssueCount: aiAnalysis.criticalIssues.length,\n    immediateMaintenanceNeeded: aiAnalysis.maintenanceRequired.immediate,\n    scheduledMaintenanceNeeded: aiAnalysis.maintenanceRequired.scheduled,\n    dotCompliant: aiAnalysis.complianceStatus.dotCompliant,\n    roadworthy: aiAnalysis.complianceStatus.roadworthy,\n    complianceIssues: aiAnalysis.complianceStatus.complianceIssues,\n    totalEstimatedCost: aiAnalysis.costAnalysis.totalEstimatedCost,\n    potentialDowntime: aiAnalysis.costAnalysis.potentialDowntime,\n    createWorkOrder: aiAnalysis.workOrderGeneration.createWorkOrder,\n    workOrderNumber: workOrderNumber,\n    workOrderType: aiAnalysis.workOrderGeneration.workOrderType,\n    assignTo: aiAnalysis.workOrderGeneration.assignTo,\n    workOrderInstructions: aiAnalysis.workOrderGeneration.instructions\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "3b340f0c-7a07-4397-b442-67bdbc6c917b",
          "name": "Critical Issue?",
          "type": "n8n-nodes-base.if",
          "position": [
            1408,
            160
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 1,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "or",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "boolean",
                    "operation": "true"
                  },
                  "leftValue": "={{ $json.requiresImmediateAction }}",
                  "rightValue": true
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "27cbd1d5-53ad-4a1c-b258-d9a710bcf150",
          "name": "Critical Alert Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1616,
            64
          ],
          "webhookId": "21b82ab8-74d6-4bc2-b6b0-7148e5d6ba16",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "=🚨 CRITICAL VEHICLE ISSUE\n\nVehicle: {{ $('Jotform Trigger').item.json['vehicle Year'] }} {{ $('Jotform Trigger').item.json['vehicle Make'] }} {{ $('Jotform Trigger').item.json['vehicle Model'] }}\nID: {{ $('Jotform Trigger').item.json['vehicle Id'] }}\nPlate: {{ $('Jotform Trigger').item.json['license Plate'] }}\nMileage: {{ $('Jotform Trigger').item.json['current Mileage'] }}\n\nStatus: {{ $('Merge Fleet Analysis').item.json.statusSummary }}\nDriveable: {{ $('Merge Fleet Analysis').item.json.driveable }}\nSafety Rating: {{ $('Merge Fleet Analysis').item.json.safetyRating }}/100\n\n{{ $('Merge Fleet Analysis').item.json.statusSummary }}\n\nCritical Issues: {{ $json.criticalIssueCount }}\n{{ $json.criticalIssues.map((i, idx) => `${idx + 1}. ${i.component}: ${i.description}\\n   Action: ${i.action_required}\\n   Cost: ${i.estimated_cost}`).join('\\n\\n') }}\n\nWork Order: {{ $json.workOrderNumber }}\nAssign To: {{ $json.assignTo }}\n\nDriver: {{ $json.driverName }}\nEmail: {{ $json.driverEmail }}",
            "options": {},
            "subject": "=🚨 CRITICAL: Vehicle {{ $('Jotform Trigger').item.json['vehicle Id'] }} Requires Immediate Action"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "2380918c-b8b4-4ccc-b5bb-c79fe921c439",
          "name": "Routine Report Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1616,
            304
          ],
          "webhookId": "b392e74d-48b3-420c-8206-1af22a3d3549",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "=Vehicle Inspection Report\n\nVehicle: {{ $('Jotform Trigger').item.json['vehicle Year'] }} {{ $('Jotform Trigger').item.json['vehicle Make'] }} {{ $('Jotform Trigger').item.json['vehicle Model'] }}\nID: {{ $('Jotform Trigger').item.json['vehicle Id'] }}\nMileage: {{ $('Jotform Trigger').item.json['current Mileage'] }}\n\nCondition: {{ $json.overallCondition.toUpperCase() }}\nSafety Rating: {{ $json.safetyRating }}/100\nStatus: {{ $json.vehicleStatus }}\n\n{{ $json.statusSummary }}\n\nMaintenance Due:\n- Oil Change: {{ $json.oilChangeDue ? 'YES' : 'NO' }}\n- Tire Rotation: {{ $json.tireRotationDue ? 'YES' : 'NO' }}\n- Brake Inspection: {{ $json.brakeInspectionDue ? 'YES' : 'NO' }}\n\n{{ $json.createWorkOrder ? 'Work Order: ' + $json.workOrderNumber : 'No work order needed' }}\n\nDriver:{{ $('Jotform Trigger').item.json['driver Name'] }} \nInspection Date: {{ $('Parse Inspection Data').item.json.inspectionDate }}",
            "options": {},
            "subject": "=Vehicle Inspection: {{ $('Jotform Trigger').item.json['vehicle Id'] }} - {{ $json.overallCondition }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "783860df-163c-45c3-9102-105069dc1f21",
          "name": "Driver Confirmation",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1840,
            160
          ],
          "webhookId": "d5869319-cba9-404f-8644-d3ca740dc7af",
          "parameters": {
            "sendTo": "={{ $('Jotform Trigger').item.json['driver Email'] }}",
            "message": "=Hi {{ $('Jotform Trigger').item.json['driver Name'] }},\n\nThank you for your vehicle inspection.\n\nVehicle: {{ $('Jotform Trigger').item.json['vehicle Id'] }}\nCondition: {{ $('Merge Fleet Analysis').item.json.overallCondition }}\nSafety Rating: {{ $('Merge Fleet Analysis').item.json.safetyRating }}/100\n\n{{ $json.requiresImmediateAction ? '⚠️ IMMEDIATE ACTION REQUIRED - Contact maintenance immediately.' : 'Vehicle is operational.' }}\n\n{{ !$json.driveable ? '🚫 VEHICLE OUT OF SERVICE - Do not operate.' : '' }}\n\n{{ $json.createWorkOrder ? 'Maintenance scheduled. Work Order: ' + $json.workOrderNumber : 'No immediate maintenance needed.' }}\n\nThank you!\nFleet Management",
            "options": {},
            "subject": "=Vehicle Inspection Received - {{ $('Jotform Trigger').item.json['vehicle Id'] }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "be1876cf-fcde-4d45-a2b7-b970e6c3a5ca",
          "name": "Log to Google Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            2080,
            160
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "driver Name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "driver Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "vehicle Id",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "vehicle Id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "driver Email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "driver Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "vehicle Make",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "vehicle Make",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "vehicle Make",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "vehicle Make",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "vehicle Model",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "vehicle Model",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "license Plate",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "license Plate",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "current Mileage",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "current Mileage",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "fuel Level",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "fuel Level",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "tires Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "tires Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "brakes Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "brakes Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "lights Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "lights Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "fluid Levels",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "fluid Levels",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "engine Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "engine Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "transmission Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "transmission Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "interior Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "interior Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "exterior Condition",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "exterior Condition",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "has Issues",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "has Issues",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "issue Description",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "issue Description",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "cleanliness Rating",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "cleanliness Rating",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "notes",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "notes",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [
                "vehicle Id"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K0lqkb-z0fbdb_pEUDtUfl5N2jQ_nT-YEQtylwB4968/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1K0lqkb-z0fbdb_pEUDtUfl5N2jQ_nT-YEQtylwB4968",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K0lqkb-z0fbdb_pEUDtUfl5N2jQ_nT-YEQtylwB4968/edit?usp=drivesdk",
              "cachedResultName": "Fleet"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.4
        },
        {
          "id": "aa9d87fe-0ee3-46d2-aabd-3565f4fab995",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -48,
            0
          ],
          "parameters": {
            "height": 240,
            "content": "📩 **TRIGGER**\nCaptures vehicle inspections\nvia Jotform with photos\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)"
          },
          "typeVersion": 1
        },
        {
          "id": "e90fe0d1-e13e-494c-8661-280ac2fb2f73",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            208,
            -64
          ],
          "parameters": {
            "height": 240,
            "content": "🧾 **PARSE DATA**\nNormalizes form fields"
          },
          "typeVersion": 1
        },
        {
          "id": "d53d3939-3026-40c4-b616-f044250b4c15",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            464,
            -32
          ],
          "parameters": {
            "height": 240,
            "content": "📊 **VEHICLE HISTORY**\nRetrieves maintenance records\nand calculates due dates"
          },
          "typeVersion": 1
        },
        {
          "id": "aa85e72a-c131-4a80-9978-39476ee0edbb",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            752,
            -32
          ],
          "parameters": {
            "height": 240,
            "content": "🤖 **AI ANALYSIS**\nAnalyzes condition, compliance,\nand generates recommendations"
          },
          "typeVersion": 1
        },
        {
          "id": "b808706d-27fb-429e-91d8-83fa0f4a81d1",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1024,
            -32
          ],
          "parameters": {
            "width": 320,
            "height": 448,
            "content": "🔗 **MERGE**\nCombines AI insights\nwith inspection data"
          },
          "typeVersion": 1
        },
        {
          "id": "7007da02-c58e-48e4-96b8-c782dc5fbc28",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1360,
            -32
          ],
          "parameters": {
            "width": 352,
            "height": 528,
            "content": "⚡ **ROUTE**\nCritical vs Routine"
          },
          "typeVersion": 1
        },
        {
          "id": "f0308e9e-2544-4f86-bba8-e1d28ec3da4c",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1760,
            48
          ],
          "parameters": {
            "height": 240,
            "content": "📧 **NOTIFICATIONS**\nMaintenance alerts\nand driver confirmation"
          },
          "typeVersion": 1
        },
        {
          "id": "c5a7463b-b685-4541-8f88-983e73569cc8",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2048,
            0
          ],
          "parameters": {
            "height": 336,
            "content": "📊 **LOGGING**\nTracks all inspections,\nmaintenance, and compliance"
          },
          "typeVersion": 1
        },
        {
          "id": "cdfb30d5-2b65-4d3b-a07b-9b9c03abe993",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            752,
            336
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "b61be557-a538-4239-a5ab-666c4b30554f",
          "name": "Jotform Trigger",
          "type": "n8n-nodes-base.jotFormTrigger",
          "position": [
            0,
            128
          ],
          "webhookId": "vehicle-inspection",
          "parameters": {
            "form": "252866368275067"
          },
          "credentials": {
            "jotFormApi": {
              "id": "credential-id",
              "name": "jotFormApi Credential"
            }
          },
          "typeVersion": 1
        }
      ],
      "pinData": {
        "Jotform Trigger": [
          {
            "notes": "",
            "fuel Level": "full",
            "has Issues": "no",
            "vehicle Id": "123456",
            "driver Name": "Deepanshi",
            "driver Email": "Deepanshi@mediajade.com",
            "fluid Levels": "ok",
            "vehicle Make": "Hyundai",
            "vehicle Year": "2005",
            "damage Photos": "",
            "license Plate": "yes",
            "vehicle Model": "i20",
            "odometer Photo": "",
            "current Mileage": "200000",
            "tires Condition": "good",
            "brakes Condition": "bad",
            "engine Condition": "ok",
            "lights Condition": "god",
            "issue Description": "no",
            "cleanliness Rating": "4",
            "exterior Condition": "good",
            "interior Condition": "good",
            "transmission Condition": "ok"
          }
        ]
      },
      "connections": {
        "Critical Issue?": {
          "main": [
            [
              {
                "node": "Critical Alert Email",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Routine Report Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Jotform Trigger": {
          "main": [
            [
              {
                "node": "Parse Inspection Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Fleet Analysis": {
          "main": [
            [
              {
                "node": "Extract AI Analysis",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Fleet Analysis",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Driver Confirmation": {
          "main": [
            [
              {
                "node": "Log to Google Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract AI Analysis": {
          "main": [
            [
              {
                "node": "Merge Fleet Analysis",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Vehicle History": {
          "main": [
            [
              {
                "node": "AI Fleet Analysis",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Critical Alert Email": {
          "main": [
            [
              {
                "node": "Driver Confirmation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Merge Fleet Analysis": {
          "main": [
            [
              {
                "node": "Critical Issue?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Routine Report Email": {
          "main": [
            [
              {
                "node": "Driver Confirmation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse Inspection Data": {
          "main": [
            [
              {
                "node": "Get Vehicle History",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 20,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 3
        },
        "n8n-nodes-base.gmail": {
          "count": 3
        },
        "n8n-nodes-base.stickyNote": {
          "count": 8
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.jotFormTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Jitesh Dugar",
      "username": "jiteshdugar",
      "bio": "AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/jiteshdugar"
      ],
      "avatar": "https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 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": 227,
        "icon": "file:jotform.svg",
        "name": "n8n-nodes-base.jotFormTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.jotformtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/jotform/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Jotform Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNSAyOCI+PHBhdGggaWQ9ImpvdGZvcm0tbG9nb21hcmstZmlyc3QiIGZpbGw9IiNGRjYxMDAiIGQ9Ik0xOS4yOTQgMy45MzRhMy4zNDEgMy4zNDEgMCAwIDEgNC43MjcgMCAzLjM0NCAzLjM0NCAwIDAgMSAwIDQuNzI4bC0xMS44MTcgMTEuODJhMy4zNDEgMy4zNDEgMCAwIDEtNC43MjYgMCAzLjM0NCAzLjM0NCAwIDAgMSAwLTQuNzI3bDExLjgxNi0xMS44MloiPjwvcGF0aD48cGF0aCBpZD0iam90Zm9ybS1sb2dvbWFyay1zZWNvbmQiIGZpbGw9IiMwMDk5RkYiIGQ9Ik05LjI1Ljk4YTMuMzQ0IDMuMzQ0IDAgMCAxIDQuNzI3IDQuNzI4bC04LjI3MSA4LjI3NGEzLjM0MiAzLjM0MiAwIDAgMS00LjcyNyAwIDMuMzQ0IDMuMzQ0IDAgMCAxIDAtNC43MjlMOS4yNS45OFoiPjwvcGF0aD48cGF0aCBpZD0iam90Zm9ybS1sb2dvbWFyay10aGlyZCIgZmlsbD0iI0ZGQjYyOSIgZD0iTTE4LjcwNCAxNy41MjdhMy4zNDQgMy4zNDQgMCAwIDEgNC43MjYgNC43MjhsLTQuNzI2IDQuNzI5YTMuMzQyIDMuMzQyIDAgMSAxLTQuNzI3LTQuNzI4bDQuNzI3LTQuNzI5WiI+PC9wYXRoPjxwYXRoIGlkPSJqb3Rmb3JtLWxvZ29tYXJrLWZvdXJ0aCIgZmlsbD0iIzBBMTU1MSIgZD0iTTEuNjcxIDI4aDQuNjY3Yy43NDUgMCAxLjExOC0uOS41OTEtMS40MjdMMS40MjYgMjEuMDdDLjkgMjAuNTQyIDAgMjAuOTE1IDAgMjEuNjU5djQuNjdDMCAyNy4yNTEuNzQ4IDI4IDEuNjcxIDI4WiI+PC9wYXRoPjwvc3ZnPg=="
        },
        "displayName": "Jotform Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 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": 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": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 5,
        "name": "Engineering"
      },
      {
        "id": 47,
        "name": "AI Chatbot"
      }
    ],
    "image": []
  }
}