Ein Webhook lässt FlexiProject ein externes System benachrichtigen, sobald in Ihrer Organisation etwas passiert. Statt die API immer wieder abzufragen, ob sich etwas geändert hat, erhält Ihr System unmittelbar nach dem Ereignis eine HTTP-Anfrage mit den Ereignisdaten.
Ein Webhook verknüpft ein Ereignis mit einer Empfängeradresse. Um zwei verschiedene Ereignisse an dieselbe Adresse oder dasselbe Ereignis an zwei Systeme zu senden, legen Sie zwei Webhooks an.
Webhooks konfigurieren Sie unter Systemeinstellungen > Webhooks. Der Bereich steht Systemadministratoren zur Verfügung (siehe Benutzer und Berechtigungen). Um Daten über einen anderen Kanal zu lesen, verwenden Sie die API.
Ereignisse
FlexiProject meldet vier Ereignisse. Jeder Webhook lauscht auf genau eines davon, das Sie in der Liste Ereignis auswählen.

| Ereignis | Wann FlexiProject die Anfrage sendet | Ereignisspezifische Daten |
|---|---|---|
| Projekt erstellt | Ein neues Projekt ist entstanden, auf beliebige Weise: von Grund auf, aus einer Vorlage, durch Klonen, durch den Import einer MS-Project- oder Excel-Datei oder mithilfe von KI. | projectId, projectName, createdAt |
| Projekt gelöscht | Ein Projekt wurde gelöscht. | projectId, projectName |
| Akzeptanz gestartet | Eine Änderung des Basisplans wurde zur Genehmigung eingereicht und ihr Genehmigungspfad gestartet. | changeRequestId, changeRequestName, projectId, projectName, date |
| Akzeptanz abgeschlossen | Der Genehmigungspfad endete mit einer Entscheidung: Genehmigung, Ablehnung oder Abbruch. | changeRequestId, changeRequestName, projectId, projectName, decisionDate, status |
Jede Anfrage enthält außerdem den Namen des Ereignisses (event), den Zeitpunkt ihrer Erzeugung (timestamp) sowie die Kennung (userId) und die E-Mail-Adresse (userEmail) des Benutzers, dessen Aktion sie ausgelöst hat. Das Format der gesamten Anfrage ist unter Format der HTTP-Anfrage beschrieben. Genehmigungen werden unter Akzeptanzen beschrieben.
Webhook-Konfiguration
Webhook-Liste
Die Seite Webhooks zeigt alle Webhooks der Organisation in drei Spalten: Ereignis, Empfänger-URL und Beschreibung. Ist nichts definiert, erscheint die Meldung Keine Webhooks.

Webhook hinzufügen
- Klicken Sie auf die Schaltfläche zum Hinzufügen oberhalb der Liste. Das Fenster Webhook hinzufügen wird geöffnet.
- Wählen Sie das Ereignis. Standardmäßig ist Projekt erstellt eingestellt.
- Geben Sie die Empfänger-URL ein — die Adresse, an die FlexiProject die Anfrage sendet. Das Feld ist ein Pflichtfeld und erfordert die vollständige Adresse einschließlich Protokoll, zum Beispiel
https://example.com/hooks/flexiproject. Eine unvollständige Adresse wird mit einer Fehlermeldung zur Datenverarbeitung abgelehnt. - Geben Sie optional eine Beschreibung ein — eine Notiz für Ihr Team, die nur in der Liste sichtbar ist.
- Klicken Sie auf Speichern.
Secret
Gleich nach dem Speichern erscheint das Fenster Secret mit der Meldung: Der Webhook wurde erstellt. Unten finden Sie das Secret, das nur einmal angezeigt wird. Kopieren Sie es und bewahren Sie es an einem sicheren Ort auf. Die Schaltfläche Kopieren legt den Wert in die Zwischenablage (Meldung In die Zwischenablage kopiert), und Sie speichern ihn im empfangenden System. Das Secret signiert jede Anfrage, sodass der Empfänger bestätigen kann, dass die Anfrage von FlexiProject stammt (siehe Format der HTTP-Anfrage).
Nach dem Schließen des Fensters ist der vollständige Wert nirgends mehr in der Anwendung verfügbar. In einem später geöffneten Webhook zeigt das Feld Secret nur die ersten und letzten vier Zeichen mit Sternchen dazwischen; das Feld kann nicht bearbeitet werden.
Webhook bearbeiten
Ein Klick auf einen Ereignisnamen in der Liste öffnet das Fenster Webhook bearbeiten. Dort ändern Sie das Ereignis, die Empfängeradresse und die Beschreibung und wählen dann Speichern. Das Secret bleibt unverändert — das Bearbeiten stellt nie ein neues aus. Beim Schließen des Fensters mit ungespeicherten Änderungen erscheint die Frage Wollen Sie weitermachen und den Wandel aufgeben?
Webhook testen
Die Schaltfläche Testen befindet sich im Bearbeitungsfenster eines gespeicherten Webhooks. Sie sendet eine Anfrage im Format des gewählten Ereignisses, gefüllt mit Beispieldaten (zum Beispiel einem Projekt namens Test Project), an die konfigurierte Adresse und bestätigt dies mit Testanfrage erfolgreich gesendet. Die Meldung bestätigt, dass die Anfrage gesendet wurde, nicht dass der Empfänger sie akzeptiert hat — prüfen Sie das Ergebnis auf der Empfängerseite.
Webhook löschen
Die Schaltfläche Löschen im Webhook-Fenster erfordert die Bestätigung der Frage Möchten Sie den Webhook wirklich löschen? Von da an wird das Ereignis nicht mehr an diese Adresse gesendet. Das Löschen kann nicht rückgängig gemacht werden; um die Zustellung wieder aufzunehmen, brauchen Sie einen neuen Webhook und damit ein neues Secret.
Format der HTTP-Anfrage
FlexiProject sendet an die konfigurierte Adresse eine POST-Anfrage mit einem JSON-Body.
Header
| Header | Inhalt |
|---|---|
X-FlexiProject-Event |
Der Ereignisname: ProjectCreated, ProjectDeleted, AcceptanceStarted oder AcceptanceCompleted. |
X-FlexiProject-Delivery |
Die Zustellungskennung. Sie bleibt bei allen Wiederholungen desselben Ereignisses gleich, sodass Sie Duplikate daran erkennen können. |
X-FlexiProject-Timestamp |
Der Zeitpunkt, zu dem die Anfrage gesendet wurde. |
X-FlexiProject-Signature |
Die Signatur des Request-Body in der Form sha256=<value>. |
Signatur prüfen
Die Signatur ist ein HMAC-SHA256 des unveränderten Request-Body, berechnet mit dem Secret des Webhooks als Schlüssel und in Kleinbuchstaben hexadezimal geschrieben. Berechnen Sie auf der Empfängerseite denselben Wert aus dem empfangenen Body und vergleichen Sie ihn mit dem Teil des Headers X-FlexiProject-Signature nach sha256=. Weichen die Werte voneinander ab, weisen Sie die Anfrage zurück — sie stammt nicht aus Ihrer Organisation in FlexiProject.
Beispiel-Body
{
"projectId": "6712f0a1c3d4e5f601234567",
"projectName": "Warehouse modernization",
"createdAt": "2026-09-21T08:14:02Z",
"userId": "a3f1c7de-1b20-4f9e-9a55-0c2d8e7b41aa",
"userEmail": "anna.kowalska@example.com",
"event": "ProjectCreated",
"timestamp": "2026-09-21T08:14:02Z"
}
Antwort und Wiederholungen
Antworten Sie mit einem Erfolgsstatus (2xx), sobald Sie die Anfrage annehmen. Jede andere Antwort oder gar keine zählt als fehlgeschlagene Zustellung.
Eine fehlgeschlagene Zustellung wird automatisch mit wachsendem Abstand wiederholt: nach 1, 2, 4, 8, 16, 32, 64, 128, 256 und 512 Minuten. Die Versuche verteilen sich auf etwa siebzehn Stunden, sodass ein Empfänger, der eine Weile nicht erreichbar ist, das Ereignis nicht verliert. Jeder Versuch wiederholt denselben Wert von X-FlexiProject-Delivery; richten Sie Ihre Verarbeitung also darauf ein, dasselbe Ereignis mehrfach zu empfangen.