Unsere Slack-Webhook-Anleitung baut eine kleine Node.js-Brücke — aber Sie müssen überhaupt keinen Code schreiben. Mit n8n oder Make werden die Webhook-Ereignisse von Collabin zu Triggern für Tausende von Apps: Slack- und Teams-Nachrichten, Zeilen in Google Sheets, Kalendereinträge, Aktualisierungen im HR-System. Diese Anleitung baut die n8n-Version end-to-end auf, einschließlich korrekter Signaturprüfung, und behandelt anschließend Make und Ideen für Anwendungsfälle.
Webhooks in 60 Sekunden
Collabin sendet eine POST-Anfrage an eine von Ihnen gewählte URL, sobald ein abonniertes Ereignis eintritt — leave.created (neuer Antrag) oder leave.status_changed (genehmigt/abgelehnt). Der Body enthält einen event-Namen, einen Zeitstempel, eine delivery_id und das vollständige Urlaubsobjekt in data (mit eingebetteten user und leave_type). Jede Anfrage ist signiert: Der Header X-Collabin-Signature enthält sha256=<HMAC-SHA256 des rohen Bodys>, berechnet mit dem Secret Ihres Webhooks. Webhooks erfordern den Plan Pro; alle Details zur Payload finden Sie in der Slack-Anleitung.
Umsetzung in n8n
Schritt 1: Der Webhook-Trigger
Erstellen Sie einen neuen Workflow und fügen Sie einen Webhook-Knoten hinzu:
- HTTP-Methode:
POST - Antwort: Sofort — Collabin wartet maximal 10 Sekunden, bestätigen Sie also zuerst und arbeiten Sie danach.
- Aktivieren Sie in den Einstellungen des Knotens Raw Body. Das ist wichtig: Die Signatur wird über die exakten von Collabin gesendeten Bytes berechnet, und ein neu serialisierter JSON-Body würde nicht übereinstimmen.
Kopieren Sie die Produktions-Webhook-URL, die der Knoten anzeigt.
Schritt 2: In Collabin registrieren
Öffnen Sie im Collabin-Dashboard Webhooks, fügen Sie einen neuen mit Ihrer n8n-URL hinzu und wählen Sie die Ereignisse aus. Collabin zeigt das Secret des Webhooks einmalig an — kopieren Sie es jetzt; Sie benötigen es im nächsten Schritt.
Schritt 3: Signatur in einem Code-Knoten überprüfen
Fügen Sie nach dem Trigger einen Code-Knoten hinzu (der Code-Knoten von n8n kann das integrierte crypto-Modul von Node verwenden — dies ist Konfiguration, kein Anwendungscode, den Sie hosten müssen):
const crypto = require('crypto');
const secret = 'IHR_WEBHOOK_SECRET'; // besser: eine n8n-Credential/Umgebungsvariable
const rawBody = $input.first().binary.data
? Buffer.from($input.first().binary.data.data, 'base64')
: Buffer.from(JSON.stringify($input.first().json.body));
const expected = 'sha256=' +
crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const received = $input.first().json.headers['x-collabin-signature'] || '';
if (received !== expected) {
throw new Error('Ungültige Webhook-Signatur — Zustellung wird verworfen.');
}
return [{ json: JSON.parse(rawBody.toString('utf8')) }];
Stimmt die Signatur nicht überein, stoppt der Workflow und es läuft nichts Nachgeschaltetes. Von hier an kann jeder Knoten der Payload vertrauen.
Schritt 4: Weiterleiten und reagieren
Fügen Sie einen Switch-Knoten auf {{ $json.event }} mit einem Ausgang pro Ereignis hinzu und schließen Sie daran an, wofür der Workflow gedacht ist. Ein Slack-Zweig ist ein einzelner Slack-Knoten mit einer Nachricht wie:
:palm_tree: {{ $json.data.user.name }} hat beantragt:
{{ $json.data.leave_type.name }}: {{ $json.data.start_date.slice(0,10) }}
– {{ $json.data.end_date.slice(0,10) }}
Aktivieren Sie den Workflow, reichen Sie in Collabin einen Test-Urlaubsantrag ein und beobachten Sie, wie das Ausführungsprotokoll aufleuchtet.
Das Gleiche in Make
In Make (ehemals Integromat) ist der Trigger ein Custom-Webhook-Modul: Erstellen Sie es, kopieren Sie die URL und registrieren Sie sie auf die gleiche Weise in Collabin. Make parst das JSON automatisch, und Sie verbinden die nachfolgenden Module (Slack, Google Sheets, E-Mail …) anhand der zugeordneten Felder.
Ein ehrlicher Hinweis: Custom-Webhooks in Make stellen Formeln den rohen Anfrage-Body nicht zur Verfügung, sodass eine HMAC-Prüfung dort unpraktikabel ist. Die Webhook-URL selbst ist ein langes, zufälliges Secret, das tatsächlich schwer zu erraten ist — bedeutet aber, dass jeder, der die URL kennt, gefälschte Ereignisse senden könnte. Zwei sinnvolle Herangehensweisen: Akzeptieren Sie dieses Risiko bei Automatisierungen mit geringem Risiko (eine falsche Slack-Nachricht), oder behalten Sie signaturgeprüfte Abläufe in n8n / einer kleinen Code-Brücke für alles, was in Systeme mit Datenhoheit schreibt. Leiten Sie keine unverifizierten Webhook-Daten in die Lohnabrechnung.
Ideen für Anwendungsfälle
- Genehmigungsübersicht:
leave.status_changed→ Filterstatus = APPROVED→ Zeile zu einem Google Sheet hinzufügen — ein aufwandsloser Prüfpfad, den Ihr Office-Manager lesen kann. - Kalender ohne ICS:
leave.status_changed(genehmigt) → Erstellen eines Google-Kalender-Termins in einem gemeinsamen Teamkalender. (Wenn Sie nur einen Kalender brauchen, erledigt das der integrierte Kalender-Feed ohne jede Automatisierung.) - Nachfassen bei Ablehnung:
leave.status_changed→ Filterstatus = REJECTED→ HR per E-Mail mitrejection_reasonbenachrichtigen, sodass abgelehnte Anträge eine persönliche Nachverfolgung erhalten. - Frühwarnung zur Personalstärke:
leave.created→ Team in einer Tabelle nachschlagen → wenn sich mehr als N Teammitglieder überschneiden, den Leiter vor der Genehmigung benachrichtigen.
Betriebshinweise
Collabin behandelt jede 2xx-Antwort als Erfolg und wiederholt fehlgeschlagene Zustellungen nicht — behalten Sie die Einstellung „sofort antworten" des Triggers bei, damit langsame nachgeschaltete Apps keine Verluste verursachen können, und denken Sie daran, dass fehlgeschlagene Versuche im System-Fehlerprotokoll von Collabin sichtbar sind. Eine weitere sinnvolle Gewohnheit: Geben Sie n8n und Make separate Webhooks in Collabin, jeweils mit eigenem Secret, damit Sie einen Empfänger widerrufen können, ohne den anderen zu berühren.