Synchronisation des absences HTTP (webhook)

Avant de commencer

Cet article concerne la synchronisation dite "HTTP", qui est un webhook permettant d'envoyer les absences de Figgo vers un outil externe. Il peut être utilisé si nous ne proposons pas de connecteur dédié (nous proposons pour l'instant des intégrations avec Google Calendar, Office365/Exchange et ADP GXP).

Evénements synchronisés

Vous pouvez paramétrer les événements qui seront envoyés par le web-service :

  • tous les événements (absences créées en attente de validation, absences validées, absences supprimées)
  • uniquement les événements validés (absences validées, absences supprimées)

Format du message envoyé

A chaque créationLe message sera envoyé ainsi :

  • Verbe : POST
  • URl : vous devez fournir l'URL à appeler à chaque création ou suppression d'absence
  • Header :
    - Authorization
    - X-Version
    - X-Resource-Type
    - X-Event
  • Body : le payload en json

Header

Le header contient un les champs suivants :

  • Authorization, qui contient la clé d'autorisation que vous fournissez.
    Exemple : Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

  • X-Version : version du format du payload (fourni par Figgo)
  • X-Resource-Type : type d'objet envoyé (leave uniquement dans la version actuelle)
  • X-Event : événement ayant généré l'appel (created, approved, deleted)

Format du payload

Les absences sont envoyées par demi journées, appelées leaves. Pour une absence de 2 jours, le payload contiendra donc 4 leaves.

Cas particulier pour les absences en heures : un champ est ajouté (voir dans la description plus bas).

Exemple de payload

{
"id": "78287-20180424-PM",
"date": "2018-04-24",
"isAm": false,
"owner": {
"id": 134,
"name": "Luca Pacioli",
"email": "luca.paccioli@lucca.fr",
"employeeNumber": "00001"
},
"leaveAccount": {
"id": 1718,
"name": "Congés payés 2018",
"categoryId": 1,
"categoryName": "Congés payés"
},
"isConfirmed": true,
"confirmationDate": "2018-04-04T22:34:47.797",
"isCancelled": false,
"cancellationDate": ""
}

Description du payload

  • id : identifiant unique de la leave

  • date : date de la leave

  • isAM : demi journée (AM: true, PM: false)

  • leaveAccount : compte d'absence

    • id : identifiant du compte dans Figgo
    • name : nom du compte
    • categoryId : identifiant de la catégorie du compte, dans le cas des comptes millésimés
    • categoryName : nom de la catégorie du compte, dans le cas des comptes millésimés
  • durationInHours : durée en heures, si compte en heures uniquement (ex: "03:45:00")

  • isConfirmed : état de validation de l'absence
  • creationDate : date de création

  • isCancelled : état d'annulation
  • cancellationDate : date d'annulation

Etats des demandes

Voici un schéma décrivant les différents états possibles des demandes selon les actions faites dans Figgo.

Figgo_Events_-_SYNC_1_.jpg

Interface de suivi

Les événements envoyés peuvent être suivis dans l'interface du web-service de synchronisation dans Figgo.

Pour chaque événement, on peut voir le détail du message envoyé, et en cas d'erreur, rejouer l'événement manuellement, ou le marqué comme traité. Dans ce cas il ne sera plus considéré en erreur.

Les erreurs de synchronisation sont remontées sur le tableau de bord des actions à réaliser de l'administrateur.

Attention : seules les erreurs renvoyées à la réception du payload sont traitées. Si vous effectuez un traitement métier asynchrone, nous ne pouvons pas récupérer les potentielles erreurs que vous rencontrez.

Politique de rejeu

En cas d'échec de l'appel, l'événement est envoyée dans une queue pour rejeu. Il y a 4 queues en cascade, à 5 minutes, 15 minutes, 1h, 24h.

Contenu de la page

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0