{"workflow":{"id":13156,"name":"Validate student progress and orchestrate interventions with Claude and email","views":20,"recentViews":0,"totalViews":20,"createdAt":"2026-02-01T15:35:41.818Z","description":"## How It Works\nThis workflow automates student progress monitoring and academic intervention orchestration through intelligent AI-driven analysis. Designed for educational institutions, learning management systems, and academic advisors, it solves the critical challenge of identifying at-risk students while coordinating timely interventions across faculty and support services.\nThe system receives student data via webhook, fetches historical learning records, and merges these sources for comprehensive progress analysis. It employs a dual-agent AI framework for student progress validation and academic orchestration, detecting performance gaps, engagement issues, and intervention opportunities. The workflow intelligently routes findings based on validation status, triggering orchestration actions for students requiring support while logging compliant progress for successful learners. By executing multi-channel interventions through HTTP APIs and email notifications, it ensures educators and students receive timely guidance while maintaining complete audit trails for academic accountability and accreditation compliance.\n\n## Setup Steps\n1. Configure Student Data Webhook trigger endpoint\n2. Connect Workflow Configuration node with academic performance parameters\n3. Set up Fetch Student Learning History node with LMS API credentials\n4. Configure Merge Student Data node for data consolidation\n5. Connect Student Progress Validation Agent with Claude/OpenAI API credentials\n6. Set up AI processing nodes \n7. Configure Route by Validation Status node with performance thresholds\n8. Connect Academic Orchestration Agent with AI API credentials for intervention planning\n9. Set up orchestration processing \n\n## Prerequisites\nClaude/OpenAI API credentials for AI agents, learning management system API access\n## Use Cases\nUniversities identifying students requiring academic support, online learning platforms detecting engagement drops\n## Customization\nAdjust validation thresholds for institutional academic standards\n## Benefits\nReduces student identification lag by 75%, eliminates manual progress tracking","workflow":{"id":"8K4qbGSD0dpowuB3O3ETM","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI-Driven Academic Orchestration and Student Progress Validation System","tags":[],"nodes":[{"id":"be40b252-35cc-431f-993f-8bb9b5e65199","name":"Student Data Webhook","type":"n8n-nodes-base.webhook","position":[-1248,96],"webhookId":"c54d80c2-21d7-483b-ae0c-eebcc4e8957b","parameters":{"path":"student-progress-data","options":{},"httpMethod":"POST","responseMode":"lastNode"},"typeVersion":2.1},{"id":"2102f233-8820-4c34-85d5-b20b364d469b","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-1024,96],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"learningApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Student Learning Management System API URL__>"},{"id":"id-2","name":"orchestrationApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Academic Orchestration API URL__>"},{"id":"id-3","name":"instructorEmail","type":"string","value":"<__PLACEHOLDER_VALUE__Instructor notification email address__>"},{"id":"id-4","name":"complianceEmail","type":"string","value":"<__PLACEHOLDER_VALUE__Compliance officer email address__>"},{"id":"id-5","name":"ferpaComplianceThreshold","type":"number","value":0.95},{"id":"id-6","name":"accreditationStandard","type":"string","value":"SACSCOC"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"d30a5096-b5fd-47de-930e-79ed19a7615b","name":"Claude Model - Student Progress","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[-368,320],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"fcc8fcda-424d-43bc-b575-6be59b7bc2ac","name":"Student Progress Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-216,320],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"validationStatus\": {\n      \"type\": \"string\",\n      \"enum\": [\"VALID\", \"INVALID\", \"REQUIRES_REVIEW\"],\n      \"description\": \"Overall validation status of student progress data\"\n    },\n    \"enrollmentValid\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether enrollment data is valid and complete\"\n    },\n    \"assessmentValid\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether assessment data meets institutional standards\"\n    },\n    \"learningSignalsValid\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether learning signals are within acceptable parameters\"\n    },\n    \"ferpaCompliant\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether data handling meets FERPA requirements\"\n    },\n    \"accreditationCompliant\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether data meets accreditation standards\"\n    },\n    \"validationIssues\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"description\": \"List of specific validation issues found\"\n    },\n    \"complianceScore\": {\n      \"type\": \"number\",\n      \"description\": \"Overall compliance score from 0 to 1\"\n    },\n    \"reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"Detailed explanation of validation decision\"\n    }\n  },\n  \"required\": [\"validationStatus\", \"enrollmentValid\", \"assessmentValid\", \"learningSignalsValid\", \"ferpaCompliant\", \"accreditationCompliant\", \"complianceScore\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"ef6fd2ea-8387-4f11-8f74-50d1fb6a21d8","name":"Student Progress Validation Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-352,96],"parameters":{"text":"=Student Data: {{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Student Progress Validation Agent responsible for validating structured enrollment, assessment, and learning signals data for academic institutions.\n\nYour role is to:\n1. Validate enrollment data completeness and accuracy (student ID, course enrollment, enrollment dates, enrollment status)\n2. Validate assessment data integrity (assessment types, scores, dates, instructor verification)\n3. Validate learning signals (engagement metrics, attendance, participation, progress indicators)\n4. Ensure FERPA compliance (data privacy, consent verification, access controls, data minimization)\n5. Ensure accreditation compliance (institutional standards, documentation requirements, audit trails)\n6. Identify data quality issues, missing fields, inconsistencies, or anomalies\n7. Calculate overall compliance score based on validation criteria\n8. Provide detailed reasoning for validation decisions\n\nCRITICAL CONSTRAINTS:\n- You MUST NOT grade or evaluate academic content quality\n- You MUST NOT make subjective judgments about student performance\n- You ONLY validate data structure, completeness, and compliance\n- You MUST flag any FERPA violations immediately\n- You MUST ensure all required accreditation documentation is present\n- You MUST maintain strict data privacy and confidentiality\n\nValidation Criteria:\n- Enrollment Valid: Student ID exists, course enrollment is active, dates are logical\n- Assessment Valid: Assessment type is recognized, scores are within valid ranges, dates are present\n- Learning Signals Valid: Metrics are within expected parameters, no anomalous patterns\n- FERPA Compliant: Consent documented, access controls verified, data minimization applied\n- Accreditation Compliant: Required documentation present, audit trail complete, standards met\n\nReturn structured validation results with specific issues identified and compliance score calculated."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"eec6e3fb-1487-4f27-a2f0-3439a1810b99","name":"Fetch Student Learning History","type":"n8n-nodes-base.httpRequest","position":[-800,96],"parameters":{"url":"={{ $('Workflow Configuration').first().json.learningApiUrl }}/students/{{ $json.studentId }}/history","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"},{"name":"Authorization","value":"Bearer <__PLACEHOLDER_VALUE__Learning API authentication token__>"}]}},"typeVersion":4.3},{"id":"bd33e062-6b56-4531-b959-f28b3118130a","name":"Merge Student Data","type":"n8n-nodes-base.code","position":[-576,96],"parameters":{"jsCode":"// Merge webhook student data with learning history from API\nconst webhookData = $input.first().json;\nconst learningHistory = $input.last().json;\n\n// Combine all student data for validation\nconst mergedData = {\n  studentId: webhookData.studentId,\n  enrollmentData: webhookData.enrollmentData || {},\n  assessmentData: webhookData.assessmentData || {},\n  learningSignals: webhookData.learningSignals || {},\n  learningHistory: learningHistory || {},\n  submittedAt: webhookData.submittedAt || new Date().toISOString(),\n  institutionalPolicies: webhookData.institutionalPolicies || {}\n};\n\nreturn [{ json: mergedData }];"},"typeVersion":2},{"id":"9e85a7cf-8fb2-445b-bfa7-6d86b98fac6f","name":"Route by Validation Status","type":"n8n-nodes-base.switch","position":[0,80],"parameters":{"rules":{"values":[{"outputKey":"Valid","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.validationStatus }}","rightValue":"VALID"}]},"renameOutput":true},{"outputKey":"Invalid or Review","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"array","operation":"contains"},"leftValue":"={{ $json.output.validationStatus }}","rightValue":["INVALID","REQUIRES_REVIEW"]}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Fallback"}},"typeVersion":3.4},{"id":"f85f2149-d5f3-4194-a17b-af03741696b2","name":"Claude Model - Orchestration","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[240,544],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"71244585-74d4-43d0-aa29-b97123cf1a13","name":"Orchestration Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[432,560],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"actionType\": {\n      \"type\": \"string\",\n      \"enum\": [\"CONTENT_DELIVERY\", \"INSTRUCTOR_NOTIFICATION\", \"EXAM_SCHEDULING\", \"EXCEPTION_ESCALATION\", \"COMPLIANCE_LOG\"],\n      \"description\": \"Type of orchestration action to execute\"\n    },\n    \"priority\": {\n      \"type\": \"string\",\n      \"enum\": [\"LOW\", \"MEDIUM\", \"HIGH\", \"CRITICAL\"],\n      \"description\": \"Priority level of the action\"\n    },\n    \"contentDeliveryPlan\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"courseId\": {\"type\": \"string\"},\n        \"moduleId\": {\"type\": \"string\"},\n        \"deliveryMethod\": {\"type\": \"string\"},\n        \"scheduledDate\": {\"type\": \"string\"}\n      }\n    },\n    \"instructorNotification\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"subject\": {\"type\": \"string\"},\n        \"message\": {\"type\": \"string\"},\n        \"studentId\": {\"type\": \"string\"},\n        \"urgency\": {\"type\": \"string\"}\n      }\n    },\n    \"examScheduling\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"examId\": {\"type\": \"string\"},\n        \"studentId\": {\"type\": \"string\"},\n        \"proposedDate\": {\"type\": \"string\"},\n        \"accommodations\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n      }\n    },\n    \"exceptionEscalation\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"issueType\": {\"type\": \"string\"},\n        \"severity\": {\"type\": \"string\"},\n        \"description\": {\"type\": \"string\"},\n        \"recommendedAction\": {\"type\": \"string\"}\n      }\n    },\n    \"complianceRequirements\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"description\": \"List of compliance requirements to verify\"\n    },\n    \"reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"Detailed explanation of orchestration decision\"\n    }\n  },\n  \"required\": [\"actionType\", \"priority\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"121d8d1a-e384-458f-8fb6-1365cfdb161d","name":"Academic Orchestration Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[224,320],"parameters":{"text":"=Validated Student Data: {{ JSON.stringify($json) }}","options":{"systemMessage":"You are an Academic Orchestration Agent responsible for coordinating content delivery, instructor notifications, exam scheduling, and exception escalation for academic institutions.\n\nYour role is to:\n1. Analyze validated student progress data and determine appropriate orchestration actions\n2. Coordinate content delivery based on student progress and learning signals\n3. Generate instructor notifications for student issues, progress milestones, or intervention needs\n4. Schedule exams and assessments based on student readiness and institutional policies\n5. Escalate exceptions that require human review or administrative intervention\n6. Ensure all actions comply with accreditation standards, FERPA regulations, and institutional policies\n7. Maintain comprehensive audit trails for compliance verification\n8. Prioritize actions based on urgency and student impact\n\nCRITICAL CONSTRAINTS:\n- You MUST NOT grade or evaluate academic content autonomously\n- You MUST NOT make final decisions on student academic standing\n- You ONLY coordinate and recommend actions based on validated data\n- You MUST ensure FERPA compliance in all communications (no unauthorized disclosure)\n- You MUST verify accreditation requirements are met before scheduling assessments\n- You MUST escalate any compliance violations immediately\n- You MUST maintain student privacy and data confidentiality\n\nOrchestration Decision Criteria:\n- Content Delivery: Based on learning signals, progress indicators, and course sequencing\n- Instructor Notification: Triggered by student issues, milestones, or intervention needs\n- Exam Scheduling: Based on student readiness, prerequisite completion, and policy compliance\n- Exception Escalation: For compliance violations, data anomalies, or policy conflicts\n- Compliance Logging: All actions must be logged with timestamps and justification\n\nReturn structured orchestration plan with specific actions, priorities, and compliance verification."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"715eeb60-f0f6-4690-95f6-7318f88e54fe","name":"Execute Orchestration Actions","type":"n8n-nodes-base.httpRequest","position":[576,320],"parameters":{"url":"={{ $('Workflow Configuration').first().json.orchestrationApiUrl }}/actions/execute","method":"POST","options":{},"jsonBody":"={{ $json.output }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"},{"name":"Authorization","value":"Bearer <__PLACEHOLDER_VALUE__Orchestration API authentication token__>"}]}},"typeVersion":4.3},{"id":"c10265c8-70b6-4cbf-ad90-60c29ed6d31c","name":"Route by Action Type","type":"n8n-nodes-base.switch","position":[800,288],"parameters":{"rules":{"values":[{"outputKey":"Instructor Notification","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.actionType }}","rightValue":"INSTRUCTOR_NOTIFICATION"}]},"renameOutput":true},{"outputKey":"Exception Escalation","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.actionType }}","rightValue":"EXCEPTION_ESCALATION"}]},"renameOutput":true},{"outputKey":"Compliance Log","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"array","operation":"contains"},"leftValue":"={{ $json.output.actionType }}","rightValue":["CONTENT_DELIVERY","EXAM_SCHEDULING","COMPLIANCE_LOG"]}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Fallback"}},"typeVersion":3.4},{"id":"9b6664c3-1ae9-4671-acd0-5b0c9ad2ed17","name":"Send Instructor Notification","type":"n8n-nodes-base.emailSend","position":[1024,528],"webhookId":"abc3c469-b232-4de8-a802-29485c079ca6","parameters":{"html":"=<html>\n<body>\n<h2>Student Progress Notification</h2>\n<p><strong>Student ID:</strong> {{ $json.output.instructorNotification.studentId }}</p>\n<p><strong>Priority:</strong> {{ $json.output.priority }}</p>\n<p><strong>Urgency:</strong> {{ $json.output.instructorNotification.urgency }}</p>\n<hr>\n<p>{{ $json.output.instructorNotification.message }}</p>\n<hr>\n<p><strong>Compliance Requirements:</strong></p>\n<ul>\n{{ $json.output.complianceRequirements ? $json.output.complianceRequirements.map(req => `<li>${req}</li>`).join(\"\") : \"<li>None specified</li>\" }}\n</ul>\n<p><strong>Reasoning:</strong> {{ $json.output.reasoning }}</p>\n<p><em>This notification was generated automatically by the Academic Orchestration System in compliance with FERPA and institutional policies.</em></p>\n</body>\n</html>","options":{},"subject":"=Student Progress Alert: {{ $json.output.instructorNotification.subject }}","toEmail":"={{ $('Workflow Configuration').first().json.instructorEmail }}","fromEmail":"={{ $('Workflow Configuration').first().json.complianceEmail }}"},"typeVersion":2.1},{"id":"211b9571-6fe7-4088-bf57-d6cd72bd762f","name":"Send Exception Escalation","type":"n8n-nodes-base.emailSend","position":[1024,336],"webhookId":"41b28717-5d62-42a4-8465-91502c8584be","parameters":{"html":"=<html>\n<body>\n<h2 style=\"color: red;\">CRITICAL EXCEPTION ESCALATION</h2>\n<p><strong>Issue Type:</strong> {{ $json.output.exceptionEscalation.issueType }}</p>\n<p><strong>Severity:</strong> {{ $json.output.exceptionEscalation.severity }}</p>\n<p><strong>Priority:</strong> {{ $json.output.priority }}</p>\n<hr>\n<h3>Description</h3>\n<p>{{ $json.output.exceptionEscalation.description }}</p>\n<h3>Recommended Action</h3>\n<p>{{ $json.output.exceptionEscalation.recommendedAction }}</p>\n<hr>\n<p><strong>Compliance Requirements:</strong></p>\n<ul>\n{{ $json.output.complianceRequirements ? $json.output.complianceRequirements.map(req => `<li>${req}</li>`).join(\"\") : \"<li>None specified</li>\" }}\n</ul>\n<p><strong>AI Reasoning:</strong> {{ $json.output.reasoning }}</p>\n<p><em>This escalation was generated automatically by the Academic Orchestration System. Immediate human review is required.</em></p>\n</body>\n</html>","options":{},"subject":"=CRITICAL: Exception Escalation Required - {{ $json.output.exceptionEscalation.issueType }}","toEmail":"={{ $('Workflow Configuration').first().json.complianceEmail }}","fromEmail":"={{ $('Workflow Configuration').first().json.complianceEmail }}"},"typeVersion":2.1},{"id":"490747e2-1ccc-44b3-a617-1c378920ff87","name":"Log Compliance Audit Trail","type":"n8n-nodes-base.code","position":[1024,96],"parameters":{"jsCode":"// Log comprehensive compliance audit trail\nconst timestamp = new Date().toISOString();\nconst inputData = $input.first().json;\n\n// Determine log type based on source\nlet logType = 'UNKNOWN';\nlet logData = {};\n\nif (inputData.output && inputData.output.validationStatus) {\n  // Validation log\n  logType = 'VALIDATION';\n  logData = {\n    validationStatus: inputData.output.validationStatus,\n    enrollmentValid: inputData.output.enrollmentValid,\n    assessmentValid: inputData.output.assessmentValid,\n    learningSignalsValid: inputData.output.learningSignalsValid,\n    ferpaCompliant: inputData.output.ferpaCompliant,\n    accreditationCompliant: inputData.output.accreditationCompliant,\n    complianceScore: inputData.output.complianceScore,\n    validationIssues: inputData.output.validationIssues || [],\n    reasoning: inputData.output.reasoning\n  };\n} else if (inputData.output && inputData.output.actionType) {\n  // Orchestration action log\n  logType = 'ORCHESTRATION';\n  logData = {\n    actionType: inputData.output.actionType,\n    priority: inputData.output.priority,\n    complianceRequirements: inputData.output.complianceRequirements || [],\n    reasoning: inputData.output.reasoning,\n    actionDetails: inputData.output\n  };\n}\n\n// Create comprehensive audit log entry\nconst auditLog = {\n  timestamp: timestamp,\n  logType: logType,\n  studentId: inputData.studentId || 'UNKNOWN',\n  workflowExecutionId: $execution.id,\n  logData: logData,\n  complianceFrameworks: {\n    ferpa: true,\n    accreditation: $('Workflow Configuration').first().json.accreditationStandard || 'UNKNOWN'\n  },\n  auditTrailComplete: true\n};\n\nconsole.log('Compliance Audit Log:', JSON.stringify(auditLog, null, 2));\n\nreturn [{ json: auditLog }];"},"typeVersion":2},{"id":"abd01640-9c5d-4cca-ace6-7027760ece26","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-16,-416],"parameters":{"color":6,"width":640,"height":304,"content":"## Prerequisites\nClaude/OpenAI API credentials for AI agents, learning management system API access\n## Use Cases\nUniversities identifying students requiring academic support, online learning platforms detecting engagement drops\n## Customization\nAdjust validation thresholds for institutional academic standards\n## Benefits\nReduces student identification lag by 75%, eliminates manual progress tracking"},"typeVersion":1},{"id":"fc7a3412-3aab-46f2-927c-426a2aec0a57","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-560,-448],"parameters":{"width":448,"height":352,"content":"## Setup Steps\n1. Configure Student Data Webhook trigger endpoint\n2. Connect Workflow Configuration node with academic performance parameters\n3. Set up Fetch Student Learning History node with LMS API credentials\n4. Configure Merge Student Data node for data consolidation\n5. Connect Student Progress Validation Agent with Claude/OpenAI API credentials\n6. Set up AI processing nodes \n7. Configure Route by Validation Status node with performance thresholds\n8. Connect Academic Orchestration Agent with AI API credentials for intervention planning\n9. Set up orchestration processing "},"typeVersion":1},{"id":"a1f74c7a-50ac-4d8f-b5f0-dcd2fb9e551c","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1344,-400],"parameters":{"width":752,"height":288,"content":"## How It Works\nThis workflow automates student progress monitoring and academic intervention orchestration through intelligent AI-driven analysis. Designed for educational institutions, learning management systems, and academic advisors, it solves the critical challenge of identifying at-risk students while coordinating timely interventions across faculty and support services.\nThe system receives student data via webhook, fetches historical learning records, and merges these sources for comprehensive progress analysis. It employs a dual-agent AI framework for student progress validation and academic orchestration, detecting performance gaps, engagement issues, and intervention opportunities. The workflow intelligently routes findings based on validation status, triggering orchestration actions for students requiring support while logging compliant progress for successful learners. By executing multi-channel interventions through HTTP APIs and email notifications, it ensures educators and students receive timely guidance while maintaining complete audit trails for academic accountability and accreditation compliance."},"typeVersion":1},{"id":"a2c05d08-8593-4ded-9ba1-bcb0d2444afe","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[176,-80],"parameters":{"color":7,"width":1056,"height":912,"content":"## Validation-Driven Intervention Routing\n**What:** Routes students based on validation outcomes through orchestration workflows with multi-channel notifications and comprehensive audit logging\n**Why:** Ensures at-risk students receive timely interventions while maintaining complete documentation for academic review and compliance verification"},"typeVersion":1},{"id":"d4462cfe-1991-4bab-b91a-f360918b8632","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-416,-64],"parameters":{"color":7,"width":576,"height":608,"content":"\n## Dual-Agent Academic Assessment\n**What:** Processes student data through AI agents for progress validation and orchestration planning with specialized output parsing\n**Why:** Separates performance evaluation from intervention strategy to ensure objective assessment followed by appropriate support planning"},"typeVersion":1},{"id":"00f7c8be-ef34-4eb7-960c-cac3ac7012e4","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-1328,-64],"parameters":{"color":7,"width":896,"height":592,"content":"## Comprehensive Progress Aggregation\n**What:** Fetches and merges incoming student data with historical learning records for unified academic progress analysis\n**Why:** Ensures accurate intervention decisions by combining current performance with historical patterns revealing persistent struggles versus temporary setbacks"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"e3ded4da-2597-4844-8eae-39e4fbc3a5d6","connections":{"Merge Student Data":{"main":[[{"node":"Student Progress Validation Agent","type":"main","index":0}]]},"Route by Action Type":{"main":[[{"node":"Send Instructor Notification","type":"main","index":0}],[{"node":"Send Exception Escalation","type":"main","index":0}],[{"node":"Log Compliance Audit Trail","type":"main","index":0}]]},"Student Data Webhook":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Fetch Student Learning History","type":"main","index":0}]]},"Route by Validation Status":{"main":[[{"node":"Academic Orchestration Agent","type":"main","index":0}],[{"node":"Log Compliance Audit Trail","type":"main","index":0}]]},"Orchestration Output Parser":{"ai_outputParser":[[{"node":"Academic Orchestration Agent","type":"ai_outputParser","index":0}]]},"Academic Orchestration Agent":{"main":[[{"node":"Execute Orchestration Actions","type":"main","index":0}]]},"Claude Model - Orchestration":{"ai_languageModel":[[{"node":"Academic Orchestration Agent","type":"ai_languageModel","index":0}]]},"Execute Orchestration Actions":{"main":[[{"node":"Route by Action Type","type":"main","index":0}]]},"Fetch Student Learning History":{"main":[[{"node":"Merge Student Data","type":"main","index":0}]]},"Student Progress Output Parser":{"ai_outputParser":[[{"node":"Student Progress Validation Agent","type":"ai_outputParser","index":0}]]},"Claude Model - Student Progress":{"ai_languageModel":[[{"node":"Student Progress Validation Agent","type":"ai_languageModel","index":0}]]},"Student Progress Validation Agent":{"main":[[{"node":"Route by Validation Status","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":22,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.switch":{"count":2},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.emailSend":{"count":2},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":2},"@n8n/n8n-nodes-langchain.lmChatAnthropic":{"count":2},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Cheng Siong Chin","username":"cschin","bio":"Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n","verified":true,"links":["https://gravatar.com/mysticluminary9fa255f7f5"],"avatar":"https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"},"nodes":[{"id":11,"icon":"fa:envelope","name":"n8n-nodes-base.emailSend","codex":{"data":{"alias":["SMTP","email","human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/sendemail/"}]},"categories":["Communication","HITL","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Send Email","color":"#00bb88"},"iconData":{"icon":"envelope","type":"icon"},"displayName":"Send Email","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":9,"name":"Core Nodes"},{"id":28,"name":"HITL"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":1145,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.lmChatAnthropic","codex":{"data":{"alias":["claude","sonnet","opus"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="},"displayName":"Anthropic Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":5,"name":"Engineering"},{"id":49,"name":"AI Summarization"}],"image":[]}}