
Ein Webhook kommt zweimal an. Wie verhindern wir die doppelte Aktion?
Eine Anfrage soll einen CRM-Eintrag anlegen. Die Antwort dauert zu lange, der Absender versucht es erneut, und plötzlich steht die Anfrage zweimal im Board. Das ist ein typischer Fehler zwischen zwei Systemen. Wer Wiederholungen von Anfang an einplant, muss sie später nicht von Hand aufräumen.
Recherchestand: 2026-09-09 · Titelbild: KI-generierte Illustration
Die Zustellung vom eigentlichen Vorgang unterscheiden
Stripe dokumentiert, dass Webhooks mehrfach und ohne garantierte Reihenfolge eintreffen können. Bereits verarbeitete Ereignisse lassen sich anhand ihrer IDs erkennen. Der Eingang einer weiteren Nachricht bedeutet also nicht automatisch, dass neue Arbeit entstanden ist.
Für die eigene Schnittstelle muss außerdem klar sein, welcher fachliche Vorgang gemeint ist. Zwei unterschiedliche Benachrichtigungen können dieselbe Aktion betreffen. Nur Uhrzeit oder Nachrichtentext zu vergleichen, ist dafür zu ungenau.
Arbeit vormerken, bevor sie bestätigt wird
Am Eingang werden Absender und Nachrichtengröße geprüft und die Ereignis-ID gespeichert. Die Annahme wird erst bestätigt, wenn die Arbeit dauerhaft vorgemerkt ist. Langsame Folgeaktionen kann anschließend ein Worker übernehmen.
Ein eindeutiger Datenbankschlüssel schützt vor zwei gleichzeitig eintreffenden Kopien. Ohne gemeinsame Absicherung können beide Anfragen beim Nachsehen noch „nicht vorhanden“ finden und danach jeweils einen Eintrag anlegen.
Auch beim nächsten API-Aufruf an Wiederholungen denken
Ruft der Worker eine weitere API auf, entsteht dort dieselbe Grundfrage. Stripe bietet für bestimmte Anfragen Idempotenzschlüssel, damit ein erneuter Versuch nicht versehentlich eine zweite Operation auslöst. Eingehende Webhooks müssen trotzdem separat erkannt werden.
Der Schlüssel bleibt für dieselbe fachliche Aktion über Wiederholungen hinweg gleich. Unterstützt das Zielsystem das nicht, muss nach einem unklaren Timeout sein tatsächlicher Zustand geprüft werden. Vielleicht war die Aktion erfolgreich und nur die Antwort ist verloren gegangen.
Der Ablauf auf einen Blick
- 01AnnehmenEreignis sicher speichern
- 02VerarbeitenDubletten erkennen
- 03AbgleichenZielzustand bestätigen
Fehler gezielt nachstellen
Zwei gleichzeitige Zustellungen, ein Worker-Neustart und ein Timeout nach erfolgreicher Zielaktion gehören für mich in die Abnahme einer solchen Integration. Danach muss erkennbar sein, was verarbeitet ist, was wartet und was geprüft werden muss.
Im Dashboard braucht die offene Arbeit einen sichtbaren Platz und eine kontrollierte Wiederholung. Bei Outreach ist das besonders wichtig: Eine doppelte Card lässt sich bereinigen. Eine bereits doppelt versendete Nachricht ist beim Empfänger angekommen.
