Ilyas Salas — Spécialiste Automatisation & IA · Rabat, GMT+1

Projets

Quatre projets, expliqués en détail.

Pour chacun : le problème, la solution et la façon dont il est construit. Conçus et construits par moi.

  1. 01Agent de support client IA
  2. 02Agent IA pour auto-écoles
  3. 03Validation de leads en temps réel
  4. 04Qualification de leads par IA
Agent IA · e-commerceProjet 01

Agent de support client IA

Un agent qui répond aux clients à partir des vraies données de l'entreprise — et qui sait quand ne pas répondre.

  • n8n (auto-hébergé)
  • OpenAI
  • AI Agent · tool-calling
  • RAG agentique
  • embeddings + vector store
  • Google Sheets

01Le problème

En support client, la majorité des contacts portent sur les mêmes questions : où est ma commande, comment retourner un produit, puis-je annuler. Je les ai traitées pendant plus de deux ans chez Amazon, sur le marché français.

Un chatbot classique y répond mal. Soit il est trop rigide et renvoie vers une FAQ, soit — avec un modèle de langage mal cadré — il invente une réponse plausible : un faux numéro de suivi, une politique de retour qui n'existe pas. En support, une réponse inventée coûte plus cher que pas de réponse.

02La solution

Un agent conversationnel qui répond uniquement à partir des données de l'entreprise. Il consulte la commande en direct, cherche dans les politiques de la boutique (retours, annulation, livraison) et garde le contexte d'une question à l'autre.

Quand une demande ne doit pas être traitée par une IA seule — remboursement, annulation, réclamation — il ne promet rien : il journalise l'escalade pour l'équipe humaine et l'annonce clairement au client.

03Comment c'est construit

  • Chat Trigger n8n (auto-hébergé) : le point d'entrée de chaque conversation.
  • AI Agent en tool-calling (OpenAI) : c'est le modèle qui décide s'il faut appeler un outil, et lequel.
  • RAG agentique : la recherche dans les politiques est un outil que l'agent choisit d'utiliser, pas une étape forcée à chaque message. Un « bonjour » ou un numéro de commande ne déclenche pas de recherche documentaire inutile.
  • Même modèle d'embedding à l'ingestion et à la recherche : documents et questions sont vectorisés par le même modèle — sinon les vecteurs ne sont pas comparables et la recherche renvoie du bruit.
  • Outil de recherche de commande : lecture en direct dans Google Sheets à partir du numéro de commande.
  • Outil d'escalade : écrit la demande (type, commande, résumé) dans un journal dédié, traité par l'équipe humaine.
  • Mémoire par session : les questions de suivi (« et elle arrive quand ? ») gardent leur contexte.
  • Cadrage anti-invention : l'agent répond uniquement à partir des résultats de ses outils ; si l'information manque, il le dit.

04Le résultat — ce que ça prouve

Testé de bout en bout sur trois familles de scénarios — recherche de commande, question de politique et escalade :

ScénarioComportement attenduRésultat
Recherche de commandeDonne le statut réel de la commande à partir des données ; si la commande n'existe pas, le dit au lieu d'inventer.✓ Testé
Question de politique (RAG)Répond à partir des passages retrouvés dans les politiques de la boutique ; si la réponse n'y figure pas, le dit.✓ Testé
Remboursement, annulation, réclamationN'agit pas seul : escalade écrite dans le journal, puis annoncée au client.✓ Journal contrôlé

Tests effectués par moi sur une boutique de démonstration, avec des commandes fictives : ce n'est pas un audit externe.

Ce que ça prouve : un agent utile en support n'est pas celui qui répond à tout — c'est celui qui sait quand ne pas répondre, et qui laisse une trace quand il passe la main.

Agent IA · auto-écoles · démoProjet 02

Conduite Atlas — agent IA pour auto-écoles

Un assistant qui répond aux futurs élèves en dehors des heures d'ouverture et prend leurs rendez-vous — sans jamais inventer de réponse.

  • n8n
  • AI Agent · tool-calling
  • OpenAI
  • RAG
  • PostgreSQL + pgvector
  • Google Calendar
  • Google Sheets

01Le problème

L'accueil d'une auto-école n'est joignable qu'aux heures d'ouverture. Or les futurs élèves comparent les écoles le soir, le dimanche ou quand la ligne est occupée — et c'est généralement la première à répondre qui décroche l'inscription.

02Ce qu'il fait

  • Il répond à partir des informations de l'école (RAG) : inscription, tarifs, financement, code, leçons, examen, horaires…
  • Il n'invente jamais : si la réponse n'est pas dans les informations de l'école, il le dit.
  • Il capte les leads : un prénom et des coordonnées, puis une personne de l'équipe rappelle.
  • Il prend les rendez-vous dans Google Calendar et refuse les créneaux déjà pris.
  • Il protège les données personnelles : aucun accès aux dossiers des élèves.

Assistant construit pour une auto-école fictive, comme démonstration de ce que je livre aux vraies auto-écoles.

Automatisation · leadsProjet 03

Pipeline de validation de leads en temps réel

Chaque lead vérifié dès qu'il arrive — et chaque rejet journalisé avec sa raison.

  • Make.com
  • Webhooks
  • Numverify
  • MillionVerifier
  • HubSpot
  • Google Sheets

01Le problème

Les formulaires publicitaires (Facebook, Google) envoient tout dans le CRM sans filtre : numéros factices comme 07000000000, emails mal tapés ou jetables, doublons, champs vides.

Résultat : les commerciaux appellent des leads qui n'ont jamais existé, les séquences email rebondissent dès le premier envoi — et quand un client conteste la qualité des leads, l'agence n'a aucune donnée pour se défendre.

02La solution

Un pipeline qui s'intercale entre le formulaire et le CRM. Chaque soumission passe une série de contrôles en temps réel : les leads valides sont créés dans HubSpot, les autres sont bloqués et journalisés avec la raison exacte et la campagne d'origine.

Un tableau de bord se calcule automatiquement à partir du journal : taux de déchet global et par campagne, et estimation du budget publicitaire gaspillé.

03Comment c'est construit

  1. Complétude
  2. Doublon (HubSpot)
  3. Format du numéro
  4. Numéro réel (Numverify)
  5. Email délivrable
  • Webhook Make.com exécuté dès l'arrivée des données, puis normalisation des champs et formatage du numéro avant tout contrôle.
  • Contrôles en cascade, du moins coûteux au plus coûteux : les vérifications gratuites (champs manquants, doublon dans HubSpot, format) passent avant les appels d'API payants. Un lead incomplet ne consomme jamais de crédit de vérification.
  • Un routeur par contrôle : chaque sortie en échec écrit une ligne dans le journal, avec le type d'échec et la raison.
  • Résilience aux pannes d'API : si le service de vérification du téléphone ou de l'email ne répond pas, le lead n'est pas perdu. Il est créé dans HubSpot avec le statut « à revérifier », une alerte email part, l'erreur est journalisée, et une directive Resume permet au scénario de continuer. Le compromis est assumé : pendant une panne, un lead non vérifié entre dans le CRM — mais marqué, donc facile à revérifier ensuite.
  • Classeur Google Sheets structuré : Lead Log, Dashboard, Config, Errors, Alerts Sent — plus un onglet Read Me et un guide d'installation pour la passation.
Scénario Make.com du pipeline de validation, avec ses routeurs de contrôle, ses modules de journalisation et ses branches de reprise.
Le scénario Make.com complet : routeurs de contrôle, journalisation, et branches de reprise en cas de panne d'API. Cliquez pour agrandir.

04Le résultat — ce que ça prouve

Sur un jeu de test de 45 leads simulant des soumissions publicitaires :

Données de test que j'ai créées moi-même pour éprouver le pipeline (format britannique : numéros 07…, livres sterling). Aucune donnée client réelle, aucun chiffre client à communiquer.

45leads traités
36valides, créés dans HubSpot
9bloqués avant le CRM
20 %taux de déchet détecté

Chaque rejet porte une raison lisible : Not a valid UK mobile number format, Number not in service (carrier check failed), Disposable email address, Already exists in HubSpot CRM, Phone number field left empty.

Tableau de bord qualité des leads : 45 leads traités, 36 valides, 9 bloqués, 20 % de déchet, répartition par campagne.
Tableau de bord calculé automatiquement depuis le journal.
Extrait du journal : campagne, statut (VALID, PHONE, EMAIL, DUPLICATE, INCOMPLETE) et raison de chaque décision.
Le journal : statut et raison pour chaque lead.

Ce que ça prouve : une gestion d'erreurs de niveau production. Une panne d'API ne fait perdre aucun lead, et chaque décision du système est traçable.

05Démo

Deux minutes, sur une soumission de formulaire réelle envoyée dans le système : un faux numéro bloqué et journalisé, puis un lead valide synchronisé dans HubSpot en temps réel. (Vidéo en anglais, enregistrée sur la version britannique du projet.)

IA + CRM · leadsProjet 04

Pipeline de qualification de leads par IA

L'IA lit chaque demande entrante, la note et la route — les commerciaux rappellent les bons prospects en premier.

  • Make.com
  • API OpenAI
  • JSON structuré
  • HubSpot
  • Gmail
  • Google Sheets
  • Tally

01Le problème

Une agence reçoit des demandes de qualité très variable : un projet précis de synchronisation ERP–CRM arrive à côté d'un « combien pour un site pas cher ? ».

Quelqu'un doit les lire une par une, deviner le budget et l'urgence, puis décider qui rappeler. Pendant ce temps, les leads chauds attendent dans la même file que les demandes vagues — et refroidissent.

02La solution

Chaque demande envoyée via le formulaire Tally est analysée par l'IA en quelques secondes : score de 0 à 100, secteur, urgence, budget estimé, résumé en une phrase, signaux positifs et négatifs, et action recommandée.

Le lead est ensuite routé automatiquement : contact enrichi dans HubSpot, alerte immédiate pour les leads chauds, réponse personnalisée au prospect, et chaque décision journalisée.

03Comment c'est construit

  • Webhook Tally → Make.com : le scénario démarre à l'envoi du formulaire.
  • OpenAI (gpt-4o-mini), cadré par un schéma JSON défini dans le prompt système : score, secteur, budget_estime, urgence, resume, signaux_positifs, signaux_negatifs, action_recommandee — avec des valeurs énumérées (« Faible » | « Moyen » | « Élevé » | « Inconnu »). L'IA ne produit pas du texte libre, mais des données qu'un workflow peut exploiter.
  • Parsing JSON puis normalisation des variables avant toute décision. Le schéma est imposé par le prompt, pas par l'API : c'est le parsing qui vérifie que la sortie est exploitable.
  • Routeur en trois branches, détaillé ci-dessous.
  • Propriétés personnalisées dans HubSpot (Score IA, Résumé IA, Urgence) : les commerciaux trient directement dans leur CRM.
  • Gestion d'erreurs sur l'appel OpenAI : en cas d'échec, email d'alerte puis directive Resume — le scénario ne s'arrête pas.
RouteCe qui se passe
ChaudContact créé dans HubSpot · alerte email immédiate · réponse personnalisée au prospect · ligne au journal
TièdeContact créé dans HubSpot · réponse personnalisée au prospect · ligne au journal
FroidLigne au journal uniquement (route par défaut)
Scénario Make.com : webhook, OpenAI, parsing JSON, variables, routeur en trois branches vers HubSpot, Gmail et Google Sheets, avec une route d'erreur Gmail puis Resume.
Le scénario Make.com : analyse OpenAI, parsing JSON, routeur chaud / tiède / froid, et route d'erreur sur l'appel OpenAI.
Configuration du module OpenAI : modèle gpt-4o-mini et prompt système imposant un schéma JSON.
Le prompt système : le schéma JSON attendu, avec des valeurs énumérées.

04Le résultat — ce que ça prouve

Sur une série de 9 demandes de test, du projet précis à la demande vague :

« Agence Meridio » est une agence fictive que j'ai créée pour construire et éprouver ce pipeline. Les demandes, les noms et les scores ci-dessous sont des données de test.

Demande (résumé par l'IA)ScoreRouteAction recommandée
Automatisation de la synchronisation entre ERP et CRM pour 150 commandes/jour100ChaudAppel immédiat
Automatisation urgente de la création et du routage des contacts depuis un formulaire…85ChaudAppel immédiat
Création d'un tableau de bord automatique pour compiler des ventes de plusieurs sources70ChaudEmail de qualification
Automatisation du tri d'emails entrants avec de l'IA60TièdeAppel immédiat
Atelier CD souhaite mieux gérer le suivi de clients et les relances30FroidEmail de qualification
Kevin souhaite automatiser des processus mais n'a pas de besoin précis défini25FroidEmail de qualification
Demande peu précise sur tarif sans description concrète du besoin15FroidNe pas poursuivre
Recherche une personne pour créer un site web à bas coût10FroidNe pas poursuivre
La description du besoin est trop vague0FroidNe pas poursuivre

Les 9 demandes, sans tri. La route est calculée à partir du score ; l'action recommandée est un avis séparé de l'IA. Les deux sont enregistrés et peuvent diverger, comme sur les lignes 70 et 60.

Journal Google Sheets : score, urgence, budget, route, résumé et action recommandée pour chaque demande de test.
Le journal Google Sheets des 9 demandes de test.

Ce que ça prouve : savoir utiliser un modèle de langage comme un composant fiable d'un système — sortie structurée, valeurs contrôlées, et gestion d'erreurs quand le modèle échoue.

05Démo

Les captures ci-dessus viennent du système réel. Vous voulez le voir tourner sur une demande que vous écrivez vous-même ? Je vous en fais la démonstration en direct.