🪝 · Echtzeit-Events

Webhooks: Der Push statt dem Poll

Anstatt jede Sekunde zu fragen „gibt es was Neues?" – einfach sagen „sag mir Bescheid wenn was passiert." Webhooks sind HTTP-Callbacks die Echtzeit-Kommunikation zwischen Services ermöglichen, ohne ständiges Polling.

HTTP POSTEventsPayloadHMACn8n

Wie Webhooks funktionieren

Ein Webhook ist eine URL die du einem externen Service gibst. Wenn dort ein Ereignis passiert (Zahlung eingegangen, Issue erstellt, Datei hochgeladen), schickt der Service einen HTTP POST-Request an deine URL – mit allen relevanten Daten als JSON-Payload.

Beispiel-Flow:

  1. Du gibst GitHub deine Webhook-URL: https://n8n.deine-domain.de/webhook/github
  2. Jemand pusht Code
  3. GitHub sendet sofort einen POST mit Commit-Daten an deine URL
  4. Dein n8n-Workflow empfängt den Request, verarbeitet ihn, startet den Deploy

Keine Polling-Schleife, keine Verzögerung, kein unnötiger Traffic – das Ereignis triggert direkt die Aktion.

Webhooks sichern und in n8n verarbeiten

Ein offener Webhook-Endpunkt ist ein Sicherheitsrisiko – jeder der die URL kennt, kann Requests senden. Die Lösung: Signaturvalidierung mit HMAC.

  • HMAC-Signatur: Der sendende Service signiert den Payload mit einem geteilten Secret. Du prüfst die Signatur bevor du den Request verarbeitest.
  • URL-Secret als zweiter Faktor: Token in der URL mitgeben: /webhook/github?token=abc123
  • IP-Whitelist: Wenn der sendende Service bekannte IPs hat (z.B. GitHub publiziert diese)
# HMAC-Signatur prüfen (Node.js) const crypto = require('crypto'); const sig = req.headers['x-hub-signature-256']; const expected = 'sha256=' + crypto .createHmac('sha256', process.env.WEBHOOK_SECRET) .update(req.rawBody).digest('hex'); if (sig !== expected) return res.status(401).send('Unauthorized');

In n8n gibt es Webhook-Nodes die automatisch auf POST-Requests warten. Der Webhook-Trigger ist einer der meistgenutzten Startpunkte für KI-Automatisierungen.

Häufige Webhook-Anwendungsfälle

Webhooks sind überall wo Services in Echtzeit kommunizieren sollen:

  • Git-Deploy: Push → Build → Deploy ohne manuelle Schritte
  • Payment-Verarbeitung: Stripe/PayPal sendet Zahlungsbestätigung → Datenbank updaten, E-Mail senden
  • Chat-Bots: Telegram, Slack, Discord senden Nachrichten als Webhook → KI verarbeitet, antwortet via API
  • Home Automation: Gerät meldet Statuswechsel → n8n reagiert
  • Monitoring-Alerts: Uptime Kuma sendet Downtime-Alert → PagerDuty, Telegram

Häufige Fragen zu Webhooks

Eine API ist Pull: Du fragst wann du willst. Ein Webhook ist Push: Der Service kontaktiert dich wenn etwas passiert. Webhooks sind effizienter für Echtzeit-Events, APIs besser wenn du zu einem selbst gewählten Zeitpunkt Daten brauchst.

Der sendende Service bekommt keinen 200-Status zurück und versucht es üblicherweise erneut – oft mit exponentiellem Backoff (nach 1 Min, 5 Min, 30 Min...). Kritische Webhooks sollte man deshalb auf hochverfügbaren Systemen empfangen.

Mit ngrok oder Cloudflare Tunnel: Diese Tools erstellen eine öffentliche URL die Requests an deinen lokalen Port weiterleitet. Perfekt für die Entwicklung. n8n hat außerdem einen Test-Webhook-Modus der eingehende Requests anzeigt ohne sie zu verarbeiten.

Ja – zumindest für kritische Webhooks. Falls die Verarbeitung fehlschlägt, kann der Payload neu verarbeitet werden. In n8n werden Execution-Logs automatisch gespeichert. Für zusätzliche Sicherheit: Payloads in PostgreSQL oder als Datei vor der Verarbeitung speichern.