Ma veille concurrentielle tourne seule pour 87 €/mois : le pipeline complet
Comment j'ai remplacé un devis Klue à 18 000 € par un pipeline Perplexity + Claude + n8n branché sur Slack et Notion
Le devis Klue est arrivé un vendredi soir. 18 000 € par an pour trois sièges, engagement 12 mois, onboarding facturé en supplément. Notre marketing en avait besoin la semaine suivante pour préparer une refonte de positionnement. J'ai fermé le PDF et j'ai ouvert n8n.
Trois semaines plus tard, notre veille concurrentielle envoie chaque matin dans Slack un résumé de 12 à 18 signaux détectés la veille — changement de pricing, nouvelle feature annoncée, offre d'emploi révélatrice, mention presse, campagne LinkedIn Ads — avec un score de pertinence entre 1 et 10 et un lien vers la source. Chaque lundi matin, une base Notion partagée avec le CODIR se remplit d'un rapport hebdo synthétique. Le pipeline tourne pour 87 € par mois, tout compris, sans intervention.
Ce papier est le tuto complet. Architecture, cinq briques, prompts Claude qui font le tri, les pièges qui m'ont coûté deux journées, et la vraie facture mensuelle. Vous saurez à la fin si vous devez monter la même chose, ou signer chez Klue quand même.
Klue à 18 000 $, Crayon à 28 750 $ : pourquoi la CI enterprise ne colle pas aux PME
Le marché de la competitive intelligence outillée est longtemps resté un club fermé. Trois plateformes dominent — Klue, Crayon, Kompyte — et facturent au forfait annuel avec un ticket d'entrée qui écrase les structures françaises de moins de 50 salariés.
Parano.ai chiffre le ticket Klue à 15-16 000 dollars par an en entrée de gamme. Vendr place le coût médian Crayon à 28 750 dollars annuels, mesuré sur 90 achats réels, avec des factures qui montent jusqu'à 47 100 dollars. Kompyte reste plus abordable — Prospeo évoque 300 dollars par mois sur le tier Essentials — mais reste calibré pour une équipe CI dédiée, pas pour un responsable marketing qui pilote la veille en solo.
Le décrochage n'est pas qu'une question de prix. Ces plateformes sont pensées pour des équipes de product marketing qui produisent des battle cards, orchestrent des salons commerciaux, briefent leur direction produit chaque trimestre. En PME, personne ne joue ce rôle à temps plein. Le besoin réel se résume à trois questions : que fait mon concurrent principal aujourd'hui, y a-t-il un signal qui mérite ma journée, et de quoi je parle à mon comex lundi.
Côté chiffres, le rappel est brutal. Scopya rapporte que 67 % des PME françaises n'ont aucune veille concurrentielle formalisée en 2026, et que le baromètre France Num situe à moins de 40 % la part des TPE-PME ayant intégré un outil numérique dédié. Alliance Entreprendre évalue la charge à 2-4 h par semaine pour un responsable marketing qui fait la collecte à la main. Autrement dit : soit vous payez 20 000 € pour un outil surdimensionné, soit vous cramez 200 heures de votre équipe par an.
C'est ce trou du milieu que le pipeline attaque.
L'architecture : 5 briques, 2 API, 1 orchestrateur
Le pipeline est bête comme chou. Cinq briques, une seule direction, aucun état à maintenir hors de la base Notion.
- Collecte : RSS.app + Google Alerts + scraping léger n8n sur pages pricing/blog des 12 concurrents suivis.
- Orchestration : n8n self-hosted sur un VPS à 6 €/mois. Un workflow par source, un workflow de consolidation.
- Enrichissement : chaque signal brut passe par Perplexity Sonar Pro API pour être contextualisé avec du web récent (news, communiqués, benchmarks).
- Scoring & synthèse : Claude Sonnet 5 lit le signal enrichi, sort un titre, un résumé de 3 phrases, un score 1-10, une catégorie (produit, prix, marketing, RH, financier), et une action recommandée.
- Routage : score ≥ 7 → alerte Slack immédiate dans
#veille-alertes. Tout signal → row Notion dans une base Veille concurrentielle. Chaque lundi 8h → workflow rapport hebdo qui compile les signaux ≥ 5 en un memo Notion partagé au CODIR.
Ce découpage a une conséquence pratique : chaque brique est remplaçable. Si Perplexity casse ou triple ses prix, je bascule vers Sonar tout court ou vers un Grok avec browsing. Si Claude Sonnet 5 devient hors budget, je descends sur Haiku 4.5 pour le scoring. C'est le contraire d'un outil managé où tout se joue derrière une facture opaque.
Étape 1 — Choisir vos 12 concurrents et 40 sources
La première erreur que j'ai faite, c'est de vouloir suivre trente concurrents. Le pipeline s'est retrouvé à traiter 400 signaux par jour, dont 380 non pertinents. Claude Sonnet 5 est bon, il n'est pas magicien.
Refonte : 12 concurrents maximum, répartis en trois tiers.
- Tier 1 (3 concurrents) : les frontaux directs, dont un mouvement peut déclencher une décision produit dans les 48 h. Pour eux, on suit tout — pricing, blog, docs, LinkedIn corporate, offres d'emploi, communiqués, mentions presse, changelog GitHub public si applicable.
- Tier 2 (5 concurrents) : les challengers ou proches. On suit blog, pricing, LinkedIn, offres d'emploi.
- Tier 3 (4 concurrents) : les périphériques (adjacents, régionaux). On suit uniquement les mentions presse et Google Alerts.
Concrètement, ça donne environ 40 sources uniques : 12 flux blog, 12 pages pricing/features (surveillance de changement HTML), 8 pages LinkedIn corporate, 12 requêtes Google Alerts, plus deux flux LinkedIn Ads Library pour les campagnes publicitaires actives. Tout est ingéré via RSS.app qui transforme n'importe quelle URL en flux structuré (8,32 $/mois annuel selon leur pricing 2026), sauf les pages pricing où j'utilise le node HTTP Request de n8n avec un diff SHA256 pour détecter les modifs.
Google Alerts est branché via un flux RSS Google (les alertes exportent nativement en RSS). LinkedIn corporate : je passe par une extension PhantomBuster à 69 $/mois — le seul poste que je pourrais couper si je devais serrer davantage.
Étape 2 — Monter n8n self-hosted en 90 minutes
N8n en cloud démarre à 24 €/mois sur le plan Starter selon Sliplane, avec 2 500 exécutions incluses. Le pipeline en génère 1 800 par jour sur les workflows de check, donc c'est mort pour le plan cloud sans passer au Pro à 60 €.
Le calcul devient évident : self-hosted sur un VPS Hetzner CX22 à 5,83 €/mois HT, avec Docker Compose. ExpressTech confirme le tarif VPS 3-7 $/mois pour un n8n community edition en usage PME. Depuis avril 2026, n8n a supprimé les limites de workflows actifs sur tous les plans, donc la seule friction restante en cloud reste les exécutions facturées.
Setup minimal : docker compose up -d sur un VPS Ubuntu 24.04, un docker-compose.yml avec Postgres 16 pour la persistance des workflows, un nginx en reverse proxy avec Let's Encrypt, un domaine n8n.mondomaine.tld. La stack complète tient dans 40 lignes de YAML et j'ai versionné le tout dans un repo GitHub privé, y compris les credentials chiffrés via la variable N8N_ENCRYPTION_KEY.
Un dernier détail qui n'est pas trivial : activer EXECUTIONS_DATA_PRUNE=true avec EXECUTIONS_DATA_MAX_AGE=168. Sans ça, Postgres gonfle vite avec 1 800 exécutions/jour et vous découvrez la joie du vacuum full un dimanche soir.
Étape 3 — Enrichir chaque signal avec Perplexity Sonar Pro
Un flux RSS brut ne suffit pas. Quand mon concurrent principal publie un article de blog intitulé « Nouvelle intégration Salesforce », je n'ai que 200 mots d'intro. Je veux savoir : est-ce une vraie intégration native ou un connecteur Zapier repackagé ? Qui l'a annoncée ? Ça fait combien de temps qu'ils la vendent en preview ? Est-ce couvert par la presse tech ?
C'est le job de Perplexity. Chaque signal collecté déclenche un appel à Sonar Pro avec un prompt structuré. La grille tarifaire Sonar Pro facture 3 $ par million de tokens en entrée et 15 $ par million en sortie, plus une request fee variable selon le search context size choisi. En pratique, sur les 400-500 requêtes/jour du pipeline (une par signal), la facture Perplexity mensuelle atterrit entre 22 et 28 $.
Le prompt Perplexity que j'utilise, textuellement :
Tu es un analyste veille concurrentielle. Contexte : {concurrent_nom}, secteur SaaS B2B. Signal brut détecté : {titre}. Extrait : {extrait_200_mots}. URL source : {url}.
Ta mission : cherche des sources web récentes (14 derniers jours) qui contextualisent ce signal. Retourne au format JSON strict : {contexte : string 3 phrases, sources_secondaires : array de {url, titre, extrait_10_mots}, est_confirme : boolean, date_annonce_reelle : ISO date si trouvée sinon null}.
Deux subtilités. D'abord, je force le paramètre search_recency_filter: "week" pour éviter que Sonar remonte du vieux contenu SEO qui pollue le contexte. Ensuite, j'active return_related_questions: false — on n'en a rien à faire, et ça bouffe des tokens.
Combien coûte Perplexity Sonar Pro pour une veille concurrentielle PME
La grille AI Pricing Guru confirme la lecture : Sonar Pro à 3/15 $ par million de tokens, tokens de citation retirés en 2026 (ils étaient facturés en 2025), et request fee qui dépend du contexte de recherche. Sur mon volume, un signal enrichi coûte environ 0,0015 $. Multiplié par 450 signaux/jour et 30 jours, ça fait 20,25 $/mois de tokens purs, plus environ 6 $ de request fees. Total observé sur 3 factures : 25 à 28 $/mois.
Étape 4 — Scorer et synthétiser avec Claude Sonnet 5
Perplexity donne du contexte. Claude Sonnet 5 fait le vrai travail de tri.
Anthropic a sorti Sonnet 5 le 30 juin 2026, avec un prix promotionnel de 2 $ input / 10 $ output par million de tokens jusqu'au 31 août 2026, puis 3/15 $ ensuite. Le modèle inclut la fenêtre 1M tokens par défaut, 128k tokens en sortie, et adaptive thinking. C'est le sweet spot pour du scoring de signaux : assez malin pour distinguer un vrai signal produit d'un post LinkedIn RH, assez rapide pour traiter 500 signaux/jour sans faire dérailler la facture.
Le prompt Claude que j'utilise en pratique :
Tu es un directeur marketing de PME SaaS B2B française. Ta mission : prioriser 15 à 20 signaux concurrents par jour parmi 400. Pour chaque signal, tu reçois : source RSS + contexte enrichi Perplexity. Tu produis un JSON strict avec 6 champs :
- titre : 8 mots max, factuel, sans hype
- resume : 3 phrases pour un décideur qui a 30 secondes
- score : entier 1-10 selon la grille (voir infra)
- categorie : produit / prix / marketing / RH / financier / autre
- action_recommandee : 1 phrase, verbe à l'infinitif ou "ignorer"
- confidence : 0-1, ta certitude que le signal est vrai
Grille de scoring : 9-10 = mouvement stratégique qui exige une réponse cette semaine (nouveau pricing baissier, rachat, changement de CEO). 7-8 = signal produit ou go-to-market qui mérite une note au comex. 5-6 = intéressant pour la doc concurrentielle. 3-4 = à ranger. 1-2 = bruit.
Deux vraies subtilités opérationnelles. Un : j'utilise l'extended thinking avec un budget de 3 000 tokens pour les signaux Tier 1, et zéro extended thinking pour les Tier 3. Ça divise par 4 le coût sur les signaux périphériques sans perdre en qualité de scoring. Deux : le tokenizer de Sonnet 5 produit environ 30 % de tokens en plus pour un même texte, comme le confirme la doc Anthropic. Je m'en suis pris plein la tête en septembre : facture doublée le premier mois de bascule Sonnet 4.6 → Sonnet 5. On avait déjà creusé cette bascule dans Basculer d'Opus 4.8 à Sonnet 5 : mon tuto et la vraie facture, la logique est la même ici.
Sonnet 5 vs Haiku 4.5 pour le scoring : le vrai calcul
J'ai testé les deux sur 500 signaux en aveugle. Haiku 4.5 rate 8 % des signaux Tier 1 (soit 3-4 par mois en volume), rétrograde en score 5-6 des trucs qui méritent 8-9. Sonnet 5 est propre : 1 signal loupé sur 500 lors du test. Différence de coût sur mon volume mensuel : 14 $ Haiku vs 41 $ Sonnet 5 (prix intro). J'ai gardé Sonnet 5 pour Tier 1 et 2, Haiku pour Tier 3. Facture Claude mensuelle observée : 32 à 38 $.
Étape 5 — Router vers Slack et Notion sans se faire jeter par le rate limit
Le routage est trivial, sauf sur un point : Slack applique une limite d'un message par seconde par channel, confirmée par la doc Slack Developer et durcie récemment. En dépasser, c'est un HTTP 429 immédiat, et l'app est permanently disabled en cas de récidive. Autrement dit : ne bufferisez pas 40 messages d'un coup à 9h00, c'est la mort du webhook.
La bonne pratique n8n : un node Wait avec 1200 ms entre chaque envoi Slack, et un node Error Trigger qui repushe le message après Retry-After secondes si un 429 remonte. Résultat, un burst de 20 alertes matinales passe en 24 secondes, sans jamais dépasser le seuil.
Côté Notion, la contrainte est différente. La doc Notion autorise 3 requêtes/seconde par connexion, avec quelques bursts tolérés. Sur mon volume — environ 450 insertions par jour dans la base Veille concurrentielle — je suis loin du plafond, mais j'ai quand même mis un node de throttling à 500 ms pour être tranquille. La base Notion contient 8 propriétés (titre, résumé, score, catégorie, action, source, date, statut) et un lien vers l'URL originale. Un rollup calcule le score moyen par concurrent sur 30 jours.
Le rapport hebdo automatique : 20 signaux → 1 memo CODIR
Le vrai livrable pour la direction, ce n'est ni Slack ni Notion. C'est le memo qui atterrit chaque lundi à 7h30 dans un canal #veille-hebdo et dans une page Notion partagée. Format : 400 mots max, structure imposée (situation, mouvements notables, ce qu'on décide, ce qu'on surveille la semaine prochaine).
Le workflow n8n qui produit le memo : chaque lundi 7h00, une requête Notion API récupère tous les signaux de la semaine avec score ≥ 5. Passage à Claude Sonnet 5 en mode extended thinking (budget 8 000 tokens) avec le prompt :
Tu es analyste veille pour le CODIR d'une PME SaaS de 40 personnes. Voici 42 signaux collectés cette semaine (JSON attaché). Produis un memo de 400 mots max structuré en 4 blocs : (1) Résumé exécutif 3 phrases, (2) Mouvements notables par concurrent tiers 1 (3 concurrents max), (3) Décisions ou arbitrages à trancher cette semaine, (4) Signaux faibles à surveiller la semaine prochaine.
Contraintes : pas d'adjectifs subjectifs ("impressionnant", "stratégique") sauf si tu peux les défendre. Chiffres et citations sourcés. Si un concurrent n'a rien fait de notable, dis-le, ne meuble pas.
Le résultat est utilisable tel quel dans 4 cas sur 5. Une fois par mois environ, je révise à la main pour ajouter une prise de position que Claude n'ose pas trancher (le modèle reste prudent sur les mouvements ambigus, ce qui est une bonne chose la plupart du temps).
La vraie facture mensuelle : 87 € tout compris
Voici la ventilation observée sur 3 mois de fonctionnement stabilisé, converties au taux 1 $ = 0,92 €.
| Poste | Coût mensuel | Note |
|---|---|---|
| VPS Hetzner CX22 (n8n self-hosted) | 6 € | Ubuntu 24.04, 4 GB RAM, largement suffisant |
| Domaine + Let's Encrypt | 1 € | Renouvellement annuel amorti |
| RSS.app plan Basic (annuel) | 8 € | 40 flux, webhooks activés |
| PhantomBuster (LinkedIn scraping) | 63 € | Poste coupable si serrage budget |
| Perplexity Sonar Pro API | 25 € | ~450 requêtes/jour, request fees inclus |
| Claude Sonnet 5 + Haiku 4.5 API | 34 € | Prix intro, remontera à ~50 € en septembre |
| Notion (plan Free) | 0 € | API gratuite jusqu'à 3 req/s |
| Slack (workspace existant) | 0 € | Webhook gratuit |
| Total observé | 87 €/mois | Soit 1 044 €/an |
Comparaison rapide avec le marché :
| Solution | Coût annuel typique | Setup temps | Cible |
|---|---|---|---|
| Klue (entrée) | ~15 000 € | 2-4 semaines onboarding | Équipe CI dédiée mid-market |
| Crayon (médian) | ~26 500 € | 2-4 semaines onboarding | Équipe CI dédiée mid-market |
| Kompyte Essentials | ~3 300 € | 3-5 jours | PME avec 1 CI dédiée |
| Pipeline maison (ce papier) | ~1 050 € | 2 jours si vous connaissez n8n | PME avec un opérateur technique |
La différence Klue vs pipeline maison, c'est 14 000 €/an. En cumulé sur trois ans, c'est un budget de recrutement junior en marketing. À vous de voir ce qui vous rend le plus productif.
Ce qui a cassé (les 3 pièges qui m'ont coûté 2 journées)
Piège 1 : la limite Slack à 1 msg/s. Premier jour de mise en prod, j'avais bufferisé toutes les alertes de la nuit pour un envoi groupé à 9h00. 43 alertes d'un coup, 429 immédiat, webhook temporairement disabled. Slack recommande explicitement de ne pas dépasser 1 message par seconde par channel et de respecter le header Retry-After. Fix : node Wait de 1200 ms et Error Trigger avec backoff exponentiel.
Piège 2 : le tokenizer Sonnet 5 qui gonfle les factures. J'avais estimé la facture Claude à 22 $/mois en portant les prompts de Sonnet 4.6 vers Sonnet 5. Facture réelle du premier mois : 41 $. Le tokenizer Sonnet 5 produit ~30 % de tokens en plus pour un même texte, ce qui est écrit noir sur blanc dans la doc mais que j'ai loupé la première lecture. Correction : raccourci des prompts système, retrait de 4 exemples few-shot devenus inutiles avec le meilleur raisonnement du modèle. Facture stabilisée à 34 $.
Piège 3 : les citations Perplexity qui polluent le prompt Claude. Sonar Pro renvoie par défaut des blocs de citation formatés qui embrouillaient Claude : il se mettait parfois à scorer un signal en se basant sur une source secondaire au lieu du signal principal. Fix : parsing strict côté n8n avec un node Code JS qui isole message.content et jette le reste. Les scores sont redevenus cohérents.
Ce que ce pipeline ne fait pas (et ce que Klue fait quand même)
Je vous dois l'honnêteté. Un pipeline maison, ça n'est pas une plateforme de competitive enablement. Voici ce qui manque comparé à Klue ou Crayon.
- Pas de battle cards structurées : si vos commerciaux ont besoin d'une fiche par concurrent, à jour, avec objections préformulées, il faut la construire à la main dans Notion. Klue automatise cette couche.
- Pas de collaborative curation : dans Klue, un product marketer valide/rejette chaque signal avant diffusion, avec un audit trail. Ici, Claude décide seul. En PME de 40 personnes, c'est tolérable. Au-delà, ça devient risqué.
- Pas de Salesforce/HubSpot integration native : les plateformes CI enterprise pushent les intel dans le CRM. À vous de le brancher via n8n si besoin (c'est du travail).
- Pas de SLA : si Perplexity ou Anthropic ont une panne, mon pipeline se plante. J'ai vu ça deux fois en 3 mois, résolution en 2-4 h à chaque fois. Acceptable pour de la veille, pas pour du support client.
Bref : si vous êtes 200 salariés avec un CI manager dédié et des commerciaux qui font 40 démos/semaine, restez sur Klue ou Crayon. Si vous êtes 15 à 80 personnes avec un responsable marketing qui pilote la veille en plus du reste, ce pipeline est calibré pour vous.
Extensions que je ne recommande pas (encore)
Trois pistes m'ont été suggérées, testées, et écartées.
Ajouter un agent MCP pour interroger la base Notion en langage naturel. Sur le papier, séduisant. En pratique, la latence MCP + Claude ajoute 4-6 secondes par question, et un simple filtre Notion natif fait le même job en 200 ms. Nice-to-have, pas priorité.
Basculer le scoring vers Deep Research Perplexity. Sonar Deep Research gère la recherche multi-étape autonome et produit des rapports plus longs. Coût par requête 8-12x supérieur, gain marginal pour un scoring 1-10. À réserver aux memos hebdo si un jour vous voulez industrialiser encore plus.
Utiliser un modèle open-source local pour couper la facture LLM. J'ai testé Mistral Small 3 en self-hosted. Score correct sur les signaux évidents, mais rate 22 % des signaux Tier 1 nuancés. La différence de 34 $/mois ne vaut pas le risque de rater 3-4 vrais signaux par mois.
Ce qu'on continue de creuser
Quelques chantiers ouverts que je n'ai pas résolus proprement.
D'abord, la déduplication cross-source. Un même événement (levée de fonds d'un concurrent) est aujourd'hui remonté 3 à 5 fois — via son blog, la presse tech, LinkedIn corporate, Google Alerts. Claude repère les doublons dans 80 % des cas, pas 100 %. Prochaine itération : hash sémantique côté n8n avec un embedding local pour dédupliquer avant le scoring.
Ensuite, la détection de signaux faibles — l'offre d'emploi d'un CTO chez un concurrent, un post LinkedIn d'un product manager qui laisse fuiter une roadmap. Ces signaux sont scorés bas par Claude parce qu'ils sont ambigus, et donc invisibles pour le CODIR. Piste testée : un second pass Claude en fin de semaine qui recherche des patterns émergents sur 30 jours ("le concurrent X a recruté 3 sales US ce mois, contre 0 les 6 mois d'avant"). Marche en labo, pas encore en prod.
Enfin, la couverture LinkedIn qui reste fragile. PhantomBuster fonctionne bien mais joue au chat et à la souris avec les protections LinkedIn. Deux fois en 3 mois, la collecte s'est arrêtée pendant 48 h avant reprise automatique. Alternative en test : Proxycurl, plus stable mais 3x plus cher.
Verdict : pour qui monter ce pipeline, pour qui ne pas le monter
Le calcul est simple. Ce pipeline est fait pour vous si trois conditions sont réunies : vous avez entre 15 et 80 salariés, votre marketing pilote la veille en plus du reste (pas un CI dédié), et une personne dans l'équipe sait maintenir un docker-compose et bricoler n8n 4 h par mois. Si les trois sont vraies, vous économisez 14 000 €/an vs Klue entrée de gamme, et vous obtenez 80 % de la valeur.
Il n'est pas fait pour vous si vous êtes plus de 100 personnes avec une équipe CI dédiée qui produit des battle cards, ou si personne dans votre boîte n'aime la ligne de commande. Dans le premier cas, restez chez Klue ou Crayon — leur workflow curator est réellement supérieur. Dans le second, regardez du côté de Kompyte à 3 300 €/an, ou d'outils français comme Meltwater ou Digimind. Vous paierez plus cher, mais vous ne serez pas seul face à un webhook cassé un vendredi soir.
Trois actions concrètes si vous vous lancez cette semaine : (1) listez vos 12 concurrents en trois tiers avant de toucher un seul outil — c'est là que 80 % du succès du pipeline se joue ; (2) partez sur n8n cloud à 24 €/mois le premier mois pour valider le workflow, basculez self-hosted quand vous êtes sûr ; (3) fixez-vous une contrainte forte : 15 signaux max par jour dans Slack, sinon le pipeline devient du bruit et personne ne l'ouvrira.