Pouvons-nous vous aider?

Intégration d'un webhook

 

Screen_Shot_2020-03-08_at_17.47.27.png

monday.com offre la possibilité d’envoyer un webhook grâce à nos intégrations, ou vous pouvez même les créer via l’API. Vous pouvez envoyer un webhook à chaque fois qu’un événement choisi se produit sur votre tableau. Veuillez poursuivre votre lecture pour en savoir plus.

 

Qu’est-ce qu’un webhook ?

Un webhook (également appelé lien de rappel HTTP ou point d’ancrage Web) est un moyen pour une application de fournir à d’autres applications des informations en temps réel. Un webhook fournit des données à d’autres applications dès qu’un changement se produit, ce qui signifie que vous obtenez des données immédiatement, contrairement aux API typiques où vous aurez besoin de rechercher les données très souvent afin de les obtenir en temps réel. Cette fonctionnalité rend les webhooks beaucoup plus efficaces, tant pour le fournisseur que pour l’utilisateur.

 

Chaque fois que vous essayez de créer un nouveau Webhook sur monday.com, nous envoyons un JSON challenge à l'URL que vous fournissez en vue de vérifier que vous avez le contrôle sur le point de terminaison. Poursuivez la lecture pour savoir comment votre application doit réagir !

 

Comment créer un nouveau Webhook 

Étape 1

Sur votre tableau, cliquez sur l’icône «  intégrations  » et recherchez l’application «  webhooks  » dans le centre d’intégration.

Group_93.png

Une fois dans le centre des intégrations, recherchez et cliquez sur webhooks comme ci-dessous :

Group_94.png

 

Étape 2

Choisissez l’action pour laquelle vous souhaitez obtenir des charges utiles instantanées :

image_5__5_.png

 

Étape 3

Après avoir sélectionné l'action dont vous avez besoin, vous devrez spécifier l'URL. Il devrait s'agir d'une URL capable de renvoyer le JSON challenge, et qui désormais constituera le récepteur des charges utiles à l'avenir :

image_5__6_.png

Et c’est tout ! Dès que cette modification se produit, par exemple lorsqu'un nouvel élément est ajouté à votre tableau, votre point de terminaison reçoit une charge utile concernant cette modification. Vous trouverez quelques charges utiles plus bas.

 

Comment vérifier une URL de webhook

L’URL que vous avez indiquée doit bien entendu être vérifiée par votre application. Notre plate-forme effectue cette vérification en envoyant un format JSON à votre point de terminaison, et votre application devrait répondre en renvoyant un format identique.

Nous enverrons un post dont le corps du JSON , contient un champ « format ». Il s'agit d'un jeton généré de manière aléatoire que nous attendons que vous renvoyiez comme champ « format » du corps de votre réponse JSON à cette requête.

Voici à quoi ressemblera ce « test » :

{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}

 

Le corps de la réponse doit être identique au corps JSON POST de la requête :

{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}

 

Vous trouverez ici un exemple simple d'écouteur de webhook dont la sortie correspond au format attendu :

app.post("/", function(req, res) { console.log(JSON.stringify(req.body, 0, 2)); res.status(200).send(req.body);})

 

À quoi ressemblerait les données de l'événement ?

Chaque webhook envoyé à votre point de terminaison contient un champ événement dans son corps. Ce champ comprend la charge utile avec les données de l'événement.

 
Vous trouverez ci-dessous quelques exemples, vous pouvez voir comment il se présente :
create_item-exemple de charge utile :
{
 "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"
 }

Changement de valeur de colonne (spécifique ou tout changement de valeur de colonne)-exemple de charge utile

Ce changement inclut la valeur précédente, l'ID de la colonne et la valeur actuelle.

"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-exemple de charge utile :

"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"
 }

 

 

Changement de statut-exemple de charge utile :

"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"
 }

 

 

Les webhooks de sous-éléments sont presque exactement les mêmes, mais ils incluront également le parent_item_id dans leur charge utile. Voici quelques exemples : Voici quelques exemples :

create_subitem-exemple de charge utile :

"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"
 }

 

 

Aide supplémentaire

Si vous avez besoin d'aide lors de la création des intégrations personnalisées, nous proposons également une option d'assistance payante via notre réseau de partenaires certifiés monday.com. Si vous êtes intéressé, veuillez remplir ce formulaire, quelqu'un vous contactera au plus vite !

 

 

Si vous avez la moindre question, n'hésitez pas à contacter notre équipe ici. Nous sommes disponibles 24h/​24, 7j/​7 et sommes toujours heureux de vous aider.