{"workflow":{"id":14436,"name":"Review legal policies with GPT-4o, Gmail, Slack, and Google Sheets","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-03-29T10:28:25.836Z","description":"## How It Works\nThis workflow automates legal policy governance for legal teams, policy managers, and compliance officers, eliminating manual document review, approval classification, and multi-channel stakeholder distribution. Submitted policy documents are form-triggered, extracted into structured text, and passed to the Legal Governance Agent. Backed by shared memory and a governance model, it coordinates three specialist agents: Policy Analysis (content evaluation), Compliance Tracking (regulatory alignment), and Legal Summary (structured report generation). Gmail and Slack notification tools handle multi-channel alerts in parallel. Outputs are parsed and routed by approval status across four concurrent Google Sheets tracks: policy record storage with stakeholder notifications, approval preparation and tracking, compliance record preparation and tracking, and audit log generation, ensuring a complete, audit-ready governance trail for every submission.\n## Setup Steps\n1. Import workflow; configure the Policy Submission Form trigger.\n2. Add AI model credentials to the Legal Governance Agent, Policy Analysis Agent, Compliance Tracking Agent, and Legal Summary Agent.\n3. Connect Gmail credentials to the Email Notification Tool; link Slack credentials to the Slack Notification Tool.\n4. Link Google Sheets credentials; set sheet IDs for Policy Records, Approvals, Compliance, and Audit Trail tabs.\n## Prerequisites\n- OpenAI API key (or compatible LLM)\n- Gmail account with OAuth credentials\n- Slack workspace with bot credentials\n- Google Sheets with policy, approval, compliance, and audit tabs pre-created\n## Use Cases\n- Legal teams automating policy submission review and approval classification\n## Customisation\n- Extend routing logic to include partial-approval or escalation tiers for complex policies\n## Benefits\n- Eliminates manual policy triage and stakeholder notification across large submission volumes\n","workflow":{"id":"IZ0qoQ92vI8smhR4","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI-powered legal policy governance with compliance tracking and notification","tags":[],"nodes":[{"id":"f224a44f-c7d9-48b8-81e1-2741f09534df","name":"Policy Submission Form","type":"n8n-nodes-base.formTrigger","position":[256,784],"webhookId":"b6554366-88ed-4396-8552-142dafde7941","parameters":{"options":{"appendAttribution":false},"formTitle":"Legal Policy Submission & Review","formFields":{"values":[{"fieldName":"policyTitle","fieldLabel":"Policy Title","requiredField":true},{"fieldName":"policyType","fieldType":"dropdown","fieldLabel":"Policy Type","fieldOptions":{"values":[{"option":"Contract"},{"option":"Internal Policy"},{"option":"Compliance Document"},{"option":"Legal Agreement"},{"option":"Regulatory Requirement"}]},"requiredField":true},{"fieldName":"policyDocument","fieldType":"file","fieldLabel":"Policy Document (PDF/DOCX)","requiredField":true},{"fieldName":"contractualRequirements","fieldType":"textarea","fieldLabel":"Key Contractual Requirements","placeholder":"List key requirements, obligations, or compliance criteria"},{"fieldName":"stakeholders","fieldType":"textarea","fieldLabel":"Stakeholder Emails (comma-separated)","placeholder":"user@example.com, user@example.com","requiredField":true}]},"formDescription":"Submit legal policies and contracts for AI-driven analysis, compliance validation, and governance approval workflow"},"typeVersion":2.5},{"id":"dcd04c30-5764-481e-a62e-ae7fc37501c3","name":"Extract Policy Document","type":"n8n-nodes-base.extractFromFile","position":[480,784],"parameters":{"options":{},"binaryPropertyName":"policyDocument"},"typeVersion":1.1},{"id":"f2a7630e-147c-446b-ba17-badfc4b2f749","name":"Policy Analysis Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[784,1232],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"0f674b6e-9ddf-4587-9a60-bfc4399753c1","name":"Policy Analysis Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[832,1008],"parameters":{"text":"={{ $fromAI('policy_content', 'The policy document content and contractual requirements to analyze', 'string') }}","options":{"systemMessage":"You are a Policy Analysis Agent specializing in legal policy review and contractual analysis. Your role is to: 1) Analyze policy documents for legal compliance and contractual obligations, 2) Identify gaps, risks, and areas requiring attention, 3) Validate alignment with regulatory requirements, 4) Provide structured analysis with risk levels and recommendations. Return your analysis in a clear, structured format with sections for: Summary, Key Findings, Compliance Status, Risk Assessment, and Recommendations."},"toolDescription":"Reviews internal legal policies and contractual requirements, identifies compliance gaps, validates policy alignment with regulations, and provides detailed legal analysis"},"typeVersion":3},{"id":"1d9d207e-6249-4109-8069-50f5023222ec","name":"Compliance Tracking Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1200,1216],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"76b3d25a-2d18-4436-b2f1-64e76e51dd54","name":"Compliance Tracking Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1120,1008],"parameters":{"text":"={{ $fromAI('policy_analysis', 'The policy analysis results to validate for compliance', 'string') }}","options":{"systemMessage":"You are a Compliance Tracking Agent specializing in regulatory compliance and policy validation. Your role is to: 1) Validate policy alignment with relevant compliance frameworks (GDPR, SOC2, HIPAA, etc.), 2) Track compliance status and identify gaps, 3) Assess regulatory requirements and obligations, 4) Generate compliance scores and tracking metrics. Return structured compliance data with: Compliance Score (0-100), Framework Alignment, Regulatory Requirements, Gaps Identified, and Remediation Actions."},"toolDescription":"Validates policy alignment with compliance frameworks, tracks compliance status, identifies regulatory requirements, and maintains compliance records"},"typeVersion":3},{"id":"2268a7fb-6dff-44be-a4e1-e4ea03505143","name":"Legal Summary Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1488,1216],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.3},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"02778f6a-9298-48ce-84a4-5ea536494bed","name":"Legal Summary Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1408,1008],"parameters":{"text":"={{ $fromAI('analysis_data', 'The policy analysis and compliance data to summarize', 'string') }}","options":{"systemMessage":"You are a Legal Summary Agent specializing in legal documentation and audit reporting. Your role is to: 1) Generate concise executive summaries of policy reviews, 2) Create audit-ready governance documentation, 3) Produce compliance reports for stakeholders, 4) Format legal findings for decision-makers. Return professional documentation with: Executive Summary, Key Legal Findings, Compliance Status, Approval Recommendations, and Audit Trail Information."},"toolDescription":"Generates executive legal summaries, audit-ready documentation, and governance reports from policy analysis and compliance data"},"typeVersion":3},{"id":"c8d37d63-cb7f-498e-a0e2-7bd45ab8aad3","name":"Legal Governance Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[704,1008],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"d9f5332c-524a-40bc-af1e-3df067632e56","name":"Governance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[2016,1008],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"approvalStatus\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"approved\", \"requires_review\", \"rejected\"]\n\t\t},\n\t\t\"riskLevel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"low\", \"medium\", \"high\", \"critical\"]\n\t\t},\n\t\t\"complianceScore\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"policyAnalysisSummary\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"complianceFindings\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"legalSummary\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"approvalRecommendation\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"stakeholderNotifications\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"auditNotes\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"approvalStatus\", \"riskLevel\", \"complianceScore\", \"policyAnalysisSummary\", \"complianceFindings\", \"legalSummary\", \"approvalRecommendation\"]\n}"},"typeVersion":1.3},{"id":"291f4128-55d8-4b26-858a-364a752d47a3","name":"Email Notification Tool","type":"n8n-nodes-base.gmailTool","position":[1696,1008],"webhookId":"2738a957-88ad-4986-9cfd-fe19d621c917","parameters":{"sendTo":"={{ $fromAI('recipient_email', 'The email address of the stakeholder to notify', 'string') }}","message":"={{ $fromAI('email_body', 'The email message content', 'string') }}","options":{},"subject":"={{ $fromAI('email_subject', 'The email subject line', 'string') }}","descriptionType":"manual","toolDescription":"Send email notifications to stakeholders about policy review status, approvals, and compliance updates"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"0815a125-97ea-4d41-914f-99f08183684c","name":"Slack Notification Tool","type":"n8n-nodes-base.slackTool","position":[1824,1008],"webhookId":"9c973a65-bf15-401e-8e81-75100457c10f","parameters":{"text":"={{ $fromAI('message', 'The Slack message content', 'string') }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $fromAI('channel_id', 'The Slack channel ID to post to', 'string') }}"},"otherOptions":{},"authentication":"oAuth2","descriptionType":"manual","toolDescription":"Post notifications to Slack channels about policy governance updates, approvals, and compliance alerts"},"credentials":{"slackOAuth2Api":{"id":"credential-id","name":"Slack account"}},"typeVersion":2.4},{"id":"0952dedc-c6bc-48a9-ad0b-37607f49b2d5","name":"Legal Governance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1416,784],"parameters":{"text":"={{ 'Policy Title: ' + $json.policyTitle + '\\nPolicy Type: ' + $json.policyType + '\\nPolicy Content: ' + $json.text + '\\nContractual Requirements: ' + $json.contractualRequirements + '\\nStakeholders: ' + $json.stakeholders }}","options":{"systemMessage":"You are the Legal Governance Agent, the supervisor orchestrating enterprise legal operations. Your responsibilities: 1) Coordinate the Policy Analysis Agent to review legal documents, 2) Direct the Compliance Tracking Agent to validate policy alignment, 3) Instruct the Legal Summary Agent to generate audit documentation, 4) Make approval decisions based on sub-agent findings, 5) Notify stakeholders via email or Slack, 6) Track compliance and maintain governance records. Process: First call policy_analysis_agent with the policy content, then call compliance_tracking_agent with the analysis results, then call legal_summary_agent with all findings. Based on the combined analysis, determine approval status (approved/requires_review/rejected), risk level, and compliance score. Send notifications to stakeholders as needed. Return structured governance decision with all required fields."},"hasOutputParser":true},"typeVersion":3.1},{"id":"1ccfc938-8210-457c-8f1d-d4457da7094a","name":"Route by Approval Status","type":"n8n-nodes-base.switch","position":[2192,752],"parameters":{"rules":{"values":[{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.approvalStatus }}","rightValue":"approved"}]}},{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.approvalStatus }}","rightValue":"requires_review"}]}},{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.approvalStatus }}","rightValue":"rejected"}]}}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"886cb86a-bd64-4389-980f-0e7ae0d61811","name":"Prepare Policy Record","type":"n8n-nodes-base.set","position":[2384,784],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"policyId","type":"string","value":"={{ $now.toISO() + '-' + $json.policyTitle.replace(/\\s+/g, '-').toLowerCase() }}"},{"id":"id-2","name":"policyTitle","type":"string","value":"={{ $('Policy Submission Form').item.json.policyTitle }}"},{"id":"id-3","name":"policyType","type":"string","value":"={{ $('Policy Submission Form').item.json.policyType }}"},{"id":"id-4","name":"submissionDate","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-5","name":"approvalStatus","type":"string","value":"={{ $json.approvalStatus }}"},{"id":"id-6","name":"riskLevel","type":"string","value":"={{ $json.riskLevel }}"},{"id":"id-7","name":"complianceScore","type":"number","value":"={{ $json.complianceScore }}"},{"id":"id-8","name":"stakeholders","type":"string","value":"={{ $('Policy Submission Form').item.json.stakeholders }}"},{"id":"id-9","name":"contractualRequirements","type":"string","value":"={{ $('Policy Submission Form').item.json.contractualRequirements }}"},{"id":"id-10","name":"policyAnalysisSummary","type":"string","value":"={{ $json.policyAnalysisSummary }}"},{"id":"id-11","name":"complianceFindings","type":"string","value":"={{ $json.complianceFindings }}"},{"id":"id-12","name":"legalSummary","type":"string","value":"={{ $json.legalSummary }}"},{"id":"id-13","name":"approvalRecommendation","type":"string","value":"={{ $json.approvalRecommendation }}"},{"id":"id-14","name":"auditNotes","type":"string","value":"={{ $json.auditNotes || 'N/A' }}"}]}},"typeVersion":3.4},{"id":"bc81edf8-81b6-4bb3-9110-ab1cbb216a70","name":"Store Policy Records","type":"n8n-nodes-base.dataTable","position":[2688,784],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__policy_records_table__>"}},"typeVersion":1.1},{"id":"801a455e-9a8f-42e1-a546-31c14210c569","name":"Prepare Approval Record","type":"n8n-nodes-base.set","position":[2688,1072],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"approvalId","type":"string","value":"={{ $now.toISO() + '-' + $json.policyId }}"},{"id":"id-2","name":"policyId","type":"string","value":"={{ $json.policyId }}"},{"id":"id-3","name":"approvalStatus","type":"string","value":"={{ $json.approvalStatus }}"},{"id":"id-4","name":"approvalDate","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-5","name":"approvalRecommendation","type":"string","value":"={{ $json.approvalRecommendation }}"},{"id":"id-6","name":"riskLevel","type":"string","value":"={{ $json.riskLevel }}"},{"id":"id-7","name":"stakeholdersNotified","type":"string","value":"={{ $json.stakeholderNotifications ? $json.stakeholderNotifications.join(', ') : 'None' }}"}]}},"typeVersion":3.4},{"id":"020be2f2-c1f7-4194-a220-66e3af2d372e","name":"Track Approvals","type":"n8n-nodes-base.dataTable","position":[2912,1072],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__approval_tracking_table__>"}},"typeVersion":1.1},{"id":"c9cb53ee-17a5-4d25-810b-3a3946d11644","name":"Prepare Compliance Record","type":"n8n-nodes-base.set","position":[2688,1264],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"complianceId","type":"string","value":"={{ $now.toISO() + '-' + $json.policyId }}"},{"id":"id-2","name":"policyId","type":"string","value":"={{ $json.policyId }}"},{"id":"id-3","name":"complianceScore","type":"number","value":"={{ $json.complianceScore }}"},{"id":"id-4","name":"complianceFindings","type":"string","value":"={{ $json.complianceFindings }}"},{"id":"id-5","name":"assessmentDate","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-6","name":"riskLevel","type":"string","value":"={{ $json.riskLevel }}"},{"id":"id-7","name":"policyType","type":"string","value":"={{ $json.policyType }}"}]}},"typeVersion":3.4},{"id":"b97135db-f5c7-4951-9dd3-3257c5378e1b","name":"Track Compliance","type":"n8n-nodes-base.dataTable","position":[2912,1264],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__compliance_tracking_table__>"}},"typeVersion":1.1},{"id":"1d17b560-c158-4097-8d95-c8b58694ef76","name":"Prepare Audit Log","type":"n8n-nodes-base.set","position":[2688,1456],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"auditId","type":"string","value":"={{ $now.toISO() + '-AUDIT-' + $json.policyId }}"},{"id":"id-2","name":"policyId","type":"string","value":"={{ $json.policyId }}"},{"id":"id-3","name":"policyTitle","type":"string","value":"={{ $json.policyTitle }}"},{"id":"id-4","name":"auditDate","type":"string","value":"={{ $now.toISO() }}"},{"id":"id-5","name":"legalSummary","type":"string","value":"={{ $json.legalSummary }}"},{"id":"id-6","name":"policyAnalysisSummary","type":"string","value":"={{ $json.policyAnalysisSummary }}"},{"id":"id-7","name":"complianceScore","type":"number","value":"={{ $json.complianceScore }}"},{"id":"id-8","name":"approvalStatus","type":"string","value":"={{ $json.approvalStatus }}"},{"id":"id-9","name":"riskLevel","type":"string","value":"={{ $json.riskLevel }}"},{"id":"id-10","name":"auditNotes","type":"string","value":"={{ $json.auditNotes }}"},{"id":"id-11","name":"stakeholders","type":"string","value":"={{ $json.stakeholders }}"}]}},"typeVersion":3.4},{"id":"0cedac92-5635-4d9b-b2bd-9c29d9815ad3","name":"Audit Trail","type":"n8n-nodes-base.dataTable","position":[2912,1456],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__audit_trail_table__>"}},"typeVersion":1.1},{"id":"e568185b-819e-4b8e-a6f9-8fb7e03ba59c","name":"Split Stakeholders","type":"n8n-nodes-base.splitOut","position":[2912,688],"parameters":{"options":{},"fieldToSplitOut":"stakeholders"},"typeVersion":1},{"id":"36fd87b9-3fa0-4ea0-bf95-c4a3d58fa6b9","name":"Send Stakeholder Email","type":"n8n-nodes-base.gmail","position":[3136,688],"webhookId":"56833193-6e02-4b51-bccb-2e84d5675a12","parameters":{"sendTo":"={{ $('Policy Submission Form').item.json.stakeholders }}","message":"={{ 'Dear Stakeholder,\\n\\nThe legal policy review for \"' + $('Policy Submission Form').item.json.policyTitle + '\" has been completed.\\n\\n**Approval Status:** ' + $('Legal Governance Agent').item.json.output.approvalStatus.toUpperCase() + '\\n**Risk Level:** ' + $('Legal Governance Agent').item.json.output.riskLevel.toUpperCase() + '\\n**Compliance Score:** ' + $('Legal Governance Agent').item.json.output.complianceScore + '/100\\n\\n**Legal Summary:**\\n' + $('Legal Governance Agent').item.json.output.legalSummary + '\\n\\n**Approval Recommendation:**\\n' + $('Legal Governance Agent').item.json.output.approvalRecommendation + '\\n\\n**Compliance Findings:**\\n' + $('Legal Governance Agent').item.json.output.complianceFindings + '\\n\\nThis is an automated notification from the Legal Governance System.\\n\\nBest regards,\\nLegal Governance Team' }}","options":{},"subject":"={{ 'Policy Review Complete: ' + $('Policy Submission Form').item.json.policyTitle + ' - ' + $('Legal Governance Agent').item.json.output.approvalStatus.toUpperCase() }}","emailType":"text"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"a2b98679-001c-4ecf-96d4-c46d40740e89","name":"Post Governance Update","type":"n8n-nodes-base.slack","position":[2912,880],"webhookId":"00183ac2-38ed-4f7c-bb8f-91923ac77422","parameters":{"text":"={{ '🔔 *Policy Review Complete*\\n\\n*Policy:* ' + $('Policy Submission Form').item.json.policyTitle + '\\n*Type:* ' + $('Policy Submission Form').item.json.policyType + '\\n*Status:* ' + $('Legal Governance Agent').item.json.approvalStatus.toUpperCase() + '\\n*Risk Level:* ' + $('Legal Governance Agent').item.json.riskLevel.toUpperCase() + '\\n*Compliance Score:* ' + $('Legal Governance Agent').item.json.complianceScore + '/100\\n\\n*Recommendation:* ' + $('Legal Governance Agent').item.json.approvalRecommendation }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__legal_governance_channel__>"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"credential-id","name":"Slack account"}},"typeVersion":2.4},{"id":"2a9aaae6-73ca-4146-8890-bf270039beb1","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1440,176],"parameters":{"color":6,"width":672,"height":352,"content":"## Prerequisites\n- OpenAI API key (or compatible LLM)\n- Gmail account with OAuth credentials\n- Slack workspace with bot credentials\n- Google Sheets with policy, approval, compliance, and audit tabs pre-created\n## Use Cases\n- Legal teams automating policy submission review and approval classification\n## Customisation\n- Extend routing logic to include partial-approval or escalation tiers for complex policies\n## Benefits\n- Eliminates manual policy triage and stakeholder notification across large submission volumes"},"typeVersion":1},{"id":"bccccab7-6e21-415b-b409-278c83c1acde","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[960,256],"parameters":{"width":416,"height":272,"content":"## Setup Steps\n1. Import workflow; configure the Policy Submission Form trigger.\n2. Add AI model credentials to the Legal Governance Agent, Policy Analysis Agent, Compliance Tracking Agent, and Legal Summary Agent.\n3. Connect Gmail credentials to the Email Notification Tool; link Slack credentials to the Slack Notification Tool.\n4. Link Google Sheets credentials; set sheet IDs for Policy Records, Approvals, Compliance, and Audit Trail tabs."},"typeVersion":1},{"id":"ea8b1680-7a6e-4f4b-9346-ae97083550a9","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[224,256],"parameters":{"width":672,"height":304,"content":"## How It Works\nThis workflow automates legal policy governance for legal teams, policy managers, and compliance officers, eliminating manual document review, approval classification, and multi-channel stakeholder distribution. Submitted policy documents are form-triggered, extracted into structured text, and passed to the Legal Governance Agent. Backed by shared memory and a governance model, it coordinates three specialist agents: Policy Analysis (content evaluation), Compliance Tracking (regulatory alignment), and Legal Summary (structured report generation). Gmail and Slack notification tools handle multi-channel alerts in parallel. Outputs are parsed and routed by approval status across four concurrent Google Sheets tracks: policy record storage with stakeholder notifications, approval preparation and tracking, compliance record preparation and tracking, and audit log generation, ensuring a complete, audit-ready governance trail for every submission."},"typeVersion":1},{"id":"0f94f956-4155-40e5-970f-c89329b6e734","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1680,624],"parameters":{"color":7,"width":464,"height":832,"content":"## Email & Slack Notification Tools\n**Why** — Multi-channel notifications ensure governance decisions reach stakeholders immediately without manual distribution.\n\n"},"typeVersion":1},{"id":"08e3357f-2b6a-4a22-b29c-6af0720d3dfe","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[704,640],"parameters":{"color":7,"width":960,"height":832,"content":"## Legal Governance Agent & Specialist Agents\n**Why** — Coordinates Policy Analysis, Compliance Tracking, and Legal Summary agents in parallel using shared memory for consistent, context-aware policy evaluation.\n"},"typeVersion":1},{"id":"64656730-d1e5-4eaa-84dc-06ad63aaf0e9","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[96,640],"parameters":{"color":7,"width":576,"height":304,"content":"## Policy Submission & Document Extraction\n**Why** — Form-triggered ingestion and structured text extraction ensure every policy document enters the pipeline in a consistent, processable format."},"typeVersion":1},{"id":"caac662f-3354-4505-bbe1-0a7e42a3f841","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2160,592],"parameters":{"color":7,"width":352,"height":848,"content":"## Route by Approval Status\n**Why** — Rules-based routing separates approved, compliance-flagged, and audit-required records for proportionate, parallel handling."},"typeVersion":1},{"id":"3131cfcd-b5b6-48bb-935d-8350b0782e2b","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[2544,592],"parameters":{"color":7,"width":864,"height":1056,"content":"## Policy Records, Approvals, Compliance & Audit Trail\n**Why** — Four parallel Google Sheets tracks capture policy storage, approval decisions, compliance status, and audit logs — maintaining a complete, audit-ready governance record."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","executionOrder":"v1"},"versionId":"42866cad-c087-4795-b3aa-5a447a023210","connections":{"Prepare Audit Log":{"main":[[{"node":"Audit Trail","type":"main","index":0}]]},"Split Stakeholders":{"main":[[{"node":"Send Stakeholder Email","type":"main","index":0}]]},"Legal Summary Agent":{"ai_tool":[[{"node":"Legal Governance Agent","type":"ai_tool","index":0}]]},"Legal Summary Model":{"ai_languageModel":[[{"node":"Legal Summary Agent","type":"ai_languageModel","index":0}]]},"Store Policy Records":{"main":[[{"node":"Split Stakeholders","type":"main","index":0},{"node":"Post Governance Update","type":"main","index":0}]]},"Policy Analysis Agent":{"ai_tool":[[{"node":"Legal Governance Agent","type":"ai_tool","index":0}]]},"Policy Analysis Model":{"ai_languageModel":[[{"node":"Policy Analysis Agent","type":"ai_languageModel","index":0}]]},"Prepare Policy Record":{"main":[[{"node":"Store Policy Records","type":"main","index":0},{"node":"Prepare Approval Record","type":"main","index":0},{"node":"Prepare Compliance Record","type":"main","index":0},{"node":"Prepare Audit Log","type":"main","index":0}]]},"Legal Governance Agent":{"main":[[{"node":"Route by Approval Status","type":"main","index":0}]]},"Legal Governance Model":{"ai_languageModel":[[{"node":"Legal Governance Agent","type":"ai_languageModel","index":0}]]},"Policy Submission Form":{"main":[[{"node":"Extract Policy Document","type":"main","index":0}]]},"Email Notification Tool":{"ai_tool":[[{"node":"Legal Governance Agent","type":"ai_tool","index":0}]]},"Extract Policy Document":{"main":[[{"node":"Legal Governance Agent","type":"main","index":0}]]},"Prepare Approval Record":{"main":[[{"node":"Track Approvals","type":"main","index":0}]]},"Slack Notification Tool":{"ai_tool":[[{"node":"Legal Governance Agent","type":"ai_tool","index":0}]]},"Governance Output Parser":{"ai_outputParser":[[{"node":"Legal Governance Agent","type":"ai_outputParser","index":0}]]},"Route by Approval Status":{"main":[[{"node":"Prepare Policy Record","type":"main","index":0}],[{"node":"Prepare Policy Record","type":"main","index":0}],[{"node":"Prepare Policy Record","type":"main","index":0}],[{"node":"Prepare Policy Record","type":"main","index":0}]]},"Compliance Tracking Agent":{"ai_tool":[[{"node":"Legal Governance Agent","type":"ai_tool","index":0}]]},"Compliance Tracking Model":{"ai_languageModel":[[{"node":"Compliance Tracking Agent","type":"ai_languageModel","index":0}]]},"Prepare Compliance Record":{"main":[[{"node":"Track Compliance","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":33,"nodeTypes":{"n8n-nodes-base.set":{"count":4},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.dataTable":{"count":4},"n8n-nodes-base.gmailTool":{"count":1},"n8n-nodes-base.slackTool":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.formTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.extractFromFile":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":3},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":4},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Cheng Siong Chin","username":"cschin","bio":"Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n","verified":true,"links":["https://gravatar.com/mysticluminary9fa255f7f5"],"avatar":"https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"},"nodes":[{"id":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":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","human","form","wait","hitl","approval"],"resources":{"generic":[{"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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with 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-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/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/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":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":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1235,"icon":"file:extractFromFile.svg","name":"n8n-nodes-base.extractFromFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","decode","decoding","Move Binary Data","Binary","File","PDF","JSON","HTML","ICS","iCal","txt","Text","RTF","XML","64","Base64","Convert"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.extractfromfile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Extract from File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuOTM3NSAyQzAuNDE5NzMzIDIgMCAyLjQxOTczIDAgMi45Mzc1VjM3LjMyMjFDMCAzNy44Mzk5IDAuNDE5NzMzIDM4LjI1OTYgMC45Mzc1IDM4LjI1OTZIMjYuMjE1NEMyNi43MzMyIDM4LjI1OTYgMjcuMTUyOSAzNy44Mzk5IDI3LjE1MjkgMzcuMzIyMUwyNy4xNTI5IDMwLjY3MTlMMTYuNzk2OSAzMC42NzE5QzE0Ljg5ODQgMzAuNjcxOSAxMy4zNTk0IDI5LjEzMjkgMTMuMzU5NCAyNy4yMzQ0VjI1LjM1OTRDMTMuMzU5NCAyMy40NjA5IDE0Ljg5ODQgMjEuOTIxOSAxNi43OTY5IDIxLjkyMTlIMjcuMTUyOUwyNy4xNTI5IDE1Ljc4MjFIMTQuMzA4M0MxMy43OTA2IDE1Ljc4MjEgMTMuMzcwOCAxNS4zNjI0IDEzLjM3MDggMTQuODQ0NlYySDAuOTM3NVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTE2LjAyNzEgMkMxNS45NDA4IDIgMTUuODcwOCAyLjA2OTk2IDE1Ljg3MDggMi4xNTYyNVYxMi44MTM0QzE1Ljg3MDggMTMuMDcyMyAxNi4wODA3IDEzLjI4MjEgMTYuMzM5NiAxMy4yODIxSDI2Ljk5NjdDMjcuMDgzIDEzLjI4MjEgMjcuMTUyOSAxMy4yMTIyIDI3LjE1MjkgMTMuMTI1OUwyNy4xNTI5IDEyLjYxNzFDMjcuMTUyOSAxMi4zNjg4IDI3LjA1NDUgMTIuMTMwNyAyNi44NzkxIDExLjk1NUwxNy4yMjI1IDIuMjc1MzhDMTcuMDQ2NiAyLjA5OTA4IDE2LjgwNzkgMiAxNi41NTg4IDJIMTYuMDI3MVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTI5Ljc2NDIgMzQuNjUwM0MyOS4wMzQgMzMuOTE2IDI5LjAzNzQgMzIuNzI4OCAyOS43NzE2IDMxLjk5ODZMMzMuNjE5NyAyOC4xNzE5TDE2Ljc5NjkgMjguMTcxOUMxNi4yNzkxIDI4LjE3MTkgMTUuODU5NCAyNy43NTIxIDE1Ljg1OTQgMjcuMjM0NFYyNS4zNTk0QzE1Ljg1OTQgMjQuODQxNiAxNi4yNzkxIDI0LjQyMTkgMTYuNzk2OSAyNC40MjE5TDMzLjU0MTIgMjQuNDIxOUwyOS43NzE2IDIwLjY3MzNDMjkuMDM3NCAxOS45NDMxIDI5LjAzNCAxOC43NTU5IDI5Ljc2NDIgMTguMDIxNkMzMC40OTQ0IDE3LjI4NzQgMzEuNjgxNiAxNy4yODQgMzIuNDE1OSAxOC4wMTQyTDM5LjQ0NzEgMjUuMDA2NEMzOS44MDEgMjUuMzU4MyA0MCAyNS44MzY4IDQwIDI2LjMzNTlDNDAgMjYuODM1IDM5LjgwMSAyNy4zMTM1IDM5LjQ0NzEgMjcuNjY1NUwzMi40MTU5IDM0LjY1NzZDMzEuNjgxNiAzNS4zODc4IDMwLjQ5NDQgMzUuMzg0NSAyOS43NjQyIDM0LjY1MDNaIiBmaWxsPSIjMzUzRjZFIi8+Cjwvc3ZnPgo="},"displayName":"Extract from File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","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":35,"name":"Document Extraction"},{"id":49,"name":"AI Summarization"}],"image":[]}}