Im Innendienst vieler Großhändler und Hersteller beginnt der Tag mit einem Stapel Bestellungen als PDF. Jede wird geöffnet, gelesen und Position für Position ins ERP getippt. Diese Anleitung beschreibt einen Workflow in n8n, der das vorbereitet und einen Auftragsvorschlag anlegt. Eine laufende Instanz setzen wir voraus, siehe n8n im Unternehmen einrichten. Welche Dokumentarten sich außerdem eignen, steht unter Dokumentenverarbeitung.
| Auf einen Blick | |
|---|---|
| Dauer | vier bis acht Wochen bis zum Echtbetrieb |
| Beteiligt | Innendienst, ERP-Verantwortliche oder ERP-Dienstleister, IT für die Zugänge |
| Voraussetzung | gepflegter Artikel- und Kundenstamm, Schnittstelle oder Importweg ins ERP, zentrales Bestellpostfach |
So sieht der fertige Workflow aus
| Node | Aufgabe | Wichtige Einstellung |
|---|---|---|
| Microsoft Outlook Trigger oder Email Trigger (IMAP) | holt neue E-Mails samt Anhang | Anhänge herunterladen aktivieren |
| Extract from File | liest den PDF-Text | Operation „Extract From PDF“ |
| Information Extractor | zieht strukturierte Daten heraus | JSON-Schema mit allen Feldern |
| Data Table | übersetzt Artikelnummern, erkennt Dubletten | eine Tabelle je Zweck |
| HTTP Request | prüft Kunde, Artikel und Preis im ERP | nur lesender Zugang |
| Code oder IF | wendet die Prüfregeln an | Ergebnis: sauber oder Klärfall |
| Microsoft Outlook | holt die Freigabe | Operation „Send and Wait for Response“ |
| HTTP Request | legt den Auftragsvorschlag an | eigener Status im ERP |
Schritt 1: Prüfen Sie, wie Ihre Bestellungen wirklich aussehen
Sammeln Sie die Bestellungen von vier Wochen und halten Sie fest, wie sie ankommen: PDF mit Textebene, Scan, Excel-Anhang oder reiner E-Mail-Text. Ermitteln Sie, wie viele Kunden den Großteil der Bestellungen ausmachen. Oft decken 20 Kunden den überwiegenden Teil ab, und mit denen starten Sie.
Beginnen Sie mit digital erzeugten PDFs. Scans und Excel-Dateien kommen in einer zweiten Stufe dazu, denn jedes Format braucht einen eigenen Lesepfad. 30 Bestellungen je Kunde legen Sie als Testmenge beiseite.
Schritt 2: Bauen Sie die Tabelle der Kundenartikelnummern
Das ist die eigentliche Arbeit in diesem Projekt und fällt meist unter den Tisch. Kunden bestellen mit ihrer eigenen Nummer, und die Zuordnung steckt oft nur in den Köpfen erfahrener Mitarbeitender. Exportieren Sie die Aufträge der letzten zwei Jahre aus dem ERP und bauen Sie daraus eine Tabelle:
| Kunde | Kundenartikelnummer | Eigene Artikelnummer | Einheit | Umrechnung |
|---|---|---|---|---|
| 10042 | R-48-3 | 700315 | Stück | 1 |
| 10042 | VE-M12-100 | 300214 | VE | 100 |
Für überschaubare Mengen genügt eine Data Table in n8n. Standardmäßig steht allen Data Tables einer Instanz zusammen 200 MiB zur Verfügung. Bei größeren Mengen gehört die Tabelle in eine Datenbank oder ins ERP. Klären Sie außerdem, wer neue Zuordnungen pflegt, denn sonst veraltet die Tabelle innerhalb weniger Monate.
Schritt 3: Lassen Sie das Modell nur auslesen
Nach dem Trigger filtert ein IF-Node auf E-Mails mit PDF-Anhang. Extract from File liest den Text, der Node erwartet die Datei im Input Binary Field, und der heißt je nach Trigger unterschiedlich, etwa attachment_0. Danach folgt der Information Extractor mit einem Sprachmodell. Wählen Sie als Schema Type die Option Define using JSON Schema und legen Sie die Felder fest:
{
"type": "object",
"properties": {
"bestellnummer": { "type": "string" },
"bestelldatum": { "type": "string" },
"wunschtermin": { "type": ["string", "null"] },
"summe_netto": { "type": ["number", "null"] },
"positionen": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kundenartikelnummer": { "type": "string" },
"bezeichnung": { "type": "string" },
"menge": { "type": "number" },
"einzelpreis": { "type": ["number", "null"] }
},
"required": ["kundenartikelnummer", "menge"]
}
}
},
"required": ["bestellnummer", "positionen"]
}
Geben Sie im System Prompt eine klare Regel vor: Fehlt ein Wert im Dokument, trägt das Modell null ein und errät nichts. Den Kunden ermitteln Sie möglichst über die Absenderadresse statt über den Dokumenttext, das ist zuverlässiger.
Schritt 4: Prüfen Sie mit festen Regeln
Ab hier arbeitet das Modell nicht mehr mit. Alle Prüfungen sind Regeln, die immer gleich und nachvollziehbar entscheiden. Sammeln Sie alle Auffälligkeiten in einer Liste, statt beim ersten Fund abzubrechen, damit der Innendienst alles auf einen Blick sieht.
| Prüfung | Quelle | Bei Abweichung |
|---|---|---|
| Bestellung schon verarbeitet? | Data Table oder ERP | Klärfall, kein zweiter Auftrag |
| Kunde bekannt und nicht gesperrt? | ERP | Klärfall |
| Jede Kundenartikelnummer zugeordnet? | Tabelle aus Schritt 2 | Position markieren |
| Positionen ergeben die Bestellsumme? | Rechnung im Workflow | Hinweis auf Lesefehler |
| Preis passt zur Preisliste? | ERP | Hinweis mit beiden Preisen |
| Menge im üblichen Bereich? | Auftragshistorie | Hinweis, etwa bei zehnfacher Menge |
| Wunschtermin in der Zukunft und lieferbar? | ERP | Hinweis |
Die Anbindung ans ERP läuft über den Node HTTP Request an dessen Schnittstelle. Nutzen Sie für die Prüfungen ein Konto, das nur lesen darf.
Schritt 5: Holen Sie die Freigabe ein
Der Innendienst bekommt eine E-Mail mit den erkannten Positionen und allen Hinweisen. Nutzen Sie dafür Microsoft Outlook mit der Operation Send and Wait for Response. Die Variante gibt es auch für Gmail und Slack. Als Response Type bietet sich Approval an, wenn nur zugestimmt oder abgelehnt wird. Mit Custom Form lassen sich zusätzlich einzelne Werte korrigieren.
Der Workflow pausiert, bis jemand reagiert. Setzen Sie in den Antwortoptionen ein Zeitlimit und benachrichtigen Sie nach dessen Ablauf eine Vertretung, damit kein Auftrag liegen bleibt. Die Freigabe öffnet eine Seite Ihrer n8n-Instanz, die Prüfenden müssen sie also erreichen können. Hängen Sie das Original-PDF oder einen Link darauf an, damit niemand zusätzlich im Postfach suchen muss.
Saubere Bestellungen lassen sich später gesammelt freigeben. Die Freigabe jeder einzelnen bleibt in den ersten Wochen sinnvoll, weil genau dort das Vertrauen in das System entsteht.
Schritt 6: Schreiben Sie ins ERP und merken Sie sich das Ergebnis
Erst nach der Freigabe schreibt ein zweiter HTTP Request den Auftrag. Legen Sie ihn mit einem eigenen Status an, etwa „Vorschlag“, wenn Ihr ERP das zulässt. Der Auftrag ist dann sichtbar, löst aber weder Reservierung noch Auftragsbestätigung aus, bis jemand ihn bestätigt.
Tragen Sie Kunde, Bestellnummer und Auftragsnummer anschließend in die Data Table ein, um Dubletten zu verhindern. Antwortet das ERP mit einem Fehler, greift Ihr Fehler-Workflow, und die Bestellung geht mit Meldung zurück an den Innendienst. Sie darf nie still verloren gehen. Unterscheiden Sie dabei vorübergehende Fehler von dauerhaften, also einen kurzen Ausfall, nach dem ein neuer Versuch sinnvoll ist, von einem abgelehnten Datensatz, den ein Mensch ansehen muss.
Schritt 7: Testen Sie parallel und erweitern Sie schrittweise
Lassen Sie die Testmenge aus Schritt 1 durchlaufen und vergleichen Sie jedes Feld mit dem tatsächlichen Auftrag im ERP. Danach läuft der Workflow zwei bis vier Wochen parallel zum Innendienst, in dieser Zeit noch ohne Schreibzugriff.
| Messwert | Worauf Sie achten |
|---|---|
| Korrekt gelesene Positionen je Kunde | Ausreißer zeigen schwierige Layouts |
| Anteil Bestellungen ohne Korrektur | wächst mit gepflegter Zuordnungstabelle |
| Zeit vom Eingang bis zum Auftrag | Vergleich mit dem Stand vorher |
| Falsche Mengen oder Artikel im ERP | muss vor dem Start bei null liegen |
Gehen Sie dann mit fünf Kunden live und nehmen Sie alle ein bis zwei Wochen weitere dazu. Scans, Excel-Dateien und Bestellungen im Fließtext folgen als eigene Ausbaustufen.
Rechenbeispiel: Was das an Zeit bringt
Ein erfundener Großhändler erhält 80 Bestellungen am Tag und braucht heute vier Minuten pro Stück, das sind gut fünf Stunden täglich. Nach der Einführung sollen 70 Prozent mit einer Minute Sichtprüfung durchlaufen und 30 Prozent drei Minuten Klärung brauchen. Das ergibt 56 plus 72 Minuten, also rund zwei Stunden am Tag. Die gewonnenen drei Stunden stehen dem Innendienst für Kundengespräche zur Verfügung. Stellen Sie dem bei Ihren Zahlen die Kosten aus Ihrem Angebot sowie Betrieb und KI-Nutzung gegenüber.
Woran es in der Praxis hakt
Das häufigste Problem ist ein ungepflegter Artikelstamm mit Dubletten und veralteten Nummern. Das System macht diese Lücken sichtbar, beheben muss sie der Betrieb. Danach folgen Kunden, die ihr Layout ändern, und Sonderwünsche im Freitext wie „bitte Teillieferung vermeiden“. Solche Hinweise sollte das Modell als eigenes Feld ausgeben, damit sie in der Freigabe sichtbar sind und nicht verloren gehen. Wenn Sie den Aufbau lieber begleitet angehen wollen, beschreibt die Prozessautomatisierung unser Vorgehen.