Afficher le télétravail (ou autre) dans Slack avec Zapier

Avant de commencer

Pour faire remonter dans Slack les personnes ayant posé des jours sur un compte en particulier (Ex : compte de télétravail) vous pouvez utiliser Zapier pour effectuer facilement et rapidement cette tâche.

Information importante : un compte Zapier payant est nécessaire. 

 

image.png

 

Configuration

Connexion à Zapier

Connectez-vous à votre compte Zapier (https://zapier.com) ou créez-vous un compte. Un compte payant (Starter au minimum) est requis. 

 

Création du Zap

Créez votre automatisme (Zap), en choisissant le déclencheur (trigger) Schedule

Capture_d_e_cran_2020-12-16_a__16.51.49.png

Configurez le déclencheur avec la fréquence et les horaires souhaités pour l'envoi des absents du jour (par exemple fréquence quotidienne).

Capture_d_e_cran_2020-12-16_a__16.52.19.png

 

Capture_d_e_cran_2020-12-16_a__16.53.07.png

Validez puis testez l'étape.

Pour la deuxième étape, celle de l’action, choisissez Code by Zapier.

Capture_d_e_cran_2020-12-16_a__16.55.13.png

Choisissez Javascript.

Capture_d_e_cran_2020-12-16_a__16.55.34.png

Configurez 3 inputs avec les informations suivantes : 

  • url : url de votre instance Lucca
  • appToken : clé API à générer depuis l'administration Lucca (voir la procédure)
  • remoteWorkAccountId : numéro du compte pour lequel vous récupérez les absents (à retrouver dans l'administration des comptes Paramétrage > Comptes)

image__1_.png

 

Copiez ensuite le code ci-dessous dans la partie “Code”: 

var convertDayType = (dayType) => {
switch(dayType){
case 'AM': return 'ce matin';
case 'PM': return 'cet après-midi';
case 'ALL': return 'toute la journée';
}
};fetch(inputData.url+'/api/v3/leaves?date='+new Date().toISOString().split("T")[0]+'&leaveAccountId='+inputData.remoteWorkAccountId+"&leavePeriod.ownerId=greaterthan,0&fields=leavePeriod.owner[id,name],isAm", {
"headers": {
"Authorization": "lucca application=" + inputData.appToken
}
})
.then(function(res) {
return res.json();
})
.then(function(data) {
var leaves = data.data.items;
var users = {};
for(var i = 0; i < leaves.length; i++) {
var leave = leaves[i];
var userId = leave.leavePeriod.owner.id;
if(!users[userId]){
users[userId] = {name: leave.leavePeriod.owner.name, dayType: leave.isAm ? 'AM': 'PM'};
}
else {
users[userId].dayType = 'ALL';
}
}
return users;
})
.then(function(users) {
var userMessages = [];
for(var userId in users){
var user = users[userId];
userMessages.push(user.name + " " + convertDayType(user.dayType));
}
userMessages.sort();
var messages = ["*"+userMessages.length+" personnes en télétravail aujourd'hui:*"];
messages.push(...userMessages);
var output = {slackMessage: messages.join("\n")};
callback(null, output);
})
.catch(callback);

 

Vous n’avez plus qu’à configurer la dernière action qui permettra d’envoyer les résultats sur un canal Slack.

Capture_d_e_cran_2020-12-16_a__17.20.19.png

Choisissez l’option “Send Channel Message” puis choisissez le compte Slack à utiliser pour récupérer les informations (ou connectez-vous si besoin). 

Capture_d_e_cran_2020-12-16_a__17.20.35.png

Capture_d_e_cran_2020-12-16_a__17.21.16.png

Choisissez ensuite le canal dans lequel vous souhaitez publier les absents du jour.

Dans le champ Message Text indiquez la variable "Slack Message" disponible dans la liste, issue de l'étape précédente. 

image__2_.png

Vous n’avez plus qu’à valider cette étape et lancer les tests pour finir la configuration.

Activer le Zap

Une fois le Zap créé, activez-le à l'aide de l'interrupteur.

À la fréquence et à l'heure paramétrées, le Zap enverra la liste des absents sur le compte choisi dans le canal Slack.

Contenu de la page

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