{
  "name": "WhatsApp expense tracker with PostgreSQL database & AI-powered reports",
  "nodes": [
    {
      "id": "2d9465b4-58ac-4c00-a782-e8ae4e0767e5",
      "name": "Date and time",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        -480,
        900
      ]
    },
    {
      "id": "3ca24176-0bbf-439e-bc09-d4c7c9550db9",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -360,
        900
      ]
    },
    {
      "id": "ced1f18b-bdaf-4c29-96f7-b9eb2ed168b2",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -2000,
        920
      ]
    },
    {
      "id": "e28ef82b-c4ca-4956-8714-1ccdf56234bc",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -1220,
        180
      ]
    },
    {
      "id": "bdb2baa4-8595-4526-8526-2249e2546b8c",
      "name": "Calculator",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        160,
        180
      ]
    },
    {
      "id": "df26c9be-997b-4c9d-b8bf-4f91851225f8",
      "name": "OpenRouter Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        40,
        180
      ]
    },
    {
      "id": "d28325fc-2633-469f-8e0b-ed63e1a5cd21",
      "name": "OpenRouter Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -2180,
        -700
      ]
    },
    {
      "id": "2af86825-6971-4c04-8807-fdb3fb8f5d2f",
      "name": "Postgres2",
      "type": "n8n-nodes-base.postgresTool",
      "position": [
        -1540,
        -800
      ]
    },
    {
      "id": "c1b15283-b5ed-47be-88d4-eaa8ec621d18",
      "name": "OpenRouter Chat Model5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -1660,
        -800
      ]
    },
    {
      "id": "68bf1381-c0e1-4f40-a94a-c9128cced0ca",
      "name": "Calculator1",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        -1080,
        -700
      ]
    },
    {
      "id": "f0f2a8f1-9571-4097-978e-d403daf2e144",
      "name": "Structured Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1420,
        -800
      ]
    },
    {
      "id": "57c96e65-3eaa-4fb4-add1-910cd3a54732",
      "name": "OpenRouter Chat Model6",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -1200,
        -700
      ]
    },
    {
      "id": "6da02d5c-d2ff-4531-a1b1-15f26090f5bd",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        -180,
        60
      ]
    },
    {
      "id": "1bde35b3-c836-4f2a-bb0f-b8ce24e8b937",
      "name": "Send Financial Response",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        1160,
        700
      ]
    },
    {
      "id": "f779c955-66b3-43a2-879c-080ab3c1350e",
      "name": "Normal Conversation ",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -760,
        1480
      ]
    },
    {
      "id": "21f3f5df-e990-4198-9557-6b91685d953c",
      "name": "Incoming WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        -2240,
        700
      ]
    },
    {
      "id": "3b0b47d7-69e9-46de-b1d0-7ccc5b178cda",
      "name": "Message Intent Classifier",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2020,
        700
      ]
    },
    {
      "id": "5b78429c-34e6-46d8-87da-3dcf6ca9fdda",
      "name": "Route by Intent",
      "type": "n8n-nodes-base.switch",
      "position": [
        -1660,
        700
      ]
    },
    {
      "id": "8a41699f-020f-4f8b-af2f-001f81f1d2eb",
      "name": "Parse & Validate Transaction",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -580,
        700
      ]
    },
    {
      "id": "9fb81ef2-04ca-4fc2-b041-84c13fef05f7",
      "name": "Split Transaction Lines",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -160,
        700
      ]
    },
    {
      "id": "ac5c1e98-c006-4dcc-a547-ac3b47abd40d",
      "name": "Format Transaction JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        60,
        700
      ]
    },
    {
      "id": "bd7e2c87-aa9a-4d70-abeb-3500107a9e49",
      "name": "Validate Transaction Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        280,
        700
      ]
    },
    {
      "id": "458e9264-0077-4365-9ed9-abcbd2aac464",
      "name": "Insert Transaction into DB",
      "type": "n8n-nodes-base.postgres",
      "position": [
        500,
        700
      ]
    },
    {
      "id": "2d6dec05-660e-4a2b-ac3b-a4985ba384b2",
      "name": "Build Confirmation Message",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        740,
        700
      ]
    },
    {
      "id": "f545840e-4c0f-49be-a219-9178e2a8deb9",
      "name": "Daily 8AM Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2480,
        -920
      ]
    },
    {
      "id": "0d2d89ca-3a89-4989-9614-7f610da7e395",
      "name": "Build Daily Report Query",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2260,
        -920
      ]
    },
    {
      "id": "fb61c689-a2cd-41af-8fc9-7a9428217338",
      "name": "Execute Daily Report Query",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1640,
        -1020
      ]
    },
    {
      "id": "75e06bba-f2e5-4ad9-8c8d-8da69b335a99",
      "name": "Build Daily Financial Summary",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1220,
        -920
      ]
    },
    {
      "id": "de60a090-1035-44ac-bb47-57d2313c87c0",
      "name": "Send Daily Report",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -840,
        -920
      ]
    },
    {
      "id": "b8adeb56-e85e-4456-9948-138812b37be6",
      "name": "Build Custom Report Query",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1220,
        0
      ]
    },
    {
      "id": "65a22ebc-6d8e-4852-870c-86bd1233cb31",
      "name": "Transform Custom Query for Postgres",
      "type": "n8n-nodes-base.code",
      "position": [
        -840,
        60
      ]
    },
    {
      "id": "e4df15d9-c259-4402-9f25-f1d272d97b14",
      "name": "Format Custom Query Results",
      "type": "n8n-nodes-base.code",
      "position": [
        -400,
        60
      ]
    },
    {
      "id": "e6f8b8f5-814f-4a29-9b5c-401144c382b3",
      "name": "Execute Custom Report Query",
      "type": "n8n-nodes-base.postgres",
      "position": [
        -620,
        60
      ]
    },
    {
      "id": "fb3a83be-4785-45e3-a527-4a03516db609",
      "name": "Build Custom Financial Summary",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        60,
        -40
      ]
    },
    {
      "id": "64940c1f-41c1-46d9-b183-9f8af3cfb864",
      "name": "Send Custom Report",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        480,
        60
      ]
    },
    {
      "id": "a22028ea-7164-4e43-9107-2ebbeb875117",
      "name": "simple conversation ",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1180,
        1480
      ]
    },
    {
      "id": "e86fe657-0ec0-41de-adac-5d59f304caea",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2900,
        -300
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "cb66ba94-01aa-4a0c-b2b1-acd6511d55af",
      "name": "Transform Custom Query for Postgres1",
      "type": "n8n-nodes-base.code",
      "position": [
        -1880,
        -920
      ]
    },
    {
      "id": "1edd968f-3e50-49eb-a9b7-45a83cb0ba66",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3080,
        -1160
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "7c7fa6ca-5ca5-44cb-a26e-46a4147821e8",
      "name": "Date and time1",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        -1100,
        180
      ]
    },
    {
      "id": "5e3a3c5a-1a6d-4a5c-9f04-0ff8f984fe18",
      "name": "Date and time2",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        280,
        180
      ]
    },
    {
      "id": "2cec7aab-a6a0-443e-972f-eeba83f8f75d",
      "name": "Date and time3",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        900,
        920
      ]
    },
    {
      "id": "a246fac9-ae73-4192-bdb6-cf7e700b94cc",
      "name": "Date and time4",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        -1880,
        920
      ]
    },
    {
      "id": "138de4a3-4c50-4d7b-ae6e-ba02b96d2565",
      "name": "Date and time5",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        -1020,
        1680
      ]
    },
    {
      "id": "6e9a0c1e-5302-453f-8d2c-7398172c9055",
      "name": "OpenRouter Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -620,
        900
      ]
    },
    {
      "id": "ab6ae6d1-a9b5-4eef-8930-0ee27c5787f0",
      "name": "OpenRouter Chat Model7",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -1180,
        1700
      ]
    },
    {
      "id": "a680e6d7-8332-466b-8d3e-8923fb929ab7",
      "name": "OpenRouter Chat Model8",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        780,
        920
      ]
    },
    {
      "id": "5e75c9ba-ef19-4052-b7a1-9233d469ae4b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1880,
        -100
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "444ed176-46c1-4daf-bbfc-9231baccdf19",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1860,
        1380
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "fcca8840-954e-4ac5-b842-86fe24e35484",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1240,
        560
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}