Passer au contenu principal
Retour au Blog

Product Engineering

Automatiser un processus métier pour fiabiliser l'intégration de données dans Drupal : retour d'expérience UNIM Membres

24 juin 202613 min de lecture

UNIM Membres ne consistait pas seulement à importer des données dans Drupal. Le vrai sujet était de transformer un processus fragile, manuel et dispersé en système numérique fiable, traçable et capable d'évoluer.

Product EngineeringDrupalPythonData PipelineData QualityAutomationETLInformation Systems

Le projet UNIM Membres partait d'un problème fréquent dans les organisations : beaucoup de données existent déjà, mais elles ne sont pas encore organisées dans un référentiel fiable.

Les informations membres arrivaient sous différentes formes, avec des formats variables, des champs incomplets, des doublons possibles et une part importante de traitement manuel.

Le sujet visible pouvait sembler simple : intégrer des données dans Drupal.

Le vrai sujet était plus large : transformer un processus administratif fragile en workflow numérique automatisé, contrôlé et durable.

Automatiser ne consiste pas à accélérer un processus manuel tel quel. Il faut d'abord comprendre où se trouvent les règles métier, les exceptions, les risques et les décisions humaines.

Contexte

L'Union Nationale des Ingénieurs Marocains avait besoin de structurer progressivement un référentiel membres fiable.

Ce référentiel devait permettre de mieux gérer les adhérents, les informations associées, les statuts, les données de contact et les futurs besoins administratifs.

Le processus existant reposait sur plusieurs manipulations :

  • lecture d'emails ;
  • récupération de fichiers ;
  • nettoyage de colonnes ;
  • correction de champs ;
  • préparation à l'import ;
  • vérification manuelle ;
  • intégration dans Drupal.

Chaque étape ajoutait un risque.

Une erreur de saisie, un doublon, un email mal formaté ou une mauvaise correspondance de secteur pouvait affaiblir tout le référentiel.

Dans un système de membres, la donnée n'est pas un détail technique. Elle conditionne la recherche, les filtres, les statistiques, les communications, le suivi administratif et les évolutions futures.

Les limites du processus initial

Le processus manuel pouvait fonctionner ponctuellement.

Mais il ne passait pas à l'échelle.

Plus le volume augmentait, plus la charge humaine augmentait. Plus les sources se multipliaient, plus le risque d'incohérence devenait important.

Les sources pouvaient inclure :

  • fichiers tabulaires ;
  • exports partiels ;
  • listes transmises manuellement ;
  • contenus d'emails ;
  • pièces jointes ;
  • informations textuelles non normalisées ;
  • données nécessitant une interprétation avant import.

Les erreurs rencontrées étaient classiques dans les reprises de données :

  • doublons ;
  • noms saisis différemment ;
  • emails absents ou mal formatés ;
  • champs obligatoires incomplets ;
  • secteurs non normalisés ;
  • valeurs proches mais non identiques ;
  • données placées dans le mauvais champ ;
  • informations exploitables mais enfouies dans du texte libre.

Le problème n'était donc pas seulement la lenteur.

Le problème était l'absence d'un processus fiable, répétable et traçable.

Comprendre le métier avant d'automatiser

Un membre n'est pas une ligne dans un fichier.

Il peut être associé à une identité, un statut, un secteur, une région, une demande, un historique ou des informations administratives.

Avant de penser import, il fallait donc comprendre ce que représentait réellement la donnée.

Plusieurs questions étaient structurantes :

  • quelles informations sont obligatoires ?
  • quelles informations peuvent être corrigées automatiquement ?
  • quelles valeurs doivent être normalisées ?
  • quelles données nécessitent une revue humaine ?
  • comment détecter les doublons probables ?
  • quelles règles doivent appartenir au pipeline ?
  • quelles règles doivent rester dans Drupal comme système métier ?

Cette étape est essentielle.

Automatiser un processus mal compris revient à rendre les erreurs plus rapides.

Les décisions de Product Engineering

Plusieurs décisions ont guidé le projet.

Séparer préparation et intégration

Les données devaient être extraites, nettoyées, normalisées et contrôlées avant d'arriver dans Drupal.

Drupal devait rester le système métier cible, pas devenir l'outil principal de nettoyage amont.

Cette séparation permettait de garder une frontière claire :

  • Python prépare et normalise les données ;
  • Drupal structure, stocke et applique le modèle métier.

Automatiser les tâches déterministes

Certaines opérations pouvaient être automatisées avec un bon niveau de confiance :

  • nettoyage d'espaces ;
  • harmonisation de formats ;
  • normalisation de valeurs connues ;
  • préparation des emails ;
  • mapping de certains champs ;
  • détection de lignes incomplètes.

Ces tâches répétitives n'apportaient pas de valeur lorsqu'elles restaient manuelles.

Conserver une revue humaine pour les cas ambigus

Toutes les anomalies ne doivent pas être résolues automatiquement.

Un doublon probable n'est pas toujours un doublon certain. Un secteur absent peut nécessiter une vérification. Une information contradictoire peut demander une décision métier.

L'automatisation devait donc isoler ces cas au lieu de les masquer.

Contrôler avant d'importer

Un import ne doit pas seulement "passer techniquement".

Il doit produire un résultat métier fiable.

La validation devait donc intervenir avant l'intégration : présence des champs nécessaires, format des emails, cohérence des valeurs, correspondance avec les vocabulaires, détection des doublons et identification des lignes à revoir.

Concevoir un workflow fiable

Le workflow a été pensé comme une chaîne de traitement lisible.

Il ne s'agissait pas seulement d'écrire un script d'import.

Il fallait construire un processus :

  • collecter les sources ;
  • extraire les données utiles ;
  • transformer les formats ;
  • nettoyer les valeurs ;
  • valider les données ;
  • préparer l'intégration ;
  • importer dans Drupal ;
  • contrôler le résultat.

Chaque étape a un rôle.

La collecte identifie ce qui est exploitable. L'extraction récupère les informations utiles. La transformation rapproche les données du modèle cible. La validation distingue ce qui peut être intégré de ce qui doit être revu.

Cette décomposition rend le système plus compréhensible et plus maintenable.

Quand une erreur apparaît, il devient possible de savoir si elle vient de la source, du mapping, d'une règle de transformation ou de l'intégration.

Garantir la qualité des données

La qualité des données était le cœur du sujet.

Dans un référentiel membres, une donnée incorrecte peut avoir un effet domino :

  • un membre peut être mal classé ;
  • un email peut ne pas être envoyé ;
  • une statistique peut être faussée ;
  • une demande peut être mal suivie ;
  • un doublon peut perturber les traitements futurs.

La validation devait donc combiner règles techniques et règles métier.

Un email peut être syntaxiquement valide, mais appartenir à la mauvaise personne. Un secteur peut être renseigné, mais ne pas correspondre à la nomenclature attendue. Un nom peut être présent, mais écrit de plusieurs façons.

La qualité ne se corrige pas uniquement dans le code.

Elle se travaille à plusieurs niveaux :

  • qualité des sources ;
  • formats d'entrée ;
  • mapping ;
  • normalisation ;
  • validations ;
  • rapports d'erreurs ;
  • revue humaine ;
  • documentation.

Automatiser sans perdre le contrôle

Une automatisation utile ne cherche pas à tout décider.

Elle réduit les manipulations répétitives et rend les anomalies plus visibles.

Dans UNIM Membres, l'objectif n'était pas de produire une boîte noire qui importe tout automatiquement.

L'objectif était de déplacer le temps humain vers les décisions qui ont vraiment besoin d'un regard métier.

Le système devait donc distinguer :

  • données prêtes à intégrer ;
  • données corrigibles automatiquement ;
  • données incomplètes ;
  • doublons probables ;
  • valeurs sans correspondance ;
  • cas nécessitant une revue.

Ce point est essentiel : une automatisation fiable ne supprime pas les problèmes. Elle les classe pour qu'ils soient traités plus efficacement.

Pourquoi une approche hybride

Plusieurs options étaient possibles.

Continuer manuellement aurait maintenu les erreurs, la charge répétitive et la dépendance à un savoir implicite.

Un import CSV classique aurait supposé que les données soient déjà propres, alors que le vrai problème se situait avant l'import.

Tout faire dans Drupal aurait mélangé traitement de données amont et gestion métier.

Tout faire en Python aurait risqué de contourner le modèle applicatif cible.

L'approche hybride était donc la plus pragmatique.

Python était adapté à l'extraction, au nettoyage et à la transformation de données hétérogènes.

Drupal était adapté au référentiel métier, aux entités, aux champs, aux statuts, aux taxonomies et au back-office.

Cette séparation n'ajoute pas de complexité gratuite. Elle reflète la réalité du problème.

Les difficultés rencontrées

La première difficulté venait de l'hétérogénéité des sources.

Les données ne suivaient pas toujours le même format. Certaines étaient structurées, d'autres semi-structurées, d'autres enfouies dans des emails.

La deuxième difficulté concernait les emails.

Un email est conçu pour une communication humaine, pas pour une intégration applicative. Sa structure peut varier, les informations peuvent être dans le corps du message ou dans une pièce jointe, et certaines formulations restent ambiguës.

La troisième difficulté concernait les doublons.

Une ressemblance ne suffit pas toujours à décider automatiquement. Certains cas devaient être signalés pour revue plutôt que fusionnés.

La quatrième difficulté concernait la frontière entre Python et Drupal.

Si trop de logique métier part dans les scripts, Drupal devient une simple cible d'import. Si tout reste dans Drupal, la préparation des données devient lourde. La frontière devait donc rester claire et documentable.

Les résultats observables

Les bénéfices se situent surtout dans la fiabilisation du processus.

Les tâches répétitives de nettoyage, préparation et transformation peuvent être automatisées ou semi-automatisées.

Les données passent par des contrôles avant intégration, ce qui limite les erreurs injectées dans le référentiel.

Le temps humain est mieux utilisé : moins de copier-coller et de reformattage, plus de revue ciblée sur les cas ambigus.

Le processus devient plus lisible :

  • collecter ;
  • extraire ;
  • transformer ;
  • valider ;
  • intégrer ;
  • contrôler.

Même si l'architecture technique est plus avancée qu'un import manuel, le processus métier devient plus clair.

Ce que je ferais différemment aujourd'hui

L'approche hybride Python + Drupal reste pertinente.

La décision de ne pas tout automatiser aveuglément reste également juste.

Avec le recul, je renforcerais certains points plus tôt :

  • ajouter une phase formelle de data profiling ;
  • documenter chaque format source ;
  • versionner les règles de transformation ;
  • produire des rapports d'import plus détaillés ;
  • historiser les imports ;
  • prévoir des tests sur jeux de données représentatifs ;
  • créer une interface de revue des anomalies ;
  • suivre des indicateurs de qualité des données.

Une amélioration importante consisterait aussi à réduire progressivement les sources non structurées.

Le meilleur pipeline reste celui qui reçoit de meilleures données en entrée.

Les enseignements Product Engineering

Le premier enseignement est qu'un processus métier manuel ne doit pas être automatisé tel quel.

Il faut d'abord comprendre ce qu'il fait réellement, où sont les décisions humaines, où sont les règles implicites et où apparaissent les erreurs.

Le deuxième enseignement est qu'un pipeline de données doit être conçu comme un produit interne.

Il a des utilisateurs, des contraintes, des anomalies, des retours et un cycle de vie.

Le troisième enseignement est que la qualité des données est une responsabilité partagée entre source, traitement, validation, modèle cible et revue humaine.

Enfin, une bonne automatisation ne cherche pas à cacher les anomalies.

Elle les rend visibles, traçables et actionnables.

Ce que je retiens aujourd'hui

Dans UNIM Membres, le sujet technique apparent était l'import de données dans Drupal.

Le vrai sujet Product Engineering était plus large : concevoir un système capable de transformer un flux de données désordonné en référentiel métier fiable.

La valeur ne venait pas seulement du développement de scripts ou de modules.

Elle venait de la transformation d'un processus fragile en workflow contrôlé, répétable, traçable et maintenable.

À retenir

  • Automatiser un processus manuel nécessite d'abord de comprendre les règles métier implicites.

  • La qualité des données doit être contrôlée avant l'import, pas découverte après intégration.

  • Une automatisation fiable ne supprime pas les anomalies : elle les rend visibles, classables et traitables.

  • La maintenabilité dépend de la séparation claire entre préparation des données et système métier cible.

Projet associé

UNIM

Voir le projet associé

Démarrer une conversation

Ces problématiques résonnent avec votre contexte ?

Architecture web, SEO technique, workflows ou maintenabilité : chaque mission commence par une compréhension claire du contexte et des contraintes réelles.