Auf der monday.com Plattform kannst du über unsere Integrationen einen Webhook senden oder 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
Klicke in deinem Board auf den Button Integrationen auf der rechten Seite deines Bildschirms, klicke anschließend auf den Tab Erstellen und suche auf der Automatisierungen-Seite des Boards nach der Integration Webhooks:
Klicke dann auf den Banner „Webhooks“ und wähle die Aktion aus, für die du sofortige Nutzlasten erhalten möchtest:
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.
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 Hilfe bei individuellen Integrationen brauchst, kannst du mit zertifizierten monday.com Partnern über go-to-partners, den Partnermarktplatz von monday.com, zusammenarbeiten Sie bieten kostenpflichtige Unterstützung bei Integration, Einrichtung und Optimierung, damit du das Beste aus monday.com herausholst
Wenn du Fragen hast, wende dich einfach hier an unser Team. Wir sind rund um die Uhr erreichbar und helfen gerne!
