Er ist Ihr Schutz davor, dieselbe E-Mail zweimal zu senden.
Das Problem, das er löst, ist eine normale Tatsache der Netzwerkkommunikation: Eine Anfrage kann auf dem Server erfolgreich sein und für den Aufrufer trotzdem wie ein Fehler aussehen. Die Verbindung bricht ab, während die Antwort zurückkommt, ein Timeout tritt ein, eine Warteschlange liefert einen Job erneut aus, ein Deployment startet einen Worker mitten in der Anfrage neu. Ihr System weiß, dass es den Aufruf gesendet hat; es weiß nicht, ob Automations darauf reagiert hat. Der naheliegend sichere Schritt (Wiederholung) würde dem Kunden eine zweite Bestellbestätigung senden.
Der Idempotenzschlüssel beseitigt dieses Dilemma. Automations speichert den Schlüssel zusammen mit dem dadurch erzeugten Workflow-Durchlauf. Bei jedem Aufruf wird geprüft, ob für diesen Schlüssel in diesem Workflow bereits ein Durchlauf existiert:
| Situation | Antwort | Was passiert |
|---|
| Erster Aufruf mit diesem Schlüssel | 201 mit {"workflow_run_id": "…", "created": true} | Ein Durchlauf startet, die E-Mail wird gesendet. |
| Derselbe Schlüssel erneut | 200 mit {"workflow_run_id": "…", "deduplicated": true} | Nichts passiert; Sie erhalten die ID des ursprünglichen Durchlaufs zurück. |
Eine Wiederholung ist daher immer sicher, und eine Wiederholung ist aus Sicht des Kunden nicht vom ursprünglichen Aufruf zu unterscheiden. Wiederholen Sie, bis Sie ein 2xx erhalten – das ist der ganze Sinn des Mechanismus.
Den Wert wählen
Der Schlüssel muss das Ereignis identifizieren, nicht den Versuch. Die zu stellende Frage lautet: „Wäre das Ergebnis dasselbe, wenn dieser Wert zweimal berechnet würde?“
| Wert | Beurteilung |
|---|
order-42-shipped | ✅ Abgeleitet von der Bestellung und dem, was mit ihr passiert ist |
password-reset-user-77-2026-09-21T10:15:00Z | ✅ Reset-Anfragen wiederholen sich, daher den Zeitpunkt einbeziehen |
booking-9931-reminder-24h | ✅ Benennt, welche von mehreren E-Mails zu einer Buchung dies ist |
pro Versuch generiertes uuid4() | ❌ Jede Wiederholung ist ein neues Ereignis, was die Deduplizierung ausschaltet |
| Aktueller Zeitstempel | ❌ Gleiches Problem |
order-42 | ❌ Zu grob, da es die Versand-E-Mail blockiert, wenn die Bestätigung diesen Wert bereits verwendet hat |
Jede Zeichenfolge funktioniert; es gibt keine Formatvorgaben. Eine nützliche Konvention ist <entität>-<id>-<was passiert ist>.