{"workflow":{"id":13898,"name":"Generate board-ready workforce analytics and talent reports with GPT-4o","views":101,"recentViews":1,"totalViews":101,"createdAt":"2026-03-05T16:18:32.790Z","description":"Intelligent workforce analytics and talent strategy report automation\n\n## How It Works\nThis workflow automates end-to-end workforce analytics and board-level talent strategy reporting using a multi-agent AI orchestration system. Designed for HR leaders, people analytics teams, and CHROs, it eliminates manual effort in compiling workforce insights and translating them into executive-ready reports. The pipeline begins with a scheduled trigger that loads employee datasets and aggregates HR records. It then builds a skill similarity index and prepares a structured analytics dataset. A Main Orchestrator Agent coordinates two specialised sub-agents: a Workforce Analytics Agent (using SHAP value analysis and statistical tools) and a Talent Strategy Agent (leveraging skill similarity search). Results are parsed into a Board Report JSON schema, stored in a report repository, and optionally delivered via webhook. The system enables data-driven talent decisions at scale.\n\n## Setup Steps\n1. Add OpenAI or compatible LLM credentials for all Chat Model nodes.\n2. Configure employee dataset source (e.g., Google Sheets, database, or CSV node).\n3. Set the Schedule Trigger interval (daily/weekly) to match reporting cadence.\n4. Update the `Prepare Report Storage` node with your target storage path or bucket.\n5. Configure `Optional Report Delivery` webhook URL or email endpoint if needed.\n6. Verify the Board Report JSON Schema matches your organisation's reporting fields.\n\n## Prerequisites\n- OpenAI or compatible LLM API credentials\n- Employee dataset (CSV, Google Sheets, or DB)\n- Webhook endpoint or email (optional delivery)\n## Use Cases\n- Automated monthly board talent reports for CHROs\n## Customisation\n- Swap LLM models per agent for cost/performance balance\n## Benefits\n- Eliminates manual HR reporting effort\n","workflow":{"id":"V3kFTrjgLotlhsWN","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"Intelligent workforce analytics and talent strategy report automation","tags":[],"nodes":[{"id":"a8762355-4a50-4515-9307-8307bf61030e","name":"Schedule Workforce Analysis","type":"n8n-nodes-base.scheduleTrigger","position":[176,304],"parameters":{"rule":{"interval":[{"field":"weeks","triggerAtDay":[1],"triggerAtHour":6}]}},"typeVersion":1.3},{"id":"540fe8dd-2458-47f7-926b-f29f01c08769","name":"Load Employee Dataset","type":"n8n-nodes-base.dataTable","position":[400,304],"parameters":{"operation":"get","dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__employee_data_table__>"}},"typeVersion":1.1},{"id":"282b24b3-33bd-405f-a06f-6c1eb4fd07d6","name":"Aggregate Employee Records","type":"n8n-nodes-base.aggregate","position":[624,304],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"ddd04d79-7c43-474a-8de2-ea368903d57f","name":"Prepare Analytics Dataset","type":"n8n-nodes-base.code","position":[1072,304],"parameters":{"jsCode":"const employees = $('Load Employee Dataset').all(); const skillData = $input.first().json; const analyticsData = { employees: employees.map(emp => ({ employee_id: emp.json.employee_id, name: emp.json.name, department: emp.json.department, role: emp.json.role, tenure_years: emp.json.tenure_years, performance_rating: emp.json.performance_rating, engagement_score: emp.json.engagement_score, promotion_history: emp.json.promotion_history, skills: emp.json.skills, demographics: emp.json.demographics, last_promotion_months: emp.json.last_promotion_months })), skill_similarity_index: skillData.skill_index, similarity_matrix: skillData.similarity_matrix, total_count: employees.length, analysis_date: new Date().toISOString() }; return [{ json: analyticsData }];"},"typeVersion":2},{"id":"eddf0286-9e49-4f4a-8614-17fe044efe19","name":"Main Orchestrator Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1552,224],"parameters":{"text":"={{ $json.employees }}","options":{"systemMessage":"You are the Chief Workforce Intelligence Officer responsible for generating board-level workforce transformation reports. You coordinate two specialized agents: the Workforce Analytics Agent (for attrition prediction and explainable AI analysis) and the Talent Strategy Agent (for role realignment, succession planning, and bias detection). Your role is to synthesize their findings into a comprehensive executive report with both structured JSON data and narrative insights. Always invoke both agents and integrate their outputs into a cohesive strategic recommendation."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"252ea1ce-1f27-4056-9854-cd0629b9db91","name":"Orchestrator Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1296,528],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"c330827f-cc1b-4008-ba11-2c23e7ce9ae4","name":"Board Report JSON Schema","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[2080,528],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"executive_summary\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Executive narrative summarizing key findings and strategic recommendations\"\n\t\t},\n\t\t\"attrition_analysis\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"high_risk_count\": {\n\t\t\t\t\t\"type\": \"number\"\n\t\t\t\t},\n\t\t\t\t\"risk_factors\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"shap_insights\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"talent_strategy\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"role_realignment\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"succession_plans\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"mobility_opportunities\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"bias_detection\": {\n\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"strategic_recommendations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"analysis_metadata\": {\n\t\t\t\"type\": \"object\"\n\t\t}\n\t},\n\t\"required\": [\"executive_summary\", \"attrition_analysis\", \"talent_strategy\", \"strategic_recommendations\"]\n}"},"typeVersion":1.3},{"id":"64de940c-c3dd-449a-a732-9f6cd9418349","name":"Workforce Analytics Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1424,528],"parameters":{"text":"={{ $fromAI('employee_data', 'Complete employee dataset including skills, tenure, performance, engagement, and promotion history') }}","options":{"systemMessage":"You are a Workforce Analytics Specialist with expertise in predictive HR analytics and explainable AI. Your mission is to analyze employee data and predict 12-month attrition risk with transparency. Use the SHAP Value Calculator tool to compute feature importance scores. Analyze patterns across tenure, performance, engagement, skills gaps, and promotion delays. Identify high-risk employees and explain WHY they are at risk using SHAP values. Provide quantitative risk scores and qualitative explanations for each risk factor."},"toolDescription":"Analyzes employee datasets to predict 12-month attrition risk using explainable AI methods including SHAP values. Examines skills matrices, tenure history, performance ratings, engagement scores, and promotion timelines to identify high-risk employees and key risk factors."},"typeVersion":3},{"id":"122764ec-4f33-4a5a-a5f6-9ea74b8284e5","name":"Analytics Agent Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1280,736],"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":"aacd8d12-c5c1-4972-a37a-60d2186e461a","name":"Talent Strategy Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1728,528],"parameters":{"text":"={{ $fromAI('analytics_insights', 'Workforce analytics insights including attrition risks and employee profiles') }}","options":{"systemMessage":"You are a Strategic Talent Management Advisor specializing in organizational design, succession planning, and diversity analytics. You have access to a complete analytics dataset including skill_similarity_index and similarity_matrix. When using the find_similar_skills tool, pass the similarity_matrix and skill_index from the analytics data you receive. Your mission is to formulate actionable talent strategies based on workforce analytics. Use the skill similarity search to identify employees with transferable skills for role realignment and internal mobility. Develop succession plans by matching high-potential employees to critical roles. Detect demographic bias in promotion patterns, performance ratings, and role assignments. Provide specific recommendations with employee IDs, target roles, and timeline estimates."},"toolDescription":"Formulates strategic talent initiatives including role realignment strategies, succession planning pathways, internal mobility optimization, and bias detection across demographic dimensions. Uses skill similarity clustering to identify optimal talent matches."},"typeVersion":3},{"id":"3b7efb55-9c9c-4ea8-82e3-96c258ae73e9","name":"Strategy Agent Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1888,736],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.3},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"7a9749bb-ffec-4fcf-bf84-85331e9569cb","name":"SHAP Value Calculator Tool","type":"@n8n/n8n-nodes-langchain.toolCode","position":[1488,736],"parameters":{"jsCode":"const employeeData = $fromAI('employee_data', 'Employee record with tenure, performance, engagement, skills, and promotion data', 'object');\n\nconst features = {\n  tenure_years: employeeData.tenure_years || 0,\n  performance_rating: employeeData.performance_rating || 0,\n  engagement_score: employeeData.engagement_score || 0,\n  months_since_promotion: employeeData.last_promotion_months || 0,\n  skill_count: Array.isArray(employeeData.skills) ? employeeData.skills.length : 0\n};\n\nconst baselineRisk = 0.15;\n\nconst shapValues = {\n  tenure_years: features.tenure_years < 1 ? 0.25 : features.tenure_years > 5 ? -0.15 : 0.05,\n  performance_rating: features.performance_rating < 3 ? -0.20 : features.performance_rating > 4 ? 0.15 : 0,\n  engagement_score: features.engagement_score < 50 ? 0.30 : features.engagement_score > 75 ? -0.20 : 0,\n  months_since_promotion: features.months_since_promotion > 24 ? 0.25 : features.months_since_promotion > 18 ? 0.10 : -0.05,\n  skill_count: features.skill_count < 3 ? 0.15 : features.skill_count > 7 ? -0.10 : 0\n};\n\nconst totalRisk = baselineRisk + Object.values(shapValues).reduce((a, b) => a + b, 0);\nconst riskLevel = totalRisk > 0.5 ? 'HIGH' : totalRisk > 0.3 ? 'MEDIUM' : 'LOW';\n\nreturn {\n  risk_score: Math.round(totalRisk * 100) / 100,\n  risk_level: riskLevel,\n  shap_values: shapValues,\n  top_risk_factors: Object.entries(shapValues)\n    .filter(([k, v]) => v > 0.1)\n    .sort((a, b) => b[1] - a[1])\n    .map(([factor, impact]) => ({\n      factor,\n      impact: Math.round(impact * 100) / 100\n    })),\n  employee_id: employeeData.employee_id\n};","description":"Calculates SHAP (SHapley Additive exPlanations) values for attrition risk prediction, providing explainable AI insights into which features contribute most to each employee's attrition risk score"},"typeVersion":1.3},{"id":"3396778a-c487-46ef-ab26-111f7c546456","name":"Statistical Calculator Tool","type":"@n8n/n8n-nodes-langchain.toolCalculator","position":[1680,736],"parameters":{},"typeVersion":1},{"id":"ffb02a03-ea7f-4d20-a18a-dda4a49ce709","name":"Prepare Report Storage","type":"n8n-nodes-base.set","position":[2240,304],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"report_id","type":"string","value":"={{ $now.format('yyyyMMdd-HHmmss') }}"},{"id":"id-2","name":"report_date","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-3","name":"executive_summary","type":"string","value":"={{ $json.output.executive_summary }}"},{"id":"id-4","name":"attrition_analysis","type":"string","value":"={{ JSON.stringify($json.output.attrition_analysis) }}"},{"id":"id-5","name":"talent_strategy","type":"string","value":"={{ JSON.stringify($json.output.talent_strategy) }}"},{"id":"id-6","name":"strategic_recommendations","type":"string","value":"={{ JSON.stringify($json.output.strategic_recommendations) }}"},{"id":"id-7","name":"full_report_json","type":"string","value":"={{ JSON.stringify($json.output) }}"}]}},"typeVersion":3.4},{"id":"8d91c22e-94e1-4218-88cb-f23a8a56e76a","name":"Store Workforce Report","type":"n8n-nodes-base.dataTable","position":[2512,304],"parameters":{"columns":{"value":{},"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__workforce_reports_table__>"}},"typeVersion":1.1},{"id":"2055e5a7-21f7-4300-be08-2e758da9dfb4","name":"Optional Report Delivery","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","position":[2768,304],"parameters":{"url":"<__PLACEHOLDER_VALUE__report_delivery_endpoint__>","method":"POST","options":{},"sendBody":true,"bodyParameters":{"parameters":[{"name":"report_id","value":"={{ $json.report_id }}"},{"name":"report_date","value":"={{ $json.report_date }}"},{"name":"report_data","value":"={{ $json.full_report_json }}"}]}},"typeVersion":4.4},{"id":"245eb436-81df-4ebd-80bb-f77cb312323e","name":"Build Skill Similarity Index","type":"n8n-nodes-base.code","position":[848,304],"parameters":{"jsCode":"const employees = $input.all();\nconst skillIndex = {};\n\nemployees.forEach(emp => {\n  const empData = emp.json;\n  const skills = Array.isArray(empData.skills) ? empData.skills : [];\n  skillIndex[empData.employee_id] = {\n    employee_id: empData.employee_id,\n    name: empData.name,\n    role: empData.role,\n    department: empData.department,\n    skills: skills.map(s => s.toLowerCase()),\n    skill_count: skills.length,\n    tenure: empData.tenure_years,\n    performance: empData.performance_rating\n  };\n});\n\nfunction calculateSimilarity(skills1, skills2) {\n  const set1 = new Set(skills1);\n  const set2 = new Set(skills2);\n  const intersection = [...set1].filter(x => set2.has(x)).length;\n  const union = new Set([...set1, ...set2]).size;\n  return union > 0 ? intersection / union : 0;\n}\n\nconst similarityMatrix = {};\nObject.keys(skillIndex).forEach(id1 => {\n  similarityMatrix[id1] = {};\n  Object.keys(skillIndex).forEach(id2 => {\n    if (id1 !== id2) {\n      similarityMatrix[id1][id2] = calculateSimilarity(skillIndex[id1].skills, skillIndex[id2].skills);\n    }\n  });\n});\n\nreturn [{ json: { skill_index: skillIndex, similarity_matrix: similarityMatrix, indexed_at: new Date().toISOString() } }];"},"typeVersion":2},{"id":"370f5560-1234-4d94-b4a8-d75b8ad847ba","name":"Skill Similarity Search Tool1","type":"@n8n/n8n-nodes-langchain.toolCode","position":[2064,736],"parameters":{"jsCode":"const targetEmployeeId = $fromAI('employee_id', 'The employee ID to find similar skill profiles for', 'string');\nconst topN = $fromAI('top_n', 'Number of similar employees to return', 'number', 5);\nconst similarityMatrix = $fromAI('similarity_matrix', 'The pre-computed similarity matrix from the analytics dataset', 'object');\nconst skillIndex = $fromAI('skill_index', 'The skill index from the analytics dataset', 'object');\n\nif (!similarityMatrix || !similarityMatrix[targetEmployeeId]) {\n  return {\n    error: 'Employee not found or no similarity data available',\n    target_employee: targetEmployeeId\n  };\n}\n\nconst similarities = Object.entries(similarityMatrix[targetEmployeeId])\n  .map(([empId, score]) => ({\n    employee_id: empId,\n    similarity_score: Math.round(score * 100) / 100\n  }))\n  .sort((a, b) => b.similarity_score - a.similarity_score)\n  .slice(0, topN);\n\nconst results = similarities.map(sim => {\n  const emp = skillIndex[sim.employee_id];\n  return {\n    employee_id: sim.employee_id,\n    name: emp.name,\n    role: emp.role,\n    department: emp.department,\n    skills: emp.skills,\n    similarity_score: sim.similarity_score,\n    tenure: emp.tenure,\n    performance: emp.performance\n  };\n});\n\nreturn {\n  target_employee: targetEmployeeId,\n  similar_employees: results,\n  search_date: new Date().toISOString()\n};","description":"Finds employees with similar skill profiles based on Jaccard similarity. Useful for identifying internal mobility candidates, succession planning matches, and role realignment opportunities."},"typeVersion":1.3},{"id":"3458816b-a907-49d8-ba9f-c34caf0dfc7d","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1296,-272],"parameters":{"color":4,"width":480,"height":336,"content":"## Prerequisites\n- OpenAI or compatible LLM API credentials\n- Employee dataset (CSV, Google Sheets, or DB)\n- Webhook endpoint or email (optional delivery)\n## Use Cases\n- Automated monthly board talent reports for CHROs\n## Customisation\n- Swap LLM models per agent for cost/performance balance\n## Benefits\n- Eliminates manual HR reporting effort"},"typeVersion":1},{"id":"da9d851a-1ac8-4317-991d-ed47e8fc597a","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[768,-192],"parameters":{"width":464,"height":304,"content":"## Setup Steps\n1. Add OpenAI or compatible LLM credentials for all Chat Model nodes.\n2. Configure employee dataset source (e.g., Google Sheets, database, or CSV node).\n3. Set the Schedule Trigger interval (daily/weekly) to match reporting cadence.\n4. Update the `Prepare Report Storage` node with your target storage path or bucket.\n5. Configure `Optional Report Delivery` webhook URL or email endpoint if needed.\n6. Verify the Board Report JSON Schema matches your organisation's reporting fields."},"typeVersion":1},{"id":"89942110-4a1c-4d1e-9679-b0edbc697f0d","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[96,-176],"parameters":{"width":624,"height":288,"content":"## How It Works\nThis workflow automates end-to-end workforce analytics and board-level talent strategy reporting using a multi-agent AI orchestration system. Designed for HR leaders, people analytics teams, and CHROs, it eliminates manual effort in compiling workforce insights and translating them into executive-ready reports. The pipeline begins with a scheduled trigger that loads employee datasets and aggregates HR records. It then builds a skill similarity index and prepares a structured analytics dataset. A Main Orchestrator Agent coordinates two specialised sub-agents: a Workforce Analytics Agent (using SHAP value analysis and statistical tools) and a Talent Strategy Agent (leveraging skill similarity search). Results are parsed into a Board Report JSON schema, stored in a report repository, and optionally delivered via webhook. The system enables data-driven talent decisions at scale."},"typeVersion":1},{"id":"6d2f203d-9011-4e77-a5b7-cf9c09eca9df","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[64,176],"parameters":{"color":7,"width":1136,"height":448,"content":"## Aggregate & Index\n**What** — Aggregates employee records and builds a skill similarity index.\n**Why** — Structures raw data into analytics-ready format for accurate modelling."},"typeVersion":1},{"id":"a4fd46dc-b9d1-4e3a-8a61-7ddfaada931c","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1248,96],"parameters":{"color":7,"width":912,"height":320,"content":"## Orchestrator Agent\n**What** — Coordinates Workforce Analytics and Talent Strategy sub-agents.\n**Why** — Decomposes complex analysis into specialised tasks for better accuracy."},"typeVersion":1},{"id":"44f07979-8c45-4949-9c13-39379009a5e1","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1232,480],"parameters":{"color":7,"width":1008,"height":656,"content":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Analytics & Strategy\n**What** — Runs SHAP analysis, statistical tools, and skill search.\n**Why** — Generates explainable, evidence-based workforce and talent insights."},"typeVersion":1},{"id":"6bf70f91-22e8-4980-83a4-5896f535fac4","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2176,112],"parameters":{"color":7,"width":832,"height":352,"content":"## Report & Deliver\n**What** — Formats output as board JSON, stores it, and optionally sends via webhook.\n**Why** — Produces board-ready reports with zero manual formatting.\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"26c63a93-cc85-4244-abd1-2bdc4f482c9b","connections":{"Load Employee Dataset":{"main":[[{"node":"Aggregate Employee Records","type":"main","index":0}]]},"Talent Strategy Agent":{"ai_tool":[[{"node":"Main Orchestrator Agent","type":"ai_tool","index":0}]]},"Prepare Report Storage":{"main":[[{"node":"Store Workforce Report","type":"main","index":0}]]},"Store Workforce Report":{"main":[[{"node":"Optional Report Delivery","type":"main","index":0}]]},"Main Orchestrator Agent":{"main":[[{"node":"Prepare Report Storage","type":"main","index":0}]]},"Orchestrator Chat Model":{"ai_languageModel":[[{"node":"Main Orchestrator Agent","type":"ai_languageModel","index":0}]]},"Board Report JSON Schema":{"ai_outputParser":[[{"node":"Main Orchestrator Agent","type":"ai_outputParser","index":0}]]},"Prepare Analytics Dataset":{"main":[[{"node":"Main Orchestrator Agent","type":"main","index":0}]]},"Strategy Agent Chat Model":{"ai_languageModel":[[{"node":"Talent Strategy Agent","type":"ai_languageModel","index":0}]]},"Workforce Analytics Agent":{"ai_tool":[[{"node":"Main Orchestrator Agent","type":"ai_tool","index":0}]]},"Aggregate Employee Records":{"main":[[{"node":"Build Skill Similarity Index","type":"main","index":0}]]},"Analytics Agent Chat Model":{"ai_languageModel":[[{"node":"Workforce Analytics Agent","type":"ai_languageModel","index":0}]]},"SHAP Value Calculator Tool":{"ai_tool":[[{"node":"Workforce Analytics Agent","type":"ai_tool","index":0}]]},"Schedule Workforce Analysis":{"main":[[{"node":"Load Employee Dataset","type":"main","index":0}]]},"Statistical Calculator Tool":{"ai_tool":[[{"node":"Workforce Analytics Agent","type":"ai_tool","index":0},{"node":"Talent Strategy Agent","type":"ai_tool","index":0}]]},"Build Skill Similarity Index":{"main":[[{"node":"Prepare Analytics Dataset","type":"main","index":0}]]},"Skill Similarity Search Tool1":{"ai_tool":[[{"node":"Talent Strategy Agent","type":"ai_tool","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":25,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.dataTable":{"count":2},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.httpRequest":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolCode":{"count":2},"@n8n/n8n-nodes-langchain.agentTool":{"count":2},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":3},"@n8n/n8n-nodes-langchain.toolCalculator":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Cheng Siong Chin","username":"cschin","bio":"Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n","verified":true,"links":["https://gravatar.com/mysticluminary9fa255f7f5"],"avatar":"https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":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":1195,"icon":"fa:calculator","name":"@n8n/n8n-nodes-langchain.toolCalculator","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Other Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"Calculator"},"iconData":{"icon":"calculator","type":"icon"},"displayName":"Calculator","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":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":48,"name":"AI RAG"}],"image":[]}}