Wie können wir dir helfen?

Webhook-Integration

 

Screen_Shot_2020-03-08_at_17.07.50.png

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“.

Group_93.png

Sobald du in der Integrationszentrale bist, suche nach den Webhooks und klicke sie an: 

Group_94.png

 

Schritt 2

Wähle die Aktion aus, zu der du sofortige Nutzlasten erhalten möchtest:

image_5__5_.png

 

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:

image_5__6_.png

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.

 

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.

 
Nachfolgend findest du einige Beispiele, wie diese aussehen werden:
create_item - Beispiele Nutzlasten:
{
 "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!