monday.com bietet die Möglichkeit, einen Webhook über unsere Integrationen zu senden, oder du kannst ihn sogar über die API erstellen.Du kannst jedes Mal einen Webhook senden, wenn ein ausgewähltes Ereignis in deinem Board auftritt.Lies weiter, um mehr zu erfahren.
Was ist ein Webhook?
Webhook (auch Web-Callback oder HTTP-Push-API genannt) ist eine Möglichkeit für eine App, anderen Anwendungen Echtzeitinformationen bereitzustellen.Ein Webhook liefert Daten an andere Anwendungen, sobald eine Änderung erfolgt, d.h. Man erhält Daten sofort, im Gegensatz zu typischen APIs, bei denen sehr häufig nach Daten abgefragt werden muss, um sie in Echtzeit zu erhalten.Dies macht Webhooks sowohl für den Anbieter als auch für den Verbraucher viel effizienter.
Wenn du versuchst, auf monday.com einen neuen Webhook zu erstellen,senden wir eine JSON-Challenge an die von dir angegebene URL, um zu bestätigen, dass du die Kontrolle über den Endpunkt hast.Lies weiter, um herauszufinden, wie deine App reagieren sollte!
So erstellst du einen neuen Webhook
Schritt 1
Klicke auf deinem Board auf das Symbol „Integrationen“ und suche in der Integrationszentrale nach der App „Webhooks“.
Sobald du in der Integrationszentrale bist, suche nach den Webhooks und klicke sie an:
Schritt 2
Wähle die Aktion aus, zu der du sofortige Nutzlasten erhalten möchtest:
Schritt 3
Nachdem du die gewünschte Aktion ausgewählt hast, musst du die URL angeben.Dies sollte eine URL sein, die die JSON-Challenge zurückgeben kann, und sie wird der Empfänger der weiterführenden Nutzlasten sein:
Und das war‘s!Sobald diese Änderung erfolgt, beispielsweise ein neues Element zu deinem Board hinzugefügt wird, erhält dein Endpunkt eine Nutzlast über die Änderung.Einige Nutzlasten findest du weiter unten.
Schritt 4
Füge eine Beschreibung hinzu, um zu erläutern, wie deine Webhook-Integration in deinem Workflow verwendet wird. So kann jeder Benutzer, der diese Integration nutzt, besser verstehen, was ihr Zweck ist und wie sie sich in den Workflow einfügt.
So verifizierst du eine Webhook-URL
Die von dir angegebene URL sollte natürlich von deiner App gesteuert werden.Unsere Plattform überprüft dies, indem sie eine JSON-Challenge an deinen Endpunkt sendet, und deine App sollte mit derselben Challenge antworten.
Wir senden einen JSON-POST-Text, der ein „Challenge“-Feld enthält.Dies ist ein zufällig generiertes Token, von dem wir erwarten, dass du es als „Challenge“-Feld deines JSON-Antworttextes auf diese Anfrage zurückgibst.
So wird der Challenge aussehen:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
Der Antworttext sollte ein identischer JSON POST-Text sein:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
Hier ist ein einfaches Beispiel für einen Webhook-Listener, der die Ausgabe des Webhooks druckt und korrekt auf die Challenge reagiert:
app.post("/", function(req, res) { console.log(JSON.stringify(req.body, 0, 2)); res.status(200).send(req.body);})
Wie werden die Ereignisdaten aussehen?
Jeder Webhook, der an deinen Endpunkt gesendet wird, enthält ein Ereignisfeld in seinem Text.Dieses Feld enthält die Nutzlast mit den Daten des Ereignisses.
{
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"groupId": "topics",
"groupName": "Group Title",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:07:28.210Z",
"subscriptionId": 73759690,
"triggerUuid": "b5ed2e17c530f43668de130142445cba"
}
Spaltenwertänderung (spezifisch oder jede Spaltenwertänderung) - Beispielnutzlast
Dies umfasst den vorherigen Wert, die Spalten-ID und den aktuellen Wert.
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1771812728,
"pulseName": "Crate_item webhook",
"columnId": "date4",
"columnType": "date",
"columnTitle": "Date",
"value": {
"date": "2021-10-11",
"icon": null,
"time": null
},
"previousValue": null,
"changedAt": 1633943701.9457765,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:15:03.429Z",
"subscriptionId": 73760484,
"triggerUuid": "645fc8d8709d35718f1ae00ceded91e9"
}
Create_update - Beispielnutzlast:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1771812728,
"body": "<p>create_update webhook</p>",
"textBody": "create_update webhook",
"updateId": 1190616585,
"replyId": null,
"app": "monday",
"type": "create_update",
"triggerTime": "2021-10-11T09:18:57.368Z",
"subscriptionId": 73760983,
"triggerUuid": "6119292e27abcc571f90ea4177e94973"
}
Statusänderung - Beispielnutzlast:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"columnId": "status",
"columnType": "color",
"columnTitle": "Status",
"value": {
"label": {
"index": 3,
"text": "Status change wbhook",
"style": {
"color": "#0086c0",
"border": "#3DB0DF",
"var_name": "blue-links"
}
},
"post_id": null
},
"previousValue": null,
"changedAt": 1633944017.473193,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:20:18.022Z",
"subscriptionId": 73761176,
"triggerUuid": "504b2eb76c80f672a18f892c0f700e41"
}
Unterelement-Webhooks sind fast genau gleich, aber sie enthalten auch die parent_item_id in ihrer Nutzlast.Hier sind einige Beispiele:
create_subitem - Beispielnutzlast:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1772135370,
"pulseId": 1772139123,
"pulseName": "sub-item",
"groupId": "topics",
"groupName": "Subitems",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:24:51.835Z",
"subscriptionId": 73761697,
"triggerUuid": "5c28578c66653a87b00a80aa4f7a6ce3",
"parentItemId": "1771812716",
"parentItemBoardId": "1771812698"
}
Weitere Unterstützung
Wenn du beim Erstellen benutzerdefinierter Integrationen benötigst, haben wir auch die Möglichkeit, über unser Netzwerk zertifizierter monday.com Partner kostenpflichtige Unterstützung zu erhalten.Bei Interesse bitte dieses Formular ausfüllen und jemand wird sich in Kürze bei dir melden!
Wenn du Fragen hast, wende dich einfach hier an unser Team. Wir sind rund um die Uhr erreichbar und helfen gerne!
Kommentare