Automatiser sa veille d'appels d'offres avec n8n : méthode

Cet article vous aide à le faire vous-même. Vous préférez déléguer ? Voici comment je travaille.
En bref
- L'API BOAMP est interrogeable gratuitement et sans clé, avec filtrage par codes CPV, département et type d'avis.
- Le workflow n8n type enchaîne cinq briques : déclencheur planifié, collecte multi-sources, dédoublonnage persistant, scoring par un modèle de langage, notification Slack, Notion ou email.
- Le prompt de qualification et le seuil go/no-go se calibrent en production, sur plusieurs semaines, pas à la conception.
- Le workflow détecte et trie ; la lecture du DCE, l'analyse des clauses et la décision de répondre restent humaines.
Un chargé d'affaires qui surveille quatre plateformes de marchés publics y passe une partie de sa matinée, chaque jour, pour écarter 95 % des avis qui ne le concernent pas. Le reste du temps, il rate un avis publié un vendredi soir sur un profil acheteur départemental, ou découvre une consultation à dix jours de la date limite de remise. La veille manuelle des appels d'offres n'est pas une tâche difficile, elle est répétitive, fragmentée et mal compatible avec un calendrier commercial chargé.
n8n permet de reconstituer cette chaîne sous forme de workflow : collecte automatisée des sources, tri par intelligence artificielle selon un profil d'entreprise, puis diffusion d'une fiche d'opportunité dans l'outil de l'équipe. L'objectif n'est pas de supprimer le travail de qualification, mais de ne plus le faire sur 350 annonces quotidiennes quand une vingtaine méritent un regard.
Pourquoi la veille manuelle des appels d'offres plafonne vite
Le problème tient d'abord à la dispersion des sources. Un bureau d'études qui vise les collectivités de son département doit suivre le BOAMP, TED pour les marchés au-dessus des seuils européens, la plateforme PLACE pour l'État, plus les profils acheteurs locaux qui publient des consultations jamais remontées au niveau national. Aucune de ces interfaces ne parle la même langue, et aucune ne connaît votre périmètre métier.
La conséquence se mesure en marchés manqués plutôt qu'en heures perdues. Un délai de remise de trois semaines découvert à J-5 devient une réponse bâclée ou un no-go par défaut. Pour une PME du BTP, une ESN ou un cabinet de conseil, cette irrégularité de la veille pèse plus lourd que le taux de transformation lui-même, puisqu'elle détermine le volume d'opportunités entrant dans le pipeline.
Les sources d'appels d'offres connectables dans n8n
Avant d'assembler le moindre nœud, il faut cartographier d'où viennent les données et sous quelle forme. Trois familles coexistent : les API ouvertes, les flux RSS, et les plateformes fermées qui n'exposent rien d'exploitable proprement.
BOAMP et data.gouv.fr : l'API ouverte sans clé
Le BOAMP expose ses annonces via une API Opendatasoft, interrogeable depuis un simple nœud HTTP Request sur l'endpoint https://boamp-datadila.opendatasoft.com/api/explore/v2.1/catalog/datasets/boamp/records. Selon la fiche de l'API BOAMP publiée sur api.gouv.fr, l'accès est gratuit, sans clé, sous Licence Ouverte 2.0, avec des réponses en JSON, CSV ou Excel et une mise à jour quotidienne portant sur plus de 1,6 million d'annonces. Les filtres utiles en production sont le code département, les codes CPV, le type d'avis et les mots-clés.
Deux pièges techniques méritent d'être anticipés. Le fuseau horaire renvoyé par l'API est parfois incohérent, alors que l'heure limite de remise est toujours celle de Paris : mieux vaut normaliser la date dans un nœud Code plutôt que de faire confiance au champ brut. Sur data.gouv.fr, le jeu de données DECP complète le dispositif avec les marchés déjà attribués, titulaire et montant compris, sous la même licence ouverte.
TED : le volet européen au-dessus des seuils
TED (Tenders Electronic Daily) publie les avis dépassant les seuils européens et expose une API REST v3 gratuite, en POST sur https://api.ted.europa.eu/v3/notices/search. La requête se construit avec une syntaxe experte : buyer-country=FRA pour la France, classification-cpv pour le périmètre métier, une borne de date de publication, et un paramètre scope qui distingue les notices actives de l'historique complet. La pagination est plafonnée à 100 résultats par appel, ce qui impose une boucle dans le workflow n8n dès que le périmètre s'élargit.
Le choix des codes CPV conditionne tout le reste. Pour une activité informatique, le périmètre pertinent couvre le CPV 72 pour les services et le CPV 48 pour les logiciels, tandis que le matériel (CPV 30), la maintenance (CPV 50) et les travaux (CPV 45) génèrent surtout du bruit, même avec un intitulé qui semble technique.
PLACE, AWS Achats et profils acheteurs : RSS, scraping et limites juridiques
PLACE, AWS Achats, e-Marchés Publics ou marches-publics.info n'exposent pas d'API ouverte documentée. Les alternatives se résument à un flux RSS quand la plateforme en propose un, un parsing HTML via HTTP Request, ou la réception des alertes email de la plateforme dans une boîte dédiée, relevée par un nœud IMAP dans n8n. Cette dernière option est la plus stable : elle survit aux refontes de maquette.
Le scraping impose une vérification préalable du robots.txt et des conditions d'utilisation, certaines plateformes d'achats publics locales interdisant explicitement l'exploration automatisée. Les agrégateurs privés comme Klekoon ou Deepbloo constituent une source secondaire connectable par flux email ou webhook, utile pour couvrir les petits marchés des profils acheteurs locaux qui ne remontent jamais au BOAMP.
Architecture du workflow n8n, de la collecte à la fiche d'opportunité
Le flux logique est linéaire et tient en cinq étapes, chacune correspondant à un ou deux nœuds. Un dépôt public documente un workflow n8n de veille appels d'offres combinant BOAMP, TED et un scoring Mistral, avec envoi d'un récapitulatif par email chaque matin de semaine : une bonne référence pour visualiser l'enchaînement avant de construire le sien.
Étape 1 : déclencheur planifié et collecte multi-sources
Un nœud Schedule Trigger lance l'exécution une fois par jour, tôt le matin, ou deux fois pour les secteurs à forte rotation. Chaque source devient ensuite une branche HTTP Request paramétrée avec ses propres filtres : département et CPV pour le BOAMP, pays et CPV pour TED. Une exécution quotidienne suffit dans la grande majorité des cas, les avis n'étant pas publiés en continu.
Étape 2 : dédoublonnage et normalisation des données brutes
Les trois sources renvoient des structures JSON différentes qu'il faut ramener à un schéma commun : référence, acheteur, objet, CPV, montant estimé, date limite, URL. Le dédoublonnage s'appuie sur le nœud Remove Duplicates, qui conserve l'historique des identifiants traités d'une exécution à l'autre, ou sur un hash stocké dans PostgreSQL ou un Google Sheet comparé par un nœud Code. La clé doit être l'identifiant d'avis ou l'URL, jamais l'ID technique renvoyé par l'API, qui peut changer.
Un avis au-dessus des seuils européens paraît à la fois au BOAMP et sur TED : le dédoublonnage inter-sources est donc obligatoire, sous peine de doubler les notifications et le coût de scoring. Un pré-filtre gratuit en amont du modèle, excluant les rectificatifs, les avis d'attribution et les mots-clés rédhibitoires, réduit significativement le volume soumis au LLM.
Étape 3 : scoring et qualification par un modèle de langage
Les annonces survivantes partent par lots vers un modèle de langage, via le nœud AI de n8n ou un appel HTTP direct. Le prompt système décrit le profil de l'entreprise et demande une note de 0 à 100 assortie d'une justification courte, renvoyée en JSON strict pour rester exploitable par les nœuds suivants. Le traitement par lots de dix à vingt annonces limite le nombre d'appels et donc le coût.
Étape 4 : récupération du DCE, fiche d'opportunité et notification
Au-delà du seuil fixé, le workflow tente de télécharger le dossier de consultation des entreprises par HTTP Request, en gardant à l'esprit que certaines plateformes conditionnent l'accès à une authentification ou à une identification préalable du candidat. La fiche d'opportunité produite reste volontairement courte : objet, acheteur, département, montant estimé, délai de remise, score, justification et lien vers l'avis. C'est cette fiche, et non l'avis brut, qui part vers Slack, Notion ou l'email de synthèse.
Configurer le prompt de qualification pour ne recevoir que les marchés pertinents
La qualité du tri ne dépend pas du modèle choisi mais de la précision du profil d'entreprise encodé dans le prompt. C'est le seul élément du workflow qu'on modifie régulièrement, sans jamais toucher aux nœuds.
Les critères à encoder dans le prompt système
Cinq dimensions suffisent dans la plupart des cas : le secteur d'activité avec les codes CPV correspondants, la zone géographique acceptable, la fourchette de montant estimé réaliste au regard de vos capacités, le type de procédure que vous savez traiter, et une liste de critères rédhibitoires. Cette dernière fait le gros du travail : certifications que vous n'avez pas, exigences de chiffre d'affaires minimum, lots imposant une cotraitance que vous ne pouvez pas monter.
Demandez au modèle une sortie structurée comportant le score, un verdict go/no-go et une phrase de justification. La justification n'est pas décorative : elle permet de diagnostiquer les erreurs de scoring et d'ajuster le prompt sur des cas concrets plutôt qu'à l'aveugle.
Calibrer le seuil go/no-go selon votre capacité réelle
Le bon seuil dépend du nombre de réponses que l'équipe peut produire par mois, pas d'une valeur universelle. Une structure capable de rédiger quatre réponses mensuelles et une cellule de six personnes n'ont pas le même point d'équilibre entre faux positifs et opportunités manquées.
La méthode qui fonctionne consiste à laisser tourner le workflow deux à quatre semaines avec un seuil bas, à conserver toutes les fiches dans un tableau de bord, puis à relire les décisions humaines prises sur chacune. Le seuil se place ensuite juste en dessous du score le plus faible parmi les annonces réellement traitées. Des pondérations configurables dans le tableau de suivi évitent de reprendre le prompt à chaque ajustement.
Diffuser les opportunités : Slack, Notion, Google Sheets ou email
Le choix de la sortie dépend moins de l'outil que du rythme de décision de l'équipe. Rien n'interdit de combiner deux canaux, une base de suivi d'un côté et une alerte de l'autre.
Slack : alerte temps réel et décision en un clic
Le nœud Slack de n8n accepte des messages au format Block Kit, ce qui permet d'intégrer deux boutons sous chaque fiche : « je prends en charge » et « pas pour nous ». Chaque clic déclenche un webhook qui met à jour la ligne correspondante dans la base de suivi, sans que personne ouvre un autre outil. Pour une équipe distribuée, c'est le canal qui obtient le meilleur taux de traitement, parce que la décision se prend là où l'information arrive.
Notion, Google Sheets et email : base requêtable et synthèse quotidienne
Une page Notion par opportunité, ou une ligne de Google Sheet, constitue la mémoire du dispositif : statut go/no-go, responsable, date limite, score, lien vers le DCE. La vue tableau filtrée par échéance remplace sans effort un tableau de bord commercial dédié, et le Google Sheet présente l'avantage d'être aussi la table de dédoublonnage du workflow.
Pour une direction qui ne vit pas dans Slack, un email HTML quotidien généré par le nœud Send Email reste la sortie la plus simple : une synthèse groupant les annonces retenues, triées par score décroissant, avec les liens vers les avis. C'est souvent le format retenu en phase de démarrage, le temps de valider la pertinence du scoring.
Étendre la veille aux attributions, aux reconductions et aux lots infructueux
La plupart des workflows s'arrêtent aux avis d'appel à la concurrence, alors que les avis d'attribution contiennent l'information la plus stratégique. En filtrant les attributions sur les marchés auxquels vous avez répondu, et sur ceux de vos concurrents directs, vous alimentez une base de benchmarking qui révèle les titulaires récurrents et les niveaux de prix pratiqués. Les données DECP publiées sur data.gouv.fr, qui associent marché attribué, titulaire et montant, se prêtent bien à cette analyse hors flux quotidien.
Les lots déclarés infructueux ou sans suite constituent l'autre gisement ignoré : l'acheteur devra relancer, souvent avec un cahier des charges assoupli et moins de candidats. Une branche dédiée du workflow, filtrant sur le type d'avis et déclenchant une alerte distincte, transforme ces cas en opportunités à court délai. Même logique pour les marchés dont la reconduction approche, repérables en croisant les dates de notification des attributions passées avec leur durée annoncée.
Coûts, délai de mise en place et gains attendus
Trois postes composent le coût de fonctionnement : l'hébergement de n8n, les appels au modèle de langage et, éventuellement, l'abonnement à un agrégateur tiers pour les sources fermées. L'édition Community de n8n est auto-hébergeable gratuitement sur un VPS d'entrée de gamme, sans plafond d'exécution imposé par l'éditeur, ce qui rend le poste hébergement marginal face au coût des appels LLM. Ceux-ci restent contenus dès lors qu'un pré-filtre gratuit s'exécute avant le scoring et que les annonces partent par lots.
Côté mise en production, comptez quelques jours pour un utilisateur n8n à l'aise avec les appels API et le JSON, une à deux semaines pour un débutant accompagné, l'essentiel du temps passant dans le calibrage du prompt et non dans la construction des nœuds. Le gain ne se mesure pas en suppression de la veille mais en déplacement de l'effort : on ne parcourt plus des listes d'annonces, on relit une poignée de fiches déjà qualifiées, avec un historique consultable.
Ce que le workflow ne fera pas à votre place
L'analyse fine du DCE reste humaine. Un modèle extrait correctement les dates, les montants et les critères d'attribution, mais la lecture du CCTP et du CCAP engage une expertise métier et juridique : clauses de pénalités, exigences de qualification, modalités de variantes. Un score élevé signale une opportunité à examiner, jamais une décision de répondre.
Deux angles morts doivent être assumés d'emblée. Les marchés de gré à gré, les consultations informelles et les mises en concurrence restreintes n'apparaissent sur aucune plateforme officielle et échappent totalement au dispositif. Et les sources sans API publique dépendent de parsings fragiles, qui cassent à la première refonte de page : un monitoring d'erreur sur ces branches évite de croire à un marché calme alors que le flux est simplement rompu.
Dernier point, décisif pour les secteurs sensibles : l'hébergement conditionne la souveraineté des données. n8n Cloud fait transiter vos données chez l'éditeur, qui met en avant une certification SOC 2 Type 2 et une conformité RGPD, alors qu'une instance auto-hébergée sur un VPS européen garde tout dans votre infrastructure, la certification de l'offre cloud ne s'étendant pas aux installations gérées par vos soins. Pour une collectivité, un acteur de la santé ou de la défense, l'auto-hébergement sur un datacenter européen, couplé à un modèle de langage lui aussi européen, est le seul montage défendable.
Questions fréquentes sur l'automatisation de la veille des appels d'offres avec n8n
Faut-il savoir coder pour construire ce workflow ?
Non pour l'essentiel : la collecte, le scoring et les notifications se configurent par formulaire dans les nœuds. Quelques expressions JavaScript restent utiles pour normaliser les dates, aplatir des JSON imbriqués et gérer le dédoublonnage. Un profil technicien, même non développeur, s'en sort après quelques heures de pratique sur le nœud Code.
Peut-on surveiller des appels d'offres privés et des plateformes sans API ?
Oui, par trois voies : le flux RSS quand il existe, le parsing HTML via HTTP Request, ou la réception par IMAP des alertes email envoyées par la plateforme. Ces approches sont plus fragiles qu'une API et doivent respecter les conditions d'utilisation ainsi que le robots.txt du site, certaines plateformes interdisant l'accès automatisé.
Quelle différence avec un outil spécialisé type Wanao ou Deepbloo ?
Les outils spécialisés couvrent davantage de sources, notamment les profils acheteurs locaux difficiles à atteindre, et proposent une interface métier prête à l'emploi. n8n offre la flexibilité du prompt de qualification, l'intégration directe avec vos outils internes et un coût de fonctionnement bien plus faible. Les deux se combinent : l'agrégateur comme source, n8n comme couche de tri et de diffusion.
Quel modèle de langage choisir pour le scoring ?
Un modèle léger suffit pour la notation de masse, où la tâche consiste à comparer une annonce à un profil. Mistral présente l'avantage d'un hébergement européen pour les données sensibles, GPT-6.1 Sol une précision élevée sur les cas ambigus, Claude une bonne tenue sur les documents longs comme les extraits de DCE. L'arbitrage se fait sur le volume quotidien d'annonces et le niveau de confidentialité exigé.
Commencez par une seule source, le BOAMP filtré sur deux ou trois codes CPV et votre département, avec un envoi par email. Une fois le scoring stabilisé sur deux semaines, ajoutez TED, puis les attributions : chaque brique supplémentaire se greffe sur un workflow dont vous connaissez déjà le comportement.
Vous préférez que je le fasse pour vous ?
Je construis ce type d'automatisation pour mes clients, avec n8n et des agents IA. 30 minutes suffisent pour voir si ça a du sens chez vous. Gratuit et sans engagement.