{
  "name": "Track expenses from receipt photos with AI, Google Sheets & Slack reports",
  "nodes": [
    {
      "id": "d9e934b1-3ddb-4312-8556-03e0bc75f001",
      "name": "Receipt Photo Upload",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        256
      ]
    },
    {
      "id": "be58ef74-b716-4f12-875d-aa09572f9b3c",
      "name": "Add to Budget Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        800,
        256
      ]
    },
    {
      "id": "51956fcd-1422-4e1c-88fb-ea7a5f921fb2",
      "name": "Code in JavaScript2",
      "type": "n8n-nodes-base.code",
      "position": [
        1024,
        256
      ]
    },
    {
      "id": "8a6fa2ef-887e-4695-94d3-7275b5dd2410",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1600,
        256
      ]
    },
    {
      "id": "843ef5f2-cba2-4629-bde0-f19355739d93",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        992,
        -64
      ]
    },
    {
      "id": "c0ea41d0-15e8-461f-8162-f6762444f75b",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        576,
        256
      ]
    },
    {
      "id": "fe796bfc-a632-4d8c-9ba3-2c76b768655d",
      "name": "OpenRouter Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        296,
        480
      ]
    },
    {
      "id": "a204a1cb-3cb6-4ea0-8e79-cbd6b301cd30",
      "name": "Parse Receipt",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        224,
        256
      ]
    },
    {
      "id": "8515213f-2fe5-4334-bc8c-7f6b6739c85d",
      "name": "Report Budget",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1248,
        256
      ]
    },
    {
      "id": "78cafaa5-7ef7-4441-affb-ca5494ce10eb",
      "name": "Daily Report Trigger",
      "type": "n8n-nodes-base.cron",
      "position": [
        240,
        -288
      ]
    },
    {
      "id": "4baa9d88-2664-4dbf-b59c-d673c743564b",
      "name": "Get Budget Sheet (Daily)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        464,
        -288
      ]
    },
    {
      "id": "a1e12212-03c5-4f11-bf73-4191b7a52c41",
      "name": "Monthly Analysis",
      "type": "n8n-nodes-base.code",
      "position": [
        688,
        -288
      ]
    },
    {
      "id": "ca04ca63-5377-4f27-bc2f-87cfecee94d1",
      "name": "Monthly Report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        912,
        -288
      ]
    },
    {
      "id": "6d340421-5082-4dc2-98e8-8aadb85acbc9",
      "name": "Send monthly report",
      "type": "n8n-nodes-base.slack",
      "position": [
        1264,
        -288
      ]
    },
    {
      "id": "1e37b78a-f1ce-46e6-94c2-3efd52f140b1",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1320,
        480
      ]
    },
    {
      "id": "fc9c9473-198e-4d57-9968-f6f69030a385",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -272
      ],
      "parameters": {
        "width": 496,
        "height": 592,
        "content": "## What it does\nThis workflow automates your household budget tracking in several steps:\n1.  **Receipt Photo Upload**: You upload a photo of your receipt to a webhook.\n2.  **Parse Receipt**: An AI age"
      }
    },
    {
      "id": "017435d3-43cb-4322-9697-024de9511297",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        64
      ],
      "parameters": {
        "width": 1600,
        "height": 464,
        "content": "### Steps\n1.  **Google Sheets Setup**: Create/use a Google Sheet, share with n8n credentials, and select it in the workflow nodes.\n2.  **OpenRouter Credentials**: Get an API key from OpenRouter and co"
      }
    },
    {
      "id": "53e317a2-b71a-466d-a94c-d389dccf9b83",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -496
      ],
      "parameters": {
        "width": 1024,
        "height": 480,
        "content": "## How to customize the workflow\n\n-   **Daily Report Trigger**: Adjust the cron settings for frequency.\n-   **AI Model**: Change AI models in 'OpenRouter Chat Model' nodes to other LLMs.\n-   **Output "
      }
    }
  ],
  "connections": {
    "Parse Receipt": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Report Budget": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monthly Report": {
      "main": [
        [
          {
            "node": "Send monthly report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monthly Analysis": {
      "main": [
        [
          {
            "node": "Monthly Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Add to Budget Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add to Budget Sheet": {
      "main": [
        [
          {
            "node": "Code in JavaScript2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript2": {
      "main": [
        [
          {
            "node": "Report Budget",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Report Trigger": {
      "main": [
        [
          {
            "node": "Get Budget Sheet (Daily)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receipt Photo Upload": {
      "main": [
        [
          {
            "node": "Parse Receipt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Report Budget",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Monthly Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Parse Receipt",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Budget Sheet (Daily)": {
      "main": [
        [
          {
            "node": "Monthly Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}