Elido
Alles, was Elido kann
Pro & Business

Webhooks. Real-time events, delivered reliably.

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+ event types — clicks, conversions, domain changes
  • HMAC-SHA256 signature on every delivery
  • 72-hour exponential-backoff retry
  • Delivery log with one-click replay
Webhook delivery
Event sourcelink.clickedlink.createdElidoHMAC-SHA256sign + enqueueYour endpointPOST /webhooksapi.acme.com010203
Outbound request
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 }
}
<2s median latency HMAC-SHA256 signed
<2s
Mediane Latenz bei der Ereigniszustellung
72h
Wiederholungsfenster vor endgültigem Fehlschlag
HMAC-SHA256
Anfragesignierungs-Algorithmus
10+
Unterstützte Ereignistypen

Event types

10+ event types out of the box

Subscribe per endpoint — receive only the events you care about. High-volume click events ship in a 5-second batched window by default; raw-click mode delivers per-click for stream processors.

10+ event types
  • link.clicked

    Every redirect click. Batched (5s window) or raw-click mode.

  • link.created

    A new short link was created in the workspace.

  • link.updated

    Link metadata, target URL, or rules changed.

  • link.deleted

    Link removed — update any downstream references.

  • domain.verified

    Custom domain passed DNS verification.

  • conversion.attributed

    Revenue event matched to a click via Stripe or Shopify.

  • campaign.completed

    Campaign reached its end date or click cap.

  • member.invited

    Workspace member added or SCIM-provisioned.

Plus link.expired, link.click_cap_reached, domain.ssl_issued, and more — see the full event catalog.

Delivery guarantees

Exponential backoff. 72-hour window.

A non-2xx response or a 30-second timeout triggers automatic retries: 30 s → 2 min → 10 min → 30 min → 2 h → 8 h → 24 h → 48 h. After 72 hours the delivery is permanently failed and removed from the queue — but still in the delivery log for manual replay.

  • 30-second response timeout
    Return 200 immediately; process async if your handler is slow.
  • 8 retry attempts over 72 hours
    Exponential backoff — no avalanche effect on restart.
  • Auto-pause after 30 consecutive failures
    Workspace admin notified by email. Resume from dashboard.
  • One-click replay from log
    Original payload, same event_id — receiver must be idempotent.
Delivery retry timeline
72-hour retry window
Attempt 1
14:02:01
500 Internal Server Error
30s backoffexponential × 1
Attempt 2
14:02:31
timeout (30s)
2 min backoffexponential × 4
Attempt 3
14:04:31
200 OK
Response timeout
30 seconds
Max attempts
8 retries
Window
72 hours
Webhook delivery log
SIEM mode
EventEndpointStatusLatencyTime
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
Showing 5 of 1,284 deliveries · Last 24 hoursEndpoint active

Delivery log

Full log. Filter, inspect, replay.

Every attempt is logged: event ID, event type, endpoint URL, HTTP status, response body (up to 4 KB), and latency. Retention is 30 days on Pro, 90 days on Business.

  • Filter by event type, endpoint, status, and date range
  • Failed entries show full request body for debugging
  • Replay sends original payload — same event_id
  • API: POST /v1/webhooks/deliveries/:id/replay
  • SIEM mode: structured JSON with 7-day retry guarantee

What you can do

  • 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, Frankfurt
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 Redpanda 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.

Webhooks — Echtzeit-Ereignisse, zuverlässig zugestellt. · Elido