Ausgangslage: Kassenzettel-Chaos

Wer kennt es nicht: Der Geldbeutel quillt über vor Kassenzetteln, die Buchhaltung wartet, und am Ende tippt man alles manuell in eine Tabelle ein – oder lässt es ganz bleiben.

Die typischen Probleme

Problem Konsequenz
Kassenzettel verblassen Daten nach wenigen Wochen unleserlich
Manuelles Abtippen Zeitaufwändig und fehleranfällig
Keine Kategorisierung Kein Überblick über Ausgaben nach Kategorie
Belege gehen verloren Fehlende Nachweise für Steuererklärung
Verschiedene Währungen Zusätzlicher Aufwand bei Reisen

Das Ziel: Kassenzettel einfach abfotografieren, an einen Telegram-Bot schicken, und alles wird automatisch erfasst, kategorisiert und archiviert.


Die Lösung: n8n-Workflow mit OCR und KI

Ein 9-Node-Workflow in n8n, der den kompletten Prozess vom Foto bis zur archivierten Tabelle automatisiert.

Architektur

┌─────────────────────────────────────────────────────────────────┐
│                        TELEGRAM BOT                              │
│                                                                  │
│  Nutzer schickt Foto ──▶ Bot empfängt und verarbeitet           │
│                                                                  │
└────────────────────────────────┬────────────────────────────────┘
                                 │
                                 ▼
┌─────────────────────────────────────────────────────────────────┐
│                     VERARBEITUNG (n8n)                            │
│                                                                  │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐     │
│  │ Download │──▶│   OCR    │──▶│ Prepare  │──▶│   LLM    │     │
│  │  File    │   │ (Engine 2│   │  Upload  │   │ Extract  │     │
│  │          │   │  Deutsch)│   │          │   │(gpt-4o-  │     │
│  │          │   │          │   │          │   │  mini)   │     │
│  └──────────┘   └──────────┘   └──────────┘   └──────────┘     │
│                                                     │            │
│                                                     ▼            │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐     │
│  │ Telegram │◀──│  Google  │◀──│  Google  │◀──│  Format  │     │
│  │  Reply   │   │  Sheets  │   │  Drive   │   │ Results  │     │
│  │          │   │  Append  │   │  Upload  │   │          │     │
│  └──────────┘   └──────────┘   └──────────┘   └──────────┘     │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Die 9 Nodes im Detail

# Node Typ Aufgabe
1 Telegram Trigger telegramTrigger Empfängt Fotos vom Nutzer
2 Download File telegram Lädt das Bild über die Telegram API
3 OCR httpRequest Sendet das Bild an ocr.space (Engine 2, Deutsch)
4 Prepare code Extrahiert OCR-Text, stellt Chat-ID und Binärdaten bereit
5 LLM Extract chainLlm KI extrahiert strukturierte Daten aus dem OCR-Text
6 Format Results code Baut Dateinamen, Sheets-Zeile und Antworttext
7 Google Drive Upload googleDrive Speichert das Bild als Datum_Kategorie
8 Google Sheets googleSheets Fügt eine neue Zeile in die Tabelle ein
9 Telegram Reply telegram Sendet die Zusammenfassung an den Nutzer

Schlüsselentscheidungen

OCR: Engine 2 mit deutschen Parametern

Standard-OCR versagt bei Kassenzetteln – kleine Schrift, schlechte Beleuchtung, Thermodruck. Die Lösung:

OCR.space Engine 2
├── language = ger    (deutsche Zeichenerkennung)
├── scale = true      (Bild hochskalieren)
└── isTable = true    (Tabellenerkennung für Artikellisten)

KI statt Regex

Regex-basiertes Parsing scheitert an der Vielfalt realer Belege – verschiedene Layouts, Sprachen, Abkürzungen. Stattdessen analysiert ein LLM (gpt-4o-mini über OpenRouter) den rohen OCR-Text und liefert strukturiertes JSON:

{
  "nr": "20260215-001",
  "store": "ALDI SÜD",
  "category": "Lebensmittel",
  "date": "15.02.2026",
  "total": "23,47",
  "currency": "EUR",
  "items": "Milch, Brot, Käse, Obst, Gemüse",
  "notes": ""
}

Automatische Kategorisierung

Die KI ordnet jeden Beleg einer Kategorie zu:

Kategorie Beispiele
Lebensmittel ALDI, REWE, Edeka, Lidl
Elektronik MediaMarkt, Saturn, Conrad
Kleidung H&M, Zara, Primark
Haushalt IKEA, OBI, Bauhaus
Restaurant Restaurants, Cafés, Lieferdienste
Transport Tankstellen, DB, ÖPNV
Gesundheit Apotheken, Drogerien
Versicherung Versicherungsbeiträge
Sonstiges Alles andere

Plain-Text-Antwort statt Markdown

Telegram’s Markdown-Parser ist streng und bricht bei ungültiger Formatierung ab. Deshalb wird die Antwort als reiner Text konstruiert – zuverlässig und ohne Parsing-Fehler.


Das Ergebnis

Google Sheets: Automatische Belegübersicht

Jeder Kassenzettel wird als neue Zeile mit allen extrahierten Daten erfasst:

┌──────┬───────────┬──────────────┬────────────┬───────┬──────┬─────────┬───────┐
│  Nr  │   Store   │  Category    │    Date    │ Total │ Curr │  Items  │ Notes │
├──────┼───────────┼──────────────┼────────────┼───────┼──────┼─────────┼───────┤
│ 001  │ ALDI SÜD  │ Lebensmittel │ 15.02.2026 │ 23,47 │ EUR  │ Milch,  │       │
│      │           │              │            │       │      │ Brot ..│       │
├──────┼───────────┼──────────────┼────────────┼───────┼──────┼─────────┼───────┤
│ 002  │ dm        │ Gesundheit   │ 16.02.2026 │ 15,99 │ EUR  │ Shampoo │       │
│      │           │              │            │       │      │ Creme  │       │
├──────┼───────────┼──────────────┼────────────┼───────┼──────┼─────────┼───────┤
│ 003  │ Migros    │ Lebensmittel │ 17.02.2026 │ 45,30 │ CHF  │ Fleisch │       │
│      │           │              │            │       │      │ Gemüse │       │
└──────┴───────────┴──────────────┴────────────┴───────┴──────┴─────────┴───────┘

Google Drive: Automatische Archivierung

Jedes Belegfoto wird mit dem Dateinamen Datum_Kategorie in Google Drive gespeichert – sofort auffindbar und durchsuchbar.

Telegram: Sofortige Bestätigung

Danke! Dein Beleg wurde gespeichert.

Nr: 20260215-001
Geschaeft: ALDI SÜD
Kategorie: Lebensmittel
Datum: 15.02.2026
Betrag: 23,47 EUR
Artikel: Milch, Brot, Käse, Obst, Gemüse

Datei: 2026-02-15_Lebensmittel
Datenbank: [Link zur Google Tabelle]

Technischer Stack

Komponente Tool
Workflow-Engine n8n (self-hosted auf Hostinger VPS)
OCR ocr.space API (Engine 2, Deutsch)
KI-Extraktion gpt-4o-mini via OpenRouter
Messenger Telegram Bot API
Datenspeicher Google Sheets
Dateispeicher Google Drive
Workflow-Entwicklung Claude Code + n8n MCP-Server

Fazit

Der Telegram Beleg-Bot löst ein alltägliches Problem mit minimaler Reibung:

  1. Kein manuelles Eintippen – Foto schicken, fertig
  2. Automatische Kategorisierung – KI erkennt Geschäft und Ausgabenkategorie
  3. Mehrsprachig – Deutsche, englische und schweizer Belege werden erkannt
  4. Mehrere Währungen – EUR, CHF, USD werden automatisch erkannt
  5. Sofort archiviert – Bild in Google Drive, Daten in Google Sheets

Der gesamte Workflow wurde mit Claude Code und dem n8n MCP-Server per Sprachbefehl erstellt – von der ersten Node bis zum fertigen Bot, inklusive Debugging und Optimierung.


Du möchtest deine Belegerfassung oder andere Geschäftsprozesse automatisieren? Dann schreib mir einfach auf LinkedIn oder buche direkt einen kostenlosen Call.