XIP Telecom v2

Équipe de 4 : j’ai développé la couche d’agents IA, l’intégration Odoo, les rapports PDF et l’API documentée.

  • Next.js
  • TypeScript
  • Python
  • PostgreSQL
  • Docker
  • Drizzle ORM
  • OpenAI
  • Anthropic
  • Zod
  • n8n
XIP Telecom v2

Besoin

Une plateforme B2B de courtage télécom qui qualifie les prospects, prépare les rendez-vous et produit des rapports d’audit, synchronisés avec le CRM de l’entreprise.

Mon rôle

En équipe de 4 : j’ai développé la couche d’agents IA, l’intégration Odoo, les rapports PDF et l’API documentée.

Résultat

Un parcours complet, du lead entrant au rapport d’audit attaché automatiquement à l’opportunité Odoo, couvert par 104 tests unitaires.

Difficulté résolue

Faire travailler ensemble plusieurs agents IA et garder les données cohérentes entre plusieurs plateformes (application, Odoo, Nextcloud, n8n). Avec n8n, apprendre à agencer des briques plutôt qu’à coder.

Détails techniques

Projet réalisé en équipe de 4 (Jira/Confluence, GitLab) sur une plateforme B2B de courtage télécom (monorepo pnpm). Mes contributions :

  • Couche d'agents IA orchestrés : Superviseur/Routeur (identification via LLM, extraction du payload, routage), SDR (scoring auto des prospects 1–5, accusé de réception), Business Developer (fiches de préparation avant RDV).
  • LLMProvider abstrait (OpenAI, Anthropic, mock), table agent_runs pour la journalisation, convention transversale prompts/routes/schemas pour les 6 agents de l'équipe.
  • Intégration Odoo CRM via XML-RPC en fire-and-forget : prospects, contacts, opportunités et pièces jointes PDF.
  • Rapports d'audit télécom générés automatiquement (React PDF, stockage Nextcloud WebDAV).
  • API REST documentée (OpenAPI + Swagger UI), documentation technique complète et 104 tests unitaires (Vitest).

Aperçu du projet

Page d'accueil
Page d'accueilSite vitrine public de XIP Telecom, plateforme B2B de conseil et courtage télécom. Navigation vers les sections Solutions, Missions d'audit, Recrutement BDI et l'extranet via le bouton Login. Développé en Next.js avec design sobre et professionnel.
Extranet BDI : Création de prospect
Extranet BDI : Création de prospectInterface de l'extranet réservé aux Business Developers. Formulaire de qualification d'un nouveau prospect : société, contact principal, email, téléphone, code postal, besoin télécom libre et statut (Qualifié/Non qualifié). À la soumission, le prospect est créé en base via Drizzle ORM et synchronisé en fire-and-forget vers Odoo CRM via XML-RPC.
Questionnaire d'audit télécom
Questionnaire d'audit télécomInterface de saisie d'un audit structuré en 9 étapes : Identification, Origine et objectifs, Infrastructure télécom, Téléphonie fixe, Téléphonie mobile, Internet et réseaux, WiFi/VPN/Sécurité, Messagerie et IT, Synthèse et actions. Barre de progression en temps réel (ici 100% (17/42 questions renseignées). Validation de l'audit et génération du rapport PDF déclenchées depuis ce récapitulatif.
Rapport d'audit , Récapitulatif
Rapport d'audit , RécapitulatifPage de récapitulatif avant génération du PDF : informations client (société, contact, BDI affecté), statut de l'audit, date et sommaire des 9 étapes. Le bouton "Générer / Télécharger le PDF" déclenche le moteur React PDF côté serveur et stocke le fichier sur Nextcloud via WebDAV, puis l'attache automatiquement à l'opportunité Odoo.
Orchestration n8n : Lead entrant
Orchestration n8n : Lead entrantWorkflow n8n publié "XIP – lead entrant – Orchestration" déclenché par webhook POST à chaque nouveau lead entrant. Pipeline en 4 nœuds : réception webhook → email interne de notification → email d'accusé de réception au prospect → réponse webhook. Exécuté en 143ms en production, avec historique des exécutions (succès/erreurs) visible en temps réel.
Synchronisation Odoo CRM
Synchronisation Odoo CRMOpportunité synchronisée dans le pipeline Odoo CRM via XML-RPC en fire-and-forget. Champs personnalisés XIP injectés : Xip App Lead (UUID), Xip App Audit et Xip Audit Status ("Audit complete"). Deux rapports PDF d'audit attachés automatiquement à l'opportunité lors de la synchronisation, visibles dans la section Files.
Me contacter