Avant de commencer
Pour souhaiter un joyeux anniversaire et fêter les années d'ancienneté automatiquement sur slack, vous pouvez utiliser Zapier pour effectuer facilement et rapidement cette tâche.
Information importante : un compte Zapier payant est nécessaire.
ou bien
Configuration du zap
Vous devez configurer la première étape. Le bouton « Make a zap » vous propose une liste d’outils disponibles. Vous pourrez alors choisir "Schedule".
Il vous sera alors demandé de configurer votre horloge. Tout d’abord en vous demandant à quelle récurrence vous voulez que le script soit lancé, par exemple tous les jours.
Vous pourrez ensuite choisir à quelle heure de la journée le script sera lancé et si oui ou non vous voulez qu’il se lance le week-end.
Une fois cette étape validée, vous pourrez ensuite lancer les tests pour cette étape avec le dernier onglet « Test trigger ».
Pour la deuxième étape, celle de l’action, nous allons choisir l’application “Code by Zapier”.
Choisir Javascript
Vous devrez d’abord remplir les parties “Input” comme ci-dessous :
En remplaçant les “xxx” par vos informations.
- Dans la case url remplacez les “xxx” par le nom de l'instance Lucca
Vous pourrez ensuite copier le code ci-dessous dans la partie “Code”:
var today = new Date(); var yearS = "" + today.getFullYear(); var month = today.getMonth() + 1; var monthS = month > 9 ? "" + month : "0" + month; var dayS = today.getDate() > 9 ? "" + today.getDate() : "0" + today.getDate(); var todayS = yearS + "-" + monthS + "-" + dayS; var urlBase = input.url + "/api/v3/users?fields=birthDate,picture.href,firstName,lastName,DtContractStart&dtContractEnd=since," + todayS + ",null"; var appToken = input.appToken; var potentialBirthDateArray = []; for (var yearShift = 1; yearShift <= 70; yearShift++) { potentialBirthDateArray.push((today.getFullYear() - yearShift) + "-" + monthS + "-" + dayS); } var getSeniorityAnniversary = function (people) { fetch(urlBase + "&DtContractStart=" + potentialBirthDateArray.join(","), { "headers": { "Authorization": "lucca application=" + appToken } }).then(function (response) { return response.json(); }).then(function (results) { results = results.data.items; results.map(function (result) { if (result.picture && result.picture.href) { result.pictureHref = result.picture.href; } else { result.pictureHref = null; } result.year = (today.getFullYear() - result.dtContractStart.split("-")[0]); result.birthDayMessage = result.firstName + " " + result.lastName.slice(0, 1) + ". déjà " + result.year + " ans avec nous ! :cake: "; people.push(result); }); callback(null, people); }).catch(function (error) { console.log(error); }); } fetch(urlBase + "&birthDate=" + potentialBirthDateArray.join(","), { "headers": { "Authorization": "lucca application=" + appToken } }) .then(function (res) { return res.json(); }).then(function (data) { var people = data.data.items; if (people.length > 0) { people.map(function (person) { if (person.picture && person.picture.href) { person.pictureHref = person.picture.href; } else { person.pictureHref = null; } person.year = (today.getFullYear() - person.birthDate.split("-")[0]); person.birthDayMessage = "Joyeux anniversaire " + person.firstName + " " + person.lastName.slice(0, 1) + ". ! " + person.year + " ans seulement ! :cake: "; }); } getSeniorityAnniversary(people); }).catch(function (error) { console.log(error); }); |
Vous n’avez plus qu’à configurer la dernière action qui permettra d’envoyer les résultats sur l’un de vos channels Slack.
Choisissez l’option “Send Channel Message”
Pour la prochaine étape, connectez-vous avec les identifiants de votre compte Slack. Puis complétez les options, en commençant par le nom du channel:
Une fois le nom du channel rentré vous aurez à rentrer le message que vous voulez afficher.
Vous pouvez prendre le texte de l’exemple ci-dessous.
Vous n’avez plus qu’à valider cette étape et lancer les tests pour finir la configuration.
Lancement du zap
Vous pouvez lancer le zap en appuyant sur le bouton « OFF » pour qu’il passe à « ON ».
Tous les matins à 7 heures, Slack vous donne la liste des anniversaires du jour.