Elido
Alles, was Elido kann
Pro & Business

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
Webhook-Zustellung
Ereignisquellelink.clickedlink.createdElidoHMAC-SHA256signieren + einreihenIhr EndpointPOST /webhooksapi.acme.com010203
Ausgehende Anfrage
POSThttps://api.acme.com/webhooks
X-Elido-Signature: sha256=3c4d2e1f8a...
Content-Type: application/json
X-Elido-Event: link.clicked
{
"event": "link.clicked",
"event_id": "evt_01hw...",
"data": { link_id, url, country, device, ts }
}
<2 s Median-Latenz HMAC-SHA256-signiert
<2s
Mediane Latenz bei der Ereigniszustellung
72h
Wiederholungsfenster vor endgültigem Fehlschlag
HMAC-SHA256
Anfragesignierungs-Algorithmus
10+
Unterstützte Ereignistypen

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.

10+ Ereignistypen
  • 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-Timeout
    Geben Sie sofort 200 zurück; verarbeiten Sie asynchron, falls Ihr Handler langsam ist.
  • 8 Retry-Versuche über 72 Stunden
    Exponentielles Backoff – kein Lawineneffekt beim Neustart.
  • Auto-Pause nach 30 aufeinanderfolgenden Fehlern
    Workspace-Admin per E-Mail benachrichtigt. Fortsetzen aus dem Dashboard.
  • One-Click-Replay aus dem Log
    Originale Payload, gleiche event_id – der Empfänger muss idempotent sein.
Zustell-Retry-Zeitleiste
72-Stunden-Retry-Fenster
Versuch 1
14:02:01
500 Internal Server Error
30 s Backoffexponentiell × 1
Versuch 2
14:02:31
Timeout (30 s)
2 min Backoffexponentiell × 4
Versuch 3
14:04:31
200 OK
Antwort-Timeout
30 Sekunden
Max. Versuche
8 Retries
Fenster
72 Stunden
Webhook-Zustellprotokoll
SIEM-Modus
EreignisEndpointStatusLatenzZeit
link.clickedapi.acme.com/wh200142ms14:04:31
link.createdapi.acme.com/wh20088ms14:03:19
conversion.attributedlogs.acme.com50030001ms14:02:01
domain.verifiedapi.acme.com/wh20067ms13:58:44
link.deletedlogs.acme.comtimeout30000ms13:55:12
5 von 1.284 Zustellungen angezeigt · Letzte 24 StundenEndpoint aktiv

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.

Ereignistypen
01

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.

Signaturverifizierung
02

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.

Wiederholungsverhalten
03

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.

SIEM-Modus
04

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.

Zustellungsprotokoll
05

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.

P
Platform Engineering, B2B-SaaS, Amsterdam
Senior Platform Engineer

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.

S
Security Engineering, Fintech, München
Information Security Engineer

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.

I
Integration Engineering, Logistik-SaaS, Riga
Integration Engineer

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.

FeatureElidoBitlyShort.io
Outbound-WebhooksJa – Endpunkte pro Workspace, Abonnement pro EreignistypNicht verfügbarJa – Basis-Webhook bei Klick
HMAC-SHA256-SignierungJa – jede Zustellung signiert, Code-Beispiele vorhandenNicht zutreffendTeilweise – Signatur-Header vorhanden, nicht dokumentiert
Automatische WiederholungenJa – exponentieller Backoff, 72-Stunden-FensterNicht zutreffendKeine Wiederholungen – Fire-and-Forget
Zustellungsprotokoll mit ReplayJa – 30 Tage Pro, 90 Tage Business, One-Click-ReplayNicht zutreffendKein Zustellungsprotokoll
SIEM-Audit-Ereignis-ModusJa – Business, strukturiertes JSON für SIEM-IngestionNicht verfügbarNicht verfügbar
Automatische Endpunkt-Pause bei FehlernJa – pausiert nach 30 aufeinanderfolgenden Fehlern, Admin benachrichtigtNicht zutreffendNicht verfügbar
EreignistypenKlick-, Konversions-, Link-Lifecycle-, Domain-, Audit-EreignisseNicht zutreffendNur 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.

Bereit zum Ausprobieren?

Starten Sie mit dem kostenlosen Plan, upgraden Sie, wenn Sie eine benutzerdefinierte Domain benötigen.