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.
Une fois dans le centre des intégrations, recherchez et cliquez sur webhooks comme ci-dessous :
Étape 2
Choisissez l’action pour laquelle vous souhaitez obtenir des charges utiles instantanées :
É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 :
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.
Étape 4
Ajoutez une description pour détailler l'utilisation de votre intégration Webhook dans votre processus de travail. Cela permettra à tout utilisateur utilisant cette intégration de mieux comprendre son objectif et la manière dont elle s'insère dans le processus de travail.
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.
{
"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.
Commentaires