Le projet en quelques mots
Une entreprise utilisait HubSpot pour ses activités commerciales et marketing, tandis qu’Odoo regroupait plusieurs fonctions internes liées à la gestion, aux ressources humaines, à la comptabilité et aux applications métier.
Ces deux environnements contenaient des informations complémentaires, mais ne communiquaient pas directement. Certaines données devaient donc être ressaisies, comparées ou transférées manuellement entre les outils.
J’ai participé à la conception d’un ETL bidirectionnel permettant d’organiser les échanges entre HubSpot et Odoo, depuis l’analyse des besoins jusqu’à la réalisation de prototypes, l’orchestration avec Airflow et la transmission de la solution aux équipes du client.
Pour des raisons de confidentialité, l’identité de l’entreprise et certaines informations relatives à son architecture ne sont pas communiquées.
Contexte et objectifs
HubSpot et Odoo répondaient à des usages différents au sein de l’organisation.
HubSpot était principalement utilisé pour la gestion commerciale et marketing, tandis qu’Odoo constituait le système de référence pour plusieurs activités internes.
L’objectif n’était pas de remplacer l’un des deux outils, mais de permettre leur complémentarité en automatisant certains échanges de données.
Le projet devait notamment permettre de :
- identifier les données utiles dans chaque application ;
- déterminer leur système de référence ;
- définir les règles de synchronisation ;
- éviter les doublons et les écrasements involontaires ;
- automatiser les échanges dans les deux directions ;
- rendre les traitements compréhensibles et maintenables par le client.
Analyse des besoins et mapping des données
La première étape a consisté à étudier les usages des deux applications et les informations devant circuler entre elles.
Ce travail a permis de préciser :
- les objets concernés dans HubSpot et Odoo ;
- les champs équivalents entre les deux systèmes ;
- les différences de formats et de nomenclatures ;
- les données obligatoires ;
- les règles de création ou de mise à jour ;
- la fréquence attendue des échanges ;
- le comportement à adopter en cas de données absentes ou incohérentes.
Un mapping a ensuite été réalisé afin de formaliser les correspondances entre les données sources et les données cibles.
Cette étape était essentielle : un flux techniquement fonctionnel peut produire des données incorrectes si les règles métier et les responsabilités de chaque application ne sont pas clairement définies.
Conception du flux bidirectionnel
La solution devait gérer deux sens de circulation :
- HubSpot vers Odoo, pour transmettre les informations utiles issues des activités commerciales ou marketing ;
- Odoo vers HubSpot, pour mettre à disposition certaines données internes nécessaires au suivi de la relation commerciale.
Des prototypes ont été développés dans les deux directions afin de valider :
- l’accès aux données ;
- les appels aux services concernés ;
- la transformation des formats ;
- les règles de correspondance ;
- la création et la mise à jour des enregistrements ;
- la gestion des erreurs et des cas particuliers.
La logique a été pensée sous forme de traitements distincts afin de faciliter les tests, la maintenance et l’évolution future des flux.
Orchestration avec Airflow
Apache Airflow a été utilisé pour organiser et planifier l’exécution des traitements ETL.
Les différentes étapes ont été structurées sous forme de workflows permettant de suivre :
- l’extraction des données ;
- leur transformation ;
- leur contrôle ;
- leur chargement dans l’application cible ;
- les erreurs éventuelles ;
- l’état des différentes exécutions.
Cette orchestration apporte une meilleure visibilité que l’exécution de scripts isolés. Elle permet de planifier les traitements, de consulter leur historique et d’identifier plus facilement l’étape responsable d’un incident.
L’environnement Airflow a été préparé sur une infrastructure OVHcloud destinée à être reprise et administrée par le client.
Transmission technique au client
Le projet comprenait également un important travail de documentation et de transfert de connaissances.
Les éléments transmis portaient notamment sur :
- l’architecture générale de la solution ;
- le mapping des données ;
- le fonctionnement des scripts ;
- l’organisation des workflows Airflow ;
- les fréquences d’exécution ;
- l’analyse des journaux techniques ;
- les points de configuration ;
- les procédures de maintenance et d’évolution.
Cette transmission devait permettre aux équipes techniques du client de comprendre la solution, de l’héberger dans leur propre environnement et de poursuivre son adaptation.
Résultats et valeur apportée
Le projet a permis de construire les fondations d’un échange automatisé entre HubSpot et Odoo.
La solution apporte notamment :
- une définition claire des données à synchroniser ;
- une formalisation des règles de gestion ;
- des prototypes validant les échanges dans les deux directions ;
- une architecture organisée autour de traitements identifiables ;
- une orchestration et une supervision avec Airflow ;
- une diminution des futures ressaisies manuelles ;
- une meilleure traçabilité des traitements ;
- une base documentée et transmissible aux équipes du client.
Cette réalisation montre que l’intégration de deux applications ne repose pas uniquement sur la connexion de leurs API. Elle nécessite également une compréhension précise des données, des processus et du rôle de chaque outil dans l’organisation.
Abstraction d'un ETL
Résultats et valeur apportée
Le projet a permis de construire les fondations d’un échange automatisé entre HubSpot et Odoo.
La solution apporte notamment :
- une définition claire des données à synchroniser ;
- une formalisation des règles de gestion ;
- des prototypes validant les échanges dans les deux directions ;
- une architecture organisée autour de traitements identifiables ;
- une orchestration et une supervision avec Airflow ;
- une diminution des futures ressaisies manuelles ;
- une meilleure traçabilité des traitements ;
- une base documentée et transmissible aux équipes du client.
Cette réalisation montre que l’intégration de deux applications ne repose pas uniquement sur la connexion de leurs API. Elle nécessite également une compréhension précise des données, des processus et du rôle de chaque outil dans l’organisation.
Compétences et postes associés
Cette réalisation mobilise notamment des compétences en :
- Analyse des flux applicatifs et intégration de système,
- Conception de flux ETL,
- Exploitation d’API,
- Transformation de données avec Python,
- Orchestration & déploiement,
- Documentation technique.
Les articles de compétences associés permettent d’approfondir les méthodes et outils mobilisés dans ces différents domaines.
Cette réalisation illustre plus particulièrement les fonctions suivantes :
- Développeur Python / Data / ETL ;
- Développeur / Intégrateur Odoo ;
- Analyste Fonctionnel ERP ;
- Responsable Applications Métier / ERP.
Elle montre ma capacité à faire le lien entre les besoins métier, les données et l’architecture technique afin de construire une intégration structurée, maintenable et transmissible.
