# Un LLM pour classer les demandes entrantes d’un formulaire de contact WordPress

> Recette pour trier automatiquement les messages reçus (support, vente, spam) avant qu'un humain ne les traite, réduisant nettement le temps de tri manuel quotidien.

- Auteur : Clément Hadrot
- Publié le : 2024-08-25
- Mis à jour le : 2024-08-25
- Catégorie : IA &amp; MCP
- URL : https://wpmoderne.dev.wordpress-developpement.fr/ia-mcp/llm-classer-demandes-formulaire-contact-wordpress/

## L’essentiel

- Une classification en trois catégories suffit pour la plupart des cas
- Le tri s'exécute au moment de la soumission, sans latence perceptible
- Le taux d'erreur de classification reste à surveiller sur la durée

Une PME de services informatiques recevait chaque jour entre 30 et 50 messages via son formulaire de contact WordPress, un mélange de demandes de support technique, de prospects commerciaux et d'un volume non négligeable de spam malgré la présence d'un champ anti-robot classique. La personne chargée de trier ces messages avant de les répartir vers les bonnes équipes y consacrait environ 40 minutes chaque matin.

## Le prompt de classification

À la soumission du formulaire, géré par une extension de formulaire courante intégrée au site, un hook personnalisé intercepte le contenu du message et l'envoie à l'API GPT-3.5 Turbo, choisie pour sa rapidité et son coût réduit, largement suffisants pour une tâche de classification simple à trois catégories.

```
$prompt = "Classe ce message reçu via un formulaire de contact dans "
        . "une seule des catégories suivantes : support, vente, spam. "
        . "Réponds uniquement par le mot de la catégorie, sans explication.\n\n"
        . "Message : " . $contenu_message;

$categorie = trim( appeler_api_classification( $prompt ) );
```

## Le routage automatique selon la catégorie

Selon la catégorie renvoyée par l'API, le message est étiqueté et redirigé différemment : les messages classés « support » sont envoyés à la boîte de l'équipe technique, ceux classés « vente » à l'équipe commerciale, et ceux classés « spam » sont placés dans une file d'attente séparée, jamais supprimés directement, pour permettre une vérification humaine ponctuelle et éviter la perte d'un message mal classé.

```
switch ( $categorie ) {
    case 'support':
        wp_mail( 'support@exemple.fr', '[Support] ' . $sujet, $contenu_message );
        break;
    case 'vente':
        wp_mail( 'commercial@exemple.fr', '[Prospect] ' . $sujet, $contenu_message );
        break;
    default:
        update_option( 'file_attente_spam', array_merge(
            get_option( 'file_attente_spam', array() ),
            array( $contenu_message )
        ) );
}
```

> L'essentiel à retenir : Une classification en trois catégories suffit pour la plupart des cas ; Le tri s'exécute au moment de la soumission, sans latence perceptible ; Le taux d'erreur de classification reste à surveiller sur la durée

## Ce que le tri automatique a changé au quotidien

Après trois semaines d'usage, le temps de tri manuel quotidien est tombé à environ dix minutes, principalement consacrées à la vérification ponctuelle de la file de spam, plutôt qu'à la lecture complète de chaque message reçu dans la journée. Le gain, de l'ordre de 30 minutes par jour, représente sur un mois un temps non négligeable rendu à une petite équipe.

- Messages correctement classés sur un échantillon de contrôle de 200 messages : 184
- Messages support classés à tort en vente ou inversement : 9 sur 200
- Messages légitimes classés à tort en spam : 4 sur 200, un taux jugé acceptable mais surveillé

## Le point de vigilance : les faux positifs de spam

Le cas le plus sensible reste le message légitime classé à tort comme spam, car il risque de ne jamais être traité si personne ne vérifie la file d'attente régulièrement. C'est précisément pour cette raison que le message n'est jamais supprimé automatiquement : il reste consultable, avec une alerte hebdomadaire récapitulative envoyée à l'équipe pour rappeler de vérifier cette file avant qu'elle ne s'accumule sans contrôle.

> Un tri automatique par IA ne doit jamais aboutir à la suppression silencieuse d'un message, seulement à son déplacement vers une file surveillée.

## Ce qu'il reste à surveiller sur la durée

Un mois après la mise en place, l'équipe a remarqué une nouvelle catégorie de message qu'elle n'avait pas anticipée au départ, des candidatures spontanées adressées via le même formulaire, systématiquement mal classées entre support et vente selon leur formulation. Nous avons ajouté une quatrième catégorie « recrutement » au prompt de classification, avec son propre routage vers l'adresse des ressources humaines, un ajustement qui a réglé le problème en quelques minutes une fois identifié.

Ce genre d'ajustement rappelle qu'une classification fermée à quelques catégories doit rester révisable : les cas réels rencontrés par un formulaire ouvert au public dépassent presque toujours, tôt ou tard, la liste initialement imaginée sur le papier.

## En résumé

Classer automatiquement les messages entrants d'un formulaire de contact par catégorie réduit sensiblement le temps de tri manuel quotidien d'une petite équipe, à condition de traiter la catégorie « spam » comme une file de vérification plutôt qu'une corbeille silencieuse. Un modèle de classification léger et rapide suffit largement à cette tâche, sans besoin de recourir à un modèle plus coûteux, à condition de revoir périodiquement la liste des catégories au contact des cas réels.
