Webhooks tauchen im Netz immer häufiger auf, sei es auf Social-Media-Seiten, in Entwicklerwerkzeugen wie GitHub oder Admin-Tools, zum Beispiel Monitoring-Lösungen. Selbst die universelle Wenn-Dann-Anwendung IFTTT nutzt Webhooks, um noch universeller zu werden.
Webhooks eignen sich wunderbar dafür, andere Ereignisse wie automatisierte Benachrichtigungen anzutriggern.
Webhooks sind universell einsetzbar, für Dutzende unterschiedlichster Szenarien – und das ist genau der springende Punkt. Spannend sind sie im Grunde immer dann, wenn ein Ereignis auf dem einen Server ein Ereignis auf einem anderen Server auslösen soll – wobei Server hier im Software-Sinne gemeint ist, auch ganz normale Desktoprechner dürfen hier mitspielen.
Kurz gesagt: Webhooks sind eine simple Möglichkeit für die Server-zu-Server-Kommunikation. Und auch technisch steckt im Grunde erstmal nicht viel dahinter: Es handelt sich um HTTP-Anfragen mit einer gewissen Payload, zum Beispiel einigen JSON-formatierten Daten.
Auch Slack kann Daten via Webhook empfangen.
(Bild: Lang / Slack)
Wenn eine App auf Ihrem Server auf Ereignisse auf einem entfernten Server reagieren soll, gibt es grundsätzlich zwei Möglichkeiten: Eine Anfrage stellen oder auf eine Mitteilung warten. Ersteres wird meist per API erledigt: Die App wird mit Daten gefüttert und fragt damit zum Beispiel einen definierten Twitter-Account auf neue Beiträge ab. Die zweite Variante ließe sich mit einem Webhook erledigen: Sobald neue Beiträge auf dem Twitter-Account erscheinen, könnte Twitter dies über einen hinterlegten Webhook an die App melden.
Ein typisches Beispiel aus der Praxis: Sie haben ein IT-Monitoringsystem laufen und nutzen ein externes Alarmierungssystem, um Vorfälle im Notfall an zuständige Mitarbeiter ausspielen zu können. Viele Anbieter von webbasierten Alarmierungssystemen unterstützen für diese Anbindung Webhooks. So können Sie zum Beispiel das Monitoringsystem Checkmk an den Push-Dienst Pushover.net binden.
Nach einer Registrierung bei Pushover bekommen Sie einen so genannten Webhook-Endpunkt – eine schlichte URL. Diese konfigurieren Sie in Checkmks Alarmierungsregeln. Wird dann ein Alarm ausgelöst, wird Pushover über die Webhook-URL mit Daten versorgt und führt aus, was auch immer für diesen Vorfall definiert wurde. In der Regel werden also Mitarbeiter über Mail, SMS, Kurznachricht und so weiter über die Geschehnisse informiert.
Natürlich lassen sich allerlei Szenarien alternativ auch über APIs realisieren, aber Webhooks haben durchaus ihre Vorteile. So müssen nicht ständig Abfragen laufen, die unter Umständen noch nicht einmal (neue) Daten liefern. Zudem sind Webhooks im Grunde recht simpel, letztlich läuft es auf ein simples Wenn-Dann hinaus: Wenn Ereignis X auftritt, schicke Daten an meinwebhook.example.com/test?foobar-daten.
IFTTT vernetzt zwei Dinge oder Services über das Web und eine simple Wenn-Dann-Logik: Wenn auf Twitter-Account XY ein neuer Tweet kommt (This), dann schreibe eine Mail an foobar@example.com (That). Wenn aber nun nicht ein Tweet, sondern Ihr eigenes Skript auf Ihrem eigenen Server als This dienen und eine beliebige IFTTT-That-Aktion auslösen soll, können Sie wieder die beiden Varianten API und Webhook nutzen.
Eigene Services über APIs zu entwickeln ist aber natürlich nicht ganz trivial. Webhooks hingegen schon:
Webhooks aktivieren und Endpunkt-URL kopieren (zu finden auf der Doku-Seite)
„This“ festlegen: Webhooks
Trigger festlegen: Web-Request empfangen
Trigger benennen: mein_trigger
„That“ festlegen: Gmail
Aktion festlegen: Mail senden
Mail-Inhalt konfigurieren
Anschließend können Sie den Webhook über die Endpunkt-URL nutzen: https://maker.ifttt.com/trigger/mein_trigger/with/key/ABCDE123456. In der URL finden Sie zum einen den Trigger-Namen und zum anderen Ihren persönlichen Schlüssel (hier ABCDE123456). Der Schlüssel dienst schlicht zur Absicherung, schließlich wäre ein solcher Endpoint ansonsten ein leichtes Ziel für DDOS-Attacken.
Wenn Sie in der Konfiguration des Mail-Inhalts nun beispielsweise die drei Variablen myvar1, myvar2 und myvar3, bei IFTTT „Ingredients“ genannt, angelegt haben, könnten Sie diese URL via curl-Befehl in einem Skript nutzen:
curl -X POST -H "Content-Type: application/json" -d '{"myvar1":"foo","myvar2":"bar","myvar3":"foobar"}' https://maker.ifttt.com/trigger/mein_trigger/with/key/ABCDE123456
Und hier sehen Sie auch den technischen Part von Webhooks mal ganz konkret: Eine simple HTTP-POST-Abfrage mit ein paar JSON-Daten und einem Schlüssel.
IFTTT als Webhook-Sender
Als „This“ lassen sich also beliebige Skripte und Apps einsetzen. Was aber, wenn die That-Funktionen von IFTTT nicht das Gewünschte bieten? Nun, sie bieten ebenfalls Webhooks. Sobald also ein beliebiges This eintritt, meldet sich nun IFTTT seinerseits mit der That-Aktion beim hinterlegten Webhook-Endpunkt.
Dafür benötigen Sie natürlich auf Ihrem Server einen Webhook-Empfänger – unter Linux wunderbar einfach zu realisieren mit dem gleichnamigen Tool webhook. Webhook macht nichts weiter, als auf eingehende HTTP-POST-Anfragen zu warten und ein darin benanntes lokales Skript zu starten.
Die Konfiguration von webhook beschränkt sich im einfachsten Fall auf die Datei „/home/NUTZERNAME/webhooks/hooks.json“. Hier können Sie mehrere Einträge hinterlegen, die jeweils aus einer beliebigen ID sowie den Pfaden zum auszuführenden Skript und zum Arbeitsverzeichnis. Das Skript, etwa “meinskript.sh”, können Sie im gleichen Ordner ablegen, um dann folgende Konfiguration zu nutzen:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Starten Sie anschließend webhook mit der Config-Datei über ...
webhook -hooks hooks.json -verbose
..., ist Ihr Server auch schon empfangsbereit und Sie können abermals mit curl testen:
curl -X POST example.com:9000/hooks/mein_webhook
Beachten Sie, dass in diesem Fall keine Autorisierung stattfindet – wer die URL kennt, könnte den Server mit Anfragen überfluten,
Der Rest wäre dann wieder reine IFTTT-Konfiguration: Sie konfigurieren eine Verbindung mit Webhooks als That-Aktion und hinterlegen die Endpunkt-URL Ihrer webhook-Installation. Damit können Sie nun als beliebige Skripte auf beliebigen Servern als sowohl This als auch That in IFTTT-Rezepten verwenden – mit anderen Worten: Beliebige Apps mittels IFTTT miteinander verknüpfen.
Abseits von IFTTT
Vielleicht ist es vor lauter IFTTT-Beispielerei etwas untergegangen: Es geht natürlich auch ohne IFTTT, mit curl als Sender und webhook als Empfänger wird ja bereits direkt kommuniziert. So simpel und funktional das Tools webhook aber auch sein mag, einfach nur Skripte zu starten, ist freilich nicht das Ende vom Lied.
Überdies würde noch eine Autorisierung fehlen, um webhook in freier Wildbahn zu nutzen. Für das eigene LAN, sichere Sub-Netze und dergleichen ist es aber schon eine nette Anwendung – und sei es nur, um sich eine einfache HTML-Seite mit Links zu Skripten auf Rechnern im Netzwerk zu erstellen.
Vor allem aber lohnt ein Blick auf die vielen populären Dienste im Netz, die ihrerseits Webhooks anbieten, beispielsweise Dropbox, Atlassian-Produkte, Facebook, Mattermost, Trello, Uber, Zoho und selbstverständlich auch GitHub. So könnten Sie zum Beispiel jede neue Mitteilung in der Mattermost-Ruby-Gruppe als Android-Benachrichtigung empfangen, ganz ohne Mattermost-App.
Ruby ist das richtige Stichwort: Das Lied geht weiter, und zwar mit GitHub und Sinatra als Ruby-Interpret. Sinatra ist eine erstaunlich einfache Ruby-Lösung, um On-the-fly Webanwendungen zu erstellen, die als Webhook-Empfänger deutlich mehr leisten als das Webhook-CLI-Werkzeug. Hier genügen ein paar Zeilen Code.
Im nächsten Webhook-Artikel zweigen wir ganz praktisch und Schritt für Schritt, wie sich GitHub-Events via Webhook mit einem Sinatra-Server empfangen und auswerten lassen; natürlich mit Autorisierung, damit das Ganze auch alltagstauglich ist.