Stage au sein de l'entreprise OPS IMPERIUM
Le projet LinkStream a été réalisé dans le cadre de mon stage de première année de
BTS SIO (option SLAM) au sein de l'entreprise OPS Imperium, spécialisée dans
automatisation et intelligence artificielle.
L'objectif était de concevoir une solution permettant d'automatiser la récupération
et la consultation des conversations LinkedIn, afin de faciliter le suivi des échanges professionnels.
Ce projet s'inscrit dans une démarche d'optimisation des processus métiers, en centralisant des données issues de LinkedIn dans une base unique et en les rendant accessibles via une interface web claire et intuitive. Il a été conduit en autonomie complète, avec un accompagnement technique du tuteur, dans un environnement agile et orienté expérimentation.
Le besoin principal identifié par l'entreprise était de remédier à l'absence d'interface utilisateur dans l'outil d'automatisation n8n, utilisé pour collecter des données LinkedIn via l'API Unipile.
- ◈ Centraliser les messages et contacts LinkedIn dans une base relationnelle cohérente,
- ◈ Offrir une interface de consultation intuitive pour visualiser les conversations et profils associés,
- ◈ Permettre le déclenchement manuel de workflows n8n via webhooks ou API,
- ◈ Garantir la cohérence et l'actualisation automatique des données grâce à un système d'automatisation fiable.
Ce besoin répondait à l'objectif d'OPS Imperium de centraliser et de simplifier la gestion de ses échanges sur LinkedIn, tout en posant les bases d'un futur système d'automatisation globale.
Le développement s'est appuyé sur un environnement moderne, orienté automatisation et interconnexion d'API :
- ◈ n8n - création et orchestration de workflows automatisés,
- ◈ Unipile API - récupération des conversations, messages et profils LinkedIn,
- ◈ Supabase (PostgreSQL) - stockage structuré et exposition d'une API REST,
- ◈ Streamlit (Python) - développement du frontend interactif,
- ◈ VS Code et GitHub - environnement de développement et gestion de version,
- ◈ Python (requests, pandas) - traitement des données et communication entre services,
- ◈ Assistance IA - aide à la rédaction de documentation et à l'optimisation du code.
Cet environnement a permis de concevoir une architecture modulaire, fiable et facilement réutilisable, conforme aux standards actuels du développement cloud.
Le projet a été mené selon une démarche itérative, alternant phases de conception, développement et validation.
Les principales étapes réalisées sont :
- ◈ Mise en place des workflows n8n : récupération automatique des messages, profils et conversations via l'API Unipile et insertion dans Supabase.
- ◈ Modélisation des données : création des tables linkedin_people, linkedin_chats, linkedin_messages et d'une fonction SQL get_messages() pour simplifier les requêtes.
- ◈ Développement de l'application Streamlit : authentification via Unipile, affichage des conversations sous forme de bulles, envoi de messages LinkedIn et rafraîchissement dynamique.
- ◈ Tests d'intégration complets : vérification de la communication entre Unipile ↔ n8n ↔ Supabase ↔ Streamlit et validation fonctionnelle du prototype.
- ◈ Documentation technique et visuelle : schémas d'architecture, MCD, workflows annotés et commentaires intégrés au code.
Le résultat est un prototype fonctionnel démontrant la faisabilité d'une automatisation complète entre plusieurs services cloud, avec une interface utilisateur simple et opérationnelle.
Le projet LinkStream a permis de concevoir une solution complète d'automatisation et de valorisation des
conversations LinkedIn. Grâce à l'intégration de l'API Unipile, à la création de
workflows n8n et à l'utilisation de Supabase/PostgreSQL,
les données ont pu être collectées, enrichies et stockées de manière structurée.
L'interface développée avec Streamlit offre une visualisation intuitive des
échanges et des profils, facilitant l'exploitation des données sans compétences techniques.
Ce projet m'a permis de mobiliser des compétences transversales en automatisation, en modélisation de base de données et en développement backend et frontend. Malgré des contraintes techniques (échec d'import JSON, transtypage, gestion des doublons), j'ai su adapter les workflows et structurer les traitements pour garantir la fiabilité du système.
Dans le cadre de ce projet, plusieurs livrables techniques ont été produits pour documenter et présenter le travail réalisé :
- ◈ Workflows n8n assurant la récupération, le traitement et l'insertion automatique des données LinkedIn.
- ◈ Base de données Supabase/PostgreSQL structurée avec les tables linkedin_people, linkedin_chats, linkedin_messages et la fonction SQL get_messages().
- ◈ Application Streamlit de consultation et de visualisation des conversations LinkedIn.
- ◈ Schéma d'architecture technique illustrant les interactions entre les services (Unipile, n8n, Supabase, Streamlit).
- ◈ MCD de la base de données et commentaires intégrés dans le code.
- ◈ Documentation technique du projet (README.md) présentant le contexte, l'architecture, les technologies utilisées et le fonctionnement général de l'application, disponible sur GitHub.
- ◈ Le code source de l'application disponible sur GitHub en cliquant sur ce lien.
Plusieurs pistes d'amélioration ont été identifiées pour la suite du projet :
- ◈ Ajout de fonctionnalités de filtrage et de recherche avancée dans l'interface pour faciliter la navigation entre les messages et les contacts.
- ◈ Extension du système d'automatisation afin de permettre la réponse automatique à certains messages ou le suivi des interactions (relances, nouveaux contacts).
- ◈ Extension multi-plateformes avec l'intégration d'autres réseaux sociaux (WhatsApp, Gmail, etc.) via Unipile.
- ◈ Implémentation d'un système d'authentification utilisateur complet au sein de l'application Streamlit, permettant à plusieurs comptes LinkedIn de se connecter indépendamment.
- ◈ Déploiement complet du service sur un serveur cloud comme via Docker Compose, pour en faire une solution accessible en ligne.
1. Gérer le patrimoine informatique
- 1.1. Recenser et identifier les ressources numériques J'ai recensé les différentes ressources à mettre en place, comme API Unipile, base Supabase, workflows n8n, aplication Streamlit, ainsi que les tables.
2. Répondre aux incidents et aux demandes d'assistance et d'évolution
- 2.1. Collecter, suivre et orienter des demandes J'ai analysé les besoins exprimés par l'entreprise et formalisé les fonctionnalités à développer pour répondre aux objectifs du projet. (n8n pour l'automatisation, Supabase pour la base de données, Streamlit pour l'interface utilisateur).
- 2.3. Traiter des demandes concernant les applications J'ai développé une application Streamlit qui permet de consulter et exploiter les données en intégrant les workflows automatisés et les requêtes SQL pour répondre aux besoins d'utilisation et de visualisation des conversations.
4. Travailler en mode projet
- 4.1. Analyser les objectifs et les modalités d'organisation d'un projet J'ai identifié les objectifs du projet (automatiser la récupération des conversations LinkedIn, stocker les données dans Supabase, afficher les informations avec Streamlit).
- 4.2. Planifier les activités J'ai planifié les activités en définissant des tâches spécifiques pour chaque journée de développement (recensement des données, mise en place des workflows n8n, implémentation de l'authentification ...).
- 4.3. Évaluer les indicateurs de suivi d'un projet et analyser les écarts J'ai suivi et évalué l'avancement du projet en m'appuyant sur le diagramme de Gantt et sur le suivi des versions via GitHub, en comparant les tâches prévues aux réalisations effectives. Cette analyse m'a permis d'identifier les écarts liés aux contraintes techniques rencontrées et d'adapter le planning ainsi que la priorisation des fonctionnalités.
J'ai défini les modalités d'organisation en choisissant les technologies appropriées (n8n pour l'automatisation, Supabase pour la base de données, Streamlit pour l'interface utilisateur).
5. Mettre à disposition des utilisateurs un service informatique
- 5.1. Réaliser les tests d'intégration et d'acceptation d'un service Des tests d'intégration et d'acceptation ont été réalisés afin de valider le bon fonctionnement du service, incluant la récupération des données via l'API Unipile, leur insertion dans Supabase, le déclenchement des workflows n8n ainsi que l'affichage des données dans l'application Streamlit.
6. Organiser son développement professionnel
- 6.1. Mettre en place son environnement d'apprentissage personnel J'ai configuré un environnement de développement adapté au projet (VS Code, n8n, Supabase, Streamlit) afin de pouvoir développer et tester l'application efficacement.
- 6.4. Développer son projet professionnel Ce stage m'a permis de confirmer mon intérêt pour l'automatisation et l'intégration d'API, ainsi que pour la gestion de bases de données dans un contexte applicatif.
Connexion directe à LinkedIn grâce à lAPI Unipile, pour une
authentification fluide et sécurisée des utilisateurs
Toutes les discussions LinkedIn (classique, Sales Navigator, Recruiter)
sont regroupées dans une seule interface intuitive.
Interface développée avec Streamlit permettant d'explorer les messages et profils en
temps réel depuis la base Supabase.
Workflow n8n automatisant la récupération et la mise à jour des conversations
LinkedIn dans Supabase, avec filtrage anti-doublons.
Récupération, vérification et insertion des nouveaux messages dans la base
de données via un traitement séquentiel automatisé.
Identification et ajout automatique des utilisateurs LinkedIn à la base Supabase,
avec contrôle d'unicité et cohérence des données.
Structure relationnelle optimisée (chats, messages, utilisateurs)
garantissant la cohérence et la traçabilité des données LinkedIn.