Webhooks
Webhooks sind ein neues Feature in profacto 2024. Die Einrichtung sollte von erfahrenen Anwendern mit Kenntnissen im Bereich Webprogrammierung durchgeführt werden.
Was sind Webhooks?
Mit Webhooks können andere Anwendungen, in der Regel Webapps, automatisch informiert werden, wenn bestimmte Ereignisse in profacto eintreten. Neben der reinen Information über das Eintreten des Ereignisses können auch das Ereignis betreffende Felddaten der mit dem Ereignis in Verbindung stehenden Datenbanktabelle übermittelt werden.
Webhooks sind somit sehr praktisch, um automatisiert und ohne Anwendereingriff Informationen zwischen zwei Programmen auszutauschen. Das profacto-API erlaubt zwar auch einen Datenaustausch, mit dem Webhook können die Daten jedoch an eine andere Anwendung übermittelt werden, ohne dass diese von sich aus aktiv werden muss.
Denkbar ist beispielsweise, Mitarbeiterdaten an ein externes Zeiterfassungssystem zu übermitteln, Kundendaten an ein spezielles CRM-System oder Auftragsdaten an ein mobiles System für Monteure, zum Aufmaß oder für anderen mobile Nutzungen.
Welche Ereignisse können via Webhook gemeldet werden?
Derzeit werden folgende Ereignisse unterstützt:
Neues Projekt
Projekt erteilt
Projekt abgerechnet
Neuer Kunde
Neuer Mitarbeiter
Neue Projektzeit
Neuer Lieferant
Neue Bestellung
Projekt gutgeschrieben
Projekt geliefert
Prozessstatus geändert (beim Speichern eines Projekts, beim Belegdruck und bei Schnelländerungen)
OP gemahnt
Weitere Ereignisse sind in Planung.
Welche Anwendungen werden unterstützt?
Das können wir nicht konkret beantworten. Rein technisch erfassen Sie für einen Webhook die URL einer Anwendung und übergeben zusätzlich in einem standardisierten POST-Format die zu übertragenden Felder.
Wie richte ich Webhooks ein?
Rufen Sie die Voreinstellungen auf und wechseln auf die Seite profacto-Allgemein.
Dort finden Sie einen Button “Webhooks-Einstellungen”.
Es erscheint der untenstehende Dialog:
Dort können Sie nun neue Webhooks anlegen oder vorhandene bearbeiten.
Der Bearbeitungsdialog sieht dann so aus:
Inzwischen sind folgende Ereignisse definiert:
Geben Sie dem Webhook einen für Sie aussagekräftigen Namen.
Wählen sie dann das Ereignis aus, wie oben schon aufgeführt. Zu beachten ist, dass die Ereignisse, die bei Speicherung eines Datensatzes ausgelöst werden, nur bei Datensatzänderungen direkt in der Benutzeroberfläche ausgelöst werden. Es gibt verständlicherweise sehr viele Situationen, bei denen ein Datensatz modifiziert wird, es geht hier nur um die vom Anwender vorgenommene Bearbeitung im Bearbeitungsdialog.
Nun wird es technisch. Wählen Sie als Zielsystem “Benutzerdefiniert aus”. Nun erfassen Sie die URL der Web-Anwendungen, die informiert werden soll. Dazu müssen Sie vom Hersteller der Web-Anwendung entsprechende Informationen erhalten haben.
Aktuell sind folgende Tabellen nutzbar:
Wählen Sie nun die Tabelle aus, von der Daten übergeben werden sollen. Die Tabelle sollte in der Regel zum Ereignis passen, also “Auftrag” zu “Neues Projekt”.
Das Feld Bedingungen wird derzeit noch nicht ausgewertet, wird jedoch im GET-Teil mit übergeben.
Die Attribute ermöglichen Ihnen, vom Zielsystem benötigte Parameter zu übergeben. Sie können so viele Attribute mit Wert definieren, wie es nötig ist. Über das “Plus”-Symbol legen Sie ein neues Attribut-Wert-Paar an und erfassen dann direkt in der Tabelle die Inhalte.
Aktivieren Sie das Ankreuzfeld Webhook ist aktiv, wenn der Webhook beim betreffenden Ereignis ausgelöst werden soll. Solange die Kommunikation zwischen profacto und Zielsystem noch nicht zu 100% klappt, kann man so die Webhooks auch einfach ausschalten, ohne sie löschen zu müssen.
Die Muster-URL stellt eine Vorschau auf die URL dar, wie sie zum Aufruf der Webanwendung genutzt werden wird. Eigentlich ist der Aufruf zweiteilig: Es gibt einen als URL übergebenen GET-Teil und gleichzeitig wird via POST auch noch ein JSON-Objekt übergeben, das quasi die “Nutzlast” des Webhooks enthält. Hier finden Sie die Felder der referenzierten Tabelle sowie die zusätzlichen Attribute.
Speichern Sie den Webhook und verlassen Sie dann die Webhook-Übersicht und die Voreinstellungen, um den Webhook verfügbar zu machen.
Überwachung und Fehlersuche
Gerade in der Einrichtungsphase kann es zu Fehlfunktionen kommen, bis die URL wirklich sauber konfiguriert ist. Außerdem möchte man auch gelegentlich prüfen, welche Daten wann an andere Systeme übertragen worden sind. Zu diesem Zweck werden Webhook-Ereignisse protokolliert. Sie finden diese in der Datei Webhooks.log im Verzeichnis Logs Ihrer Datenbankdatei. Die Datei ist im JSON-Format und kann so gut auch automatisiert ausgewertet werden.