{"workflow":{"id":13141,"name":"Detect financial risk and orchestrate compliance with GPT‑4o, Slack and email","views":83,"recentViews":0,"totalViews":83,"createdAt":"2026-02-01T05:10:00.874Z","description":"## How It Works\nThis workflow automates comprehensive risk signal detection and regulatory compliance management across financial and claims data sources. Designed for risk management teams, compliance officers, and financial auditors, it solves the critical challenge of identifying potential risks while ensuring timely regulatory reporting and stakeholder notifications.\nThe system operates on scheduled intervals, fetching data from multiple sources including financial APIs and claims databases, then merging these streams for unified analysis. It employs an AI-powered risk signal agent to detect anomalies, regulatory violations, and compliance issues. The workflow intelligently routes findings based on risk severity, orchestrating parallel processes for critical risks requiring immediate escalation and standard risks needing documentation. It manages multi-channel notifications through Slack and email, generates comprehensive compliance documentation, and maintains detailed audit trails. By coordinating regulatory analysis, exception handling, and evidence collection, it ensures complete risk visibility while automating compliance workflows.\n\n## Setup Steps\n1. Configure Schedule Trigger with risk monitoring frequency\n2. Connect Workflow Configuration node with data source parameters\n3. Set up Fetch B2B Data and Fetch Claims Data nodes with respective API credentials\n4. Configure Merge Financial Data node for data consolidation\n5. Connect Calculate Risk Metrics node with risk scoring algorithms\n6. Set up Risk Signal Agent with OpenAI/Nvidia API credentials for anomaly detection\n7. Configure parallel output parsers\n8. Connect Check Critical Risk node with severity routing logic\n9. Set up Route by Risk Level node for workflow branching\n\n## Prerequisites\nOpenAI or Nvidia API credentials for AI-powered risk analysis, financial data API access\n## Use Cases\nInsurance companies monitoring claims fraud patterns, financial institutions detecting transaction anomalies\n## Customization\nAdjust risk scoring algorithms for industry-specific thresholds\n## Benefits\nReduces risk detection time by 80%, eliminates manual compliance monitoring","workflow":{"id":"xeqOB5QSx18smMC09SZVS","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"Smart Risk Assessment and Compliance Orchestration Automation System","tags":[],"nodes":[{"id":"12ad4a65-f0b1-4b8f-8e02-7d42a1cb3426","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-2416,432],"parameters":{"rule":{"interval":[{"triggerAtHour":9}]}},"typeVersion":1.3},{"id":"6e710822-eae9-477a-b8e2-f0c42fcc71d9","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-2192,432],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"riskDataApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Risk and Exposure API Endpoint URL__>"},{"id":"id-2","name":"claimsDataApiUrl","type":"string","value":"<__PLACEHOLDER_VALUE__Claims Data API Endpoint URL__>"},{"id":"id-3","name":"complianceEmail","type":"string","value":"<__PLACEHOLDER_VALUE__Compliance Team Email Address__>"},{"id":"id-4","name":"riskThresholdHigh","type":"number","value":75},{"id":"id-5","name":"riskThresholdMedium","type":"number","value":50},{"id":"id-6","name":"slackChannel","type":"string","value":"<__PLACEHOLDER_VALUE__Slack Channel ID for Critical Alerts__>"},{"id":"id-7","name":"auditSheetId","type":"string","value":"<__PLACEHOLDER_VALUE__Google Sheets ID for Audit Trail__>"},{"id":"id-8","name":"criticalRiskThreshold","type":"number","value":90}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"253f058d-f1ac-41b7-8821-0f63ba4fd037","name":"Fetch Risk Data","type":"n8n-nodes-base.httpRequest","position":[-1968,336],"parameters":{"url":"={{ $('Workflow Configuration').first().json.riskDataApiUrl }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"275d2744-0db4-4b31-980b-48f60eb4d108","name":"Fetch Claims Data","type":"n8n-nodes-base.httpRequest","position":[-1968,528],"parameters":{"url":"={{ $('Workflow Configuration').first().json.claimsDataApiUrl }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"70a98042-01e3-4d93-8300-80c0db6d4e88","name":"Merge Financial Data","type":"n8n-nodes-base.merge","position":[-1744,432],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"0b9c93a9-d341-426f-9e5f-0058164d5fbd","name":"Risk Signal Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1296,432],"parameters":{"text":"=Risk Data: {{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Risk Signal Agent specialized in evaluating structured financial risk, exposure, and claims data from multiple systems.\n\nYour role is to:\n1. Analyze risk metrics, exposure levels, and claims history data\n2. Calculate aggregate risk scores (0-100) based on multiple factors including:\n   - Total exposure amount and concentration\n   - Claims frequency and severity trends\n   - Loss ratios and reserve adequacy\n   - Geographic and sector concentration risks\n   - Historical volatility patterns\n3. Identify risk signals and anomalies requiring attention\n4. Categorize overall risk level (Low, Medium, High, Critical)\n5. Flag specific risk factors contributing to the assessment\n6. Provide reasoning for risk classification\n\nIMPORTANT CONSTRAINTS:\n- You are NOT authorized to make underwriting decisions\n- You are NOT authorized to approve or deny transactions\n- Your role is purely analytical and advisory\n- Focus on risk identification and measurement only\n\nConsider:\n- Exposure concentration by geography, industry, and counterparty\n- Claims trends over time (frequency and severity)\n- Loss development patterns and reserve adequacy\n- Regulatory capital requirements and compliance thresholds\n- Market conditions and external risk factors\n\nReturn structured JSON output with risk score, risk level, key risk factors, and detailed reasoning."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"d1074860-7e4f-4d4b-b490-ce37cd78a6d4","name":"OpenAI Model - Risk Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1312,640],"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":"3cc1e4cf-6d99-4cea-9d26-7484c5b3449b","name":"Risk Assessment Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-1120,672],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"riskScore\": {\n      \"type\": \"number\",\n      \"description\": \"Overall risk score from 0-100\"\n    },\n    \"riskLevel\": {\n      \"type\": \"string\",\n      \"description\": \"Risk classification: Low, Medium, High, or Critical\"\n    },\n    \"keyRiskFactors\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of primary risk factors identified\"\n    },\n    \"exposureConcentration\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"geographic\": {\"type\": \"string\"},\n        \"industry\": {\"type\": \"string\"},\n        \"counterparty\": {\"type\": \"string\"}\n      }\n    },\n    \"claimsTrends\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"frequency\": {\"type\": \"string\"},\n        \"severity\": {\"type\": \"string\"},\n        \"lossRatio\": {\"type\": \"number\"}\n      }\n    },\n    \"reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"Detailed explanation of risk assessment\"\n    }\n  },\n  \"required\": [\"riskScore\", \"riskLevel\", \"keyRiskFactors\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"6c061e59-afce-4c2c-8e26-1c5c5504b9c3","name":"Route by Risk Level","type":"n8n-nodes-base.switch","position":[-720,304],"parameters":{"rules":{"values":[{"outputKey":"High Risk","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.riskScore }}","rightValue":75}]},"renameOutput":true},{"outputKey":"Medium Risk","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.riskScore }}","rightValue":50},{"operator":{"type":"number","operation":"lt"},"leftValue":"={{ $json.riskScore }}","rightValue":75}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Low Risk"}},"typeVersion":3.4},{"id":"50f9512d-519d-4538-a545-c1149142838a","name":"Compliance Orchestration Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[16,96],"parameters":{"text":"=Risk Assessment: {{ JSON.stringify($json.output) }}","options":{"systemMessage":"You are a Compliance Orchestration Agent responsible for coordinating approval workflows, exception handling, regulatory reporting, and audit-ready evidence packaging.\n\nYour role is to:\n1. Coordinate approval workflows based on risk levels:\n   - High/Critical risk: Escalate to senior management with detailed briefing\n   - Medium risk: Route to compliance review with supporting documentation\n   - Low risk: Document for audit trail with standard procedures\n2. Handle exceptions by:\n   - Identifying deviations from standard risk thresholds\n   - Documenting exception rationale and supporting evidence\n   - Recommending appropriate escalation paths\n3. Prepare regulatory reporting requirements:\n   - Identify applicable regulatory frameworks\n   - Compile required data points and disclosures\n   - Flag reporting deadlines and submission requirements\n4. Package audit-ready evidence including:\n   - Complete risk assessment documentation\n   - Decision workflow and approval chain\n   - Supporting data sources and calculations\n   - Compliance checklist and verification steps\n   - Timestamp and audit trail metadata\n\nIMPORTANT CONSTRAINTS:\n- You are NOT authorized to make transactional decisions\n- You are NOT authorized to approve or deny underwriting\n- Your role is coordination, documentation, and process orchestration only\n- All decisions must be routed to appropriate human authorities\n\nConsider:\n- Regulatory requirements (SOX, Basel III, Solvency II, etc.)\n- Internal governance policies and approval hierarchies\n- Audit trail completeness and documentation standards\n- Exception handling procedures and escalation protocols\n- Evidence preservation and retention requirements\n\nReturn structured JSON output with workflow actions, required approvals, regulatory items, and audit package."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"d079ceeb-e17d-4b71-a447-2e0fa2b55e08","name":"OpenAI Model - Compliance Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-80,208],"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":"12160acb-2fc0-4e8d-95f8-ceead87b5778","name":"Compliance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[448,432],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"workflowActions\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"action\": {\"type\": \"string\"},\n          \"assignedTo\": {\"type\": \"string\"},\n          \"priority\": {\"type\": \"string\"},\n          \"deadline\": {\"type\": \"string\"}\n        }\n      },\n      \"description\": \"List of workflow actions and assignments\"\n    },\n    \"requiredApprovals\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"approver\": {\"type\": \"string\"},\n          \"approvalType\": {\"type\": \"string\"},\n          \"rationale\": {\"type\": \"string\"}\n        }\n      },\n      \"description\": \"Required approvals and escalations\"\n    },\n    \"regulatoryItems\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"framework\": {\"type\": \"string\"},\n          \"requirement\": {\"type\": \"string\"},\n          \"deadline\": {\"type\": \"string\"},\n          \"status\": {\"type\": \"string\"}\n        }\n      },\n      \"description\": \"Regulatory reporting requirements\"\n    },\n    \"auditPackage\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"documentationComplete\": {\"type\": \"boolean\"},\n        \"evidenceSources\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n        \"complianceChecklist\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n        \"auditTrail\": {\"type\": \"string\"}\n      },\n      \"description\": \"Audit-ready evidence package\"\n    },\n    \"exceptionHandling\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"exceptionsIdentified\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n        \"escalationRequired\": {\"type\": \"boolean\"},\n        \"escalationPath\": {\"type\": \"string\"}\n      },\n      \"description\": \"Exception handling and escalation details\"\n    },\n    \"summary\": {\n      \"type\": \"string\",\n      \"description\": \"Executive summary of compliance coordination\"\n    }\n  },\n  \"required\": [\"workflowActions\", \"requiredApprovals\", \"regulatoryItems\", \"auditPackage\", \"summary\"]\n}"},"typeVersion":1.3},{"id":"b91c2674-04b4-4ff8-9b9b-a89d91bccef8","name":"Consolidate Results","type":"n8n-nodes-base.merge","position":[880,288],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"a206a244-e4e3-4507-9ef0-9b88e18a52fc","name":"Send Compliance Report","type":"n8n-nodes-base.emailSend","position":[1104,288],"webhookId":"64869ce8-7005-4615-9660-500f4704e293","parameters":{"html":"=<html>\n<head>\n<style>\nbody { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n.header { background-color: #2c3e50; color: white; padding: 20px; text-align: center; }\n.section { margin: 20px; padding: 15px; border-left: 4px solid #3498db; background-color: #f8f9fa; }\n.risk-high { border-left-color: #e74c3c; }\n.risk-medium { border-left-color: #f39c12; }\n.risk-low { border-left-color: #27ae60; }\n.label { font-weight: bold; color: #2c3e50; }\n.value { margin-left: 10px; }\nul { margin: 10px 0; }\nli { margin: 5px 0; }\n.footer { margin-top: 30px; padding: 15px; background-color: #ecf0f1; text-align: center; font-size: 12px; }\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h1>Risk Assessment & Compliance Orchestration Report</h1>\n<p>Generated: {{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}</p>\n</div>\n\n<div class=\"section risk-{{ $json.output.riskLevel.toLowerCase() }}\">\n<h2>Risk Assessment Summary</h2>\n<p><span class=\"label\">Risk Score:</span><span class=\"value\">{{ $json.output.riskScore }}/100</span></p>\n<p><span class=\"label\">Risk Level:</span><span class=\"value\">{{ $json.output.riskLevel }}</span></p>\n<p><span class=\"label\">Key Risk Factors:</span></p>\n<ul>\n{{ $json.output.keyRiskFactors.map(factor => `<li>${factor}</li>`).join('') }}\n</ul>\n<p><span class=\"label\">Assessment Reasoning:</span></p>\n<p>{{ $json.output.reasoning }}</p>\n</div>\n\n<div class=\"section\">\n<h2>Compliance Orchestration</h2>\n<p><span class=\"label\">Executive Summary:</span></p>\n<p>{{ $json.output.summary }}</p>\n\n<h3>Required Approvals</h3>\n<ul>\n{{ $json.output.requiredApprovals.map(approval => `<li><strong>${approval.approver}</strong> - ${approval.approvalType}: ${approval.rationale}</li>`).join('') }}\n</ul>\n\n<h3>Workflow Actions</h3>\n<ul>\n{{ $json.output.workflowActions.map(action => `<li><strong>${action.action}</strong> (Assigned to: ${action.assignedTo}, Priority: ${action.priority}, Deadline: ${action.deadline})</li>`).join('') }}\n</ul>\n\n<h3>Regulatory Requirements</h3>\n<ul>\n{{ $json.output.regulatoryItems.map(item => `<li><strong>${item.framework}</strong>: ${item.requirement} (Deadline: ${item.deadline}, Status: ${item.status})</li>`).join('') }}\n</ul>\n</div>\n\n<div class=\"section\">\n<h2>Audit Package</h2>\n<p><span class=\"label\">Documentation Complete:</span><span class=\"value\">{{ $json.output.auditPackage.documentationComplete ? 'Yes' : 'No' }}</span></p>\n<p><span class=\"label\">Evidence Sources:</span></p>\n<ul>\n{{ $json.output.auditPackage.evidenceSources.map(source => `<li>${source}</li>`).join('') }}\n</ul>\n<p><span class=\"label\">Compliance Checklist:</span></p>\n<ul>\n{{ $json.output.auditPackage.complianceChecklist.map(item => `<li>${item}</li>`).join('') }}\n</ul>\n<p><span class=\"label\">Audit Trail:</span></p>\n<p>{{ $json.output.auditPackage.auditTrail }}</p>\n</div>\n\n<div class=\"section\">\n<h2>Exception Handling</h2>\n<p><span class=\"label\">Escalation Required:</span><span class=\"value\">{{ $json.output.exceptionHandling.escalationRequired ? 'Yes' : 'No' }}</span></p>\n{{ $json.output.exceptionHandling.escalationRequired ? `<p><span class=\"label\">Escalation Path:</span><span class=\"value\">${$json.output.exceptionHandling.escalationPath}</span></p>` : '' }}\n<p><span class=\"label\">Exceptions Identified:</span></p>\n<ul>\n{{ $json.output.exceptionHandling.exceptionsIdentified.map(exception => `<li>${exception}</li>`).join('') }}\n</ul>\n</div>\n\n<div class=\"footer\">\n<p>This is an automated report generated by the Risk Assessment and Compliance Orchestration system.</p>\n<p>For questions or concerns, please contact the Compliance Team.</p>\n</div>\n</body>\n</html>","options":{},"subject":"=Risk Assessment & Compliance Report - {{ $now.toFormat('yyyy-MM-dd') }}","toEmail":"={{ $('Workflow Configuration').first().json.complianceEmail }}","fromEmail":"<__PLACEHOLDER_VALUE__Sender Email Address__>"},"typeVersion":2.1},{"id":"aa7a4291-59f0-4515-8e2d-966e5964fa03","name":"Calculate Risk Metrics","type":"n8n-nodes-base.code","position":[-1520,496],"parameters":{"jsCode":"// Calculate Advanced Risk Metrics from Merged Financial Data\n// This code processes risk and claims data to compute volatility, concentration indices, and trend analysis\n\nconst items = $input.all();\n\n// Initialize aggregated metrics\nlet totalExposure = 0;\nlet totalClaims = 0;\nlet claimsHistory = [];\nlet exposureByGeography = {};\nlet exposureByIndustry = {};\nlet exposureByCounterparty = {};\n\n// Process each item to extract risk and claims data\nfor (const item of items) {\n  const data = item.json;\n  \n  // Aggregate exposure data\n  if (data.exposure) {\n    totalExposure += data.exposure.amount || 0;\n    \n    // Geographic concentration\n    const geo = data.exposure.geography || 'Unknown';\n    exposureByGeography[geo] = (exposureByGeography[geo] || 0) + (data.exposure.amount || 0);\n    \n    // Industry concentration\n    const industry = data.exposure.industry || 'Unknown';\n    exposureByIndustry[industry] = (exposureByIndustry[industry] || 0) + (data.exposure.amount || 0);\n    \n    // Counterparty concentration\n    const counterparty = data.exposure.counterparty || 'Unknown';\n    exposureByCounterparty[counterparty] = (exposureByCounterparty[counterparty] || 0) + (data.exposure.amount || 0);\n  }\n  \n  // Aggregate claims data\n  if (data.claims) {\n    totalClaims += data.claims.amount || 0;\n    claimsHistory.push({\n      date: data.claims.date || new Date().toISOString(),\n      amount: data.claims.amount || 0,\n      severity: data.claims.severity || 'Unknown'\n    });\n  }\n}\n\n// Calculate concentration indices (Herfindahl-Hirschman Index)\nconst calculateHHI = (distribution, total) => {\n  let hhi = 0;\n  for (const key in distribution) {\n    const share = distribution[key] / total;\n    hhi += share * share;\n  }\n  return hhi * 10000; // Scale to 0-10000\n};\n\nconst geoConcentrationIndex = calculateHHI(exposureByGeography, totalExposure);\nconst industryConcentrationIndex = calculateHHI(exposureByIndustry, totalExposure);\nconst counterpartyConcentrationIndex = calculateHHI(exposureByCounterparty, totalExposure);\n\n// Calculate claims volatility (standard deviation)\nconst calculateVolatility = (values) => {\n  if (values.length === 0) return 0;\n  const mean = values.reduce((sum, val) => sum + val, 0) / values.length;\n  const variance = values.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / values.length;\n  return Math.sqrt(variance);\n};\n\nconst claimsAmounts = claimsHistory.map(c => c.amount);\nconst claimsVolatility = calculateVolatility(claimsAmounts);\n\n// Calculate loss ratio\nconst lossRatio = totalExposure > 0 ? (totalClaims / totalExposure) * 100 : 0;\n\n// Trend analysis - calculate moving average and trend direction\nconst calculateTrend = (values) => {\n  if (values.length < 2) return 'Stable';\n  const recentAvg = values.slice(-3).reduce((sum, val) => sum + val, 0) / Math.min(3, values.length);\n  const olderAvg = values.slice(0, -3).reduce((sum, val) => sum + val, 0) / Math.max(1, values.length - 3);\n  \n  if (recentAvg > olderAvg * 1.1) return 'Increasing';\n  if (recentAvg < olderAvg * 0.9) return 'Decreasing';\n  return 'Stable';\n};\n\nconst claimsTrend = calculateTrend(claimsAmounts);\n\n// Calculate frequency metrics\nconst claimsFrequency = claimsHistory.length;\nconst avgClaimSeverity = claimsAmounts.length > 0 ? claimsAmounts.reduce((sum, val) => sum + val, 0) / claimsAmounts.length : 0;\n\n// Determine top concentrations\nconst getTopConcentrations = (distribution, total, limit = 3) => {\n  return Object.entries(distribution)\n    .map(([key, value]) => ({ name: key, amount: value, percentage: (value / total * 100).toFixed(2) }))\n    .sort((a, b) => b.amount - a.amount)\n    .slice(0, limit);\n};\n\nconst topGeographies = getTopConcentrations(exposureByGeography, totalExposure);\nconst topIndustries = getTopConcentrations(exposureByIndustry, totalExposure);\nconst topCounterparties = getTopConcentrations(exposureByCounterparty, totalExposure);\n\n// Return comprehensive risk metrics\nreturn [{\n  json: {\n    riskMetrics: {\n      totalExposure,\n      totalClaims,\n      lossRatio: lossRatio.toFixed(2),\n      claimsVolatility: claimsVolatility.toFixed(2),\n      claimsFrequency,\n      avgClaimSeverity: avgClaimSeverity.toFixed(2),\n      claimsTrend\n    },\n    concentrationIndices: {\n      geographic: geoConcentrationIndex.toFixed(2),\n      industry: industryConcentrationIndex.toFixed(2),\n      counterparty: counterpartyConcentrationIndex.toFixed(2)\n    },\n    topConcentrations: {\n      geographies: topGeographies,\n      industries: topIndustries,\n      counterparties: topCounterparties\n    },\n    claimsHistory,\n    timestamp: new Date().toISOString()\n  }\n}];"},"typeVersion":2},{"id":"38008399-921b-4890-be8c-ddb9f0346328","name":"Check Critical Risk","type":"n8n-nodes-base.if","position":[-944,544],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.riskScore }}","rightValue":"={{ $('Workflow Configuration').first().json.riskThresholdHigh }}"}]}},"typeVersion":2.3},{"id":"a249e947-fc09-4d6f-b753-5c8d688a66b2","name":"Regulatory Analysis Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-128,432],"parameters":{"text":"={{ $fromAI('riskData', 'Risk assessment data requiring regulatory analysis', 'json') }}","options":{"systemMessage":"You are a Regulatory Analysis Specialist.\n\nYour task is to:\n1. Analyze risk assessment data against applicable regulatory frameworks\n2. Identify specific regulatory requirements triggered by the risk profile\n3. Determine reporting obligations (SOX, Basel III, Solvency II, Dodd-Frank, etc.)\n4. Calculate regulatory capital requirements and reserve adequacy\n5. Flag compliance gaps or violations\n6. Recommend remediation actions\n\nReturn structured analysis with framework identification, requirements, deadlines, and compliance status."},"hasOutputParser":true,"toolDescription":"Analyzes risk data against regulatory frameworks and identifies compliance requirements, reporting obligations, and capital adequacy"},"typeVersion":3},{"id":"6c7b1380-6177-4420-9f6e-012c08be3e05","name":"OpenAI Model - Regulatory Tool","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-112,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":"c20042aa-5152-470a-9f68-9b7c2c16521f","name":"Regulatory Tool Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[32,640],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"applicableFrameworks\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"description\": \"List of applicable regulatory frameworks\"\n    },\n    \"complianceRequirements\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"framework\": {\"type\": \"string\"},\n          \"requirement\": {\"type\": \"string\"},\n          \"deadline\": {\"type\": \"string\"},\n          \"status\": {\"type\": \"string\"}\n        }\n      }\n    },\n    \"capitalRequirements\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"minimumCapital\": {\"type\": \"number\"},\n        \"currentCapital\": {\"type\": \"number\"},\n        \"adequacyRatio\": {\"type\": \"number\"}\n      }\n    },\n    \"complianceGaps\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"remediationActions\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    }\n  },\n  \"required\": [\"applicableFrameworks\", \"complianceRequirements\"]\n}"},"typeVersion":1.3},{"id":"363d2dc7-63b5-44e3-9836-8cba7e5ea089","name":"Exception Handler Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[160,432],"parameters":{"text":"={{ $fromAI('riskData', 'Risk assessment data requiring exception analysis', 'json') }}","options":{"systemMessage":"You are an Exception Handling Specialist.\n\nYour task is to:\n1. Identify exceptions and deviations from standard risk thresholds\n2. Analyze root causes of exceptions\n3. Assess severity and potential impact\n4. Determine appropriate escalation paths based on exception type\n5. Document exception rationale with supporting evidence\n6. Recommend mitigation strategies\n\nReturn structured exception analysis with identified exceptions, severity assessment, escalation recommendations, and mitigation strategies."},"hasOutputParser":true,"toolDescription":"Analyzes risk exceptions, determines escalation paths, and provides mitigation recommendations"},"typeVersion":3},{"id":"35ca2d3b-4a0d-4690-ad8e-bbf17ed8861d","name":"OpenAI Model - Exception Tool","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[160,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":"523ae5b3-8626-4cfa-b4e8-38bf7e2bd9b9","name":"Exception Tool Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[304,640],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"exceptionsIdentified\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"exceptionType\": {\"type\": \"string\"},\n          \"description\": {\"type\": \"string\"},\n          \"severity\": {\"type\": \"string\"},\n          \"rootCause\": {\"type\": \"string\"}\n        }\n      }\n    },\n    \"escalationRequired\": {\"type\": \"boolean\"},\n    \"escalationPath\": {\"type\": \"string\"},\n    \"mitigationStrategies\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"impactAssessment\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"financialImpact\": {\"type\": \"string\"},\n        \"reputationalImpact\": {\"type\": \"string\"},\n        \"operationalImpact\": {\"type\": \"string\"}\n      }\n    }\n  },\n  \"required\": [\"exceptionsIdentified\", \"escalationRequired\", \"mitigationStrategies\"]\n}"},"typeVersion":1.3},{"id":"e4d7bed0-6c15-4d08-ab95-e029dc1113e0","name":"Send Critical Alert to Slack","type":"n8n-nodes-base.slack","position":[-720,544],"webhookId":"9cf22282-3b6d-4257-82e7-4a75653af1d9","parameters":{"text":"=CRITICAL RISK ALERT\n\nRisk Score: {{ $json.output.riskScore }}/100\nRisk Level: {{ $json.output.riskLevel }}\n\nKey Risk Factors:\n{{ $json.output.keyRiskFactors.map(f => `• ${f}`).join('\\n') }}\n\nExposure Concentration:\n• Geographic: {{ $json.output.exposureConcentration?.geographic || 'N/A' }}\n• Industry: {{ $json.output.exposureConcentration?.industry || 'N/A' }}\n• Counterparty: {{ $json.output.exposureConcentration?.counterparty || 'N/A' }}\n\nClaims Trends:\n• Frequency: {{ $json.output.claimsTrends?.frequency || 'N/A' }}\n• Severity: {{ $json.output.claimsTrends?.severity || 'N/A' }}\n• Loss Ratio: {{ $json.output.claimsTrends?.lossRatio || 'N/A' }}\n\nImmediate review required by senior management.","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.slackChannel }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"46da6cc6-36c9-4d6c-a2fd-cdf9c10a17ab","name":"Log to Audit Trail Sheet","type":"n8n-nodes-base.googleSheets","position":[880,512],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":["workflowExecutionId"]},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"name","value":"Audit Trail"},"documentId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.auditSheetId }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"hQFe8XTqJEiHL03Z","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"7c37aa8a-4229-4f4e-8763-c456475054c6","name":"Generate Audit Metadata","type":"n8n-nodes-base.code","position":[656,304],"parameters":{"jsCode":"// Generate comprehensive audit metadata for compliance tracking\nconst workflowId = $workflow.id;\nconst executionId = $execution.id;\nconst executionMode = $execution.mode;\nconst timestamp = new Date().toISOString();\n\n// Get input data from Compliance Orchestration Agent\nconst complianceData = $input.all();\n\n// Extract risk assessment data from the workflow\nconst riskAssessment = $('Risk Signal Agent').first().json;\n\n// Generate data lineage tracking\nconst dataLineage = {\n  sourceNodes: [\n    'Fetch Risk Data',\n    'Fetch Claims Data',\n    'Merge Financial Data',\n    'Risk Signal Agent',\n    'Compliance Orchestration Agent'\n  ],\n  processingSteps: [\n    {\n      step: 1,\n      node: 'Fetch Risk Data',\n      timestamp: timestamp,\n      action: 'Retrieved risk and exposure data from external API'\n    },\n    {\n      step: 2,\n      node: 'Fetch Claims Data',\n      timestamp: timestamp,\n      action: 'Retrieved claims history data from external API'\n    },\n    {\n      step: 3,\n      node: 'Merge Financial Data',\n      timestamp: timestamp,\n      action: 'Combined risk and claims datasets'\n    },\n    {\n      step: 4,\n      node: 'Risk Signal Agent',\n      timestamp: timestamp,\n      action: 'AI-powered risk assessment and scoring'\n    },\n    {\n      step: 5,\n      node: 'Compliance Orchestration Agent',\n      timestamp: timestamp,\n      action: 'Compliance workflow coordination and audit packaging'\n    }\n  ]\n};\n\n// Generate compliance checksums for data integrity\nconst generateChecksum = (data) => {\n  const str = JSON.stringify(data);\n  let hash = 0;\n  for (let i = 0; i < str.length; i++) {\n    const char = str.charCodeAt(i);\n    hash = ((hash << 5) - hash) + char;\n    hash = hash & hash;\n  }\n  return Math.abs(hash).toString(16);\n};\n\nconst checksums = {\n  riskAssessment: generateChecksum(riskAssessment),\n  complianceData: generateChecksum(complianceData),\n  combined: generateChecksum({ riskAssessment, complianceData })\n};\n\n// User context and system information\nconst userContext = {\n  workflowName: $workflow.name,\n  workflowActive: $workflow.active,\n  executionMode: executionMode,\n  triggeredBy: 'Schedule Trigger',\n  n8nVersion: $version || 'unknown'\n};\n\n// Compliance metadata\nconst complianceMetadata = {\n  auditId: `AUDIT-${executionId}-${Date.now()}`,\n  workflowExecutionId: executionId,\n  workflowId: workflowId,\n  executionTimestamp: timestamp,\n  processingDate: new Date().toISOString().split('T')[0],\n  processingTime: new Date().toISOString().split('T')[1],\n  dataLineage: dataLineage,\n  checksums: checksums,\n  userContext: userContext,\n  riskScore: riskAssessment?.riskScore || null,\n  riskLevel: riskAssessment?.riskLevel || null,\n  complianceStatus: complianceData[0]?.json?.auditPackage?.documentationComplete ? 'Complete' : 'Incomplete',\n  retentionPolicy: '7 years',\n  regulatoryFrameworks: complianceData[0]?.json?.regulatoryItems?.map(item => item.framework) || [],\n  auditTrailComplete: true,\n  dataIntegrityVerified: true,\n  version: '1.0'\n};\n\n// Return enriched data with audit metadata\nreturn complianceData.map(item => ({\n  json: {\n    ...item.json,\n    auditMetadata: complianceMetadata\n  }\n}));"},"typeVersion":2},{"id":"bc32edb1-799d-424c-aca1-5cd7d1aa3192","name":"Merge Critical Path","type":"n8n-nodes-base.merge","position":[-496,544],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"ef2f1b92-d303-4b52-9625-35476c2f70ed","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1136,-448],"parameters":{"color":5,"width":592,"height":352,"content":"## Prerequisites\nOpenAI or Nvidia API credentials for AI-powered risk analysis, financial data API access\n## Use Cases\nInsurance companies monitoring claims fraud patterns, financial institutions detecting transaction anomalies\n## Customization\nAdjust risk scoring algorithms for industry-specific thresholds\n## Benefits\nReduces risk detection time by 80%, eliminates manual compliance monitoring"},"typeVersion":1},{"id":"5910dbd2-4a00-45af-885d-9473b997a99c","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1616,-448],"parameters":{"width":464,"height":336,"content":"## Setup Steps\n1. Configure Schedule Trigger with risk monitoring frequency\n2. Connect Workflow Configuration node with data source parameters\n3. Set up Fetch B2B Data and Fetch Claims Data nodes with respective API credentials\n4. Configure Merge Financial Data node for data consolidation\n5. Connect Calculate Risk Metrics node with risk scoring algorithms\n6. Set up Risk Signal Agent with OpenAI/Nvidia API credentials for anomaly detection\n7. Configure parallel output parsers\n8. Connect Check Critical Risk node with severity routing logic\n9. Set up Route by Risk Level node for workflow branching"},"typeVersion":1},{"id":"11f55641-2b1f-4d3f-afdb-ffa6fd3f633d","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-2304,-464],"parameters":{"width":656,"height":368,"content":"## How It Works\nThis workflow automates comprehensive risk signal detection and regulatory compliance management across financial and claims data sources. Designed for risk management teams, compliance officers, and financial auditors, it solves the critical challenge of identifying potential risks while ensuring timely regulatory reporting and stakeholder notifications.\nThe system operates on scheduled intervals, fetching data from multiple sources including financial APIs and claims databases, then merging these streams for unified analysis. It employs an AI-powered risk signal agent to detect anomalies, regulatory violations, and compliance issues. The workflow intelligently routes findings based on risk severity, orchestrating parallel processes for critical risks requiring immediate escalation and standard risks needing documentation. It manages multi-channel notifications through Slack and email, generates comprehensive compliance documentation, and maintains detailed audit trails. By coordinating regulatory analysis, exception handling, and evidence collection, it ensures complete risk visibility while automating compliance workflows."},"typeVersion":1},{"id":"ff620bea-ae54-435e-90c4-c52fa9da2087","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1360,0],"parameters":{"color":7,"width":1168,"height":880,"content":"## AI-Powered Risk Detection\n**What:** Processes merged data through risk signal agent with parallel output parsing for regulatory and operational risk identification\n**Why:** Leverages AI to detect complex risk patterns and compliance violations that rule-based systems miss\n"},"typeVersion":1},{"id":"348c507e-099a-4473-94ee-c5aef73aa26e","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-160,-16],"parameters":{"color":7,"width":1408,"height":1216,"content":"## Severity-Based Orchestration\n**What:** Routes risks through severity-specific workflows with parallel processing for compliance documentation, stakeholder alerts, and audit logging\n**Why:** Ensures critical risks receive immediate multi-channel escalation while standard risks follow proper documentation procedures without bottlenecks"},"typeVersion":1},{"id":"97a2808d-0715-4aea-8ead-71c4a8164cc1","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-2464,16],"parameters":{"color":7,"width":1072,"height":928,"content":"## Multi-Source Risk Aggregation\n**What:** Fetches and merges financial metrics and claims data on scheduled intervals for unified risk analysis\n**Why:** Ensures comprehensive risk coverage by correlating financial anomalies with operational claims data for complete visibility\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"fb6540b5-94dc-41ba-aa43-24c7025d2602","connections":{"Fetch Risk Data":{"main":[[{"node":"Merge Financial Data","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Fetch Claims Data":{"main":[[{"node":"Merge Financial Data","type":"main","index":1}]]},"Risk Signal Agent":{"main":[[{"node":"Route by Risk Level","type":"main","index":0},{"node":"Check Critical Risk","type":"main","index":0}]]},"Check Critical Risk":{"main":[[{"node":"Send Critical Alert to Slack","type":"main","index":0}],[{"node":"Route by Risk Level","type":"main","index":0}]]},"Consolidate Results":{"main":[[{"node":"Send Compliance Report","type":"main","index":0}]]},"Merge Critical Path":{"main":[[{"node":"Compliance Orchestration Agent","type":"main","index":0}]]},"Route by Risk Level":{"main":[[{"node":"Compliance Orchestration Agent","type":"main","index":0},{"node":"Merge Critical Path","type":"main","index":1}],[{"node":"Consolidate Results","type":"main","index":1}]]},"Merge Financial Data":{"main":[[{"node":"Risk Signal Agent","type":"main","index":0},{"node":"Calculate Risk Metrics","type":"main","index":0}]]},"Calculate Risk Metrics":{"main":[[{"node":"Risk Signal Agent","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Fetch Risk Data","type":"main","index":0},{"node":"Fetch Claims Data","type":"main","index":0}]]},"Generate Audit Metadata":{"main":[[{"node":"Log to Audit Trail Sheet","type":"main","index":0},{"node":"Consolidate Results","type":"main","index":0}]]},"Compliance Output Parser":{"ai_outputParser":[[{"node":"Compliance Orchestration Agent","type":"ai_outputParser","index":0}]]},"OpenAI Model - Risk Agent":{"ai_languageModel":[[{"node":"Risk Signal Agent","type":"ai_languageModel","index":0}]]},"Exception Handler Agent Tool":{"ai_tool":[[{"node":"Compliance Orchestration Agent","type":"ai_tool","index":0}]]},"Exception Tool Output Parser":{"ai_outputParser":[[{"node":"Exception Handler Agent Tool","type":"ai_outputParser","index":0}]]},"Send Critical Alert to Slack":{"main":[[{"node":"Merge Critical Path","type":"main","index":0}]]},"OpenAI Model - Exception Tool":{"ai_languageModel":[[{"node":"Exception Handler Agent Tool","type":"ai_languageModel","index":0}]]},"Regulatory Tool Output Parser":{"ai_outputParser":[[{"node":"Regulatory Analysis Agent Tool","type":"ai_outputParser","index":0}]]},"Risk Assessment Output Parser":{"ai_outputParser":[[{"node":"Risk Signal Agent","type":"ai_outputParser","index":0}]]},"Compliance Orchestration Agent":{"main":[[{"node":"Consolidate Results","type":"main","index":0},{"node":"Generate Audit Metadata","type":"main","index":0}]]},"OpenAI Model - Regulatory Tool":{"ai_languageModel":[[{"node":"Regulatory Analysis Agent Tool","type":"ai_languageModel","index":0}]]},"Regulatory Analysis Agent Tool":{"ai_tool":[[{"node":"Compliance Orchestration Agent","type":"ai_tool","index":0}]]},"OpenAI Model - Compliance Agent":{"ai_languageModel":[[{"node":"Compliance Orchestration Agent","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":32,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.merge":{"count":3},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.googleSheets":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":2},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":4},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":4}}},"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":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":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":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"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/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/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/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":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"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":48,"name":"AI RAG"}],"image":[]}}