Comment éviter les tickets en double et analyser les e-mails dans GLPI

Les tickets en double dus au “Répondre à tous” disparaissent quand Mail Analyzer lit les en-têtes References et In-Reply-To de l'e-mail et décide, avant la création du ticket, si le message est un suivi ou un nouveau ticket.

Les tickets en double naissent d'un détail simple : quand quelqu'un clique sur "Répondre à tous" dans un fil de support, le collecteur de messagerie de GLPI ne reconnaît pas le message comme faisant partie de la conversation et ouvre un nouveau ticket. Le module Mail Analyzer intercepte ce message avant la création du ticket et décide, à partir des en-têtes de l'e-mail lui-même, s'il s'agit d'un nouveau ticket ou simplement d'un suivi de l'original.

Le problème : le collecteur natif perd le fil

Le collecteur de messagerie de GLPI rattache une réponse au ticket d'origine en lisant le marqueur qu'il insère lui-même dans l'objet des notifications, au format [GLPI #0000123]. Tant que ce marqueur survit dans la réponse, tout fonctionne : le message devient un suivi du bon ticket. Le problème apparaît quand le marqueur est perdu.

Le scénario classique est "Répondre à tous". Un client ouvre le ticket et met son responsable en copie. Le support répond, le responsable décide de commenter et clique sur "Répondre à tous". Son client de messagerie réécrit l'objet (RE:, TR:), coupe le marqueur ou démarre un nouveau message à partir de l'historique - et GLPI, ne trouvant pas le [GLPI #...], ouvre un deuxième ticket pour la même conversation.

Le résultat est connu de quiconque exploite un service desk : deux tickets ou plus pour le même sujet, un historique fragmenté, le risque que deux analystes travaillent en parallèle sans le savoir et un SLA faussé, car chaque doublon compte comme une nouvelle demande. Dans les environnements d'entreprise, où mettre les responsables en copie du fil est une habitude, cela devient des dizaines de doublons par semaine.

Comment fonctionne Mail Analyzer

Le module agit via des hooks dans le cycle de vie du ticket, en interceptant l'e-mail déjà collecté avant qu'il ne devienne un ticket. Au lieu de dépendre uniquement du marqueur de l'objet, il lit les en-têtes standard de messagerie (RFC 5322) et applique une décision hiérarchique en trois stratégies :

  • Analyse des References - vérifie si l'e-mail cite un Message-ID généré par GLPI lui-même (format GLPI_*). S'il le cite, c'est une réponse légitime au ticket et elle devient un suivi.
  • Analyse de In-Reply-To - si In-Reply-To pointe vers l'e-mail d'un tiers déjà enregistré par le module, et non vers un Message-ID de GLPI, le message est identifié comme une chaîne de copie et bloqué.
  • Vérification du premier e-mail - le repli : si le ticket n'a encore aucun e-mail enregistré, ce message est traité comme l'original et autorisé.

Sur cette base, trois réglages contrôlent le comportement dans les environnements réels :

  • Thread-Index - améliore la détection des chaînes dans les environnements Microsoft (Outlook/Exchange), qui utilisent cet en-tête propre en plus de In-Reply-To.
  • Block Chain Emails - un mode plus agressif qui bloque activement les réponses de tiers en copie. Recommandé pour les opérations à fort volume, avec parcimonie.
  • Modèle de notification - quand un e-mail est bloqué, l'expéditeur reçoit un avis configurable expliquant la raison, ce qui préserve la transparence.

Les en-têtes qui décident

En pratique, la différence entre un suivi et un doublon tient à deux lignes d'en-tête. L'exemple ci-dessous montre les deux cas côte à côte :

# Reponse legitime au ticket : l'en-tete References cite le Message-ID de GLPI (GLPI_*)
# --> Mail Analyzer la traite comme un SUIVI du ticket d'origine
Subject: [GLPI #0004521] Imprimante finance sans toner
Message-ID: <a1b2c3@mail.client.com>
In-Reply-To: <GLPI_7f3a9@support.entreprise.com>
References:  <GLPI_7f3a9@support.entreprise.com>

# Un tiers en copie a clique sur "Repondre a tous" :
# In-Reply-To pointe vers l'e-mail d'un AUTRE utilisateur, pas vers un Message-ID de GLPI
# --> Mail Analyzer BLOQUE la creation d'un ticket en double
Subject: RE: Imprimante finance sans toner
Message-ID: <d4e5f6@mail.responsable.com>
In-Reply-To: <a1b2c3@mail.client.com>
References:  <a1b2c3@mail.client.com>

Fonction du module face au comportement natif

SituationCollecteur natif de GLPIAvec Mail Analyzer
La réponse garde le marqueur [GLPI #id] dans l'objetDevient un suivi du ticketDevient un suivi du ticket
Un tiers en copie répond "à tous" et l'objet est réécritOuvre un nouveau ticket (doublon)Reconnaît la chaîne via References/In-Reply-To et ne duplique pas
Environnement Exchange regroupant par Thread-IndexDépend seulement de l'objet et de In-Reply-ToUtilise aussi le Thread-Index pour relier la conversation
E-mail bloqué car issu d'une chaîne de copieNon applicableL'expéditeur reçoit une notification configurable
Premier e-mail d'un nouveau sujetOuvre un ticketLe reconnaît comme l'original et autorise l'ouverture

Comment l'activer

  1. Installez le plugin NexTool dans GLPI et confirmez que la collecte de messagerie (récepteurs) fonctionne déjà.
  2. Allez dans Configuration > NexTool > Modules.
  3. Activez le module Mail Analyzer.
  4. Réglez Thread-Index et Block Chain Emails selon le profil de l'environnement.
  5. Définissez le modèle de notification pour les e-mails bloqués.

Ce que nous avons appris en maintenance

En maintenance des collecteurs de messagerie chez les clients, l'erreur qui génère le plus de doublons n'est pas une subtilité de GLPI, elle est comportementale : le responsable en copie répond depuis son téléphone, l'application réécrit l'objet et le marqueur disparaît. Avant Mail Analyzer, la "solution" consistait à demander aux gens de ne pas modifier l'objet, ce qui ne marche jamais. Nous avons déplacé la solution à la source, en lisant References et In-Reply-To, que le client de messagerie conserve même quand l'objet change. Le détail qu'on ne voit qu'en exploitation : dans les environnements Exchange, activer le Thread-Index fait une vraie différence, car Outlook regroupe la conversation par cet en-tête et ne garde pas toujours un In-Reply-To propre. Et une recommandation de terrain : activez Block Chain Emails progressivement et toujours avec le modèle de notification configuré, sinon un e-mail légitime d'un tiers est bloqué en silence et personne ne s'en aperçoit avant que le client ne réclame.

Pour qui (et quand ne pas l'utiliser)

Mail Analyzer s'adresse à tout service desk qui ouvre des tickets par collecte de messagerie et fonctionne dans un environnement d'entreprise, en particulier :

  • Les entreprises où les responsables et les parties prenantes sont systématiquement mis en copie des fils de support ;
  • Les opérations à fort turnover d'analystes, où les doublons passent inaperçus ;
  • Les MSP qui servent plusieurs clients et ont besoin d'un historique organisé par entreprise ;
  • Les équipes qui dépendent d'un historique consolidé pour l'audit et la conformité.

Il n'y a aucun intérêt à l'activer si vous n'utilisez pas la collecte de messagerie : si les tickets n'arrivent que par le catalogue de services ou un formulaire, il n'y a pas de message à intercepter. Et prudence avec Block Chain Emails dans les petites opérations, où le doublon est rare, car le mode agressif peut bloquer un e-mail de tiers qui devrait bel et bien devenir un nouveau ticket.

Compatibilité

  • GLPI : 10.x et 11.x
  • Plan : FREE
  • Plugin : NexTool 3.x ou supérieur
  • PHP : 8.0+

Mail Analyzer fait partie de NexTool, un plugin modulaire pour GLPI. Pour voir le module dans votre scénario de collecte de messagerie, parlez à l'équipe.


Ce contenu a été produit avec l'aide de l'intelligence artificielle et revu par l'équipe Nextool Solutions.

Questions fréquentes

Le collecteur natif de GLPI rattache les réponses au ticket par le marqueur [GLPI #id] dans l'objet ; quand ce marqueur est perdu, il crée un doublon. Le module Mail Analyzer intercepte l'e-mail avant la création et utilise les en-têtes References et In-Reply-To pour reconnaître la conversation et tout rattacher au ticket d'origine.

Parce que le client de messagerie du responsable réécrit souvent l'objet ou démarre un nouveau message, supprimant le marqueur [GLPI #id] que GLPI utilise pour relier la réponse. Sans le marqueur, le collecteur ignore que c'est le même fil et ouvre un nouveau ticket. Mail Analyzer résout cela en lisant les en-têtes standard, qui survivent aux modifications de l'objet.

Oui. Le module agit sur les e-mails déjà collectés par GLPI, quel que soit le serveur (Exchange, Gmail, Zimbra, etc.). Dans les environnements Microsoft, activer l'option Thread-Index améliore la détection, car Outlook regroupe la conversation par cet en-tête propre.

C'est un mode plus agressif qui bloque activement les réponses de tiers en copie, destiné aux opérations à fort volume. Nous recommandons de l'activer progressivement et toujours avec le modèle de notification configuré, pour que l'expéditeur sache pourquoi le message n'est pas devenu un ticket.

Non. Mail Analyzer détecte les chaînes de copie automatiquement à partir des en-têtes de l'e-mail. Vous activez simplement le module, réglez Thread-Index et Block Chain Emails selon l'environnement et définissez le modèle de notification.

Besoin d'aide ?