Faire remonter les anniversaires dans Slack

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. 

chrome_2017-08-11_14-28-39.png
ou bien

chrome_2017-08-11_14-28-45.png

Configuration du zap

Vous devez configurer la première étape. Le bouton « Create a zap » vous amène sur cette page, ou vous aller devoir choisir un "Trigger". Vous pourrez alors choisir "Schedule".

1_create-a-zap_full_en.png

2_choose-schedule_en.png

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.

3_event-periodicity_en.png

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.

4_setting-trigger_en.png

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”.

5_choosing-code_en.png

Choisir Javascript

6_choose-action_en.png

Vous devrez d’abord remplir les parties “Input” en remplaçant les “xxx” par vos informations.

- La première clé est url et pour la valeur, remplacez les “xxx” par le nom de l'instance Lucca

- La seconde clé est appToken et pour la valeur, remplacer les "xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx" par votre clé API Lucca.

Attention : la clé API à utiliser est une clé API Lucca et il faut lui donner la permission de "voir les données Lucca".

7_setting-action_en.png

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 = [];
var increment = 1;

if(monthS=="02" && dayS == "29") {
    increment = 4;
}
for (var yearShift = increment ; yearShift <= 70; yearShift+=increment) {

    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);

   });

Point important, le test doit être fait un jour où au moins un utilisateur a son anniversaire.

Attention, le test du code Javascript ne passera pas si vous avez une restriction d'adresses IP sur votre instance Lucca.

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

8_step-add_en.png

9_process-slack_en.png

Choisissez l’option “Send Channel Message”

10_message-slack_en.png

Pour la prochaine étape, connectez-vous avec les identifiants de votre compte Slack :

11_sign-in_en.png

Puis complétez les options, en commençant par le nom du channel puis rentrer votre texte. Vous pouvez utiliser celui de cet exemple pour votre paramétrage :

12_setup-sending-message_en.png

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 ».

13_start-zap_en.png

Contenu de la page

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