Keine ID-Spalte
Die Ausgabe verlangte eine Produkt-ID, der Export lieferte keine. Die Zeilennummer wäre der naheliegende Ersatz gewesen — und beim nächsten Import falsch. Die ID entsteht deshalb aus dem normalisierten Titel.
Ein echter Katalogexport einer D2C-Schuhmarke und eine klare Vorgabe: Kundinnen und Kunden tippen frei, das System findet die eindeutige Variante oder fragt gezielt nach. Entscheiden darf nur Code — ein Sprachmodell formuliert die Antwort, mehr nicht.
Jede Eingabe endet in genau einem Fall: Treffer, Größe fehlt, Farbe fehlt oder Modell mehrdeutig. Die Ausgabe ist JSON mit fester Form — das Sprachmodell bekommt sie fertig und formuliert daraus einen Satz.
{
"type": "question",
"question_key": "missing_size",
"options": ["46", "48", "50", "52", "54"],
"context": {
"model": "Zustieg Hose Herren",
"color": "Oliv",
"matched_candidates": [ … ]
}
}
Gefordert war ein Workflow, der freie Eingaben einer Variante zuordnet — oder gezielt nachfragt, wenn Modell, Farbe oder Größe fehlen oder mehrere Modelle passen. Die Antwort sollte ein Sprachmodell formulieren, die Entscheidung aber nicht treffen dürfen.
Deshalb liegt die gesamte Logik — Matching, Entscheidung, Optionen — in einem einzigen Code-Baustein, deterministisch und reproduzierbar. Das Sprachmodell erhält ausschließlich das fertige Ergebnis und kann es nicht verändern. Dieselbe Datei läuft unverändert im Workflow und in den Tests: Getestet wird genau der Code, der antwortet.
Ein n8n-Workflow mit drei Code-Bausteinen, ein Sprachmodell nur für die Formulierung, Google Sheets als Verlauf und ein React-Dashboard, das Ergebnis, Bilder und Verlauf zeigt.
Vorab geprüft: Das Titelformat „Modell – Farbe – Größe" hielt in allen 890 Zeilen ohne Ausnahme. Deshalb zerlegt Code den Titel beim Import — schneller, kostenlos und reproduzierbar.
Die geforderte Ausgabe verlangte eine Produkt-ID, der Export hatte keine. Die ID entsteht aus dem normalisierten Titel — nicht aus der Zeilennummer, die sich beim nächsten Import verschiebt.
Jedes Wort eines Modellnamens wird nach seiner Seltenheit im Katalog gewichtet. Unter den gut belegten Modellen gewinnt das vollständigste; ein allgemeines Wort allein führt zur Rückfrage statt zu einem Zufallstreffer.
Code-Bausteine im Workflow haben standardmäßig keine Pakete. Die Ähnlichkeit ist eine eigene Levenshtein-Funktion von rund 20 Zeilen mit Schwelle 0,75; zusammengezogene Schreibweisen werden über Wortpaare erkannt.
Das Dashboard schickt die Sitzung und den bisher erkannten Kontext mit: Modell → Farbe → Größe. Nennt eine Eingabe unterwegs ein anderes Modell, gewinnt die Eingabe.
Oberfläche in Deutsch, Englisch, Spanisch und Französisch; die Sprache geht an das Modell, das in ihr antwortet. Produktdaten bleiben unübersetzt — Farbnamen sind Eigennamen. Modellwörter aus allen vier Sprachen werden erkannt.
match
missing_size
missing_color
ambiguous_model
alle Fälle
Fällt eine Prüfung durch — oder antwortet das Modell gar nicht, etwa bei Ausfall, Timeout oder erschöpftem Kontingent —, antwortet eine feste Vorlage in der gewählten Sprache. Die Antwort ist nie leer, und im Dashboard ist sichtbar, welche Quelle geantwortet hat. Anlass für die Satzzeichen-Regel: Das eingesetzte Modell zählt seine Denk-Tokens zum Ausgabelimit; bei zu knappem Limit brach der Satz mitten im Wort ab.
Echte Shop-Exporte sind selten so sauber, wie das Format verspricht. Diese acht Punkte haben die Umsetzung bestimmt — beschrieben ohne Namen aus dem Originalkatalog:
Die Ausgabe verlangte eine Produkt-ID, der Export lieferte keine. Die Zeilennummer wäre der naheliegende Ersatz gewesen — und beim nächsten Import falsch. Die ID entsteht deshalb aus dem normalisierten Titel.
Ohne Normalisierung wären daraus zwei Modelle geworden, wo eines gemeint ist — und jede Anfrage dazu mehrdeutig. Der Import glättet Leerraum, bevor er Modelle bildet.
Singular und Plural, Linien mit und ohne Jahreszahl, Damen-, Herren- und Kinderlinien mit gleichem Stamm. Gelöst über Seltenheitsgewichtung und die Regel „vollständigster Treffer gewinnt" — das Stammwort allein ist mehrdeutig und führt zur Rückfrage.
Ein Modell heißt wie ein kurzes, gängiges Wort, das in längeren Wörtern steckt. Eine einfache Teilstring-Suche hätte es überall gefunden. Lösung: wortweiser Vergleich, und Wörter bis vier Zeichen müssen exakt passen.
Einzelgrößen neben Paargrößen wie „38/39", dazu Zubehör ohne Größe. Eine Einzelgröße trifft den passenden Paarbereich; gibt es nur eine Größe, entfällt die Rückfrage.
Grundfarben-Synonyme bringen beide Sprachen auf einen Nenner. Nennt jemand eine Farbfamilie, die es beim gewählten Modell nur in englisch benannten Tönen gibt, fragt der Prototyp gezielt nach genau diesen Tönen, statt zu raten.
Nicht jede Variante hat ein eigenes Bild. Das Dashboard zeigt Bilder deshalb schon, sobald Modell oder Farbe feststehen — nicht erst beim vollständigen Treffer.
Die Ursache lag laut Workflow-Protokoll nicht beim Sprachmodell, sondern beim Mitschreiben in Google Sheets: Der Workflow schrieb erst ins Sheet und antwortete dann, und das Dashboard lud nach jeder Nachricht den ganzen Verlauf neu, bis Google drosselte. Seitdem antwortet der Workflow zuerst und protokolliert danach, der Verlauf lädt nur auf Anforderung, und geschrieben wird per Append, weil parallele Schreibvorgänge sich sonst gegenseitig überschrieben.
Zahlen aus dem Prototyp, nicht aus einem Shop im Betrieb.
Die 26 Testfälle laufen gegen den echten Export: alle vier Entscheidungsfälle, Tippfehler, die Datenfallen oben, eine Sitzung über drei Runden und eine Schema-Prüfung jedes Ausgabetyps. Die Antwortzeit wurde über den ganzen Vorführ-Ablauf auf einer lokalen n8n-Instanz gemessen, nach dem Umbau „erst antworten, dann protokollieren"; davor lag sie bei bis über einer Minute.
Conversion, Umsatz, Retouren, Supportaufkommen: Der Prototyp war nie im Shop, also gibt es diese Werte nicht — und ohne Messung wären sie geraten. Ebenfalls nicht hier: der Name der Marke und alles, was ihren Katalog wiedererkennbar machen würde.
Die Live-Demo auf der Angebotsseite nutzt denselben Matcher auf einem erfundenen Outdoor-Katalog mit eingebauten Fallen — komplett im Browser und mit festen Vorlagen statt Sprachmodell. Rechts daneben steht, was der Code entschieden hat.
Der Matcher ist nicht an Schuhe gebunden. Gebraucht wird ein Katalogexport mit Modell, Farbe und Größe — als Prototyp zum Festpreis, ohne Livebetrieb.
Automatischer Assistent • Online