{
  "name": "Monatliche Kostenübersicht aus dem Rechnungs-Sheet",
  "nodes": [
    {
      "parameters": {
        "content": "## Monatliche Kostenübersicht aus dem Rechnungs-Sheet\n\n**Zweck:** Fasst am 1. jedes Monats alle Rechnungen des Vormonats je Kategorie zusammen und schickt die Übersicht per E-Mail.\n\n**Zugangsdaten (Credentials):**\n- Google Sheets: Google OAuth2\n- E-Mail senden: SMTP-Zugang\n\n**Anpassen:**\n- Tabellen-URL und Blatt „Rechnungen“ (Spalten Datum im Format JJJJ-MM-TT, Kategorie, Betrag als Zahl)\n- Empfänger in „Übersicht senden“\n\nValidiert am 09.11.2026 gegen das n8n-Node-Schema, nicht in Produktion ausgeführt.\nQuelle: automationskompass.de/n8n-templates/",
        "height": 520,
        "width": 420,
        "color": 7
      },
      "id": "35dfc737-f7ba-4b00-bd9e-65e780135535",
      "name": "Notiz",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -520,
        120
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months",
              "triggerAtDayOfMonth": 1,
              "triggerAtHour": 8
            }
          ]
        }
      },
      "id": "72a04d62-3655-49b4-945d-335c651409d0",
      "name": "Monatlich am 1.",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        300
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/DEINE-TABELLEN-ID/edit",
          "mode": "url"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Rechnungen"
        },
        "options": {}
      },
      "id": "9f12169c-99c6-4f44-99e6-9eaa804959eb",
      "name": "Rechnungen lesen",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "id": "42251be1-6eb5-4483-8120-2a78de625088",
              "leftValue": "={{ String($json.Datum).slice(0, 7) }}",
              "rightValue": "={{ $now.minus({ months: 1 }).toFormat('yyyy-MM') }}",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "abdddc6d-ae89-4891-bd8b-bbf88429b36b",
      "name": "Nur Vormonat",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        480,
        300
      ]
    },
    {
      "parameters": {
        "fieldsToSummarize": {
          "values": [
            {
              "aggregation": "sum",
              "field": "Betrag"
            }
          ]
        },
        "fieldsToSplitBy": "Kategorie",
        "options": {}
      },
      "id": "269add88-14b2-4433-8c6e-a2c186a1888a",
      "name": "Summe je Kategorie",
      "type": "n8n-nodes-base.summarize",
      "typeVersion": 1.1,
      "position": [
        720,
        300
      ]
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "zeilen",
        "options": {}
      },
      "id": "ef18481e-27bb-4d1f-9f11-2de28f29a72c",
      "name": "Zu einer Liste",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        960,
        300
      ]
    },
    {
      "parameters": {
        "fromEmail": "n8n@deine-firma.de",
        "toEmail": "buchhaltung@deine-firma.de",
        "subject": "=Kostenübersicht {{ $now.minus({ months: 1 }).toFormat('MM/yyyy') }}",
        "emailFormat": "text",
        "text": "={{ $json.zeilen.map(z => z.Kategorie + \": \" + Number(z.sum_Betrag).toFixed(2).replace(\".\", \",\") + \" €\").join(\"\\n\") }}\n\nGesamt: {{ $json.zeilen.reduce((s, z) => s + Number(z.sum_Betrag), 0).toFixed(2).replace(\".\", \",\") }} €",
        "options": {
          "appendAttribution": false
        }
      },
      "id": "b6518ee3-b24d-444a-be71-b5884b259faa",
      "name": "Übersicht senden",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "position": [
        1200,
        300
      ]
    }
  ],
  "connections": {
    "Monatlich am 1.": {
      "main": [
        [
          {
            "node": "Rechnungen lesen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rechnungen lesen": {
      "main": [
        [
          {
            "node": "Nur Vormonat",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Nur Vormonat": {
      "main": [
        [
          {
            "node": "Summe je Kategorie",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summe je Kategorie": {
      "main": [
        [
          {
            "node": "Zu einer Liste",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zu einer Liste": {
      "main": [
        [
          {
            "node": "Übersicht senden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1",
    "timezone": "Europe/Berlin"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  }
}
