Webhooks. Echtzeit-Ereignisse, zuverlässig zugestellt.
Webhook-Endpunkte pro Workspace empfangen Klick-, Konversions- und Link-Management-Ereignisse mit HMAC-SHA256-Signaturen. Automatische Wiederholungen mit exponentiellem Backoff. Der SIEM-Modus streamt Ereignisse an Ihre Sicherheitsplattform.
- 10+ Ereignistypen – Klicks, Konversionen, Domain-Änderungen
- HMAC-SHA256-Signatur bei jeder Zustellung
- 72 Stunden Retry mit exponentiellem Backoff
- Zustellprotokoll mit One-Click-Replay
Ereignistypen
10+ Ereignistypen out of the box
Abonnieren Sie pro Endpoint – erhalten Sie nur die Ereignisse, die Sie interessieren. Hochvolumige Klick-Ereignisse werden standardmäßig in einem 5-Sekunden-Batch-Fenster gesendet; der Raw-Click-Modus liefert pro Klick für Stream-Verarbeiter.
- link.clicked
Jeder Weiterleitungsklick. Batch-Modus (5-s-Fenster) oder Raw-Click.
- link.created
Im Workspace wurde ein neuer Kurzlink erstellt.
- link.updated
Link-Metadaten, Ziel-URL oder Regeln wurden geändert.
- link.deleted
Link entfernt – aktualisieren Sie nachgelagerte Referenzen.
- domain.verified
Eigene Domain hat die DNS-Verifizierung bestanden.
- conversion.attributed
Umsatzereignis wurde einem Klick über Stripe oder Shopify zugeordnet.
- campaign.completed
Kampagne hat ihr Enddatum oder Klick-Limit erreicht.
- member.invited
Workspace-Mitglied hinzugefügt oder per SCIM provisioniert.
Außerdem link.expired, link.click_cap_reached, domain.ssl_issued und weitere – siehe vollständigen Ereigniskatalog.
Zustellgarantien
Exponentielles Backoff. 72-Stunden-Fenster.
Eine Antwort außerhalb von 2xx oder ein 30-Sekunden-Timeout löst automatische Retries aus: 30 s → 2 min → 10 min → 30 min → 2 h → 8 h → 24 h → 48 h. Nach 72 Stunden gilt die Zustellung endgültig als fehlgeschlagen und wird aus der Warteschlange entfernt – bleibt aber für manuellen Replay im Zustellprotokoll.
- 30-Sekunden-Antwort-TimeoutGeben Sie sofort 200 zurück; verarbeiten Sie asynchron, falls Ihr Handler langsam ist.
- 8 Retry-Versuche über 72 StundenExponentielles Backoff – kein Lawineneffekt beim Neustart.
- Auto-Pause nach 30 aufeinanderfolgenden FehlernWorkspace-Admin per E-Mail benachrichtigt. Fortsetzen aus dem Dashboard.
- One-Click-Replay aus dem LogOriginale Payload, gleiche event_id – der Empfänger muss idempotent sein.
| Ereignis | Endpoint | Status | Latenz | Zeit | |
|---|---|---|---|---|---|
link.clicked | api.acme.com/wh | 200 | 142ms | 14:04:31 | |
link.created | api.acme.com/wh | 200 | 88ms | 14:03:19 | |
conversion.attributed | logs.acme.com | 500 | 30001ms | 14:02:01 | |
domain.verified | api.acme.com/wh | 200 | 67ms | 13:58:44 | |
link.deleted | logs.acme.com | timeout | 30000ms | 13:55:12 |
Zustellprotokoll
Vollständiges Log. Filtern, inspizieren, replayen.
Jeder Versuch wird protokolliert: Event-ID, Ereignistyp, Endpoint-URL, HTTP-Status, Antwort-Body (bis 4 KB) und Latenz. Aufbewahrung: 30 Tage auf Pro, 90 Tage auf Business.
- Filter nach Ereignistyp, Endpoint, Status und Datumsbereich
- Fehlgeschlagene Einträge zeigen den vollständigen Request-Body zur Fehlersuche
- Replay sendet die originale Payload – gleiche event_id
- API: POST /v1/webhooks/deliveries/:id/replay
- SIEM-Modus: strukturiertes JSON mit 7-Tage-Retry-Garantie
Was Sie tun können
- Klick-, Konversions-, Link- und Domain-Ereignisse
- HMAC-SHA256-Anfragesignierung
- Automatische Wiederholungen – bis zu 72 Stunden
- SIEM-Modus für die Weiterleitung von Sicherheitsereignissen
- Themenfilterung pro Ereignistyp
- Webhook-Zustellungsprotokoll mit Replay-Funktion
Was Elido-Webhooks liefern und wie die Zustellung funktioniert
Webhooks sind nur so nützlich wie ihre Zuverlässigkeit. Die folgenden Abschnitte behandeln Zustellgarantien, Signaturverifizierung, Wiederholungsverhalten und den SIEM-Modus.
Klick-Ereignisse, Konversions-Ereignisse, Link-Lifecycle-Ereignisse und Domain-Ereignisse – konfigurierbar pro Endpunkt
Jeder Webhook-Endpunkt kann einen oder mehrere Ereignistypen abonnieren: click.created (jeder Redirect-Klick), conversion.created (Konversions-Ereignis von Stripe, Shopify oder benutzerdefiniertem Endpunkt), link.created, link.updated, link.deleted, link.expired, link.click_cap_reached, domain.verified, domain.ssl_issued, domain.ssl_error, workspace.member.added, workspace.member.removed. Hochvolumige Klick-Ereignisse können störend sein – standardmäßig werden click.created-Webhooks mit einem 5-sekündigen Aggregationsfenster gesendet (gebündelte Zustellung, bis zu 100 Ereignisse pro Payload). Wenn Sie eine Echtzeit-Zustellung pro Klick benötigen (z. B. für einen Stream-Prozessor), aktivieren Sie den Raw-Click-Modus am Endpunkt; beachten Sie, dass dies Tausende von Anfragen pro Minute für stark frequentierte Workspaces erzeugen kann und nur für Endpunkte aktiviert werden sollte, die diesen Durchsatz bewältigen können.
Jede Anfrage wird mit HMAC-SHA256 signiert – verifizieren Sie den X-Elido-Signature-Header vor der Verarbeitung
Elido signiert jeden Webhook-Anfrage-Body mit HMAC-SHA256 unter Verwendung des am Endpunkt konfigurierten Shared Secret. Die Signatur ist im Header X-Elido-Signature als 'sha256=<hex_digest>' enthalten. Zur Verifizierung: Berechnen Sie HMAC-SHA256 über den rohen Anfrage-Body mit dem Shared Secret und vergleichen Sie das Ergebnis mithilfe einer zeitkonstanten Vergleichsfunktion mit dem Header-Wert (um Timing-Angriffe zu verhindern). Verarbeiten Sie niemals eine Webhook-Payload, bevor Sie die Signatur verifiziert haben. Das Secret wird einmalig bei der Erstellung des Endpunkts angezeigt; rotieren Sie es im Dashboard mit einem überschneidenden Fenster ohne Ausfallzeit (das alte Secret bleibt nach der Generierung eines neuen 15 Minuten lang gültig). Code-Beispiele für die Signaturverifizierung in Node.js, Python und Go finden Sie im Webhook-Leitfaden unter /docs/guides/webhooks.
Automatische Wiederholungen mit exponentiellem Backoff – bis zu 72 Stunden, bevor eine Zustellung als fehlgeschlagen markiert wird
Wenn ein Endpunkt einen Nicht-2xx-Statuscode zurückgibt oder eine Zeitüberschreitung auftritt (30 Sekunden Antwort-Timeout), wiederholt Elido die Zustellung mit exponentiellem Backoff: 30 Sekunden, 2 Minuten, 10 Minuten, 30 Minuten, 2 Stunden, 8 Stunden, 24 Stunden, 48 Stunden. Nach dem 72-Stunden-Fenster wird die Zustellung als dauerhaft fehlgeschlagen markiert und aus der Wiederholungswarteschlange entfernt. Fehlgeschlagene Zustellungen erscheinen im Webhook-Zustellungsprotokoll mit dem endgültigen HTTP-Statuscode (oder 'Timeout'). Sie können jede fehlgeschlagene Zustellung über das Dashboard oder die API (POST /v1/webhooks/deliveries/:id/replay) erneut abspielen – nützlich für die Wiederherstellung eines Stapels von Ereignissen nach einem Downstream-Ausfall. Endpunkte, die bei mehr als 30 aufeinanderfolgenden Zustellungen einen 5xx-Fehler zurückgeben, werden automatisch pausiert und der Workspace-Administrator wird per E-Mail benachrichtigt. Setzen Sie den Endpunkt über das Dashboard fort, sobald das zugrunde liegende Problem behoben ist.
Der SIEM-Modus streamt Workspace-Audit-Ereignisse an Splunk, Datadog oder einen beliebigen HTTPS-Log-Ingestion-Endpunkt
Der SIEM-Modus ist eine spezielle Webhook-Konfiguration für die Weiterleitung von Sicherheitsereignissen. Anstelle von Anwendungsereignissen (Klicks, Konversionen) liefert der SIEM-Modus Workspace-Audit-Ereignisse: SSO-Logins, fehlgeschlagene Logins, Erstellung/Rotation/Löschung von API-Keys, SCIM-Provisioning-Ereignisse, Rollenänderungen, Webhook-Secret-Rotationen und Administratoraktionen (Link-Löschung, Massenexporte). Das Payload-Format ist strukturiertes JSON mit einem Standardschema (Zeitstempel, Akteur, Aktion, Ziel, workspace_id, ip_address, user_agent), das für die Ingestion in gängige SIEM-Plattformen entwickelt wurde. SIEM-Webhooks haben eine garantierte Zustellung mit bis zu 7 Tagen Wiederholung und werden separat von Anwendungs-Webhooks signiert. Getestete Integrationen: Splunk HTTP Event Collector (HEC), Datadog Logs API, Elastic Logstash HTTP Input und jeder generische HTTPS-Log-Endpunkt. Der SIEM-Modus ist eine Business-exklusive Funktion.
Vollständiges Zustellungsprotokoll mit Anfrage-Body, Antwortcode und One-Click-Replay für fehlgeschlagene Zustellungen
Jeder Webhook-Zustellungsversuch wird protokolliert: Ereignis-ID, Ereignistyp, Endpunkt-URL, Zeitstempel der Zustellung, HTTP-Statuscode, Antwort-Body (bis zu 4 KB) und Latenz. Das Zustellungsprotokoll ist nach Ereignistyp, Endpunkt, Datumsbereich und Status (zugestellt, wird wiederholt, fehlgeschlagen) abfragbar. Fehlgeschlagene Zustellungen enthalten den vollständigen Anfrage-Body, sodass Sie das fehlgeschlagene Ereignis ohne Replay untersuchen können. Replay: POST /v1/webhooks/deliveries/:id/replay sendet die ursprüngliche Payload (kein neues Ereignis) an den Endpunkt – Idempotenz auf Ihrem Empfänger ist erforderlich. Die Aufbewahrungsdauer des Zustellungsprotokolls beträgt 30 Tage bei Pro, 90 Tage bei Business. Für ein dauerhaftes Audit von Webhook-Ereignissen konfigurieren Sie einen SIEM-Endpunkt oder aktivieren Sie den geplanten Export des Audit-Logs.
Engineering-Teams, die Elido-Webhooks in der Produktion einsetzen
Namen sind Platzhalter – echte Kunden-Fallstudien werden hier veröffentlicht, sobald sie erscheinen.
“Wir nutzen click.created-Webhooks im Batch-Modus, um unsere eigene Analytics-Pipeline zu befüllen. Die HMAC-Signaturverifizierung und das Zustellungsprotokoll mit Replay haben uns Stunden bei der Fehlersuche während eines Teilausfalls erspart – wir konnten die verpassten Ereignis-Batches einfach über das Dashboard erneut abspielen, ohne die Ereignisse mühsam neu generieren zu müssen.”
“Der SIEM-Modus, der Workspace-Audit-Ereignisse an unseren Splunk HEC streamt, war das Enterprise-Feature, das unser InfoSec-Team benötigte. SSO-Login-Ereignisse und API-Key-Rotationen in Splunk mit dem richtigen Schema bedeuteten, dass wir Elido-Zugriffsereignisse innerhalb eines Tages nach der Einrichtung mit unseren SIEM-Alarmregeln korrelieren konnten.”
“link.expired-Webhooks lösen unseren internen Workflow zur Aktualisierung der Datenbank für gedruckte Materialien aus – wenn ein QR-Code-Link abläuft, erhält unser Ops-Team automatisch eine Aufgabe, das physische Etikett zu aktualisieren. Keine manuelle Überwachung von Link-Ablaufdaten mehr.”
Elido-Webhooks vs. Bitly vs. Short.io
Weder Bitly noch Short.io bieten Outbound-Webhooks mit HMAC-Signierung und Wiederholungsgarantien an. Dieser Vergleich zeigt die Lücke deutlich auf.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Outbound-Webhooks | Ja – Endpunkte pro Workspace, Abonnement pro Ereignistyp | Nicht verfügbar | Ja – Basis-Webhook bei Klick |
| HMAC-SHA256-Signierung | Ja – jede Zustellung signiert, Code-Beispiele vorhanden | Nicht zutreffend | Teilweise – Signatur-Header vorhanden, nicht dokumentiert |
| Automatische Wiederholungen | Ja – exponentieller Backoff, 72-Stunden-Fenster | Nicht zutreffend | Keine Wiederholungen – Fire-and-Forget |
| Zustellungsprotokoll mit Replay | Ja – 30 Tage Pro, 90 Tage Business, One-Click-Replay | Nicht zutreffend | Kein Zustellungsprotokoll |
| SIEM-Audit-Ereignis-Modus | Ja – Business, strukturiertes JSON für SIEM-Ingestion | Nicht verfügbar | Nicht verfügbar |
| Automatische Endpunkt-Pause bei Fehlern | Ja – pausiert nach 30 aufeinanderfolgenden Fehlern, Admin benachrichtigt | Nicht zutreffend | Nicht verfügbar |
| Ereignistypen | Klick-, Konversions-, Link-Lifecycle-, Domain-, Audit-Ereignisse | Nicht zutreffend | Nur Klick |
Webhook-Fragen
Wie verifiziere ich die HMAC-SHA256-Signatur?
Lesen Sie den rohen Anfrage-Body als Bytes (vor jeglichem JSON-Parsing), berechnen Sie HMAC-SHA256 über die rohen Bytes unter Verwendung des Shared Secret Ihres Endpunkts, kodieren Sie das Ergebnis als Base16 (Hex) und vergleichen Sie es mit dem Wert im Header X-Elido-Signature, nachdem Sie das Präfix 'sha256=' entfernt haben. Verwenden Sie eine zeitkonstante Vergleichsfunktion (z. B. hmac.compare_digest in Python, crypto.timingSafeEqual in Node.js), um Timing-Angriffe zu verhindern. Vergleichen Sie die Signatur niemals mit einem Standard-Operator für String-Gleichheit. Code-Beispiele für Node.js, Python und Go finden Sie unter /docs/guides/webhooks#verification.
Was sollte mein Webhook-Empfänger zurückgeben?
Geben Sie innerhalb von 30 Sekunden HTTP 200 (oder einen beliebigen 2xx-Statuscode) zurück. Der Antwort-Body wird ignoriert – Sie können einen leeren Body oder { ok: true } zurückgeben. Wenn Ihre Verarbeitung länger als 30 Sekunden dauert, geben Sie sofort 200 zurück und verarbeiten Sie das Ereignis asynchron (in eine interne Warteschlange einreihen, 200 zurückgeben, außerhalb des Anfragepfads verarbeiten). Die Rückgabe von 4xx wird für Wiederholungszwecke genauso behandelt wie 5xx – beide lösen eine Wiederholung aus. Geben Sie 200 zurück, auch wenn das Ereignis für Ihre Integration nicht relevant ist (z. B. ein link.created-Ereignis, das Sie nicht benötigen), um unnötige Wiederholungen zu vermeiden.
Wie funktioniert die Idempotenz bei Webhook-Ereignissen?
Jede Webhook-Payload enthält ein event_id-Feld (UUID). Verwenden Sie dieses als Idempotenz-Schlüssel auf Ihrem Empfänger: Wenn Sie dieselbe event_id zweimal erhalten (aufgrund einer Wiederholung nach einem Teilfehler), verarbeiten Sie sie nur einmal. Speichern Sie empfangene Ereignis-IDs in einer Deduplizierungstabelle mit einer TTL von mindestens 72 Stunden (das Wiederholungsfenster). Die Wiederholungs-Payload ist identisch mit dem Original – gleiche event_id, gleicher Body – daher ist eine einfache Prüfung auf 'Habe ich diese event_id schon gesehen?' ausreichend.
Warum wird mein Endpunkt automatisch pausiert?
Endpunkte werden nach 30 aufeinanderfolgenden Zustellungsfehlern (Nicht-2xx oder Timeout) automatisch pausiert. Dies verhindert, dass Elido einen defekten Endpunkt unbegrenzt belastet. Beheben Sie das zugrunde liegende Problem (meistens: die Endpunkt-URL hat sich geändert, der Server ist down oder das 30-Sekunden-Timeout wird aufgrund langsamer Verarbeitung überschritten), und setzen Sie den Endpunkt dann im Dashboard fort. Einmal fortgesetzt, spielt Elido Ereignisse, die während der Pause übersprungen wurden, nicht automatisch erneut ab – spielen Sie diese bei Bedarf manuell über das Zustellungsprotokoll ab.
Kann ich Klick-Ereignisse in Echtzeit für jeden einzelnen Klick empfangen?
Ja – aktivieren Sie den Raw-Click-Modus am Endpunkt. Im Raw-Click-Modus liefert Elido click.created-Ereignisse einzeln ohne Aggregationsfenster innerhalb von 2 Sekunden nach dem Klick aus. Beachten Sie, dass ein stark frequentierter Workspace im Raw-Click-Modus Tausende von Ereignissen pro Minute erzeugen kann; stellen Sie sicher, dass Ihr Empfänger diesen Durchsatz bewältigen kann. Für die meisten Analytics-Anwendungsfälle ist die standardmäßige 5-sekündige Aggregation (bis zu 100 Klicks pro Payload) ausreichend und erzeugt weit weniger HTTP-Anfragen.
Wie hoch ist das Limit für die Payload-Größe bei Webhook-Ereignissen?
Einzelne Ereignis-Payloads liegen unter 10 KB. Gebündelte Klick-Payloads (Standardmodus) können bis zu 100 Ereignisse pro Stapel enthalten, wobei die Gesamtgröße der Payload auf 100 KB begrenzt ist. Wenn ein Stapel 100 KB überschreiten würde, wird er automatisch in mehrere Zustellungen aufgeteilt. Große Metadatenfelder bei Klicks (z. B. lange Referer-URLs) werden auf 2 KB pro Feld gekürzt. Wenn Ihr Empfänger ein striktes Limit für die Payload-Größe erzwingt, konfigurieren Sie den Raw-Click-Modus (ein Ereignis pro Zustellung) anstelle des Batch-Modus.
Gibt es eine Möglichkeit, Webhooks während der Entwicklung lokal zu testen?
Verwenden Sie ein Tool wie ngrok, Cloudflare Tunnel, oder localtunnel, um Ihren lokalen Server über eine öffentliche HTTPS-URL zugänglich zu machen, und registrieren Sie diese URL dann als Webhook-Endpunkt in Ihrem Test-Workspace. Alternativ können Sie die Webhook-Test-Schaltfläche im Dashboard verwenden, um eine Beispiel-Payload für einen beliebigen Ereignistyp an einen registrierten Endpunkt zu senden, ohne ein echtes Ereignis auszulösen. Die Elido-CLI (elido webhook test --event click.created --endpoint https://...) funktioniert ebenfalls für skriptgesteuerte lokale Tests.
Was passiert mit Webhook-Ereignissen während eines geplanten Wartungsfensters?
Ereignisse, die während eines Wartungsfensters generiert werden, werden in unserem Event-Stream in die Warteschlange gestellt und nach Ende des Wartungsfensters zugestellt. Die Elido-Statusseite (status.elido.app) kündigt geplante Wartungsfenster im Voraus an. Die SLA für die Webhook-Zustellung schließt angekündigte Wartungsfenster aus. Bei einem typischen Wartungsfenster von 30–60 Minuten bedeutet das 72-Stunden-Wiederholungsfenster, dass keine Ereignisse dauerhaft verloren gehen – sie werden in der Reihenfolge ihrer Generierung zugestellt, sobald der Endpunkt wieder erreichbar ist.
Weiterlesen
Die synchrone API-Ergänzung zu asynchronen Webhooks – erstellen und rufen Sie Links programmatisch ab.
Empfangen Sie Konversions-Ereignisse über Webhooks von Stripe und Shopify – die Inbound-Webhook-Seite.
Der SIEM-Modus liefert Workspace-Audit-Ereignisse – SSO-Logins, SCIM-Provisioning, Rollenänderungen.
Klick-Ereignisse in Ihrem Analysespeicher – die abfrageseitige Alternative zum Empfang von Klicks über Webhooks.
Bereit zum Ausprobieren?
Starten Sie mit dem kostenlosen Plan, upgraden Sie, wenn Sie eine benutzerdefinierte Domain benötigen.