# Créer un workflow personnalisé pour les tâches récurrentes Planio est performant pour organiser des [projets ponctuels](https://plan.io/fr/gestion-projet/), mais il est aussi idéal pour les [tâches récurrentes](https://plan.io/fr/gestion-taches/) qui suivent un certain workflow au sein de votre organisation. Ce guide vous explique comment créer un workflow simple pour la validation des congés de votre équipe. Vous pourrez ensuite réutiliser ce que vous avez appris pour créer vos propres workflows. {{>toc}} ## Les bases du workflow dans Planio Dans Planio, chaque demande doit appartenir à un tracker, qui définit le workflow. Observons cela plus en détail : ### Trackers Considérons les trackers comme des types de demandes spéciaux. Une demande doit appartenir à un tracker, ni plus ni moins. Quelques exemples de tracker : **Tâche**, **Assistance**, **Bug** ou **Demande de congés** (dans notre cas précis). ### Statuts des demandes Les statuts des demandes correspondent aux différents états dans lesquels une demande Planio peut se trouver à un moment donné. Par exemple, une demande peut avoir le statut **Ouvert**, **En cours**, **Commentaire** ou **Fermé**. Une demande a un seul statut à la fois. Ce statut change au fur et à mesure que l’équipe travaille sur la demande. ### Rôles Chaque utilisateur de Planio possède son propre compte utilisateur et participe au projet en prenant un ou plusieurs rôles : certains utilisateurs peuvent avoir le rôle de *Manager*, d’autres celui de *Membre d’équipe* ou de *Client*, par exemple. Le rôle détermine ce que l’utilisateur peut ou ne peut pas voir dans un projet donné, ainsi que son workflow. ### Workflows Un workflow réunit tous les aspects cités précédemment : il définit les statuts possibles pour chaque combinaison de tracker et de rôle. Pour toutes les demandes d’un tracker, il détermine quelles sont les modifications de statut autorisées et quelles propriétés de la demande sont visibles et/ou modifiables. Et en clair, qu’est-ce que ça veut dire ? Cette partie est probablement la plus complexe (et la plus puissante) de Planio mais ne vous inquiétez pas : nous allons vous guider de A à Z et les workflows n’auront bientôt plus aucun secret pour vous ! ## Partir en congés : aspects techniques Cette section vous plaît ? On s’en doutait. Vous rêvez de partir vous détendre sur une plage déserte à l’autre bout du monde ? Demandez quelques jours de congés et faites vos valises. Dans beaucoup d’entreprises, les congés doivent être validés par un manager. L’employé soumet une demande en indiquant une date de début et une date de fin de congés, puis le manager valide ou refuse la demande. Une fois la demande validée, elle est considérée comme définitive et les dates de congés ne peuvent plus être modifiées. En cas de refus, l’employé peut modifier les dates demandées et renvoyer sa demande pour qu’elle soit validée (enfin, on l’espère). Nous allons maintenant construire ce workflow dans Planio afin d’implémenter une fonction de demande et de validation de jours de congés. Nous allons également découvrir comment visualiser les congés sur le calendrier Planio pour avoir une vue d’ensemble de tous les employés absents à un moment T. ## Tracker, statuts, rôles et workflow Pour mettre en place cette fonction, nous allons créer un **Tracker** appelé *Demande de congés*, trois **Statuts de demandes** intitulés *Ouvert*, *Validé* et *Refusé*, et deux \*Rôles\* : *Manager* et *Membre d’équipe*. Enfin, nous allons les assembler pour former un **workflow** personnalisé. ### Créer le tracker Commençons par le commencement. - Allez dans *Votre avatar* -\> **Administration** -\> **Trackers**, puis cliquez sur **Nouveau tracker**. - Entrez *Demande de congés* dans le champ **Nom**. - Sélectionnez *Ouvert* dans le champ **Statut par défaut**. - Décochez la case **Demandes affichées dans la roadmap**, car nous ne voulons pas afficher les jours de congé dans les roadmaps de nos projets. - Décochez toutes les cases des **Champs standards**, à l’exception de **Début** et **Échéance**. C’est ici que nous entrerons les dates de début et de fin des congés. - Ne sélectionnez rien dans la liste déroulante **Copier le workflow de**. - Cliquez sur **Créer**. {{figure(Voilà à quoi devrait ressembler votre tracker.) !creating_a_new_tracker@2x.png! }} ### Créer des statuts de demandes La procédure est similaire, mais légèrement différente pour les trois statuts *Ouvert*, *Validé* et *Refusé*. - Allez dans *Votre avatar* -\> **Administration** -\> **Statuts de demandes**. - Vous voyez un statut nommé *Ouvert\_ ? Parfait, vous pouvez passer cette étape. Vous ne voyez pas ce statut ? Cliquez sur **Nouveau statut**, entrez \_Ouvert* dans le champ **Nom** et décochez la case **Ajouter à tous les workflows**, car ce statut est destiné uniquement à notre workflow *Demande de congés*. Ensuite, cliquez sur **Créer**. - Créez les deux autres statuts *Validé* et *Refusé* en suivant la même procédure et assurez-vous que la case **Demande fermée** est cochée pour le statut *Validé*. {{figure(Voilà à quoi devrait ressembler votre statut Validé.) !create_an_issue_status@2x.png! }} ### Créer un rôle Cette étape devrait être facile : - Allez dans *Votre avatar* -\> **Administration** -\> **Rôles et permissions**. - Est-ce que les rôles *Manager* et *Membre d’équipe* existent déjà ? Parfait. Cette étape est terminée. Il s’agit des deux rôles de base qui ont été créés automatiquement à l’ouverture de votre compte Planio. - Vous ne voyez pas les rôles ? Créez-les en cliquant sur **Nouveau rôle**. Entrez le **Nom** du rôle et ignorez le reste pour le moment. Assurez-vous simplement que les cases des permissions **Voir le calendrier**, **Modifier les demandes**, **Voir les demandes** et **Créer des demandes** sont cochées. Réalisez cette étape pour les deux rôles *Manager* et *Membre d’équipe*. {{figure(Ajouter un rôle) !how_to_add_a_role@2x.png! }} ### Définir le workflow Les choses vont commencer à devenir amusantes. Nous allons assembler tous ces maillons pour constituer un workflow. - Allez dans *Votre avatar* -\> **Administration** -\> **Workflow**. - Sélectionnez le rôle *Membre d’équipe* et votre tracker *Demande de congés*. - Décochez la case **N’afficher que les statuts utilisés dans ce tracker** et cliquez sur **Modifier**. - La grille qui s’affiche vous permet de configurer tous les changements de statut autorisés pour un rôle et un tracker donnés. Par exemple, les cases en haut et en bas à gauche du workflow *Membre d’équipe* doivent être cochées. Cela signifie que les membres ayant le rôle *Membre d’équipe* peuvent créer de **nouvelles demandes** avec le statut *Ouvert* et rouvrir une demande refusée (**statut actuel** *Refusé* \> *Ouvert*.) - Nous allons maintenant configurer le workflow *Membre d’équipe* en reproduisant la capture d’écran suivante : {{figure(Workflow pour le rôle Membre d’équipe) !vacation_request_workflow_for_staff@2x.png! }} - Cliquez sur **Sauvegarder**. - Ensuite, sélectionnez le rôle *Manager*, assurez-vous que la case **N’afficher que les statuts utilisés dans ce tracker** est décochée et cliquez sur **Modifier**. - Configurez le workflow *Manager* en reproduisant la capture d’écran suivante : {{figure(Workflow pour le rôle Manager) !vacation_request_workflow_for_manager@2x.png! }} - Cliquez sur **Sauvegarder**. Un instant. Revenons sur nos captures d’écran. Nous avons défini les opérations suivantes : - Les *managers* peuvent valider ou refuser une demande de congés ouverte (statut *Ouvert* \> *Validé* ou *Ouvert* \> *Refusé*) et valider une demande de congés refusée (statut *Refusé* \> *Validé*), si jamais ils changent d’avis. - Un *membre d’équipe* peut uniquement rouvrir une demande de congés refusée (statut *Refusé* \> \_Ouvert), s’il souhaite changer ses dates et soumettre la demande modifiée. ### Adapter les permissions sur les champs Nous allons maintenant personnaliser les champs qui seront visibles sur le formulaire de la demande en fonction du statut. - Toujours sur l’écran **Workflow**, cliquez sur l’onglet **Permissions sur les champs**. - Pour le rôle *Manager*, mettez tous les champs en *Lecture* sauf le champ **Sujet**. Pour économiser quelques clics, vous pouvez copier une valeur sur toute la rangée en cliquant sur l’icône **»**. {{figure(Permissions sur les champs pour le rôle Manager) !fields_permissions_manager@2x.png! }} - Pour le rôle *Membre d’équipe*, faites de même sauf pour les champs **Début** et **Echéance**, qui doivent être obligatoires : {{figure(Permissions sur les champs pour le rôle Membre d’équipe) !fields_permissions_staff@2x.png! }} Avec cette configuration, seul un *Membre d’équipe* peut définir les dates de sa demande de congés et ces dates ne pourront plus être modifiées une fois la demande validée. ## Utiliser le workflow en conditions réelles Les préparatifs sont terminés ; passons maintenant à la pratique. - Commencez par créer un nouveau projet via **Projets** -\> **Nouveau projet**. - Donnez un nom à votre projet, par exemple **Congés**. - Désactivez tous les **modules** à l’exception de **Suivi des demandes** et **Calendrier**. - Sélectionnez uniquement votre tracker **Demande de congés** et rien d’autre. - Cliquez sur **Créer**. Voilà, vous avez terminé. Vos utilisateurs peuvent commencer à utiliser ce projet pour planifier les prochains congés. Pour soumettre une demande de congés, il leur suffit de créer une nouvelle demande. Au moment de créer une *Demande de congés*, les champs **Début** et **Echéance** devront être remplis, tous les autres seront invisibles. {{figure(Formulaire simplifié pour la saisie des demandes de congés) !new_issue_form@2x.png! }} Si vous voulez tester ce workflow par vous-même, nous vous recommandons de créer deux utilisateurs (*Votre avatar* \> **Administration** -\> **Utilisateurs**) sans droits administrateurs et de les ajouter comme *Membre d’équipe* et *Manager* à votre projet. Si vous faites des tests en tant qu’administrateur et que vous modifiez une demande, vous pourrez toujours sélectionner un statut dans une liste avec tous les statuts. Ne vous étonnez pas : c’est normal pour les administrateurs. Les utilisateurs non administrateurs ne verront que les statuts définis dans leur workflow. ### Bonus : la vue Calendrier Vous vous demandez peut-être pourquoi nous avons activé le module **Calendrier** dans nos rôles et notre projet. Eh bien, après avoir ajouté quelques demandes de congés, allez dans l’onglet **Calendrier** de votre projet Planio. Vous y verrez le calendrier mensuel de toutes les demandes de congés qui ont été saisies. {{figure(Vue du calendrier des congés dans Planio) !vacation_calendar@2x.png! }} En utilisant une [requête personnalisée](http://plan.io/blog/post/25072622222/trackers-viewing-and-grouping), vous pouvez même créer une vue calendrier qui affiche uniquement les demandes validées. Ou créer une requête pour que les managers ne voient que les demandes de congés à valider (c’est-à-dire ayant le statut *Ouvert*).