{
  "meta": {
    "templateId": "buchpilot-weekly-report-v1"
  },
  "name": "BuchPilot: Woechentlicher Rechnungs-Report",
  "nodes": [
    {
      "id": "schedule-1",
      "name": "Jeden Montag 8:00",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        240,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * 1"
            }
          ]
        }
      }
    },
    {
      "id": "get-invoices",
      "name": "Offene Rechnungen laden",
      "type": "n8n-nodes-buchpilot.sevDesk",
      "typeVersion": 1,
      "position": [
        460,
        300
      ],
      "parameters": {
        "resource": "invoice",
        "operation": "getMany",
        "limit": 100,
        "filters": {
          "status": "200"
        }
      },
      "credentials": {
        "sevDeskApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "filter-faellig",
      "name": "Faellige filtern",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        680,
        300
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": false,
            "leftValue": ""
          },
          "conditions": [
            {
              "id": "condition-1",
              "leftValue": "={{ new Date($json.invoiceDate).getTime() + ($json.timeToPay || 14) * 86400000 }}",
              "rightValue": "={{ Date.now() }}",
              "operator": {
                "type": "number",
                "operation": "lt"
              }
            }
          ],
          "combinator": "and"
        }
      }
    },
    {
      "id": "format",
      "name": "Report formatieren",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        900,
        200
      ],
      "parameters": {
        "mode": "manual",
        "duplicateItem": false,
        "assignments": {
          "assignments": [
            {
              "id": "assign-1",
              "name": "rechnungsnummer",
              "value": "={{ $json.invoiceNumber || $json.header || 'Ohne Nr.' }}",
              "type": "string"
            },
            {
              "id": "assign-2",
              "name": "betrag_brutto",
              "value": "={{ Number($json.sumGross).toFixed(2) }} EUR",
              "type": "string"
            },
            {
              "id": "assign-3",
              "name": "faellig_seit",
              "value": "={{ new Date(new Date($json.invoiceDate).getTime() + ($json.timeToPay || 14) * 86400000).toISOString().split('T')[0] }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "aggregate",
      "name": "Zusammenfassung",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        1120,
        200
      ],
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "options": {
          "destinationFieldName": "rechnungen"
        }
      }
    },
    {
      "id": "email-body",
      "name": "E-Mail Text",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1340,
        200
      ],
      "parameters": {
        "mode": "manual",
        "duplicateItem": false,
        "assignments": {
          "assignments": [
            {
              "id": "assign-mail-1",
              "name": "subject",
              "value": "Woechentlicher Rechnungs-Report \u2014 Faellige Rechnungen",
              "type": "string"
            },
            {
              "id": "assign-mail-2",
              "name": "body",
              "value": "={{ 'Hallo,\\n\\nfolgende Rechnungen sind faellig:\\n\\n' + ($json.rechnungen || []).map(r => '- ' + r.rechnungsnummer + ': ' + r.betrag_brutto + ' (faellig seit ' + r.faellig_seit + ')').join('\\n') + '\\n\\nAnzahl faelliger Rechnungen: ' + ($json.rechnungen || []).length + '\\n\\nDieser Report wurde automatisch von BuchPilot erstellt.' }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "send-email",
      "name": "Report senden",
      "type": "n8n-nodes-base.sendEmail",
      "typeVersion": 1,
      "position": [
        1560,
        200
      ],
      "parameters": {
        "from": "={{ $env.SMTP_FROM || 'noreply@example.com' }}",
        "to": "DEINE_EMAIL_HIER",
        "subject": "={{ $json.subject }}",
        "text": "={{ $json.body }}"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "keine-faelligen",
      "name": "Keine faelligen Rechnungen",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        900,
        400
      ],
      "parameters": {}
    }
  ],
  "connections": {
    "Jeden Montag 8:00": {
      "main": [
        [
          {
            "node": "Offene Rechnungen laden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Offene Rechnungen laden": {
      "main": [
        [
          {
            "node": "Faellige filtern",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Faellige filtern": {
      "main": [
        [
          {
            "node": "Report formatieren",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Keine faelligen Rechnungen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Report formatieren": {
      "main": [
        [
          {
            "node": "Zusammenfassung",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zusammenfassung": {
      "main": [
        [
          {
            "node": "E-Mail Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "E-Mail Text": {
      "main": [
        [
          {
            "node": "Report senden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "BuchPilot"
    }
  ]
}