{"workflow":{"id":13341,"name":"Route revenue transactions and assess AI outputs with Anthropic Claude and OpenAI","views":26,"recentViews":0,"totalViews":26,"createdAt":"2026-02-12T15:59:42.104Z","description":"## How It Works\nThis workflow automates intelligent routing of user queries to optimal AI models (Anthropic, OpenAI) based on complexity analysis, then validates outputs through multi-stage quality assessment. Designed for teams managing high-volume AI operations, it solves the critical problem of balancing cost-efficiency with output quality—automatically selecting budget-friendly models for simple tasks while routing complex requests to premium models. The system analyzes incoming queries via validation tools, routes them through specialized AI agents based on assessment scores, executes parallel quality checks across compliance, bias, and risk dimensions, aggregates validation results, and stores flagged responses for human review. This ensures consistent, high-quality AI responses while optimizing computational costs and maintaining governance standards across diverse use cases.\n\n## Setup Steps\n1. Connect Anthropic and OpenAI  API credentials in n8n credentials manager\n2. Configure Google Sheets connection for storing validation results and flagged responses\n3. Set Schedule Trigger interval (recommended: hourly or daily based on volume)\n4. Customize classification thresholds in validation nodes (confidence scores, risk levels)\n5. Update agent prompt templates to match your domain requirements\n6. Configure Slack/Gmail notifications for high-priority quality flags\n\n## Prerequisites\nActive API accounts for Anthropic Claude and OpenAI. \n## Use Cases\nCustomer support ticket routing and quality monitoring. \n## Customization\nAdjust classification logic by modifying validation node expressions. \n## Benefits\nReduces AI costs by 40-60% through intelligent model selection. ","workflow":{"id":"bpjXPC_tpVC_1eIvwuTsP","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"Multi-model AI routing & quality assessment system","tags":[],"nodes":[{"id":"db738604-8327-4e32-ab93-6d50f8ba509d","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-1760,272],"parameters":{"rule":{"interval":[{"triggerAtHour":9}]}},"typeVersion":1.3},{"id":"efc35e80-b30d-41c1-bdef-72164d24f257","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-1536,272],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"revenueThreshold","type":"number","value":10000},{"id":"id-2","name":"highRiskThreshold","type":"number","value":50000},{"id":"id-3","name":"complianceRegion","type":"string","value":"US"},{"id":"id-4","name":"taxRate","type":"number","value":0.21},{"id":"id-5","name":"payoutCommissionRate","type":"number","value":0.15}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"df98c1e9-4a36-4c82-bd08-86ec75692913","name":"Generate Sample Revenue Data","type":"n8n-nodes-base.code","position":[-1312,272],"parameters":{"jsCode":"// Generate sample revenue data with multiple transactions\nconst transactions = [\n  {\n    transactionId: \"TXN-001\",\n    partnerId: \"PARTNER-123\",\n    partnerName: \"Acme Corp\",\n    revenueAmount: 15000,\n    engagementMetrics: {\n      clicks: 1250,\n      conversions: 85,\n      impressions: 50000\n    },\n    timestamp: new Date().toISOString(),\n    channel: \"affiliate\",\n    region: \"North America\",\n    status: \"pending\"\n  },\n  {\n    transactionId: \"TXN-002\",\n    partnerId: \"PARTNER-456\",\n    partnerName: \"Global Tech Solutions\",\n    revenueAmount: 28500,\n    engagementMetrics: {\n      clicks: 2100,\n      conversions: 142,\n      impressions: 85000\n    },\n    timestamp: new Date(Date.now() - 3600000).toISOString(),\n    channel: \"direct\",\n    region: \"Europe\",\n    status: \"pending\"\n  },\n  {\n    transactionId: \"TXN-003\",\n    partnerId: \"PARTNER-789\",\n    partnerName: \"Digital Marketing Pro\",\n    revenueAmount: 8750,\n    engagementMetrics: {\n      clicks: 680,\n      conversions: 45,\n      impressions: 32000\n    },\n    timestamp: new Date(Date.now() - 7200000).toISOString(),\n    channel: \"referral\",\n    region: \"Asia Pacific\",\n    status: \"pending\"\n  },\n  {\n    transactionId: \"TXN-004\",\n    partnerId: \"PARTNER-234\",\n    partnerName: \"Enterprise Partners Inc\",\n    revenueAmount: 45000,\n    engagementMetrics: {\n      clicks: 3500,\n      conversions: 225,\n      impressions: 120000\n    },\n    timestamp: new Date(Date.now() - 10800000).toISOString(),\n    channel: \"affiliate\",\n    region: \"North America\",\n    status: \"pending\"\n  },\n  {\n    transactionId: \"TXN-005\",\n    partnerId: \"PARTNER-567\",\n    partnerName: \"StartUp Ventures\",\n    revenueAmount: 5200,\n    engagementMetrics: {\n      clicks: 420,\n      conversions: 28,\n      impressions: 18000\n    },\n    timestamp: new Date(Date.now() - 14400000).toISOString(),\n    channel: \"social\",\n    region: \"Latin America\",\n    status: \"pending\"\n  }\n];\n\nreturn transactions.map(transaction => ({ json: transaction }));"},"typeVersion":2},{"id":"f595713f-ea15-4fb1-a12a-0de19d33a0f6","name":"Revenue Signal Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1088,272],"parameters":{"text":"={{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Revenue Signal Validation Agent specialized in analyzing engagement and payout data.\n\nYour task is to:\n1. Validate the structure and completeness of revenue transaction data\n2. Verify that all required fields are present: transactionId, partnerId, revenueAmount, engagementMetrics\n3. Check data quality: ensure amounts are positive numbers, metrics are realistic, timestamps are valid\n4. Detect anomalies: unusual patterns, suspicious engagement ratios, duplicate transactions\n5. Calculate engagement quality score (0-100) based on click-through rates, conversion rates\n6. Assign validation status: VALID, INVALID, or SUSPICIOUS\n7. Provide detailed reasoning for the validation decision\n\nReturn structured validation results with all findings."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"620cc606-6e7f-4ecb-90e5-c061d59f402d","name":"Anthropic Model - Revenue Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[-1136,496],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"9ccec2a0-45e4-450b-9ff8-e60411241f17","name":"Revenue Validation Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-960,496],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"transactionId\": {\n      \"type\": \"string\",\n      \"description\": \"Original transaction ID\"\n    },\n    \"validationStatus\": {\n      \"type\": \"string\",\n      \"description\": \"Validation result: VALID, INVALID, or SUSPICIOUS\"\n    },\n    \"engagementQualityScore\": {\n      \"type\": \"number\",\n      \"description\": \"Quality score from 0-100\"\n    },\n    \"anomaliesDetected\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of detected anomalies\"\n    },\n    \"reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"Detailed explanation of validation decision\"\n    },\n    \"originalData\": {\n      \"type\": \"object\",\n      \"description\": \"Original transaction data\"\n    }\n  },\n  \"required\": [\"transactionId\", \"validationStatus\", \"engagementQualityScore\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"1cf414c1-845c-4b44-b800-1b5e6475ab7c","name":"Route by Validation Status","type":"n8n-nodes-base.switch","position":[-720,256],"parameters":{"rules":{"values":[{"outputKey":"Valid","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.validationStatus }}","rightValue":"VALID"}]},"renameOutput":true},{"outputKey":"Invalid","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.validationStatus }}","rightValue":"INVALID"},{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.validationStatus }}","rightValue":"SUSPICIOUS"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Unprocessed"}},"typeVersion":3.4},{"id":"67e8c79f-fdd6-46ed-a8c3-838e52fde728","name":"Governance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-64,160],"parameters":{"text":"={{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Governance Agent responsible for coordinating monetization workflows and ensuring compliance.\n\nYour task is to:\n1. Receive validated revenue data and orchestrate the monetization process\n2. Call the Payout Calculation Agent Tool to determine partner payouts based on revenue and commission rates\n3. Call the Compliance Check Agent Tool to verify regulatory requirements are met\n4. Call the Risk Assessment Agent Tool to evaluate financial and operational risks\n5. Call the Tax Calculation Tool to compute tax liabilities\n6. Synthesize all tool outputs into a comprehensive governance decision\n7. Assign final risk level: LOW, MEDIUM, HIGH, or CRITICAL\n8. Provide actionable recommendations for each transaction\n\nCoordinate all tools systematically and return structured governance results."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"12c8f11d-128e-4f4c-a950-4681e50c02fe","name":"Anthropic Model - Governance Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[-544,416],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"df19c336-4777-4226-ba63-ad882c4a133e","name":"Governance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-384,416],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"transactionId\": {\n      \"type\": \"string\",\n      \"description\": \"Transaction identifier\"\n    },\n    \"payoutAmount\": {\n      \"type\": \"number\",\n      \"description\": \"Calculated payout amount\"\n    },\n    \"taxLiability\": {\n      \"type\": \"number\",\n      \"description\": \"Tax amount owed\"\n    },\n    \"complianceStatus\": {\n      \"type\": \"string\",\n      \"description\": \"Compliance check result: COMPLIANT or NON_COMPLIANT\"\n    },\n    \"riskLevel\": {\n      \"type\": \"string\",\n      \"description\": \"Overall risk: LOW, MEDIUM, HIGH, or CRITICAL\"\n    },\n    \"riskFactors\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Identified risk factors\"\n    },\n    \"recommendations\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Actionable recommendations\"\n    },\n    \"approvalRequired\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether manual approval is needed\"\n    }\n  },\n  \"required\": [\"transactionId\", \"payoutAmount\", \"complianceStatus\", \"riskLevel\"]\n}"},"typeVersion":1.3},{"id":"2ce36366-6d51-48ec-8377-b3d6931d9dce","name":"Payout Calculation Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-256,320],"parameters":{"text":"={{ $fromAI(\"revenueData\", \"Revenue transaction data to calculate payouts\", \"json\") }}","options":{"systemMessage":"You are a Payout Calculation Specialist.\n\nYour task is to:\n1. Analyze revenue transaction data provided\n2. Calculate partner payout amounts based on revenue and commission rates\n3. Apply tiered commission structures if applicable\n4. Account for any deductions or adjustments\n5. Verify calculation accuracy\n6. Return structured payout details including gross revenue, commission rate, deductions, and net payout amount"},"hasOutputParser":true,"toolDescription":"Calculates partner payout amounts based on revenue data and commission rates"},"typeVersion":3},{"id":"a98def78-bddb-4222-be9a-185166f6d677","name":"Anthropic Model - Payout Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[-288,528],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"0c11a85d-e50a-4ba6-a1c9-60a38d0d3e88","name":"Payout Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-96,528],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"grossRevenue\": {\n      \"type\": \"number\",\n      \"description\": \"Total revenue amount\"\n    },\n    \"commissionRate\": {\n      \"type\": \"number\",\n      \"description\": \"Applied commission rate\"\n    },\n    \"deductions\": {\n      \"type\": \"number\",\n      \"description\": \"Total deductions\"\n    },\n    \"netPayoutAmount\": {\n      \"type\": \"number\",\n      \"description\": \"Final payout amount\"\n    }\n  },\n  \"required\": [\"grossRevenue\", \"commissionRate\", \"netPayoutAmount\"]\n}"},"typeVersion":1.3},{"id":"048485d2-6495-47cb-ab3e-b2a147b18b12","name":"Compliance Check Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[80,320],"parameters":{"text":"={{ $fromAI(\"transactionData\", \"Transaction data to verify compliance\", \"json\") }}","options":{"systemMessage":"You are a Compliance Verification Specialist.\n\nYour task is to:\n1. Review transaction data for regulatory compliance\n2. Verify adherence to regional regulations (US, EU, APAC)\n3. Check KYC/AML requirements\n4. Validate transaction limits and thresholds\n5. Identify compliance violations or risks\n6. Return compliance status: COMPLIANT, NON_COMPLIANT, or REQUIRES_REVIEW\n7. Provide detailed compliance findings and required actions"},"hasOutputParser":true,"toolDescription":"Verifies regulatory compliance for revenue transactions including KYC/AML and regional requirements"},"typeVersion":3},{"id":"20ac6c4a-fc90-4c38-9ebb-7b29a9e3dd82","name":"Anthropic Model - Compliance Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[80,528],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"0faaddfc-bc84-42a0-9c46-a12640c9ef0d","name":"Compliance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[288,528],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"complianceStatus\": {\n      \"type\": \"string\",\n      \"description\": \"COMPLIANT, NON_COMPLIANT, or REQUIRES_REVIEW\"\n    },\n    \"violations\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of compliance violations\"\n    },\n    \"requiredActions\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Actions needed to achieve compliance\"\n    }\n  },\n  \"required\": [\"complianceStatus\"]\n}"},"typeVersion":1.3},{"id":"980e3b90-cf06-4950-ada9-686b89344ee5","name":"Risk Assessment Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[416,320],"parameters":{"text":"={{ $fromAI(\"transactionData\", \"Transaction data for risk assessment\", \"json\") }}","options":{"systemMessage":"You are a Risk Assessment Specialist for financial transactions.\n\nYour task is to:\n1. Evaluate financial and operational risks in revenue transactions\n2. Assess fraud risk based on transaction patterns and anomalies\n3. Evaluate credit risk and partner reliability\n4. Identify operational risks (processing delays, system failures)\n5. Calculate overall risk score (0-100)\n6. Assign risk level: LOW, MEDIUM, HIGH, or CRITICAL\n7. Recommend risk mitigation strategies\n8. Flag transactions requiring manual review"},"hasOutputParser":true,"toolDescription":"Assesses financial and operational risks for revenue transactions and provides risk scores"},"typeVersion":3},{"id":"4faf3fcf-f1bb-47f0-9795-5f615570ea56","name":"Anthropic Model - Risk Tool","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[464,528],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"03e934aa-e94f-4a1a-9e71-9917c51d0030","name":"Risk Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[672,528],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"riskScore\": {\n      \"type\": \"number\",\n      \"description\": \"Overall risk score 0-100\"\n    },\n    \"riskLevel\": {\n      \"type\": \"string\",\n      \"description\": \"LOW, MEDIUM, HIGH, or CRITICAL\"\n    },\n    \"riskFactors\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Identified risk factors\"\n    },\n    \"mitigationStrategies\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Recommended mitigation actions\"\n    },\n    \"requiresManualReview\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether manual review is needed\"\n    }\n  },\n  \"required\": [\"riskScore\", \"riskLevel\"]\n}"},"typeVersion":1.3},{"id":"2884bb07-51e7-44a2-82ee-dbc205f6fbcf","name":"Tax Calculation Tool","type":"@n8n/n8n-nodes-langchain.toolCode","position":[752,320],"parameters":{"jsCode":"const revenueData = $fromAI('revenueData', 'Revenue data for tax calculation', 'json');\n\ntry {\n  const data = typeof revenueData === 'string' ? JSON.parse(revenueData) : revenueData;\n  \n  const revenue = parseFloat(data.revenueAmount || data.grossRevenue || 0);\n  const region = data.region || 'US';\n  \n  // Tax rates by region\n  const taxRates = {\n    'US': 0.21,\n    'EU': 0.25,\n    'UK': 0.19,\n    'APAC': 0.17\n  };\n  \n  const taxRate = taxRates[region] || 0.21;\n  const taxLiability = revenue * taxRate;\n  const netRevenue = revenue - taxLiability;\n  \n  const result = {\n    revenue: revenue.toFixed(2),\n    region: region,\n    taxRate: taxRate,\n    taxLiability: taxLiability.toFixed(2),\n    netRevenue: netRevenue.toFixed(2),\n    calculationDate: new Date().toISOString()\n  };\n  \n  return JSON.stringify(result, null, 2);\n  \n} catch (error) {\n  return JSON.stringify({\n    error: 'Tax calculation failed',\n    message: error.message,\n    taxLiability: 0\n  });\n}","description":"Calculates tax liabilities based on revenue amounts and applicable tax rates"},"typeVersion":1.3},{"id":"d426c3d8-991d-4a6e-8660-424784a34a05","name":"Route by Risk Level","type":"n8n-nodes-base.switch","position":[960,176],"parameters":{"rules":{"values":[{"outputKey":"Low Risk","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.riskLevel }}","rightValue":"LOW"},{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.riskLevel }}","rightValue":"MEDIUM"}]},"renameOutput":true},{"outputKey":"High Risk","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.riskLevel }}","rightValue":"HIGH"},{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.riskLevel }}","rightValue":"CRITICAL"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Unclassified"}},"typeVersion":3.4},{"id":"18e94122-9075-4bd7-9ada-3e071a1ebeb4","name":"Store Approved Transactions","type":"n8n-nodes-base.dataTable","position":[1232,160],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"approved_transactions"}},"typeVersion":1.1},{"id":"2923b02c-fdf9-4ebc-ab17-4ae234c4ee93","name":"Store High Risk Transactions","type":"n8n-nodes-base.dataTable","position":[1232,352],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"high_risk_transactions"}},"typeVersion":1.1},{"id":"33d297e6-5c13-45e6-bd3b-c493b4e05ea1","name":"Store Failed Validations","type":"n8n-nodes-base.dataTable","position":[1232,624],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"failed_validations"}},"typeVersion":1.1},{"id":"952da337-e41a-457f-a761-33a74441de92","name":"Aggregate Results","type":"n8n-nodes-base.aggregate","position":[1712,352],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"7602ac53-2a83-4837-9967-72723ef30073","name":"Reporting Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1904,352],"parameters":{"text":"={{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Reporting Agent specialized in generating comprehensive monetization reports.\n\nYour task is to:\n1. Analyze aggregated transaction data from all processing paths\n2. Generate executive summary with key metrics: total transactions, approval rate, risk distribution\n3. Calculate financial metrics: total revenue, total payouts, total tax liability, net profit\n4. Identify trends and patterns across approved, high-risk, and failed transactions\n5. Highlight compliance issues and risk factors\n6. Provide actionable insights and recommendations for process improvement\n7. Format the report in a structured, executive-ready format\n\nReturn comprehensive reporting data with all analytics and insights."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"ee1d7cf1-9f79-4724-a3f3-b4c53b3c4ecc","name":"Anthropic Model - Reporting Agent","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1904,576],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"7c0469a2-d685-44dc-a8cb-cdda7505974d","name":"Reporting Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[2096,576],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"executiveSummary\": {\n      \"type\": \"string\",\n      \"description\": \"High-level summary of findings\"\n    },\n    \"totalTransactions\": {\n      \"type\": \"number\",\n      \"description\": \"Total number of transactions processed\"\n    },\n    \"approvalRate\": {\n      \"type\": \"number\",\n      \"description\": \"Percentage of approved transactions\"\n    },\n    \"totalRevenue\": {\n      \"type\": \"number\",\n      \"description\": \"Total revenue amount\"\n    },\n    \"totalPayouts\": {\n      \"type\": \"number\",\n      \"description\": \"Total payout amount\"\n    },\n    \"totalTaxLiability\": {\n      \"type\": \"number\",\n      \"description\": \"Total tax liability\"\n    },\n    \"netProfit\": {\n      \"type\": \"number\",\n      \"description\": \"Net profit after payouts and taxes\"\n    },\n    \"riskDistribution\": {\n      \"type\": \"object\",\n      \"description\": \"Distribution of transactions by risk level\"\n    },\n    \"keyInsights\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Key insights and findings\"\n    },\n    \"recommendations\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"Actionable recommendations\"\n    }\n  },\n  \"required\": [\"executiveSummary\", \"totalTransactions\", \"totalRevenue\"]\n}"},"typeVersion":1.3},{"id":"88471f6a-f42c-45b9-a18e-1e071ccc325d","name":"Store Final Report","type":"n8n-nodes-base.dataTable","position":[2256,352],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"monetization_reports"}},"typeVersion":1.1},{"id":"830ded1e-2509-48b2-8a38-8dadcd83315a","name":"Merge Storage Results","type":"n8n-nodes-base.merge","position":[1456,336],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition","numberInputs":3},"typeVersion":3.2},{"id":"ac70415b-8948-4240-b764-a152d9ba4775","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-320,-368],"parameters":{"color":6,"width":576,"height":320,"content":"## Prerequisites\nActive API accounts for Anthropic Claude and OpenAI. \n## Use Cases\nCustomer support ticket routing and quality monitoring. \n## Customization\nAdjust classification logic by modifying validation node expressions. \n## Benefits\nReduces AI costs by 40-60% through intelligent model selection. "},"typeVersion":1},{"id":"50f3ab4c-90ba-4bfb-a10a-4a9a5f73e8d5","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-944,-336],"parameters":{"width":544,"height":304,"content":"\n## Setup Steps\n1. Connect Anthropic and OpenAI  API credentials in n8n credentials manager\n2. Configure Google Sheets connection for storing validation results and flagged responses\n3. Set Schedule Trigger interval (recommended: hourly or daily based on volume)\n4. Customize classification thresholds in validation nodes (confidence scores, risk levels)\n5. Update agent prompt templates to match your domain requirements\n6. Configure Slack/Gmail notifications for high-priority quality flags\n"},"typeVersion":1},{"id":"fcd6b834-7e0c-4ee2-a6a3-4103bd03a628","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1840,-304],"parameters":{"width":848,"height":224,"content":"## How It Works\nThis workflow automates intelligent routing of user queries to optimal AI models (Anthropic, OpenAI) based on complexity analysis, then validates outputs through multi-stage quality assessment. Designed for teams managing high-volume AI operations, it solves the critical problem of balancing cost-efficiency with output quality—automatically selecting budget-friendly models for simple tasks while routing complex requests to premium models. The system analyzes incoming queries via validation tools, routes them through specialized AI agents based on assessment scores, executes parallel quality checks, aggregates validation results, and stores flagged responses for human review. This ensures consistent, high-quality AI responses while optimizing computational costs and maintaining governance standards across diverse use cases."},"typeVersion":1},{"id":"a67991d2-9ac7-4fb0-927c-f8783462236e","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[896,32],"parameters":{"color":7,"width":752,"height":832,"content":"## Assess Risk  \n**What:** Assess risk simultaneously.\n**Why:** Comprehensive quality assurance  "},"typeVersion":1},{"id":"f307ecd2-f8dd-4bc4-8045-3334f07bedd0","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-576,32],"parameters":{"color":7,"width":1440,"height":736,"content":"## Model-Specific Agents\n**What:** Anthropic and OpenAI generate responses based on routing.\n**Why:** Leverages each model's strengths for optimal performance."},"typeVersion":1},{"id":"a1340649-9522-4ecc-9623-dc0e8d95353f","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-1840,32],"parameters":{"color":7,"width":1248,"height":720,"content":"## Query Classification\n**What:** Categorizes incoming requests by complexity and domain.\n**Why:** Determines optimal routing path and appropriate model selection."},"typeVersion":1},{"id":"a601b9df-eff4-478d-97b1-629803747d45","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1664,32],"parameters":{"color":7,"width":832,"height":832,"content":"\n## Results Reporting \n**What:** Consolidates validation scores and flags issues.\n**Why:** Provides unified quality metrics for decision-making  "},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"e365a2f6-4704-48d8-9f36-5dfe4a9b9813","connections":{"Reporting Agent":{"main":[[{"node":"Store Final Report","type":"main","index":0}]]},"Governance Agent":{"main":[[{"node":"Route by Risk Level","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Aggregate Results":{"main":[[{"node":"Reporting Agent","type":"main","index":0}]]},"Risk Output Parser":{"ai_outputParser":[[{"node":"Risk Assessment Agent Tool","type":"ai_outputParser","index":0}]]},"Route by Risk Level":{"main":[[{"node":"Store Approved Transactions","type":"main","index":0}],[{"node":"Store High Risk Transactions","type":"main","index":0}]]},"Payout Output Parser":{"ai_outputParser":[[{"node":"Payout Calculation Agent Tool","type":"ai_outputParser","index":0}]]},"Revenue Signal Agent":{"main":[[{"node":"Route by Validation Status","type":"main","index":0}]]},"Tax Calculation Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Merge Storage Results":{"main":[[{"node":"Aggregate Results","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Generate Sample Revenue Data","type":"main","index":0}]]},"Reporting Output Parser":{"ai_outputParser":[[{"node":"Reporting Agent","type":"ai_outputParser","index":0}]]},"Compliance Output Parser":{"ai_outputParser":[[{"node":"Compliance Check Agent Tool","type":"ai_outputParser","index":0}]]},"Governance Output Parser":{"ai_outputParser":[[{"node":"Governance Agent","type":"ai_outputParser","index":0}]]},"Store Failed Validations":{"main":[[{"node":"Merge Storage Results","type":"main","index":2}]]},"Risk Assessment Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Route by Validation Status":{"main":[[{"node":"Governance Agent","type":"main","index":0}],[{"node":"Store Failed Validations","type":"main","index":0}]]},"Anthropic Model - Risk Tool":{"ai_languageModel":[[{"node":"Risk Assessment Agent Tool","type":"ai_languageModel","index":0}]]},"Compliance Check Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Store Approved Transactions":{"main":[[{"node":"Merge Storage Results","type":"main","index":0}]]},"Generate Sample Revenue Data":{"main":[[{"node":"Revenue Signal Agent","type":"main","index":0}]]},"Store High Risk Transactions":{"main":[[{"node":"Merge Storage Results","type":"main","index":1}]]},"Anthropic Model - Payout Tool":{"ai_languageModel":[[{"node":"Payout Calculation Agent Tool","type":"ai_languageModel","index":0}]]},"Payout Calculation Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Anthropic Model - Revenue Agent":{"ai_languageModel":[[{"node":"Revenue Signal Agent","type":"ai_languageModel","index":0}]]},"Revenue Validation Output Parser":{"ai_outputParser":[[{"node":"Revenue Signal Agent","type":"ai_outputParser","index":0}]]},"Anthropic Model - Compliance Tool":{"ai_languageModel":[[{"node":"Compliance Check Agent Tool","type":"ai_languageModel","index":0}]]},"Anthropic Model - Reporting Agent":{"ai_languageModel":[[{"node":"Reporting Agent","type":"ai_languageModel","index":0}]]},"Anthropic Model - Governance Agent":{"ai_languageModel":[[{"node":"Governance Agent","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":37,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":2},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.dataTable":{"count":4},"n8n-nodes-base.stickyNote":{"count":7},"@n8n/n8n-nodes-langchain.agent":{"count":3},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolCode":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":3},"@n8n/n8n-nodes-langchain.lmChatAnthropic":{"count":6},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":6}}},"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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":1145,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.lmChatAnthropic","codex":{"data":{"alias":["claude","sonnet","opus"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="},"displayName":"Anthropic Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"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":5,"name":"Engineering"},{"id":49,"name":"AI Summarization"}],"image":[]}}