Der Workflow ist grün, im CRM stehen zwei Kontakte und beide haben eine Bestätigungsmail erhalten. Die Schritte sind technisch durchgelaufen. Jetzt musst du herausfinden, wo derselbe Vorgang zum zweiten Mal verarbeitet wurde.

Suche zuerst ein konkretes Dublettenpaar. Notiere die zugehörigen Ausführungskennungen und Zeitpunkte, ohne Kundendaten in öffentliche Fehlerberichte zu kopieren. Wurden zwei Ausführungen gestartet, oder hat eine einzige Ausführung zweimal geschrieben? Diese Unterscheidung spart unnötiges Umbauen.

Nach einem Abbruch bleibt der erste Eintrag bestehen

Ein externer Dienst kann dasselbe Ereignis erneut zustellen, wenn eine Antwort ausbleibt. Stripe beschreibt doppelte Webhook-Ereignisse ausdrücklich als Fall, den eine Integration behandeln muss. Welche Regeln dein Anbieter verwendet, steht in dessen Dokumentation. Verlasse dich nicht darauf, dass ein Ereignis immer genau einmal ankommt.

Fiktiver Ablauf: Schritt eins legt einen CRM-Vorgang an. Schritt zwei sendet eine interne Nachricht und bricht ab. Du startest den vollständigen Workflow erneut. Wenn Schritt eins jedes Mal einen neuen Vorgang anlegt, entsteht die Dublette auch bei einem ursprünglich einmaligen Auslöser.

Prüfe deshalb vor dem Neustart, welche Wirkung bereits eingetreten ist. Für n8n erklärt die Dokumentation zum Debuggen von Ausführungen, wie gespeicherte Ausführungsdaten in den Editor geladen werden. Tests mit diesen Daten gehören in eine Umgebung, in der keine echten Kontakte oder Nachrichten erneut erzeugt werden.

Woran erkennt der Ablauf denselben Vorgang?

Ein stabiler Schlüssel verbindet Eingang und Ergebnis. Bei einer Formularanfrage ist das beispielsweise eine eindeutige Vorgangskennung. Die E-Mail-Adresse allein reicht nicht: Eine Person darf zwei verschiedene Anfragen stellen. Werden beide als derselbe Vorgang behandelt, verschwindet eine legitime Anfrage.

Die Verarbeitung sollte unterscheiden zwischen „bereits abgeschlossen“, „noch in Bearbeitung“ und „fehlgeschlagen, wiederholbar“. Speichere dazu die Kennung des Ergebnisses im Zielsystem. Dann lässt sich bei einem erneuten Versuch der vorhandene Vorgang verwenden, statt blind einen zweiten anzulegen.

Achte auch auf gleichzeitig laufende Ausführungen. Wenn beide erst nach einem vorhandenen Datensatz suchen und beide nichts finden, schreiben sie anschließend trotzdem doppelt. Eine getrennte Suche vor dem Anlegen ist daher keine vollständige Absicherung. Wie die Einmaligkeit umgesetzt wird, hängt von den Möglichkeiten des Zielsystems ab, etwa einem eindeutigen Datenbankschlüssel oder einer dafür vorgesehenen API-Funktion.

Prüfe die Reparatur mit denselben Grenzfällen

Bereite die Untersuchung in einer Testfassung des n8n-Workflows vor:

  1. Öffne die Ausführungsübersicht und vergleiche die Kennungen der betroffenen Läufe. Notiere, ob die Dublette innerhalb eines Laufs oder erst beim nächsten entsteht.
  2. Übernimm die gespeicherten Eingabedaten in eine getrennte Testfassung. Ersetze schreibende Verbindungen zu echten Kundensystemen durch kontrollierte Testziele.
  3. Vergleiche vor jedem schreibenden Schritt die Vorgangskennung und das schon vorhandene Zielergebnis. Damit wird sichtbar, an welcher Stelle die Zuordnung verloren geht.
  4. Wiederhole den Test nach der Korrektur mit gleichem Ereignis und mit einem wirklich neuen Vorgang.

Ergänze einen gleichzeitigen Doppelaufruf und einen Abbruch nach dem ersten gespeicherten Schritt. Kontrolliere jeweils die entstandenen Datensätze. So prüfst du auch die Fälle, die eine bloße Suche nach vorhandenen Einträgen übersehen würde.

Ein vorhandener doppelter Datenbestand wird durch die technische Korrektur nicht rückwirkend bereinigt. Sichere zunächst die Zuordnungen; beim Zusammenführen könnten sonst Notizen oder Verknüpfungen verloren gehen. Bereinigung und Fehlerbehebung brauchen getrennte Entscheidungen.

Für einen bestehenden Ablauf passt Automation reparieren. Wenn die Zuordnung zwischen den Systemen grundsätzlich offen ist, lies zuerst den Ratgeber zum CRM-Datenabgleich. Für die spätere Kontrolle steht Automationen betreuen mit einem ausdrücklich begrenzten Betreuungsumfang zur Verfügung.