
Extraktion ist einfach. Zu wissen, dass die Extraktion falsch war, ist die Anforderung
Rechnungen kommen in jedem Layout an, das ein Lieferant erfindet. Sie zu lesen ist mechanische Arbeit, die den Vormittag einer Buchhaltung füllt und eine Tabelle erzeugt, die schon auf der Seite steht.
Die Gefahr ist nicht, dass Extraktion offensichtlich scheitert. Sie ist, dass sie akzeptabel gelingt: 1.240 statt 1.420, in einem Dokument, das niemand nachprüft, weil die Gesamtsumme stimmte.
Deshalb ist Arithmetik eine Prüfung, kein Formatierungsschritt. Positionen müssen zur genannten Zwischensumme addieren. Steuer muss zum Satz der Jurisdiktion passen. Zwischensumme plus Steuer muss der Gesamtsumme gleichen. Scheitert eine Rechnung an einer dieser Prüfungen, wurde sie falsch gelesen oder sie ist falsch. In beiden Fällen muss eine Person sie behandeln.
Währung und Datum sind die Felder, die am häufigsten angenommen werden. Wird eine Rechnung in einer zweiten Währung zum falschen Kurs gebucht, fällt der Fehler erst beim Abgleich Wochen später auf.
So läuft der ActionFlow auf der Canvas
Rechnungen kommen als PDFs über einen Email-Knoten an, der das Buchhaltungs-Postfach liest, oder über einen Document Upload-Knoten, wenn jemand ein Dokument direkt einreicht.
Ein Extract Data-Knoten wählt aus einem mehrseitigen Dokument die Seiten, die Positionen enthalten. Ein PDF4me-Knoten extrahiert den Dokumentinhalt. Beides läuft, bevor irgendein Modell die Datei sieht.
Ein Generate Object-Knoten gibt Lieferant, Rechnungsnummer, Datum, Währung, ein Array von Positionen, Steuerzeilen und die genannten Summen zurück. Jedes Feld kommt aus dem Dokument oder bleibt leer. Nichts wird abgeleitet.
Ein Math-Knoten führt dann die Prüfungen aus: Positionen gegen Zwischensumme, Steuer gegen Satz, Zwischensumme plus Steuer gegen Gesamtsumme. Diese Prüfungen sitzen in einem Berechnungsknoten, damit das Modell seine eigene Lesung nicht selbst bestätigt.
Ein Validate-Knoten wendet Formatregeln an: Datumsformat, Währungscode und Pflichtfelder. Ein If-Knoten handelt dann auf dem kombinierten Ergebnis.
Saubere Rechnungen gehen als gebuchte Zeilen an einen PostgreSQL- oder Google-Sheets-Knoten. Rechnungen, die an einer Prüfung scheitern, gehen an einen Slack-Knoten in der Kategorie Human in the Loop, mit der scheiternden Zeile benannt, damit die prüfende Person auf eine Zahl schaut statt auf das ganze Dokument.
Ein Google-Sheets-Knoten protokolliert jede Extraktion und das Prüfergebnis. Dieses Protokoll zeigt Ihnen, dass das Format eines Lieferanten den Prozess jeden Monat bricht.
Knoten, die dieser ActionFlow verwendet
- Email (Communication): liest das Buchhaltungs-Postfach. Document Upload (Data) nimmt direkte Einreichungen.
- PDF4me (Data): extrahiert den Dokumentinhalt.
- Extract Data (Data): grenzt lange Dokumente auf die Seiten mit Positionen ein.
- Generate Object (AI Core): gibt Lieferant, Nummer, Datum, Währung, Positionen und Summen als Struktur zurück.
- Math (Util): prüft Positionen gegen Zwischensumme, Steuer gegen Satz und die genannte Gesamtsumme.
- Validate (Data): wendet Formatregeln und Pflichtfelder an.
- Slack (Human in the Loop): leitet scheiternde Rechnungen mit der konkreten scheiternden Zeile benannt.
- PostgreSQL (Data): empfängt saubere Zeilen. Google Sheets und MySQL passen in denselben Slot.
Häufige Fragen
Newsletter
Produktupdates erhalten
Neue Nodes, Agents und Produktnotizen. Wir senden E-Mails nur, wenn sich das Öffnen lohnt.