{
  "workflow": {
    "id": 4136,
    "name": "WhatsApp expense tracker with PostgreSQL database & AI-powered reports",
    "views": 2853,
    "recentViews": 1,
    "totalViews": 2853,
    "createdAt": "2025-05-17T05:57:32.971Z",
    "description": "# Track Personal Finances with WhatsApp and AI Assistant\n\nTransform your WhatsApp into a powerful personal finance command center. This AI-powered workflow converts natural language messages into structured financial data, automates record-keeping, and delivers instant insights—all within your favorite messaging app.\n\n## Who is this for?\n\nThis template is perfect for:\n- **Personal finance enthusiasts** who want effortless expense tracking\n- **Small business owners** managing personal and business expenses  \n- **Freelancers** tracking income and expenses across projects\n- **Anyone** who prefers messaging over complex finance apps\n- **Users seeking privacy** with self-hosted financial data\n\n## What problem is this workflow solving?\n\nTraditional expense tracking requires switching between apps, manual data entry, and complex spreadsheets. Most people abandon these systems within weeks. This workflow solves the friction by:\n- Eliminating app-switching—everything happens in WhatsApp\n- Converting natural language to structured data automatically\n- Providing instant confirmations and reports\n- Requiring zero learning curve or behavior change\n\n## What this workflow does\n\n### Smart Transaction Processing\nSend natural messages like `Spent 300 on groceries at Walmart` and the AI automatically extracts:\n- **Date**: Today's date (or specified date)\n- **Category**: Groceries  \n- **Type**: Expense/Income/Debt\n- **Amount**: 300\n- **Person/Company**: Walmart\n\n### Intelligent Message Classification\nThe workflow automatically routes messages to three processing branches:\n- **Branch 1**: Reports and analytics (`show March expenses`)\n- **Branch 2**: Transaction logging (`spent 50 on coffee`)  \n- **Branch 3**: General financial chat (`how can I save money?`)\n\n### Advanced Reporting\nGenerate instant reports by messaging:\n- `today's report` → Daily income/expense summary\n- `March vs April report` → Monthly comparisons with percentages\n- `show groceries spending` → Category-specific analysis\n- Automatic daily summaries at your preferred time\n\n### Database Integration\nAll transactions are stored in PostgreSQL with proper schema:\n```sql\nCREATE TABLE financial_transactions (\n date DATE NOT NULL,\n category TEXT NOT NULL, \n type TEXT NOT NULL,\n amount NUMERIC(12,2) NOT NULL,\n person TEXT\n);\n```\n\n## Setup\n\n## Prerequisites\n\n- **n8n instance** (self-hosted or n8n.cloud)\n- **WhatsApp Business Cloud API** credentials\n- **PostgreSQL database** (version 12+)\n- **OpenRouter API key** for AI processing\n\n## Quick Setup Steps\n\n1. **Import the workflow** template into your n8n instance\n2. **Configure credentials**:\n  - WhatsApp Business Cloud API (App Token + Phone Number ID)\n  - PostgreSQL connection details\n  - OpenRouter API key for AI processing\n3. **Create database table** using the provided SQL schema\n4. **Test the connection** by sending a sample message\n5. **Customize** the scheduled report timing (default: 8 AM daily)\n\n## Verification Checklist\n\n- [ ] WhatsApp webhook receives messages\n- [ ] AI correctly parses transaction messages\n- [ ] Database insertions work properly\n- [ ] Confirmation messages are sent back\n- [ ] Reports generate with accurate data\n\n# How to customize this workflow to your needs\n\n## AI Model Configuration\n\n- **Default**: Uses OpenRouter with GPT-3.5-turbo for cost efficiency\n- **Upgrade**: Switch to GPT-4 or Claude for better accuracy\n- **Local**: Replace with self-hosted Ollama for complete privacy\n\n## Database Options\n\n- **PostgreSQL**: Recommended for production use\n- **Google Sheets**: Alternative for simpler setups (nodes included)\n- **MySQL/SQLite**: Easily adaptable with minor SQL modifications\n\n## Message Classification\n\nCustomize the classification system:\n- **0**: Reports (modify SQL queries for different analytics)\n- **1**: Transactions (adjust parsing rules for your language/currency)\n- **2**: Chat (customize AI responses for financial advice)\n\n## Reporting Customization\n\n- **Scheduled reports**: Change timing, format, and recipients\n- **Custom periods**: Add quarterly, yearly, or custom date ranges\n- **Categories**: Modify auto-categorization rules for your spending patterns\n- **Currency**: Update formatting for your local currency\n\n## Advanced Features\n\n- **Multi-user support**: Add user identification for family/team use\n- **Receipt photos**: Extend workflow to process image receipts via OCR\n- **Budgets**: Add budget tracking and overspend alerts\n- **Integrations**: Connect to banks via Plaid or other financial APIs\n\n# Complete Package Included\n\nWhen you download this template, you get everything needed for immediate implementation:\n\n## Ready-to-Use n8n Workflow\n\n- **Fully configured nodes** with descriptive names explaining each step\n- **Color-coded sticky notes** throughout the workflow explaining:\n - What each branch does (Reports/Transactions/Chat)\n - How the AI classification works\n - Database connection requirements\n - Error handling and troubleshooting tips\n\n## Comprehensive Documentation Bundle\n\n- **Quick Start Guide**: Get running in under 10 minutes\n- **Detailed Setup Guide**: Complete configuration walkthrough with screenshots\n- **Branch Explanation Guide**: Deep dive into each processing branch:\n - **Branch 0**: Reports & Analytics - SQL queries and formatting\n - **Branch 1**: Transaction Processing - AI parsing and database insertion\n - **Branch 2**: Financial Chat - AI responses and conversation handling\n\n## Built-in Workflow Documentation\n\n- **Sticky notes at every major step** explaining the logic\n- **Node descriptions** that clarify what each component does\n- **Visual flow indicators** showing message routing paths\n- **Dependency callouts** highlighting required credentials and connections\n\n## Technical Implementation Details\n\n- **Database schema** with complete SQL commands\n- **API configuration examples** for all external services\n- **Troubleshooting checklist** for common setup issues\n- **Performance optimization** recommendations\n\n## Bonus Resources\n\n- **Example message templates** to test each workflow branch\n- **Sample data** for testing reports and analytics\n- **Customization recipes** for common modifications\n- **Integration patterns** for extending functionality\n\n# Example Usage\n\n## Log Expenses:\n\n- `Spent 1200 on rent this month`\n- `Paid 45 for gas at Shell`\n- `Coffee 5.50 at Starbucks`\n\n## Log Income:\n\n- `Received 5000 salary from Company ABC`\n- `Freelance payment 800 from Client XYZ`\n\n## Generate Reports:\n\n- `today's summary`\n- `show this week's expenses`\n- `compare March vs April spending`\n- `how much on food this month?`\n\n## Expected Responses:\n✅ Logged: expense | Rent | ₹1,200.00 | Landlord\n✅ Logged: income | salary |₹12,000.00|company\n\n📊 Today's Summary:\nIncome: ₹0.00\nExpenses: ₹1,245.50  \nSavings: -₹1,245.50\n\n📈 March vs April:\nExpenses: ₹15,000 vs ₹12,500 (-16.7%)\nTop categories: Rent, Food, Transport",
    "workflow": {
      "id": "cMhDQYcAoghnCPCK",
      "meta": {
        "instanceId": "cbc68f6c587084f6fe53914a07ed22d475640cb7a6f4ade193e6f0c6d7a06ce8",
        "templateCredsSetupCompleted": true
      },
      "name": "Track___Analyze_Personal_Finances_with_WhatsApp_AI_Assistant_version_2.json",
      "tags": [],
      "nodes": [
        {
          "id": "2d9465b4-58ac-4c00-a782-e8ae4e0767e5",
          "name": "Date and time",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            -480,
            900
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "3ca24176-0bbf-439e-bc09-d4c7c9550db9",
          "name": "Structured Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -360,
            900
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "ced1f18b-bdaf-4c29-96f7-b9eb2ed168b2",
          "name": "OpenRouter Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -2000,
            920
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "e28ef82b-c4ca-4956-8714-1ccdf56234bc",
          "name": "OpenRouter Chat Model1",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -1220,
            180
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "bdb2baa4-8595-4526-8526-2249e2546b8c",
          "name": "Calculator",
          "type": "@n8n/n8n-nodes-langchain.toolCalculator",
          "position": [
            160,
            180
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "df26c9be-997b-4c9d-b8bf-4f91851225f8",
          "name": "OpenRouter Chat Model3",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            40,
            180
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "d28325fc-2633-469f-8e0b-ed63e1a5cd21",
          "name": "OpenRouter Chat Model4",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -2180,
            -700
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "2af86825-6971-4c04-8807-fdb3fb8f5d2f",
          "name": "Postgres2",
          "type": "n8n-nodes-base.postgresTool",
          "position": [
            -1540,
            -800
          ],
          "parameters": {},
          "typeVersion": 2.6
        },
        {
          "id": "c1b15283-b5ed-47be-88d4-eaa8ec621d18",
          "name": "OpenRouter Chat Model5",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -1660,
            -800
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "68bf1381-c0e1-4f40-a94a-c9128cced0ca",
          "name": "Calculator1",
          "type": "@n8n/n8n-nodes-langchain.toolCalculator",
          "position": [
            -1080,
            -700
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "f0f2a8f1-9571-4097-978e-d403daf2e144",
          "name": "Structured Output Parser2",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -1420,
            -800
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "57c96e65-3eaa-4fb4-add1-910cd3a54732",
          "name": "OpenRouter Chat Model6",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -1200,
            -700
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "6da02d5c-d2ff-4531-a1b1-15f26090f5bd",
          "name": "Convert to File",
          "type": "n8n-nodes-base.convertToFile",
          "position": [
            -180,
            60
          ],
          "parameters": {},
          "typeVersion": 1.1
        },
        {
          "id": "1bde35b3-c836-4f2a-bb0f-b8ce24e8b937",
          "name": "Send Financial Response",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            1160,
            700
          ],
          "webhookId": "f71b40d3-80fc-49d5-85f9-bdac44343b7a",
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "f779c955-66b3-43a2-879c-080ab3c1350e",
          "name": "Normal Conversation ",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            -760,
            1480
          ],
          "webhookId": "f71b40d3-80fc-49d5-85f9-bdac44343b7a",
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "21f3f5df-e990-4198-9557-6b91685d953c",
          "name": "Incoming WhatsApp Trigger",
          "type": "n8n-nodes-base.whatsAppTrigger",
          "position": [
            -2240,
            700
          ],
          "webhookId": "c9f59683-0d8a-474e-add3-d07c8fa53c94",
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "3b0b47d7-69e9-46de-b1d0-7ccc5b178cda",
          "name": "Message Intent Classifier",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -2020,
            700
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "5b78429c-34e6-46d8-87da-3dcf6ca9fdda",
          "name": "Route by Intent",
          "type": "n8n-nodes-base.switch",
          "position": [
            -1660,
            700
          ],
          "parameters": {},
          "typeVersion": 3.2
        },
        {
          "id": "8a41699f-020f-4f8b-af2f-001f81f1d2eb",
          "name": "Parse & Validate Transaction",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -580,
            700
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "9fb81ef2-04ca-4fc2-b041-84c13fef05f7",
          "name": "Split Transaction Lines",
          "type": "n8n-nodes-base.splitOut",
          "position": [
            -160,
            700
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "ac5c1e98-c006-4dcc-a547-ac3b47abd40d",
          "name": "Format Transaction JSON",
          "type": "n8n-nodes-base.code",
          "position": [
            60,
            700
          ],
          "parameters": {},
          "typeVersion": 2
        },
        {
          "id": "bd7e2c87-aa9a-4d70-abeb-3500107a9e49",
          "name": "Validate Transaction Fields",
          "type": "n8n-nodes-base.code",
          "position": [
            280,
            700
          ],
          "parameters": {},
          "typeVersion": 2
        },
        {
          "id": "458e9264-0077-4365-9ed9-abcbd2aac464",
          "name": "Insert Transaction into DB",
          "type": "n8n-nodes-base.postgres",
          "position": [
            500,
            700
          ],
          "parameters": {},
          "typeVersion": 2.6
        },
        {
          "id": "2d6dec05-660e-4a2b-ac3b-a4985ba384b2",
          "name": "Build Confirmation Message",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            740,
            700
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "f545840e-4c0f-49be-a219-9178e2a8deb9",
          "name": "Daily 8AM Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -2480,
            -920
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "0d2d89ca-3a89-4989-9614-7f610da7e395",
          "name": "Build Daily Report Query",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -2260,
            -920
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "fb61c689-a2cd-41af-8fc9-7a9428217338",
          "name": "Execute Daily Report Query",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1640,
            -1020
          ],
          "parameters": {},
          "typeVersion": 1.9,
          "alwaysOutputData": false
        },
        {
          "id": "75e06bba-f2e5-4ad9-8c8d-8da69b335a99",
          "name": "Build Daily Financial Summary",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1220,
            -920
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "de60a090-1035-44ac-bb47-57d2313c87c0",
          "name": "Send Daily Report",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            -840,
            -920
          ],
          "webhookId": "f71b40d3-80fc-49d5-85f9-bdac44343b7a",
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "b8adeb56-e85e-4456-9948-138812b37be6",
          "name": "Build Custom Report Query",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1220,
            0
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "65a22ebc-6d8e-4852-870c-86bd1233cb31",
          "name": "Transform Custom Query for Postgres",
          "type": "n8n-nodes-base.code",
          "position": [
            -840,
            60
          ],
          "parameters": {},
          "typeVersion": 2
        },
        {
          "id": "e4df15d9-c259-4402-9f25-f1d272d97b14",
          "name": "Format Custom Query Results",
          "type": "n8n-nodes-base.code",
          "position": [
            -400,
            60
          ],
          "parameters": {},
          "executeOnce": false,
          "typeVersion": 2
        },
        {
          "id": "e6f8b8f5-814f-4a29-9b5c-401144c382b3",
          "name": "Execute Custom Report Query",
          "type": "n8n-nodes-base.postgres",
          "position": [
            -620,
            60
          ],
          "parameters": {},
          "typeVersion": 2.6
        },
        {
          "id": "fb3a83be-4785-45e3-a527-4a03516db609",
          "name": "Build Custom Financial Summary",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            60,
            -40
          ],
          "parameters": {},
          "executeOnce": true,
          "typeVersion": 1.9
        },
        {
          "id": "64940c1f-41c1-46d9-b183-9f8af3cfb864",
          "name": "Send Custom Report",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            480,
            60
          ],
          "webhookId": "f71b40d3-80fc-49d5-85f9-bdac44343b7a",
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "a22028ea-7164-4e43-9107-2ebbeb875117",
          "name": "simple conversation ",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -1180,
            1480
          ],
          "parameters": {},
          "typeVersion": 1.9
        },
        {
          "id": "e86fe657-0ec0-41de-adac-5d59f304caea",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2900,
            -300
          ],
          "parameters": {
            "content": ""
          },
          "typeVersion": 1
        },
        {
          "id": "cb66ba94-01aa-4a0c-b2b1-acd6511d55af",
          "name": "Transform Custom Query for Postgres1",
          "type": "n8n-nodes-base.code",
          "position": [
            -1880,
            -920
          ],
          "parameters": {},
          "typeVersion": 2
        },
        {
          "id": "1edd968f-3e50-49eb-a9b7-45a83cb0ba66",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -3080,
            -1160
          ],
          "parameters": {
            "content": ""
          },
          "typeVersion": 1
        },
        {
          "id": "7c7fa6ca-5ca5-44cb-a26e-46a4147821e8",
          "name": "Date and time1",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            -1100,
            180
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "5e3a3c5a-1a6d-4a5c-9f04-0ff8f984fe18",
          "name": "Date and time2",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            280,
            180
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "2cec7aab-a6a0-443e-972f-eeba83f8f75d",
          "name": "Date and time3",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            900,
            920
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "a246fac9-ae73-4192-bdb6-cf7e700b94cc",
          "name": "Date and time4",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            -1880,
            920
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "138de4a3-4c50-4d7b-ae6e-ba02b96d2565",
          "name": "Date and time5",
          "type": "@n8n/n8n-nodes-langchain.toolCode",
          "position": [
            -1020,
            1680
          ],
          "parameters": {},
          "typeVersion": 1.2
        },
        {
          "id": "6e9a0c1e-5302-453f-8d2c-7398172c9055",
          "name": "OpenRouter Chat Model2",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -620,
            900
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "ab6ae6d1-a9b5-4eef-8930-0ee27c5787f0",
          "name": "OpenRouter Chat Model7",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            -1180,
            1700
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "a680e6d7-8332-466b-8d3e-8923fb929ab7",
          "name": "OpenRouter Chat Model8",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
          "position": [
            780,
            920
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "5e75c9ba-ef19-4052-b7a1-9233d469ae4b",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1880,
            -100
          ],
          "parameters": {
            "content": ""
          },
          "typeVersion": 1
        },
        {
          "id": "444ed176-46c1-4daf-bbfc-9231baccdf19",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1860,
            1380
          ],
          "parameters": {
            "content": ""
          },
          "typeVersion": 1
        },
        {
          "id": "fcca8840-954e-4ac5-b842-86fe24e35484",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1240,
            560
          ],
          "parameters": {
            "content": ""
          },
          "typeVersion": 1
        }
      ],
      "active": true,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "e4a85103-baa6-4c56-a921-59ea3c322f7a",
      "connections": {
        "Postgres2": {
          "ai_tool": [
            [
              {
                "node": "Execute Daily Report Query",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Calculator": {
          "ai_tool": [
            [
              {
                "node": "Build Custom Financial Summary",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Calculator1": {
          "ai_tool": [
            [
              {
                "node": "Build Daily Financial Summary",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time": {
          "ai_tool": [
            [
              {
                "node": "Parse & Validate Transaction",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time1": {
          "ai_tool": [
            [
              {
                "node": "Build Custom Report Query",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time2": {
          "ai_tool": [
            [
              {
                "node": "Build Custom Financial Summary",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time3": {
          "ai_tool": [
            [
              {
                "node": "Build Confirmation Message",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time4": {
          "ai_tool": [
            [
              {
                "node": "Message Intent Classifier",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Date and time5": {
          "ai_tool": [
            [
              {
                "node": "simple conversation ",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Convert to File": {
          "main": [
            [
              {
                "node": "Build Custom Financial Summary",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Route by Intent": {
          "main": [
            [
              {
                "node": "Build Custom Report Query",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Parse & Validate Transaction",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "simple conversation ",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Daily 8AM Trigger": {
          "main": [
            [
              {
                "node": "Build Daily Report Query",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "simple conversation ": {
          "main": [
            [
              {
                "node": "Normal Conversation ",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "Message Intent Classifier",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model1": {
          "ai_languageModel": [
            [
              {
                "node": "Build Custom Report Query",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model2": {
          "ai_languageModel": [
            [
              {
                "node": "Parse & Validate Transaction",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model3": {
          "ai_languageModel": [
            [
              {
                "node": "Build Custom Financial Summary",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model4": {
          "ai_languageModel": [
            [
              {
                "node": "Build Daily Report Query",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model5": {
          "ai_languageModel": [
            [
              {
                "node": "Execute Daily Report Query",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model6": {
          "ai_languageModel": [
            [
              {
                "node": "Build Daily Financial Summary",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model7": {
          "ai_languageModel": [
            [
              {
                "node": "simple conversation ",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenRouter Chat Model8": {
          "ai_languageModel": [
            [
              {
                "node": "Build Confirmation Message",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Format Transaction JSON": {
          "main": [
            [
              {
                "node": "Validate Transaction Fields",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Split Transaction Lines": {
          "main": [
            [
              {
                "node": "Format Transaction JSON",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Build Daily Report Query": {
          "main": [
            [
              {
                "node": "Transform Custom Query for Postgres1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "Parse & Validate Transaction",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Build Custom Report Query": {
          "main": [
            [
              {
                "node": "Transform Custom Query for Postgres",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Incoming WhatsApp Trigger": {
          "main": [
            [
              {
                "node": "Message Intent Classifier",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Message Intent Classifier": {
          "main": [
            [
              {
                "node": "Route by Intent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser2": {
          "ai_outputParser": [
            [
              {
                "node": "Execute Daily Report Query",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Build Confirmation Message": {
          "main": [
            [
              {
                "node": "Send Financial Response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Execute Daily Report Query": {
          "main": [
            [
              {
                "node": "Build Daily Financial Summary",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Insert Transaction into DB": {
          "main": [
            [
              {
                "node": "Build Confirmation Message",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Execute Custom Report Query": {
          "main": [
            [
              {
                "node": "Format Custom Query Results",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Custom Query Results": {
          "main": [
            [
              {
                "node": "Convert to File",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Validate Transaction Fields": {
          "main": [
            [
              {
                "node": "Insert Transaction into DB",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse & Validate Transaction": {
          "main": [
            [
              {
                "node": "Split Transaction Lines",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Build Daily Financial Summary": {
          "main": [
            [
              {
                "node": "Send Daily Report",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Build Custom Financial Summary": {
          "main": [
            [
              {
                "node": "Send Custom Report",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Transform Custom Query for Postgres": {
          "main": [
            [
              {
                "node": "Execute Custom Report Query",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Transform Custom Query for Postgres1": {
          "main": [
            [
              {
                "node": "Execute Daily Report Query",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 50,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 5
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.postgres": {
          "count": 2
        },
        "n8n-nodes-base.splitOut": {
          "count": 1
        },
        "n8n-nodes-base.whatsApp": {
          "count": 4
        },
        "n8n-nodes-base.stickyNote": {
          "count": 5
        },
        "n8n-nodes-base.postgresTool": {
          "count": 1
        },
        "n8n-nodes-base.convertToFile": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 9
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "n8n-nodes-base.whatsAppTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolCode": {
          "count": 6
        },
        "@n8n/n8n-nodes-langchain.toolCalculator": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenRouter": {
          "count": 9
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 2
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Roshan Ramani",
      "username": "rawsun007",
      "bio": "I love building smart n8n automations that actually work reliably.\n\n My focus is on making everyday tasks like email, social media, and CRM workflows simpler using AI.\n\nI've shared templates in the n8n community, including a WhatsApp Expense Tracker that people really enjoy.\nWhat keeps me excited is constantly trying new things - testing fresh nodes, playing with AI tools like LangChain, and discovering creative ways to connect systems!",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/roshan-ramani-00oo7/"
      ],
      "avatar": "https://gravatar.com/avatar/68ed567dd85bf7cd74039fbdcef870b7296933129174d01292afedd0eb0acc63?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 30,
        "icon": "file:postgres.svg",
        "name": "n8n-nodes-base.postgres",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020/",
                  "icon": "😍",
                  "label": "Why I chose n8n over Zapier in 2020"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/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-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.postgres/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/postgres/"
                }
              ]
            },
            "categories": [
              "Development",
              "Data & Storage"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Postgres"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNzkgODEiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTc3LjM5MSA0Ny45MjJjLS40NjYtMS40MTItMS42ODgtMi4zOTYtMy4yNjgtMi42MzItLjc0NS0uMTExLTEuNTk4LS4wNjQtMi42MDguMTQ0LTEuNzYuMzYzLTMuMDY1LjUwMS00LjAxOC41MjggMy41OTYtNi4wNzIgNi41MjEtMTIuOTk3IDguMjA0LTE5LjUxNSAyLjcyMi0xMC41NCAxLjI2OC0xNS4zNDEtLjQzMi0xNy41MTNDNzAuNzcgMy4xODUgNjQuMjA2LjA5NyA1Ni4yODcuMDAyYy00LjIyNC0uMDUyLTcuOTMzLjc4Mi05Ljg2NyAxLjM4MmEzNyAzNyAwIDAgMC01Ljc3LS41MjhjLTMuODA5LS4wNjEtNy4xNzQuNzctMTAuMDUgMi40NzZhNDYgNDYgMCAwIDAtNy4wOTgtMS43ODJDMTYuNTYxLjQxMSAxMC45NjggMS4yOTkgNi44NzYgNC4xOSAxLjkyMiA3LjY4OS0uMzc1IDEzLjc3LjA1IDIyLjI2MmMuMTM1IDIuNjk2IDEuNjQzIDEwLjkgNC4wMTggMTguNjggMS4zNjUgNC40NzIgMi44MiA4LjE4NSA0LjMyNiAxMS4wMzggMi4xMzUgNC4wNDYgNC40MTkgNi40MjggNi45ODQgNy4yODQgMS40MzguNDc5IDQuMDQ5LjgxNCA2Ljc5Ny0xLjQ3M2E2IDYgMCAwIDAgMS40MjkgMS4yM2MuNzgzLjQ5NCAxLjc0Ljg5NyAyLjY5NiAxLjEzNiAzLjQ0Ni44NjIgNi42NzQuNjQ2IDkuNDI3LS41NjFsLjA0MSAxLjM2Mi4wNiAxLjg5OWMuMTYzIDQuMDY0LjQ0IDcuMjIzIDEuMjU5IDkuNDM0LjA0NS4xMjIuMTA1LjMwNy4xNjkuNTAzLjQwOSAxLjI1MSAxLjA5MiAzLjM0NiAyLjgzIDQuOTg3IDEuOCAxLjY5OSAzLjk3OCAyLjIyIDUuOTcyIDIuMjIgMSAwIDEuOTU1LS4xMzEgMi43OTItLjMxMSAyLjk4NC0uNjM5IDYuMzczLTEuNjE0IDguODI0LTUuMTA0IDIuMzE4LTMuMyAzLjQ0NC04LjI3IDMuNjQ4LTE2LjEwMWwuMDc0LS42MzQuMDQ4LS40MTQuNTQ2LjA0OC4xNDEuMDFjMy4wMzkuMTM4IDYuNzU1LS41MDYgOS4wMzctMS41NjYgMS44MDMtLjgzNyA3LjU4Mi0zLjg4OCA2LjIyMS04LjAwNyIvPjxwYXRoIGZpbGw9IiMzMzY3OTEiIGQ9Ik03Mi4xOTUgNDguNzIzYy05LjAzNiAxLjg2NC05LjY1Ny0xLjE5NS05LjY1Ny0xLjE5NSA5LjU0MS0xNC4xNTcgMTMuNTI5LTMyLjEyNyAxMC4wODctMzYuNTI1QzYzLjIzNS0uOTk0IDQ2Ljk4MSA0LjY4IDQ2LjcxIDQuODI3bC0uMDg3LjAxNmMtMS43ODUtLjM3MS0zLjc4My0uNTkxLTYuMDI5LS42MjgtNC4wODktLjA2Ny03LjE5IDEuMDcyLTkuNTQ0IDIuODU3IDAgMC0yOC45OTUtMTEuOTQ1LTI3LjY0NyAxNS4wMjMuMjg3IDUuNzM3IDguMjIzIDQzLjQxIDE3LjY4OSAzMi4wMzEgMy40Ni00LjE2MSA2LjgwMy03LjY3OSA2LjgwMy03LjY3OSAxLjY2IDEuMTAzIDMuNjQ4IDEuNjY2IDUuNzMyIDEuNDYzbC4xNjItLjEzN2E2LjMgNi4zIDAgMCAwIC4wNjUgMS42MmMtMi40MzkgMi43MjUtMS43MjIgMy4yMDMtNi41OTcgNC4yMDYtNC45MzMgMS4wMTctMi4wMzUgMi44MjYtLjE0MyAzLjI5OSAyLjI5NC41NzQgNy42IDEuMzg2IDExLjE4NS0zLjYzM2wtLjE0My41NzNjLjk1Ni43NjUgMS42MjYgNC45NzggMS41MTQgOC43OTdzLS4xODggNi40NDEuNTY1IDguNDg5IDEuNTAzIDYuNjU2IDcuOTEyIDUuMjgyYzUuMzU1LTEuMTQ4IDguMTMtNC4xMjEgOC41MTYtOS4wODEuMjc0LTMuNTI2Ljg5NC0zLjAwNS45MzMtNi4xNThsLjQ5Ny0xLjQ5M2MuNTczLTQuNzguMDkxLTYuMzIyIDMuMzktNS42MDVsLjgwMi4wN2MyLjQyOC4xMSA1LjYwNi0uMzkxIDcuNDcxLTEuMjU3IDQuMDE2LTEuODY0IDYuMzk4LTQuOTc2IDIuNDM4LTQuMTU4Ii8+PHBhdGggZD0iTTMyLjc0NyAyNC42NmMtLjgxNC0uMTEzLTEuNTUyLS4wMDgtMS45MjUuMjc0YS43LjcgMCAwIDAtLjI5Mi40N2MtLjA0Ny4zMzYuMTg4LjcwNy4zMzMuODk4LjQwOS41NDIgMS4wMDYuOTE1IDEuNTk4Ljk5N2EyIDIgMCAwIDAgLjI1Ni4wMThjLjk4NiAwIDEuODgzLS43NjggMS45NjItMS4zMzUuMDk5LS43MS0uOTMyLTEuMTgzLTEuOTMxLTEuMzIybTI2Ljk3NS4wMjJjLS4wNzgtLjU1Ni0xLjA2OC0uNzE1LTIuMDA3LS41ODRzLTEuODQ4LjU1NC0xLjc3MiAxLjExMmMuMDYxLjQzNC44NDQgMS4xNzQgMS43NzEgMS4xNzRxLjExNyAwIC4yMzctLjAxNmMuNjE5LS4wODYgMS4wNzMtLjQ3OSAxLjI4OC0uNzA1LjMyOS0uMzQ1LjUxOC0uNzMuNDg0LS45OG0xNS40NzcgMjMuODI4Yy0uMzQ1LTEuMDQyLTEuNDUzLTEuMzc3LTMuMjk2LS45OTctNS40NzEgMS4xMjktNy40My4zNDctOC4wNzMtLjEyNyA0LjI1Mi02LjQ3OCA3Ljc1LTE0LjMwOCA5LjYzNy0yMS42MTQuODk0LTMuNDYxIDEuMzg4LTYuNjc1IDEuNDI4LTkuMjk0LjA0NS0yLjg3Ni0uNDQ1LTQuOTg4LTEuNDU1LTYuMjc5LTQuMDcyLTUuMjAzLTEwLjA0OC03Ljk5NC0xNy4yODMtOC4wNy00Ljk3My0uMDU2LTkuMTc1IDEuMjE3LTkuOTkgMS41NzVhMjUgMjUgMCAwIDAtNS42MjItLjcyMmMtMy43MzQtLjA2LTYuOTYxLjgzNC05LjYzMyAyLjY1NWE0MyA0MyAwIDAgMC03LjgyOC0yLjA1MmMtNi4zNDItMS4wMjEtMTEuMzgxLS4yNDgtMTQuOTc4IDIuMy00LjI5MSAzLjA0LTYuMjcyIDguNDc1LTUuODg4IDE2LjE1Mi4xMjkgMi41ODMgMS42MDEgMTAuNTI5IDMuOTIzIDE4LjEzOSAzLjA1NyAxMC4wMTYgNi4zOCAxNS42ODYgOS44NzcgMTYuODUyYTQuNCA0LjQgMCAwIDAgMS40MDIuMjMyYzEuMjc2IDAgMi44MzktLjU3NSA0LjQ2Ni0yLjUzMWExNjEgMTYxIDAgMCAxIDYuMTU2LTYuOTY2IDkuOSA5LjkgMCAwIDAgNC40MjkgMS4xOTFsLjAxLjEyMWMtLjMxLjM2OC0uNTY0LjY5LS43ODEuOTY1LTEuMDcgMS4zNTgtMS4yOTMgMS42NDEtNC43MzggMi4zNTEtLjk4LjIwMi0zLjU4Mi43MzgtMy42MiAyLjU2My0uMDQxIDEuOTkzIDMuMDc2IDIuODMgMy40MzEgMi45MTkgMS4yMzguMzEgMi40My40NjMgMy41NjguNDYzIDIuNzY2IDAgNS4yLS45MDkgNy4xNDUtMi42NjgtLjA2IDcuMTA2LjIzNiAxNC4xMDcgMS4wODkgMTYuMjQxLjY5OSAxLjc0NiAyLjQwNiA2LjAxNCA3Ljc5OCA2LjAxNC43OTEgMCAxLjY2Mi0uMDkyIDIuNjItLjI5NyA1LjYyNy0xLjIwNyA4LjA3MS0zLjY5NCA5LjAxNi05LjE3Ny41MDYtMi45MyAxLjM3NC05LjkyOCAxLjc4Mi0xMy42ODIuODYyLjI2OSAxLjk3MS4zOTIgMy4xNy4zOTIgMi41MDEgMCA1LjM4Ny0uNTMxIDcuMTk3LTEuMzcyIDIuMDMzLS45NDQgNS43MDItMy4yNjEgNS4wMzctNS4yNzR6TTYxLjggMjMuMTQ3Yy0uMDE5IDEuMTA4LS4xNzEgMi4xMTQtLjMzMyAzLjE2NC0uMTc0IDEuMTI5LS4zNTQgMi4yOTctLjM5OSAzLjcxNS0uMDQ1IDEuMzc5LjEyOCAyLjgxNC4yOTQgNC4yLjMzNyAyLjgwMS42ODIgNS42ODUtLjY1NSA4LjUzMWExMSAxMSAwIDAgMS0uNTkyLTEuMjE4Yy0uMTY2LS40MDMtLjUyNy0xLjA1LTEuMDI3LTEuOTQ2LTEuOTQ0LTMuNDg3LTYuNDk3LTExLjY1Mi00LjE2Ny0xNC45ODQuNjk0LS45OTIgMi40NTYtMi4wMTEgNi44NzktMS40NjN6TTU2LjQzOSA0LjM3NGM2LjQ4Mi4xNDMgMTEuNjA5IDIuNTY4IDE1LjI0IDcuMjA3IDIuNzg0IDMuNTU4LS4yODIgMTkuNzQ5LTkuMTU4IDMzLjcxNmwtLjI2OS0uMzM5LS4xMTItLjE0YzIuMjk0LTMuNzg4IDEuODQ1LTcuNTM2IDEuNDQ2LTEwLjg1OS0uMTY0LTEuMzY0LS4zMTktMi42NTItLjI4LTMuODYxLjA0MS0xLjI4My4yMS0yLjM4Mi4zNzQtMy40NDYuMjAyLTEuMzExLjQwNy0yLjY2Ny4zNS00LjI2NWExLjggMS44IDAgMCAwIC4wMzctLjYwMWMtLjE0NC0xLjUzMy0xLjg5NC02LjEyLTUuNDYyLTEwLjI3My0xLjk1MS0yLjI3MS00Ljc5Ny00LjgxMy04LjY4Mi02LjUyN2EyOS4zIDI5LjMgMCAwIDEgNi41MTUtLjYxMnpNMjAuMTY3IDUzLjI5OGMtMS43OTMgMi4xNTUtMy4wMzEgMS43NDItMy40MzggMS42MDctMi42NTMtLjg4NS01LjczLTYuNDkxLTguNDQ0LTE1LjM4Mi0yLjM0OC03LjY5My0zLjcyLTE1LjQyOC0zLjgyOS0xNy41OTctLjM0My02Ljg2IDEuMzItMTEuNjQxIDQuOTQzLTE0LjIxIDUuODk2LTQuMTgxIDE1LjU4OS0xLjY3OSAxOS40ODQtLjQwOWwtLjE3LjE2M2MtNi4zOTEgNi40NTUtNi4yNCAxNy40ODMtNi4yMjQgMTguMTU3YTIyIDIyIDAgMCAwIC4wNTEgMS4xMzVjLjExIDEuODU1LjMxNSA1LjMwNy0uMjMyIDkuMjE3LS41MDggMy42MzMuNjEyIDcuMTg5IDMuMDcyIDkuNzU2cS4zODMuMzk4Ljc5NS43NWExNjQgMTY0IDAgMCAwLTYuMDA4IDYuODE0em02LjgzLTkuMTEzYy0xLjk4My0yLjA2OS0yLjg4NC00Ljk0Ny0yLjQ3MS03Ljg5Ni41NzctNC4xMy4zNjQtNy43MjcuMjUtOS42NTlsLS4wMzktLjY5NGMuOTM0LS44MjggNS4yNjEtMy4xNDYgOC4zNDYtMi40MzkgMS40MDguMzIzIDIuMjY2IDEuMjgxIDIuNjIzIDIuOTMxIDEuODQ2IDguNTM5LjI0NCAxMi4wOTgtMS4wNDMgMTQuOTU3LS4yNjUuNTg5LS41MTYgMS4xNDYtLjczIDEuNzIybC0uMTY2LjQ0NWMtLjQyIDEuMTI2LS44MTEgMi4xNzMtMS4wNTMgMy4xNjctMi4xMDgtLjAwNi00LjE1OS0uOTA3LTUuNzE4LTIuNTM0em0uMzI0IDExLjUxNmE1IDUgMCAwIDEtMS40OTQtLjY0MmMuMjcxLS4xMjguNzU0LS4zMDEgMS41OTEtLjQ3NCA0LjA1Mi0uODM0IDQuNjc4LTEuNDIzIDYuMDQ1LTMuMTU4LjMxMy0uMzk4LjY2OS0uODQ5IDEuMTYtMS4zOTguNzMzLS44MjEgMS4wNjgtLjY4MiAxLjY3Ni0uNDMuNDkzLjIwNC45NzIuODIxIDEuMTY3IDEuNTAxLjA5Mi4zMjEuMTk1LjkzLS4xNDMgMS40MDQtMi44NTUgMy45OTctNy4wMTUgMy45NDYtMTAuMDAzIDMuMTk4em0yMS4yMDcgMTkuNzM1Yy00Ljk1NyAxLjA2Mi02LjcxMy0xLjQ2Ny03Ljg2OS00LjM1OS0uNzQ3LTEuODY3LTEuMTEzLTEwLjI4NS0uODUzLTE5LjU4MmExLjEgMS4xIDAgMCAwLS4wNDgtLjM1NiA1IDUgMCAwIDAtLjEzOS0uNjU3Yy0uMzg3LTEuMzUzLTEuMzMxLTIuNDg0LTIuNDYyLTIuOTUzLS40NS0uMTg2LTEuMjc1LS41MjgtMi4yNjctLjI3NC4yMTItLjg3MS41NzgtMS44NTUuOTc2LTIuOTIxbC4xNjctLjQ0OGMuMTg4LS41MDUuNDIzLTEuMDI5LjY3My0xLjU4MyAxLjM0Ny0yLjk5MiAzLjE5Mi03LjA5MSAxLjE5LTE2LjM1LS43NS0zLjQ2OC0zLjI1NC01LjE2MS03LjA1LTQuNzY4LTIuMjc2LjIzNS00LjM1OCAxLjE1NC01LjM5NiAxLjY4cS0uMzM0LjE2OS0uNjE4LjMyOWMuMjktMy40OTQgMS4zODUtMTAuMDI0IDUuNDgxLTE0LjE1NiAyLjU3OS0yLjYwMSA2LjAxNC0zLjg4NiAxMC4xOTktMy44MTcgOC4yNDYuMTM1IDEzLjUzNCA0LjM2NyAxNi41MTggNy44OTMgMi41NzEgMy4wMzkgMy45NjQgNi4xIDQuNTIgNy43NTEtNC4xNzktLjQyNS03LjAyMi40LTguNDYzIDIuNDYtMy4xMzUgNC40ODEgMS43MTUgMTMuMTc4IDQuMDQ2IDE3LjM1OC40MjcuNzY2Ljc5NiAxLjQyOC45MTIgMS43MDkuNzU5IDEuODM5IDEuNzQyIDMuMDY3IDIuNDU5IDMuOTY0LjIyLjI3NS40MzMuNTQxLjU5Ni43NzQtMS4yNjYuMzY1LTMuNTM5IDEuMjA4LTMuMzMyIDUuNDIyLS4xNjcgMi4xMTUtMS4zNTYgMTIuMDE2LTEuOTU5IDE1LjUxNC0uNzk3IDQuNjIxLTIuNDk3IDYuMzQzLTcuMjc5IDcuMzY4em0yMC42OTMtMjMuNjhjLTEuMjk0LjYwMS0zLjQ2IDEuMDUyLTUuNTE4IDEuMTQ4LTIuMjczLjEwNy0zLjQzLS4yNTUtMy43MDItLjQ3Ny0uMTI4LTIuNjI2Ljg1LTIuOTAxIDEuODg0LTMuMTkxLjE2My0uMDQ2LjMyMS0uMDkuNDc0LS4xNDRhNCA0IDAgMCAwIC4zMTMuMjNjMS44MjcgMS4yMDYgNS4wODUgMS4zMzYgOS42ODUuMzg2bC4wNS0uMDFjLS42Mi41OC0xLjY4MiAxLjM1OS0zLjE4NyAyLjA1OHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Postgres",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 5,
            "name": "Development"
          }
        ]
      },
      {
        "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": 827,
        "icon": "file:whatsapp.svg",
        "name": "n8n-nodes-base.whatsApp",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.whatsapp/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "WhatsApp Business Cloud"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="
        },
        "displayName": "WhatsApp Business Cloud",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "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": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1195,
        "icon": "fa:calculator",
        "name": "@n8n/n8n-nodes-langchain.toolCalculator",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Calculator"
        },
        "iconData": {
          "icon": "calculator",
          "type": "icon"
        },
        "displayName": "Calculator",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1197,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.toolCode",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Recommended Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code Tool"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Code Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1234,
        "icon": "file:convertToFile.svg",
        "name": "n8n-nodes-base.convertToFile",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Spreadsheet",
              "Excel",
              "xls",
              "xlsx",
              "ods",
              "tabular",
              "encode",
              "encoding",
              "Move Binary Data",
              "Binary",
              "File",
              "JSON",
              "HTML",
              "ICS",
              "iCal",
              "RTF",
              "64",
              "Base64"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.converttofile/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Files",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Convert to File"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc2MTkgMkMxMy4yNDM3IDIgMTIuODIzNiAyLjQyMDA5IDEyLjgyMzYgMi45MzgzMVYxNS4yNTI2QzEzLjMxOTkgMTUuNDY0MyAxMy43ODUxIDE1Ljc3MiAxNC4xOTEgMTYuMTc1N0wyMS4yMjgzIDIzLjE3MzlDMjIuMDU0OCAyMy45OTU4IDIyLjUxOTUgMjUuMTEzMiAyMi41MTk1IDI2LjI3ODhDMjIuNTE5NSAyNy40NDQzIDIyLjA1NDggMjguNTYxOCAyMS4yMjgzIDI5LjM4MzdMMTQuMTkxIDM2LjM4MTlDMTMuNzg1IDM2Ljc4NTYgMTMuMzE5OSAzNy4wOTMyIDEyLjgyMzYgMzcuMzA1VjM3LjM1MjdDMTIuODIzNiAzNy44NzA5IDEzLjI0MzcgMzguMjkxIDEzLjc2MTkgMzguMjkxSDM5LjA2MTdDMzkuNTc5OSAzOC4yOTEgNDAgMzcuODcwOSA0MCAzNy4zNTI3TDQwIDE1Ljc5NEgyNy4xNDQzQzI2LjYyNjEgMTUuNzk0IDI2LjIwNiAxNS4zNzM5IDI2LjIwNiAxNC44NTU3VjJIMTMuNzYxOVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTI4Ljg2NDUgMkMyOC43NzgxIDIgMjguNzA4MSAyLjA3MDAyIDI4LjcwODEgMi4xNTYzOVYxMi44MjI3QzI4LjcwODEgMTMuMDgxOCAyOC45MTgyIDEzLjI5MTkgMjkuMTc3MyAxMy4yOTE5SDM5Ljg0MzZDMzkuOTMgMTMuMjkxOSA0MCAxMy4yMjE5IDQwIDEzLjEzNTVMNDAgMTIuNjI2M0M0MCAxMi4zNzc4IDM5LjkwMTQgMTIuMTM5NSAzOS43MjYgMTEuOTYzNkwzMC4wNjEgMi4yNzU2MUMyOS44ODUgMi4wOTkxNiAyOS42NDYgMiAyOS4zOTY3IDJIMjguODY0NVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTkuNzcyNjggMzQuNjAwM0M5LjA0MTg2IDMzLjg2NTQgOS4wNDUxNyAzMi42NzcyIDkuNzgwMDcgMzEuOTQ2NEwxMy42MzE1IDI4LjExNjNMMC45MzgzMTEgMjguMTE2M0MwLjQyMDA5NiAyOC4xMTYzIC0yLjI2NTE5ZS0wOCAyNy42OTYyIDAgMjcuMTc4TDguMjAyOTdlLTA4IDI1LjMwMTRDMS4wNDY4MmUtMDcgMjQuNzgzMiAwLjQyMDA5NSAyNC4zNjMxIDAuOTM4MzExIDI0LjM2MzFIMTMuNTUyOUw5Ljc4MDA3IDIwLjYxMTJDOS4wNDUxNyAxOS44ODA0IDkuMDQxODYgMTguNjkyMiA5Ljc3MjY4IDE3Ljk1NzNDMTAuNTAzNSAxNy4yMjI0IDExLjY5MTcgMTcuMjE5MSAxMi40MjY2IDE3Ljk0OTlMMTkuNDYzOSAyNC45NDgxQzE5LjgxODEgMjUuMzAwNCAyMC4wMTczIDI1Ljc3OTMgMjAuMDE3MyAyNi4yNzg4QzIwLjAxNzMgMjYuNzc4MyAxOS44MTgxIDI3LjI1NzIgMTkuNDYzOSAyNy42MDk1TDEyLjQyNjYgMzQuNjA3N0MxMS42OTE3IDM1LjMzODUgMTAuNTAzNSAzNS4zMzUyIDkuNzcyNjggMzQuNjAwM1oiIGZpbGw9IiMzQTQyRTkiLz4KPC9zdmc+Cg=="
        },
        "displayName": "Convert to 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": 1260,
        "icon": "file:whatsapp.svg",
        "name": "n8n-nodes-base.whatsAppTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.whatsapptrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "WhatsApp Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="
        },
        "displayName": "WhatsApp Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 1281,
        "icon": "file:openrouter.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenRouter Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTRBM0I4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5PcGVuUm91dGVyPC90aXRsZT48cGF0aCBkPSJNMTYuODA0IDEuOTU3bDcuMjIgNC4xMDV2LjA4N0wxNi43MyAxMC4yMWwuMDE3LTIuMTE3LS44MjEtLjAzYy0xLjA1OS0uMDI4LTEuNjExLjAwMi0yLjI2OC4xMS0xLjA2NC4xNzUtMi4wMzguNTc3LTMuMTQ3IDEuMzUyTDguMzQ1IDExLjAzYy0uMjg0LjE5NS0uNDk1LjMzNi0uNjguNDU1bC0uNTE1LjMyMi0uMzk3LjIzNC4zODUuMjMuNTMuMzM4Yy40NzYuMzE0IDEuMTcuNzk2IDIuNzAxIDEuODY2IDEuMTEuNzc1IDIuMDgzIDEuMTc3IDMuMTQ3IDEuMzUybC4zLjA0NWMuNjk0LjA5MSAxLjM3NS4wOTQgMi44MjUuMDMzbC4wMjItMi4xNTkgNy4yMiA0LjEwNXYuMDg3TDE2LjU4OSAyMmwuMDE0LTEuODYyLS42MzUuMDIyYy0xLjM4Ni4wNDItMi4xMzcuMDAyLTMuMTM4LS4xNjItMS42OTQtLjI4LTMuMjYtLjkyNi00Ljg4MS0yLjA1OWwtMi4xNTgtMS41YTIxLjk5NyAyMS45OTcgMCAwMC0uNzU1LS40OThsLS40NjctLjI4YTU1LjkyNyA1NS45MjcgMCAwMC0uNzYtLjQzQzIuOTA4IDE0LjczLjU2MyAxNC4xMTYgMCAxNC4xMTZWOS44ODhsLjE0LjAwNGMuNTY0LS4wMDcgMi45MS0uNjIyIDMuODA5LTEuMTI0bDEuMDE2LS41OC40MzgtLjI3NGMuNDI4LS4yOCAxLjA3Mi0uNzI2IDIuNjg2LTEuODUzIDEuNjIxLTEuMTMzIDMuMTg2LTEuNzggNC44ODEtMi4wNTkgMS4xNTItLjE5IDEuOTc0LS4yMTMgMy44MTQtLjEzOGwuMDItMS45MDd6Ij48L3BhdGg+PC9zdmc+Cg=="
        },
        "displayName": "OpenRouter Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 43,
        "name": "Personal Productivity"
      },
      {
        "id": 47,
        "name": "AI Chatbot"
      }
    ],
    "image": []
  }
}