{
  "name": "Conrad KI — PDF-Rechnungen lokal auslesen (Ollama + n8n)",
  "nodes": [
    {
      "parameters": {
        "mailbox": "INBOX",
        "postProcessAction": "read",
        "downloadAttachments": true,
        "options": {}
      },
      "id": "node-01-imap-trigger",
      "name": "01 · Postfach-Trigger (PDF-Eingang)",
      "type": "n8n-nodes-base.emailReadImap",
      "typeVersion": 2,
      "position": [240, 300]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://127.0.0.1:11434/api/generate",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"gemma4:31b\",\n  \"stream\": false,\n  \"format\": \"json\",\n  \"prompt\": \"Extrahiere aus diesem Rechnungstext als JSON: datum (YYYY-MM-DD), lieferant, beleg_nr, netto_eur (Zahl), mwst_eur (Zahl), faellig_am (YYYY-MM-DD). Text: \" + $json.textPlain\n}",
        "options": {}
      },
      "id": "node-02-ollama-extract",
      "name": "02 · Lokales Sprachmodell (Ollama JSON-Extraktion)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [540, 300]
    },
    {
      "parameters": {
        "jsCode": "const parsed = JSON.parse($input.first().json.response || '{}');\nconst safeVendor = (parsed.lieferant || 'Beleg').replace(/[^a-zA-Z0-9_-]/g, '_');\nconst fileName = `${parsed.datum || '2026-01-01'}_${safeVendor}_${parsed.netto_eur || '0'}.pdf`;\nreturn [{ json: { ...parsed, ziel_dateiname: fileName } }];"
      },
      "id": "node-03-rename-and-log",
      "name": "03 · Dateiname & Buchhaltungs-Zeile aufbereiten",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [840, 300]
    }
  ],
  "connections": {
    "01 · Postfach-Trigger (PDF-Eingang)": {
      "main": [
        [
          {
            "node": "02 · Lokales Sprachmodell (Ollama JSON-Extraktion)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "02 · Lokales Sprachmodell (Ollama JSON-Extraktion)": {
      "main": [
        [
          {
            "node": "03 · Dateiname & Buchhaltungs-Zeile aufbereiten",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
