Thread
Warum dieser Schritt
Eine Konversation ist mehr als eine Email: Warum Threads
Der Absender ist erkannt, das Kontaktprofil ist aktualisiert. Jetzt stellt sich eine Frage auf einer Ebene darüber: Steht diese Email allein, oder ist sie Teil eines laufenden Austauschs? Dieses Unterkapitel erklärt, warum das System Konversationen zusammenhält und was es ohne diese Zusammenführung verlöre.
Eine Konversation wächst
Am 3. April schreibt Anna: "Hallo Karl, ich habe eine Frage zur Rechnung R-2026-0412." Karl antwortet am 4. April. Anna antwortet am 5. April mit einer Rückfrage. Karl antwortet am 8. April mit der geklärten Aussage. Anna schickt am 10. April einen kurzen Dank. Fünf Emails, ein Thema, eine zusammenhängende Konversation.
In der Datenbank liegen fünf separate email-Zeilen. Aus Sicht des Systems wären das zunächst fünf unabhängige Vorgänge. Die Zusammengehörigkeit ist nirgendwo automatisch sichtbar. Genau dafür gibt es den Begriff Thread: ein roter Faden, der all diese Nachrichten zu einer Einheit zusammenbindet.
Die einzelne Email kennt ihren Thread nicht
Eine Email enthält keinen Hinweis wie "ich gehöre zu Thread 17". Das wäre technisch auch unmöglich, weil der Absender beim Schreiben nicht wissen kann, welche Thread-ID das empfangende System gerade vergeben wird. Die Zuordnung zum Thread ist also eine Entscheidung des Systems beim Empfang, nicht eine Information in der Email selbst.
Was eine Email aber enthalten kann, sind Hinweise, aus denen sich die Zugehörigkeit ableiten lässt. Zwei Arten von Hinweisen sind für die Zuordnung relevant: der Betreff (oft als "Re: ..." markiert) und Header-Felder, die auf vorherige Nachrichten verweisen. Die folgenden Unterkapitel erklären beide Wege im Detail.
Threads als virtuelle Gruppierung
In der Datenbank gibt es zwei Tabellen, die den Thread greifbar machen. Die threads-Tabelle enthält eine Zeile pro Konversation mit einer eindeutigen ID und einem normalisierten Betreff als Etikett. Die emails-Tabelle hat die Spalte thread_id, die auf die entsprechende Thread-Zeile verweist.
Dadurch entsteht eine virtuelle Gruppierung: Alle Emails mit derselben Faden-Nummer gehören zur selben Konversation. Das System muss zu keinem Zeitpunkt die Emails physisch umgruppieren oder kopieren. Eine Abfrage mit SELECT nach Faden-Nummer genügt, um alle Nachrichten einer Konversation zu finden.
Wozu die Faden-Nummer später gebraucht wird
Die Thread-Zuordnung ist kein Selbstzweck. Sie wirkt in späteren Pipeline-Schritten und im Admin-Dashboard.
- Entwurfsgenerierung: Wenn das System einen Antwortentwurf formuliert, bekommt das Sprachmodell nicht nur die aktuelle Email, sondern auch die letzten Nachrichten aus derselben Konversation als Kontext. So kann es auf den bisherigen Gesprächsverlauf eingehen.
- Admin-Dashboard: Statt einer flachen Liste aller Emails lassen sich Nachrichten nach Konversationen gruppieren. Ein Operator sieht auf einen Blick, welche Rückfragen zu welchen Anfragen gehören.
- Statistiken: Wie lang dauert eine typische Konversation. Wie viele Nachrichten enthält sie im Schnitt. Solche Auswertungen brauchen die Thread-Zuordnung als Grundlage.
Ohne die Faden-Nummer müsste jede dieser Funktionen die Zusammengehörigkeit jedes Mal neu ableiten. Die Zuordnung im Pipeline-Schritt ist also eine einmalige Arbeit, die an vielen Stellen später Wert schafft.