{"workflow":{"id":13432,"name":"Validate academic promotion decisions with GPT-4o, policy rules, and Gmail","views":16,"recentViews":0,"totalViews":16,"createdAt":"2026-02-16T14:31:37.473Z","description":"## How It Works\nThis workflow automates performance governance and policy compliance monitoring for HR leaders, talent managers, and organizational development teams across enterprises. It solves the challenge of maintaining consistent performance standards while ensuring human judgment on promotion and termination decisions. Scheduled triggers initiate governance cycles that fetch performance data and policy rules, then orchestrate specialized AI agents working in parallel: governance assessment evaluates policy adherence, performance validation verifies metric accuracy, and calibration analysis ensures rating consistency across departments. A policy compliance checker synthesizes findings and routes outcomes intelligently—approved promotions store automatically, while exceptions requiring HR review trigger human approval gates before case creation and email escalation.\n\n## Setup Steps\n1. Configure API credentials with Llama-3.1-70B-Instruct model access\n2. Set up schedule trigger aligned with review cycles (quarterly/annual)\n3. Configure decision routing logic for approved versus exception cases\n4. Connect Gmail for HR escalation alerts to designated reviewers\n5. Set up Google Sheets for storing approved promotions and audit trails\n\n## Prerequisites\nAPI key, performance management system data access, Gmail account with app password\n## Use Cases\nAnnual performance review calibration, promotion decision validation\n## Customization\nIntegrate HRIS for live performance data, add custom policy rule engines\n## Benefits\nReduces governance review time by 70%, ensures consistent policy application","workflow":{"id":"PIqEzLo8xiWlZlLkehAYo","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI-driven academic promotion governance and performance validation system","tags":[],"nodes":[{"id":"6b9a6d8c-ea9d-49a6-8e1b-747a254d0ce7","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-2288,288],"parameters":{"rule":{"interval":[{"triggerAtHour":9}]}},"typeVersion":1.3},{"id":"47b23ea2-1fd4-41fa-890c-d9873e99914b","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-2064,288],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"performanceDataApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Performance Data API URL__>"},{"id":"id-2","name":"policyRulesApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Policy Rules API URL__>"},{"id":"id-3","name":"hrEscalationEmail","type":"string","value":"<__PLACEHOLDER_VALUE__HR Escalation Email Address__>"},{"id":"id-4","name":"minResearchOutputs","type":"number","value":5},{"id":"id-5","name":"minTeachingScore","type":"number","value":7.5},{"id":"id-6","name":"minServiceContributions","type":"number","value":3}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"e304549c-c311-4228-bee6-785d19349c85","name":"Fetch Performance Data","type":"n8n-nodes-base.httpRequest","position":[-1840,192],"parameters":{"url":"={{ $('Workflow Configuration').first().json.performanceDataApiUrl }}","options":{"response":{"response":{"responseFormat":"json"}}}},"typeVersion":4.3},{"id":"ca94d8d0-57fc-4301-87d1-cce500970aed","name":"Fetch Policy Rules","type":"n8n-nodes-base.httpRequest","position":[-1840,384],"parameters":{"url":"={{ $('Workflow Configuration').first().json.policyRulesApiUrl }}","options":{"response":{"response":{"responseFormat":"json"}}}},"typeVersion":4.3},{"id":"62d5cdf4-82f5-47ce-a44e-275029241f2c","name":"OpenAI Model - Performance Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1104,640],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.1},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"d4661b86-cfed-479c-9eb8-bacce0481c4f","name":"OpenAI Model - Governance Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1472,384],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.1},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"3dc5ef73-3c7b-479c-85ed-389876b2afc2","name":"OpenAI Model - Calibration Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-736,640],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.1},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"dfc6bfe1-976b-4fa7-94d2-5ce756deac20","name":"Performance Validation Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-912,640],"parameters":{"jsonSchemaExample":"{\n  \"validationStatus\": \"VALID\",\n  \"peerReviewScore\": 8.5,\n  \"researchOutputsCount\": 12,\n  \"teachingEvaluationScore\": 8.2,\n  \"serviceContributionsCount\": 5,\n  \"flaggedIssues\": [],\n  \"overallAssessment\": \"Candidate meets all performance criteria for promotion consideration\",\n  \"reasoning\": \"All metrics exceed minimum thresholds with strong peer review scores\"\n}"},"typeVersion":1.3},{"id":"4d29a145-13b4-4f64-915e-4a33862bb2ac","name":"Governance Decision Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-320,432],"parameters":{"jsonSchemaExample":"{\n  \"decision\": \"APPROVED\",\n  \"eligibilityStatus\": \"ELIGIBLE\",\n  \"calibrationCheckPassed\": true,\n  \"policyComplianceStatus\": \"COMPLIANT\",\n  \"escalationRequired\": false,\n  \"reasoning\": \"All validation checks passed, calibration confirms consistency with institutional standards, policy compliance verified\",\n  \"recommendedActions\": [\"Proceed with promotion approval\", \"Notify candidate and department\"],\n  \"auditTrail\": {\n    \"performanceValidation\": \"PASSED\",\n    \"calibrationCheck\": \"PASSED\",\n    \"policyCompliance\": \"VERIFIED\",\n    \"timestamp\": \"2024-01-15T10:30:00Z\"\n  }\n}"},"typeVersion":1.3},{"id":"942279c3-9494-472e-a9ce-62ab4bf5c761","name":"Calibration Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-512,640],"parameters":{"jsonSchemaExample":"{\n  \"calibrationStatus\": \"ALIGNED\",\n  \"consistencyScore\": 9.2,\n  \"comparisonWithPeers\": \"Performance metrics align with successful promotion cases in similar departments\",\n  \"deviationFlags\": [],\n  \"calibrationNotes\": \"Candidate's profile is consistent with institutional promotion standards\",\n  \"reasoning\": \"Metrics fall within expected ranges for promotion at this level\"\n}"},"typeVersion":1.3},{"id":"bed49d06-a8f5-425a-bfd8-41f113d0b0c7","name":"Performance Signal Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-1088,432],"parameters":{"text":"={{ $fromAI('performanceData', 'Performance data including peer reviews, research outputs, teaching evaluations, and service contributions', 'json') }}","options":{"systemMessage":"You are a Performance Signal Validation Agent specialized in academic promotion assessment.\n\nYour task is to:\n1. Systematically validate structured performance inputs including peer reviews, research outputs, teaching evaluations, and service contributions\n2. Check each metric against minimum thresholds defined in institutional policy\n3. Identify any data quality issues, missing information, or anomalies\n4. Calculate aggregate performance scores\n5. Flag any concerns or exceptional cases\n6. Provide objective assessment without subjective scoring\n7. Return structured validation results with clear pass/fail status for each criterion\n\nValidation Criteria:\n- Peer Review Score: minimum 7.0/10\n- Research Outputs: minimum 5 publications\n- Teaching Evaluation: minimum 7.5/10\n- Service Contributions: minimum 3 activities\n\nEnsure transparency and eliminate subjective bias in all assessments."},"hasOutputParser":true,"toolDescription":"Validates academic performance data against institutional criteria including peer reviews, research outputs, teaching evaluations, and service contributions"},"typeVersion":3},{"id":"66e8da1d-4c65-4720-90dd-11da22e1160b","name":"Calibration Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-736,432],"parameters":{"text":"={{ $fromAI('validationResults', 'Performance validation results to calibrate against institutional standards', 'json') }}","options":{"systemMessage":"You are a Calibration Agent responsible for ensuring consistency and fairness in promotion decisions.\n\nYour task is to:\n1. Compare candidate performance metrics with historical promotion cases\n2. Identify deviations from institutional norms and standards\n3. Enforce calibration checkpoints to ensure consistency across departments\n4. Flag cases that fall outside expected ranges\n5. Verify alignment with peer institutions and benchmarks\n6. Provide calibration scores and consistency assessments\n7. Return structured calibration results with alignment status\n\nCalibration ensures that promotion decisions are consistent, fair, and aligned with institutional standards, eliminating departmental bias and subjective variations."},"hasOutputParser":true,"toolDescription":"Calibrates promotion decisions against institutional standards and historical data to ensure consistency and fairness"},"typeVersion":3},{"id":"2e44d957-7ee5-4cf8-81c8-55ceaf58cbc5","name":"Governance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1472,192],"parameters":{"text":"={{ $json }}","options":{"systemMessage":"You are a Governance Agent responsible for overseeing academic promotion eligibility workflows.\n\nYour task is to:\n1. Orchestrate the promotion evaluation process by calling specialized agent tools\n2. Call the Performance Signal Agent Tool to validate candidate performance data\n3. Call the Calibration Agent Tool to ensure consistency with institutional standards\n4. Call the Policy Compliance Checker Tool to verify adherence to promotion policies\n5. Synthesize findings from all agents to make a final promotion decision\n6. Enforce transparency and eliminate subjective scoring throughout the process\n7. Determine if HR review escalation is required based on policy-aligned criteria\n8. Return structured decision with clear reasoning and audit trail\n\nDecision Categories:\n- APPROVED: All checks passed, candidate eligible for promotion\n- REJECTED: Failed critical criteria, not eligible for promotion\n- ESCALATION_REQUIRED: Edge case requiring human HR review\n\nEnsure all decisions are policy-aligned, transparent, and consistently applied."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"15f1f293-f07e-4ec5-9a0d-9ca9245ae452","name":"Route by Decision","type":"n8n-nodes-base.switch","position":[-576,160],"parameters":{"rules":{"values":[{"outputKey":"Approved","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"APPROVED"}]},"renameOutput":true},{"outputKey":"Rejected","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"REJECTED"}]},"renameOutput":true},{"outputKey":"Escalation","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"ESCALATION_REQUIRED"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Unprocessed"}},"typeVersion":3.4},{"id":"840e4f73-9f5e-4440-96c6-f836eb0e9c6e","name":"Store Approved Promotions","type":"n8n-nodes-base.dataTable","position":[-48,144],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__Approved Promotions Table ID__>"}},"typeVersion":1.1},{"id":"b396915b-db2a-469b-8299-ee557e3bb7d5","name":"Store Rejected Cases","type":"n8n-nodes-base.dataTable","position":[-160,256],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__Rejected Cases Table ID__>"}},"typeVersion":1.1},{"id":"09e83bdc-43f2-48b9-9337-6d673e4c1aae","name":"Wait for HR Review","type":"n8n-nodes-base.wait","position":[48,512],"webhookId":"4140299c-ade8-4e27-8543-1ffa1abe8d5c","parameters":{"resume":"webhook","options":{},"httpMethod":"POST"},"typeVersion":1.1},{"id":"3000129c-ce9f-452e-acbc-66df8bc81ed5","name":"Send HR Escalation Email","type":"n8n-nodes-base.emailSend","position":[448,512],"webhookId":"32b20a66-7571-47b2-9219-34715feab609","parameters":{"html":"=<html>\n<body style='font-family: Arial, sans-serif; line-height: 1.6; color: #333;'>\n<div style='background-color: #ffc107; color: #000; padding: 20px; border-left: 5px solid #ff9800;'>\n<h2>⚠️ HR ESCALATION REQUIRED: Academic Promotion Review</h2>\n</div>\n\n<div style='padding: 20px;'>\n<p><strong>Candidate:</strong> {{ $json.output.candidateName || 'Not specified' }}</p>\n<p><strong>Department:</strong> {{ $json.output.department || 'Not specified' }}</p>\n<p><strong>Current Rank:</strong> {{ $json.output.currentRank || 'Not specified' }}</p>\n<p><strong>Proposed Rank:</strong> {{ $json.output.proposedRank || 'Not specified' }}</p>\n<p><strong>Escalation Reason:</strong> {{ $json.output.reasoning }}</p>\n\n<h3>Governance Decision Summary</h3>\n<p><strong>Eligibility Status:</strong> {{ $json.output.eligibilityStatus }}</p>\n<p><strong>Policy Compliance:</strong> {{ $json.output.policyComplianceStatus }}</p>\n<p><strong>Calibration Check:</strong> {{ $json.output.calibrationCheckPassed ? 'PASSED' : 'FAILED' }}</p>\n\n<h3>Recommended Actions</h3>\n<ul>\n{{ $json.output.recommendedActions ? $json.output.recommendedActions.map(action => `<li>${action}</li>`).join('') : '<li>Review case manually</li>' }}\n</ul>\n\n<h3>Audit Trail</h3>\n<pre style='background-color: #f5f5f5; padding: 15px; border-radius: 5px; overflow-x: auto;'>\n{{ JSON.stringify($json.output.auditTrail, null, 2) }}\n</pre>\n\n<p style='margin-top: 30px; padding: 15px; background-color: #e3f2fd; border-left: 4px solid #2196f3;'>\n<strong>Action Required:</strong> This case requires manual HR review and decision. Please review the details above and respond via the workflow webhook to proceed.\n</p>\n\n<p style='color: #666; font-size: 12px; margin-top: 30px;'>Generated by AI-Driven Academic Promotion Governance System on {{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}</p>\n</div>\n</body>\n</html>","options":{},"subject":"=ESCALATION REQUIRED: Academic Promotion Review - {{ $json.output.candidateName || 'Candidate' }}","toEmail":"={{ $('Workflow Configuration').first().json.hrEscalationEmail }}","fromEmail":"<__PLACEHOLDER_VALUE__Sender Email Address__>"},"typeVersion":2.1},{"id":"785c85d8-8492-4162-84fe-949090ba7871","name":"Merge All Outcomes","type":"n8n-nodes-base.merge","position":[224,160],"parameters":{"numberInputs":3},"typeVersion":3.2},{"id":"2f80270c-8b98-424e-ad07-a66e7acbd7d0","name":"Store Audit Trail","type":"n8n-nodes-base.dataTable","position":[416,176],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__Audit Trail Table ID__>"}},"typeVersion":1.1},{"id":"353c8c26-a14d-4351-baf8-3fa799b3f4b0","name":"Policy Compliance Checker Tool","type":"@n8n/n8n-nodes-langchain.toolCode","position":[-448,432],"parameters":{"jsCode":"const candidateData = $fromAI('candidateData', 'Candidate performance and validation data to check against policy rules', 'json');\nconst policyRules = $fromAI('policyRules', 'Institutional policy rules for promotion eligibility', 'json');\n\ntry {\n  const data = typeof candidateData === 'string' ? JSON.parse(candidateData) : candidateData;\n  const rules = typeof policyRules === 'string' ? JSON.parse(policyRules) : policyRules;\n  \n  // Policy compliance checks\n  const checks = {\n    minimumYearsInRank: data.yearsInCurrentRank >= (rules.minYearsInRank || 5),\n    requiredPublications: data.researchOutputsCount >= (rules.minPublications || 5),\n    teachingRequirement: data.teachingEvaluationScore >= (rules.minTeachingScore || 7.5),\n    serviceRequirement: data.serviceContributionsCount >= (rules.minServiceContributions || 3),\n    noEthicsViolations: !data.ethicsViolations || data.ethicsViolations.length === 0,\n    departmentApproval: data.departmentApprovalStatus === 'APPROVED'\n  };\n  \n  const allChecksPassed = Object.values(checks).every(check => check === true);\n  const failedChecks = Object.keys(checks).filter(key => checks[key] === false);\n  \n  const result = {\n    complianceStatus: allChecksPassed ? 'COMPLIANT' : 'NON_COMPLIANT',\n    checks: checks,\n    failedChecks: failedChecks,\n    policyViolations: failedChecks.map(check => `Failed: ${check}`),\n    recommendation: allChecksPassed ? 'Proceed with promotion' : 'Address policy violations before proceeding',\n    verificationDate: new Date().toISOString()\n  };\n  \n  return JSON.stringify(result, null, 2);\n  \n} catch (error) {\n  return JSON.stringify({\n    complianceStatus: 'ERROR',\n    error: 'Policy compliance check failed',\n    message: error.message\n  });\n}","description":"Verifies policy compliance for promotion decisions based on institutional rules and regulations"},"typeVersion":1.3},{"id":"710c21a4-a6ec-4072-9c50-40df816826a1","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1184,-288],"parameters":{"color":6,"width":480,"height":352,"content":"## Prerequisites\nAPI key, performance management system data access, Gmail account with app password\n## Use Cases\nAnnual performance review calibration, promotion decision validation\n## Customization\nIntegrate HRIS for live performance data, add custom policy rule engines\n## Benefits\nReduces governance review time by 70%, ensures consistent policy application"},"typeVersion":1},{"id":"4c4bc85f-b344-4577-8a39-18c9517520ef","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1616,-176],"parameters":{"width":368,"height":272,"content":"## Setup Steps\n1. Configure API credentials with Llama-3.1-70B-Instruct model access\n2. Set up schedule trigger aligned with review cycles (quarterly/annual)\n3. Configure decision routing logic for approved versus exception cases\n4. Connect Gmail for HR escalation alerts to designated reviewers\n5. Set up Google Sheets for storing approved promotions and audit trails\n"},"typeVersion":1},{"id":"02bfea25-75d8-4a7a-b0b7-dd7bca142632","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-2288,-176],"parameters":{"width":608,"height":272,"content":"## How It Works\nThis workflow automates performance governance and policy compliance monitoring for HR leaders, talent managers, and organizational development teams across enterprises. It solves the challenge of maintaining consistent performance standards while ensuring human judgment on promotion and termination decisions. Scheduled triggers initiate governance cycles that fetch performance data and policy rules, then orchestrate specialized AI agents working in parallel: governance assessment evaluates policy adherence, performance validation verifies metric accuracy, and calibration analysis ensures rating consistency across departments. A policy compliance checker synthesizes findings and routes outcomes intelligently—approved promotions store automatically, while exceptions requiring HR review trigger human approval gates before case creation and email escalation."},"typeVersion":1},{"id":"8d780832-91bd-40e6-97a5-8a628b050ab3","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-768,96],"parameters":{"color":7,"width":1392,"height":768,"content":"## Calibration Analysis \nMaintains organizational fairness and prevents manager bias from creating inequitable outcomes."},"typeVersion":1},{"id":"238fd13f-e6c3-4a04-8fd0-cbac06d23e0a","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-1184,112],"parameters":{"color":7,"width":400,"height":784,"content":"## Performance Validation \nEnsures decisions rest on accurate, defensible evidence that withstands scrutiny during disputes."},"typeVersion":1},{"id":"b6a524b6-360b-4d93-8e17-1724d0127b92","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-2320,112],"parameters":{"color":7,"width":1104,"height":416,"content":"## Governance Assessment\nIdentifies rating inconsistencies and bias patterns requiring intervention before decisions become final."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"dc17dadd-ef29-4cee-b569-7e3731674639","connections":{"Governance Agent":{"main":[[{"node":"Route by Decision","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Route by Decision":{"main":[[{"node":"Store Approved Promotions","type":"main","index":0}],[{"node":"Store Rejected Cases","type":"main","index":0}],[{"node":"Wait for HR Review","type":"main","index":0}]]},"Merge All Outcomes":{"main":[[{"node":"Store Audit Trail","type":"main","index":0}]]},"Wait for HR Review":{"main":[[{"node":"Send HR Escalation Email","type":"main","index":0}]]},"Store Rejected Cases":{"main":[[{"node":"Merge All Outcomes","type":"main","index":1}]]},"Calibration Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Fetch Performance Data":{"main":[[{"node":"Governance Agent","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Fetch Performance Data","type":"main","index":0},{"node":"Fetch Policy Rules","type":"main","index":0}]]},"Send HR Escalation Email":{"main":[[{"node":"Merge All Outcomes","type":"main","index":2}]]},"Calibration Output Parser":{"ai_outputParser":[[{"node":"Calibration Agent Tool","type":"ai_outputParser","index":0}]]},"Store Approved Promotions":{"main":[[{"node":"Merge All Outcomes","type":"main","index":0}]]},"Performance Signal Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Policy Compliance Checker Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"OpenAI Model - Governance Agent":{"ai_languageModel":[[{"node":"Governance Agent","type":"ai_languageModel","index":0}]]},"OpenAI Model - Calibration Agent":{"ai_languageModel":[[{"node":"Calibration Agent Tool","type":"ai_languageModel","index":0}]]},"OpenAI Model - Performance Agent":{"ai_languageModel":[[{"node":"Performance Signal Agent Tool","type":"ai_languageModel","index":0}]]},"Governance Decision Output Parser":{"ai_outputParser":[[{"node":"Governance Agent","type":"ai_outputParser","index":0}]]},"Performance Validation Output Parser":{"ai_outputParser":[[{"node":"Performance Signal Agent Tool","type":"ai_outputParser","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":27,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.dataTable":{"count":3},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolCode":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":2},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":3},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":3}}},"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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"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/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.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"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":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":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"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1197,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.toolCode","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"Code Tool"},"iconData":{"icon":"code","type":"icon"},"displayName":"Code Tool","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1310,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agentTool","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent Tool","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent Tool","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1315,"icon":"fa:table","name":"n8n-nodes-base.dataTable","codex":{"data":{"alias":["data","table","knowledge","data table","table","sheet","database","data base","mysql","postgres","postgresql","airtable","supabase","noco","notion"],"details":"Data table","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.datatable/"}]},"categories":["Core Nodes","Development"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\",\"transform\"]","defaults":{"name":"Data table"},"iconData":{"icon":"table","type":"icon"},"displayName":"Data table","typeVersion":1,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":17,"name":"HR"},{"id":49,"name":"AI Summarization"}],"image":[]}}