Chapitre 1014 minIntermédiaire
Formulaires et catalogue de services (GLPI 11 et 12)
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- construire un formulaire avec sections, questions et conditions ;
- régler le ou les tickets qu'il crée ;
- contrôler qui peut utiliser un formulaire ;
- présenter les formulaires dans le catalogue de services ;
- prévenir un autre outil avec un webhook.
5 exercices corrigés
Un formulaire GLPI est une page de questions que l'utilisateur remplit depuis le portail pour faire une demande précise (« Arrivée d'un nouveau salarié », « Accès à un dossier partagé ») ; à l'envoi, GLPI crée automatiquement un ou plusieurs tickets correctement remplis. Depuis GLPI 11, les formulaires sont natifs et présentés dans un catalogue de services. Ce chapitre montre comment construire un formulaire complet, régler ce qu'il crée, contrôler qui peut l'utiliser, et comment prévenir un autre outil grâce aux webhooks.
Pourquoi des formulaires plutôt qu'un ticket libre
Un ticket libre, c'est un titre et une description rédigés par l'utilisateur : « besoin d'un PC pour la nouvelle ». Le technicien doit rappeler pour savoir qui arrive, quand, dans quel service, avec quels accès. Un formulaire pose ces questions d'emblée, impose les réponses obligatoires, et produit un ticket complet, bien catégorisé, attribué au bon groupe, éventuellement soumis à validation. C'est la mise en pratique de la gestion des demandes de service d'ITIL : des demandes standardisées, avec un circuit connu à l'avance (cours ITIL).
Formulaires natifs et fin du plugin FormCreator
Jusqu'à GLPI 10, les formulaires passaient par le plugin FormCreator. Depuis GLPI 11, ils sont intégrés au cœur, dans Administration > Formulaires, et le plugin n'est plus nécessaire. Deux formulaires sont créés par défaut, accessibles à tous : Signaler un incident et Demander un service. Tu peux les modifier, les désactiver ou les supprimer.
Une instance qui passe de GLPI 10 à GLPI 11 ou 12 avec des formulaires FormCreator doit les migrer : le plugin doit être installé au moment de la mise à jour, puis une commande de la console convertit les formulaires à partir de la base de GLPI 10 :
sudo -u www-data php bin/console migration:formcreator_plugin_to_core
Il n'est pas possible d'importer des formulaires de GLPI 10 dans une instance GLPI 11 déjà installée : la migration se fait sur la base d'origine.
Le catalogue de services et le portail
Les formulaires sont présentés aux utilisateurs dans le catalogue de services (Assistance > Catalogue de services, et la tuile correspondante du portail). Chaque formulaire y a une tuile avec une description et une illustration, et peut être rangé dans une catégorie du catalogue (« Matériel », « Comptes et accès », « Arrivées et départs ») ou épinglé en tête. Les catégories se créent dans Configuration > Intitulés, rubrique Catalogue de services. Depuis GLPI 12, un article de la base de connaissances peut aussi apparaître dans le catalogue, à côté des formulaires : l'utilisateur trouve la procédure avant de demander de l'aide.
L'accueil du portail se compose dans la fiche de l'entité, onglet Accueil Helpdesk : un titre, une barre de recherche, et des tuiles de trois sortes (une page de GLPI comme le catalogue ou la FAQ, une page externe, ou directement un formulaire). Chez Cèdre Habitat, l'accueil propose quatre tuiles : « Signaler une panne », « Demander un service », « Consulter la FAQ » et « Mes tickets ».
Créer un formulaire pas à pas : « Arrivée d'un nouveau salarié »
Chaque arrivée chez Cèdre Habitat demande un compte, une messagerie, un poste et des accès. Les responsables de service envoyaient un courriel, souvent la veille, souvent incomplet. Sarah construit un formulaire.
1. Créer le formulaire. Administration > Formulaires, bouton Ajouter. Donne un titre (« Arrivée d'un nouveau salarié ») et une description visible par l'utilisateur (« À remplir au moins 10 jours ouvrés avant l'arrivée »).
2. Organiser les sections et les questions. L'éditeur permet d'ajouter des questions, des commentaires (un texte d'aide), des sections (pour découper un long formulaire en étapes) et des mises en page horizontales. Chaque question a un titre, une description facultative, et peut être obligatoire.
| Section | Question | Type | Obligatoire |
|---|---|---|---|
| Le salarié | Nom et prénom | Réponse courte (texte) | Oui |
| Date d'arrivée | Date | Oui | |
| Service | Liste déroulante (groupes) | Oui | |
| Lieu de travail | Élément (intitulé Lieux) | Oui | |
| Type de contrat | Boutons radio : CDI, CDD, alternance, stage | Oui | |
| Date de fin (CDD, alternance, stage) | Date | Oui, si visible | |
| Le matériel | Poste demandé | Boutons radio : portable, fixe, aucun (matériel récupéré) | Oui |
| Téléphone mobile professionnel | Oui / non (cases à cocher) | Non | |
| Les accès | Applications nécessaires | Cases à cocher : gestion locative, comptabilité, portail locataires | Non |
| Dossiers partagés du service | Réponse longue | Non | |
| Responsable qui valide | Acteurs (utilisateur) | Oui |
3. Les types de questions disponibles.
| Type | Usage |
|---|---|
| Réponse courte | Un texte, une adresse électronique ou un nombre, sans mise en forme |
| Réponse longue | Un texte mis en forme, jusqu'à 65 535 caractères |
| Date et heure | Une date, une heure, ou les deux |
| Acteurs | Un ou plusieurs utilisateurs, groupes ou fournisseurs de GLPI |
| Urgence | Les cinq niveaux, de très basse à très haute |
| Type de demande | Incident ou demande |
| Document | Un fichier joint |
| Boutons radio, cases à cocher, liste déroulante | Un choix unique ou multiple dans une liste de réponses |
| Élément | Un objet de GLPI : un poste, un logiciel, un lieu, une catégorie ITIL, une entité ; l'option « appareils de l'utilisateur » ne propose que le matériel affecté à la personne qui remplit |
4. Les conditions de visibilité. Une question peut être toujours visible, visible si ou masquée si une condition sur une réponse précédente est vraie (est égal à, contient, correspond à une expression régulière…). Ici, « Date de fin » n'est visible que si le type de contrat n'est pas « CDI ». Une condition peut aussi s'appliquer à une section entière ou au bouton d'envoi : tant que la condition n'est pas remplie, l'utilisateur ne peut pas envoyer.
5. La validation des réponses. Une réponse courte ou longue peut être contrôlée par une expression régulière : un numéro de téléphone à 10 chiffres, un numéro d'inventaire au format CH-2026-0001. Si la réponse ne correspond pas, un message d'erreur s'affiche à l'envoi.
Ce que le formulaire crée
L'onglet Élément à créer décide de ce qui se passe à l'envoi. Un formulaire peut créer un ticket, un changement ou un problème, et même plusieurs éléments à la fois, chacun avec ses conditions de création. Pour chaque élément, tu règles :
| Propriété | Options | Choix pour l'arrivée d'un salarié |
|---|---|---|
| Gabarit | Un gabarit de ticket existant | « Demande d'arrivée » |
| Entité | Celle de l'utilisateur, celle du formulaire, une entité précise, ou la réponse à une question | Celle de l'utilisateur |
| Type | Celui du gabarit, un type précis, ou la réponse à une question | Demande |
| Catégorie ITIL | Une catégorie précise, ou la réponse à une question | Comptes et accès > Arrivée |
| Urgence, lieu, source | Valeur précise, gabarit, ou réponse à une question | Lieu : réponse « Lieu de travail » |
| Demandeur | La personne qui remplit, son responsable (champ Responsable de sa fiche utilisateur), un acteur précis, la réponse à une question, ou l'utilisateur d'un élément choisi | La personne qui remplit |
| Observateurs | Idem | Le responsable choisi dans le formulaire |
| Attribué à | Un groupe ou un technicien précis, ou le groupe responsable d'un élément choisi | Groupe Support N1 |
| Niveaux de service | TTO, TTR, TTO interne, TTR interne : du gabarit ou précis | Ceux du gabarit |
| Éléments associés | Les éléments choisis dans les réponses | Aucun |
| Contenu | Auto-configuration (toutes les questions et réponses), ou un texte rédigé avec des balises de réponses | Auto-configuration |
| Suivi, tâche, validation | Ajouter un suivi ou une tâche modèle, demander une validation | Validation par le responsable choisi |
Sarah ajoute un second ticket, créé seulement si la réponse « Téléphone mobile professionnel » est « Oui », attribué au groupe Systèmes et réseau qui gère la flotte mobile. Le premier ticket, lui, part au Support N1 après validation du responsable.
Qui peut utiliser le formulaire
L'onglet Contrôles d'accès fixe qui voit et remplit le formulaire :
- accès privé : seulement certains utilisateurs, groupes ou profils (le formulaire d'arrivée est réservé au groupe « Responsables de service ») ; pour limiter à une entité, crée le formulaire dans cette entité ;
- accès public : toute personne qui a le lien, avec en option l'accès sans authentification.
Traduire, importer, exporter
Un formulaire peut être traduit : l'utilisateur le voit dans la langue de ses préférences, et une barre de progression indique l'avancement de la traduction. Les formulaires s'exportent (action massive) et s'importent d'une instance à une autre : la bonne pratique est de les construire sur une instance de test, puis de les importer en production. À l'import, GLPI signale les valeurs qui n'existent pas sur l'instance cible (une entité, un groupe) et propose de les remplacer par une valeur existante.
Les webhooks : prévenir un autre outil
Un webhook est une requête HTTP que GLPI envoie automatiquement à une adresse externe quand un événement se produit : un ticket critique créé, un ordinateur ajouté, un utilisateur modifié. Introduits dans GLPI 11, ils se configurent dans Configuration > Webhooks :
| Réglage | Rôle | Exemple chez Cèdre Habitat |
|---|---|---|
| Type d'élément et événement | Ce qui déclenche l'envoi | Ticket, à la création |
| Filtre | Restreindre aux éléments qui correspondent à une recherche | Priorité Très haute ou Majeure |
| URL et méthode HTTP | Où et comment envoyer | L'adresse d'entrée du canal « Astreinte » de la messagerie d'équipe, en POST, en HTTPS |
| Contenu (payload) | Les données envoyées, avec des variables comme le numéro, le titre, la catégorie | Un message court : numéro, titre, catégorie, lien vers le ticket |
| Sécurité | Une clé secrète qui signe la requête, un délai d'expiration contre le rejeu, ou une authentification OAuth | Clé secrète partagée avec la messagerie |
| Nombre de tentatives | Les nouveaux essais si la cible ne répond pas | 3 |
Comme les notifications, les webhooks passent par une file d'attente vidée par une action automatique ; l'onglet des journaux montre, pour chaque envoi, le code de réponse de la cible. Chez Cèdre Habitat, un ticket très urgent apparaît ainsi en quelques secondes dans le canal d'astreinte, sans que personne n'ait à surveiller sa boîte aux lettres.
Exercices
Exercice 1 sur 5 Concevoir un formulaire Réussi À revoir
Conçois le formulaire « Accès à un dossier partagé » de Cèdre Habitat : les questions (type, obligatoire), la condition de visibilité utile, et ce que le formulaire crée (type, catégorie, groupe chargé, validation).
Voir la réponseMasquer la réponse de l'exercice 1
| Question | Type | Obligatoire |
|---|---|---|
| Personne qui a besoin de l'accès | Acteurs (utilisateur) | Oui |
| Dossier concerné | Liste déroulante des dossiers du service, avec une option « Autre » | Oui |
| Chemin du dossier | Réponse courte | Oui, visible seulement si « Autre » est choisi |
| Niveau d'accès | Boutons radio : lecture, lecture et modification | Oui |
| Accès temporaire jusqu'au | Date | Non |
| Justification | Réponse longue | Oui |
Élément à créer : un ticket de type Demande, catégorie Compte et accès > Droits sur un dossier, attribué au groupe Systèmes et réseau, avec une validation demandée au responsable du dossier (un acteur précis par dossier, ou le responsable de la personne concernée). La validation garde la trace de l'accord : c'est la preuve de la sous-compétence « mettre en place et vérifier les niveaux d'habilitation » de l'E5.
Tu avais trouvé ?
Exercice 2 sur 5 Deux tickets, une condition Réussi À revoir
Dans le formulaire d'arrivée, Inès veut que le groupe Applications reçoive un ticket séparé seulement si la case « Gestion locative » est cochée dans les applications nécessaires. Explique comment le régler.
Voir la réponseMasquer la réponse de l'exercice 2
Dans l'onglet Élément à créer, ajouter un deuxième ticket : type Demande, catégorie Logiciel métier > Gestion locative, attribué au groupe Applications, contenu limité aux réponses utiles (nom, date d'arrivée, service). Puis cliquer sur Toujours créé pour le transformer en création conditionnelle : condition « Applications nécessaires » contient « Gestion locative ». Le premier ticket, pour le Support N1, reste créé dans tous les cas. On teste en remplissant le formulaire deux fois, avec et sans la case.
Tu avais trouvé ?
Exercice 3 sur 5 Une expression régulière Réussi À revoir
La question « Numéro d'inventaire du matériel en panne » doit accepter seulement le format de Cèdre Habitat : CH-, quatre chiffres d'année, un tiret, quatre chiffres (exemple : CH-2026-0153). Écris l'expression régulière.
Voir la réponseMasquer la réponse de l'exercice 3
^CH-[0-9]{4}-[0-9]{4}$
Les ancres ^ et $ imposent que toute la réponse respecte le format, sans rien avant ni après. CH-2026-0153 est accepté ; ch-2026-153, CH-26-0153 et CH-2026-0153 portable sont refusés.
Tu avais trouvé ?
Exercice 4 sur 5 Ouvrir un formulaire au public ? Réussi À revoir
Le service des relations locataires voudrait que les locataires signalent les pannes de l'interphone de leur résidence via un formulaire GLPI accessible sans compte. Que réponds-tu ?
Voir la réponseMasquer la réponse de l'exercice 4
Le besoin est légitime, mais un formulaire GLPI ouvert aux utilisateurs non authentifiés sur Internet expose l'outil interne : création massive de faux tickets, dépôt de fichiers malveillants si les envois anonymes sont autorisés, et une surface d'attaque supplémentaire sur un serveur qui contient tout l'inventaire. La documentation de GLPI déconseille cette option sur une instance joignable depuis Internet.
Proposition : passer par le portail locataires existant (où les locataires sont authentifiés) ou par un formulaire web dédié, protégé contre les envois automatisés, qui crée les tickets dans GLPI par l'API avec un compte technique aux droits limités. GLPI reste ainsi accessible depuis le seul réseau interne. Dans tous les cas, ce choix se documente et se valide avec la responsable de la DSI.
Tu avais trouvé ?
Exercice 5 sur 5 Un webhook pour l'astreinte Réussi À revoir
Décris le webhook qui prévient le canal d'astreinte de la DSI quand un ticket de catégorie Sécurité est créé, en précisant les réglages de sécurité, puis dis comment vérifier qu'il fonctionne.
Voir la réponseMasquer la réponse de l'exercice 5
- Type d'élément : Ticket ; événement : création ; entité : Cèdre Habitat avec ses sous-entités.
- Filtre : catégorie est sous « Sécurité ».
- Cible : l'URL d'entrée du canal d'astreinte, en HTTPS, méthode POST.
- Contenu : un message court avec le numéro, le titre, l'entité et le lien vers le ticket ; pas la description complète, qui peut contenir des données sensibles.
- Sécurité : une clé secrète partagée pour signer les requêtes, et un délai d'expiration pour empêcher le rejeu.
- Tentatives : 3.
Vérification : l'onglet Aperçu montre le contenu qui serait envoyé pour un ticket existant ; on crée ensuite un ticket de test dans la catégorie Sécurité, on vérifie l'arrivée du message, puis le code de réponse (200) dans les journaux du webhook. On vérifie aussi que l'action automatique qui vide la file des webhooks tourne.
Tu avais trouvé ?