# Documentation CiteMe > CiteMe mesure et améliore la visibilité d’une marque dans les réponses des moteurs IA (ChatGPT, Claude, Gemini, Perplexity, Grok, Google AI Overviews...). Documentation en français : guides produit, API REST, serveur MCP et CLI. This file contains all documentation content in a single document following the llmstxt.org standard. ## Documentation CiteMe CiteMe mesure si les moteurs IA citent votre marque quand on leur pose les questions de votre marché, et vous aide à améliorer cette visibilité. Un audit pose vos prompts à ChatGPT, Claude, Gemini, Perplexity, Grok, Google AI Overviews, DeepSeek, Meta AI, Mistral et Siri, puis relève qui est cité, avec quelles sources et dans quel ton. - [Démarrer](./getting-started) Créer un projet, choisir vos prompts et lancer le premier audit. - [Agents & intégrations](./agents) Piloter CiteMe depuis Claude, ChatGPT ou un terminal avec le serveur MCP et la CLI. - [API](./api/introduction) Lire vos projets, audits et suggestions depuis vos propres outils. - [Tutoriels](./tutorials/) Connecter LinkedIn, WordPress, GitHub, Google Search Console et d'autres services. ### Par où commencer 1. [Installation et configuration](./getting-started) : le parcours d'inscription, étape par étape. 2. [Votre premier audit](./first-audit) : ce que fait un audit et comment lire ses résultats. 3. [Le score GEO](./plateforme/geo-score) : comment le score est calculé à partir des réponses des moteurs. 4. [Prompts, thèmes et marchés](./plateforme/prompts) : les questions que CiteMe pose aux moteurs, et comment les choisir. ### Comprendre le GEO Le Generative Engine Optimization consiste à rendre une marque citable par les moteurs IA, comme le SEO la rend visible dans Google. La section [Le concept GEO](./concept-geo/what-is-geo) explique comment ces moteurs choisissent leurs sources et ce qui rend un contenu facile à citer. ### Automatiser Les [Actions](./actions/) enchaînent audits, agents IA et publications sur votre CMS dans des workflows visuels, avec une validation humaine avant la mise en ligne si vous le souhaitez. :::tip Pour les agents IA Chaque page existe aussi en Markdown : ajoutez `.md` à son URL. [`/llms.txt`](pathname:///llms.txt) liste toutes les pages et [`/llms-full.txt`](pathname:///llms-full.txt) les regroupe en un seul fichier. ::: --- ## Installation et configuration Le parcours d'inscription prend quelques minutes. Il crée votre compte, votre premier projet et vos premiers prompts, puis lance un premier audit en arrière-plan. Vous n'avez aucune clé d'API de fournisseur IA à fournir. ### 1. Créer le compte L'inscription demande votre adresse e-mail, votre prénom, votre nom et un mot de passe. Votre organisation est créée automatiquement à ce moment-là : c'est elle qui porte l'abonnement, les projets et les membres de l'équipe. ### 2. Ajouter votre site L'écran **Ajoutez votre site** crée votre premier projet. Un projet correspond à un site. | Champ | À savoir | |-------|----------| | **Nom du projet** | Entre 2 et 60 caractères, par exemple le nom de votre marque | | **URL du site** | Le domaine principal, pas une page précise. `https://` est ajouté automatiquement | | **Marché cible** | Pays et langue du contenu, déduits de votre site. Cliquez sur **Modifier** pour les changer | | **Agence** | Cochez « Je suis une agence et je gère plusieurs clients » si c'est votre cas | En cliquant sur **Lancer le scan**, CiteMe lit votre page d'accueil, en tire votre secteur d'activité et prépare des suggestions de prompts et de concurrents. ### 3. Choisir un forfait L'écran **Choisissez votre plan** présente les forfaits. Il est sauté si votre organisation a déjà un abonnement payant. Les étapes suivantes demandent un abonnement actif. Le détail des forfaits est sur la page [Forfaits et quotas](./admin/billing). ### 4. Choisir vos prompts L'écran **Vos requêtes d'audit** propose des prompts rangés par thème, générés à partir du contenu de votre site. Cochez ceux qui ressemblent aux questions que vos clients posent aux IA, et ajoutez les vôtres si besoin. Il faut au moins un prompt, et au plus 10 ou le quota de votre forfait s'il est plus bas. Les prompts sont des questions complètes, pas des mots-clés. La page [Prompts, thèmes et marchés](./plateforme/prompts) explique comment bien les écrire. ### 5. Ajouter vos concurrents L'écran **Vos concurrents** suggère jusqu'à cinq concurrents, avec la raison de chaque suggestion, et vous pouvez saisir d'autres domaines. Cette étape est facultative. Le nombre de concurrents suivis dépend de votre forfait. Le même écran vous fait choisir le **moteur IA du premier audit**. Le premier audit tourne sur ce seul moteur. Vous pourrez en lancer d'autres, sur d'autres moteurs, depuis le tableau de bord. ### 6. Connecter vos sources de données L'écran **Connectez vos sources de données** est facultatif. Selon votre site, il propose l'Impact IA (le suivi des visites venues des moteurs IA), Google Search Console et Google Merchant Center. Tout reste disponible plus tard depuis le tableau de bord. ### 7. Le premier audit L'écran **Votre premier audit** met l'audit en file d'attente, puis vous emmène sur votre tableau de bord. L'audit continue en arrière-plan et pose chacun de vos prompts actifs au moteur choisi à l'étape 5. Ses résultats apparaissent dans **Audit > Audit GEO** quand il est terminé. La page [Votre premier audit](./first-audit) explique comment les lire. ### Ce que CiteMe analyse sur votre site Une fois l'abonnement actif, CiteMe parcourt votre site pour connaître son contenu. Il cherche votre sitemap dans `robots.txt`, puis à `/sitemap.xml` et `/sitemap_index.xml`, et revient vers les liens de la page d'accueil si aucun sitemap n'existe. Le nombre de pages lues dépend de votre forfait, et le sitemap est relu chaque semaine. Le texte de chaque page est découpé en passages d'environ 1 000 caractères qui se chevauchent, puis converti en vecteurs. C'est ce qui permet à CiteMe de suggérer des prompts proches de votre offre et de relier votre contenu aux réponses des moteurs. :::warning Cloudflare et pare-feu applicatif Le robot de CiteMe s'identifie avec le User-Agent `CiteMe Bot/1.0`. Si votre pare-feu bloque les robots inconnus, autorisez ce User-Agent, sinon une partie de vos pages ne sera pas lue. ::: ### Les moteurs IA interrogés CiteMe interroge les moteurs avec ses propres accès. Le coût des requêtes est compris dans votre forfait et rien n'est facturé sur un compte OpenAI, Anthropic ou Google à votre nom. | Forfait | Moteurs disponibles | |---------|---------------------| | Free et Starter | ChatGPT, Gemini, Perplexity, Google AI Overviews, jusqu'à 3 par audit | | Pro et Expert | ChatGPT, Claude, Gemini, Perplexity, Grok, Google AI Overviews, DeepSeek, Meta AI, Mistral, Siri | ### Les intégrations Les intégrations se règlent par projet dans **Configuration > Intégrations** : Google Search Console, Bing Webmaster Tools, Google Analytics 4, Google Merchant Center, votre CMS (WordPress, Shopify), votre CRM (HubSpot, GoHighLevel, Attio) et Stripe. Le bouton **Ajouter une clé** enregistre les accès servant à publier, par exemple LinkedIn, Medium, X ou Webflow. Ces clés sont chiffrées en AES-256-GCM avant d'être stockées. ### L'équipe Tous les forfaits permettent d'inviter des membres. Le nombre total de membres de l'organisation, vous compris, dépend du forfait : 2 en Free et Starter, 3 en Pro, sans limite en Expert. Une invitation donne l'un de ces rôles sur le projet : | Rôle | Ce qu'il permet | |------|-----------------| | **Admin** | Plein contrôle du projet, y compris les invitations | | **Éditeur** | Gérer les suggestions et les audits | | **Lecteur** | Consulter, sans rien modifier | La page [Gestion d'équipe](./admin/team) donne le détail. **[Lancer votre premier audit](./first-audit)** --- ## Votre premier audit Un audit pose vos prompts aux moteurs IA, lit leurs réponses et relève si votre marque y est citée, avec quelles sources et dans quel ton. Il en tire le [score GEO](./plateforme/geo-score) du projet. Le premier audit est lancé automatiquement à la fin de l'inscription, sur un seul moteur. ### Lancer un audit Dans le tableau de bord, ouvrez **Audit > Audit GEO** puis cliquez sur **Lancer un Audit**. La fenêtre **Configuration de l'audit** vous fait choisir les moteurs à interroger et affiche une estimation de durée. Le lancement manuel est disponible sur les forfaits Pro et Expert. Un audit a besoin d'au moins un prompt actif. Si le projet n'en a pas, CiteMe vous propose de les configurer d'abord dans **Prompts**. #### Combien de prompts sont testés Chaque forfait fixe un nombre de requêtes IA par audit : 12 en Free et Starter, 20 en Pro, 200 en Expert. Une requête, c'est un prompt posé à un moteur. Plus vous choisissez de moteurs, moins de prompts tiennent dans un même audit. #### Fiabilité sur trois passes Les réponses des moteurs varient d'un appel à l'autre. Sur les forfaits Pro et Expert, vous pouvez demander trois passes par prompt : CiteMe pose alors chaque prompt trois fois à chaque moteur et affiche une **Marge de fiabilité (3 passes)** avec l'écart entre les passes. Par défaut, chaque prompt est posé une fois. Google AI Overviews n'est pas concerné par les passes multiples. ### Ce qui se passe pendant l'audit #### Les questions posées Chaque prompt actif est envoyé tel quel à chaque moteur choisi. CiteMe y ajoute une consigne qui demande au moteur de chercher sur le web avant de répondre, de nommer les entreprises et services qu'il recommande et de donner ses sources. Si le prompt est rattaché à un marché, le moteur doit répondre dans la langue de ce marché, comme un utilisateur situé dans ce pays. La recherche web est activée sur tous les moteurs. Pour Google AI Overviews, CiteMe ne pose pas de question à un modèle : il lit la page de résultats Google du prompt et récupère l'AI Overview affiché. Quand Google n'en affiche pas, le prompt est écarté du score pour ce moteur. #### La détection des citations CiteMe cherche votre marque dans chaque réponse, du signal le plus fort au plus faible : 1. un lien vers une page de votre site ; 2. votre nom de domaine ; 3. le nom de votre marque, en mot entier ; 4. le nom de domaine sans son extension. Les sources que le moteur affiche avec sa réponse comptent aussi. Quand un cas est ambigu, par exemple un nom de marque qui est aussi un mot courant, un modèle IA vérifie si la mention désigne bien votre marque. #### Le sentiment Chaque citation est classée **Positif**, **Neutre** ou **Négatif** selon le contexte de la mention. Une citation dans un contexte négatif compte beaucoup moins dans le score qu'une recommandation. #### La position Pour chaque réponse, CiteMe note votre rang parmi les concurrents suivis : 1 si vous êtes cité avant tous les autres, 2 si un concurrent est cité avant vous, et ainsi de suite. ### Lire les résultats La page **Audit GEO** affiche le dernier audit et l'historique. | Bloc | Ce qu'il montre | |------|-----------------| | **Taux de citation** | La part des prompts où votre marque est citée | | **Prompts testés**, **IA interrogées**, **Sources trouvées** | Le périmètre de l'audit | | **Score GEO** | Le score et sa composition : citations, technique, présence | | **Score GEO par modèle** | Le score de chaque moteur et son évolution | | **Performance par modèle** | Le taux de citation par moteur, et la position moyenne quand l'audit a été lancé en trois passes | | **Performance par topic** | Le taux de citation par thème de prompts | | **Analytiques avancées** | La distribution de confiance des citations et leur sentiment | | **Historique des audits** | Les audits précédents. Cliquez sur une ligne pour ouvrir son détail | Le tableau des réponses montre, prompt par prompt, ce que chaque moteur a répondu. C'est l'endroit où voir quelles sources ont été citées à votre place. La part de voix face à vos concurrents est sur la page **Concurrents**. Sur la vue détaillée d'un audit, le score est qualifié ainsi : | Score | Libellé | |-------|---------| | 80 à 100 | Excellent | | 60 à 79 | Bon | | 40 à 59 | Moyen | | 20 à 39 | Médiocre | | 0 à 19 | Critique | ### Et après 1. Repérez les prompts où vous n'êtes jamais cité et regardez les sources que les moteurs citent à votre place. 2. Comparez les moteurs entre eux : un écart fort entre deux moteurs peut indiquer que l'un d'eux ne trouve pas vos pages. 3. Corrigez le contenu et la structure des pages concernées. La section [Le concept GEO](./concept-geo/what-is-geo) donne les principes. 4. Relancez un audit sur les mêmes prompts pour mesurer l'effet. **[Comprendre le score GEO](./plateforme/geo-score)** --- ## Qu'est-ce que le GEO ? Concept fondamental Le **Generative Engine Optimization (GEO)** désigne l'ensemble des techniques permettant d'augmenter la probabilité qu'une marque, un produit ou un contenu soit **cité et recommandé** par les moteurs de réponse basés sur l'intelligence artificielle : ChatGPT, Claude, Gemini, Perplexity, et tous les systèmes de recherche conversationnelle qui émergent. Le terme a été formalisé par des chercheurs de **Princeton** et **Georgia Tech** dans un article fondateur qui a démontré que les modèles de langage peuvent être incités à citer des sources spécifiques grâce à des modifications structurelles et sémantiques précises du contenu web. Contrairement au SEO qui optimise pour les algorithmes de classement de Google, le GEO optimise pour les algorithmes de génération de texte des LLM. --- ### Pourquoi le SEO ne suffit plus Depuis 2024, une transformation profonde du comportement de recherche est en cours. De plus en plus d'utilisateurs posent leurs questions directement à des assistants IA au lieu de taper des mots-clés dans Google. Cette évolution change fondamentalement la manière dont l'information est découverte et consommée. #### Le problème de l'intermédiation IA Quand un utilisateur demande à ChatGPT "Quel est le meilleur outil de gestion de projet pour une startup ?", l'IA ne renvoie pas une liste de liens bleus. Elle synthétise une réponse directe, citant certaines marques et en ignorant d'autres. Si votre outil n'est pas mentionné dans cette réponse, **vous n'existez pas** pour cet utilisateur — même si votre site est en première page de Google. #### Chiffres clés Selon les études récentes du secteur, le trafic organique vers les sites web depuis Google a baissé de 25 à 40% sur les requêtes informationnelles depuis l'introduction de Google SGE (AI Overviews). Parallèlement, le nombre de requêtes effectuées sur ChatGPT a dépassé les 100 millions de requêtes quotidiennes, et Claude dépasse les 50 millions d'utilisateurs actifs mensuels. > Les recommandations IA ont une **valeur de conversion 10x supérieure** aux bannières publicitaires standards, car les utilisateurs font davantage confiance à une recommandation IA qu'à un contenu promotionnel. Quand ChatGPT recommande votre produit, c'est perçu comme un avis d'expert objectif. --- ### SEO vs GEO : comparaison détaillée | Critère | SEO Traditionnel | GEO | |---------|-----------------|-----| | **Principe** | Pages indexées classées par popularité et backlinks | Concepts vectorisés et réponses synthétisées par les LLM | | **Objectif** | Attirer des humains via les clics sur les liens bleus | Devenir la source de vérité que l'IA cite et recommande | | **Focus technique** | Mots-clés exacts, quantité de liens, meta-tags | Cohérence sémantique, densité factuelle, données structurées | | **Mesure** | Position dans les SERP (1ère, 2ème, 3ème...) | Fréquence de citation et position dans les réponses IA | | **Temporalité** | Index mis à jour périodiquement par les crawlers | Connaissance figée dans les données d'entraînement + RAG en temps réel | | **Concurrence** | 10 positions organiques par page | Généralement 1 à 3 marques citées par réponse | Le GEO ne remplace pas le SEO — il le complète. Un bon positionnement Google reste important, mais il ne garantit plus que vous serez mentionné par les IA. CiteMe vous aide à mesurer et combler ce nouveau fossé de visibilité. --- ### Les trois piliers du GEO Toute stratégie GEO efficace repose sur trois piliers complémentaires. La dernière section de cette page montre ce que CiteMe mesure pour chacun. #### Pilier 1 : Ancrage Factuel L'IA déteste l'incertitude. Les modèles de langage attribuent un score de confiance interne à chaque information qu'ils génèrent. Plus votre contenu offre des **faits bruts, chiffres, dates et noms propres**, plus le modèle est confiant pour vous citer, car vous réduisez sa "perplexité" — c'est-à-dire son niveau d'incertitude. Un contenu marketing vague comme *"Notre équipe passionnée offre des expériences exceptionnelles"* a une perplexité élevée pour un LLM : il ne contient aucun fait vérifiable. En revanche, *"Acme, fondée en 2019 à Lyon, équipe 3 000 PME dans 5 pays"* (exemple fictif) contient 4 faits vérifiables (date, lieu, nombre de clients, nombre de pays) qui ancrent la confiance du modèle. #### Pilier 2 : Autorité Sémantique Les LLM évaluent votre autorité non pas par le nombre de backlinks (comme Google) mais par votre **proximité vectorielle** avec les concepts experts de votre domaine. Concrètement, quand vous écrivez sur un sujet, l'IA mesure si vos mots, concepts et structures de phrases ressemblent à ceux d'un expert reconnu ou d'un novice. L'autorité sémantique se construit en couvrant un sujet à **360 degrés** : définitions, comparaisons, cas d'usage, limites, historique, perspectives. Plus votre réseau de concepts est dense et interconnecté, plus l'IA vous considère comme une référence. #### Pilier 3 : Lisibilité Machine Les formats structurés sont **le langage natif** des agents conversationnels. Quand un LLM doit extraire de l'information de votre page, il parse le HTML et recherche des structures qu'il peut facilement interpréter : - **Listes à puces et numérotées** — Structurent l'information en éléments discrets - **Tableaux comparatifs** — Permettent à l'IA de répondre à des requêtes "versus" - **Schema.org / JSON-LD** — Fournissent des métadonnées structurées interprétables sans ambiguïté - **Hiérarchie de titres (H1-H6)** — Crée une architecture sémantique navigable - **FAQ structurées** — Mappent directement sur les patterns question/réponse des LLM --- ### Comment CiteMe applique ces principes Chaque audit CiteMe mesure ces piliers sous trois angles, détaillés sur la page [Score GEO](../plateforme/geo-score.md) : - **Les citations** : vos prompts sont posés aux moteurs IA, et CiteMe relève si votre site est cité, avec quelles sources et dans quel ton. - **L'audit technique** : données structurées JSON-LD, découvrabilité par les IA (`llms.txt`, robots), métadonnées, contenu et structure HTML de vos pages. - **L'autorité de marque** : la place de votre marque hors de votre site, avec son empreinte, sa présence sur les plateformes, l'autorité de son domaine et sa réputation. **[Algorithmes et Modèles LLM →](./llm-algorithms)** --- ## Moteurs IA et modèles Un moteur IA associe un modèle de langage à un moyen de trouver des sources : une recherche web, l'index de Google ou les publications d'une plateforme. Deux moteurs ne cherchent pas au même endroit et ne citent pas les mêmes pages. C'est pourquoi votre visibilité peut être bonne sur un moteur et nulle sur un autre, et pourquoi CiteMe mesure chaque moteur séparément. ### Comment un moteur choisit ses sources Quand la question demande des informations récentes ou précises, le moteur lance une recherche, récupère une poignée de pages, puis rédige sa réponse en s'appuyant sur certaines d'entre elles. Deux conditions doivent être réunies pour être cité : 1. **Être trouvé.** La page doit être accessible aux robots, indexée et pertinente pour la requête que le moteur formule à partir de la question. 2. **Être citable.** Le passage utile doit se comprendre seul : une affirmation claire, des chiffres, des noms, une structure de titres qui dit de quoi parle chaque section. Les modèles reposent sur l'architecture Transformer, qui lit un passage en entier et pondère chaque mot par rapport aux autres. Un paragraphe précis et autonome se réutilise mieux qu'un paragraphe vague qui dépend de son contexte. ### Les moteurs interrogés par CiteMe CiteMe interroge chaque moteur par API, avec la recherche web activée, et lui demande de citer les entreprises qu'il recommande et ses sources. | Moteur | Éditeur | Ce que CiteMe interroge | |--------|---------|-------------------------| | ChatGPT | OpenAI | Un modèle GPT avec recherche web | | Claude | Anthropic | Un modèle Claude avec recherche web | | Gemini | Google | Un modèle Gemini avec recherche web | | Perplexity | Perplexity | Un modèle Sonar, qui cherche toujours sur le web et affiche ses sources | | Grok | xAI | Un modèle Grok avec recherche web | | Google AI Overviews | Google | La page de résultats Google du prompt et l'AI Overview qu'elle affiche | | DeepSeek | DeepSeek | Un modèle DeepSeek avec recherche web | | Meta AI | Meta | Un modèle Llama avec recherche web | | Mistral | Mistral AI | Un modèle Mistral avec recherche web | | Siri | Apple | Une simulation : Apple ne propose pas d'API à interroger, un modèle Gemini tient ce rôle | Les moteurs disponibles dépendent de votre forfait, voir [Forfaits et quotas](../admin/billing.md). :::info API et application grand public Une réponse obtenue par API peut différer de celle que voit un utilisateur dans l'application : l'application ajoute sa propre personnalisation, l'historique de la conversation et parfois une autre version du modèle. L'audit mesure une tendance sur un ensemble de prompts, pas la réponse exacte qu'un utilisateur précis recevra. ::: ### Ce qui change d'un moteur à l'autre **Les moteurs qui cherchent sur le web** (ChatGPT, Claude, Gemini, Grok, DeepSeek, Meta AI, Mistral) citent les pages que leur recherche leur renvoie. Les fondamentaux du référencement comptent donc toujours : une page introuvable ne sera pas citée, même si elle est excellente. **Perplexity** cherche à chaque question et affiche ses sources à côté de la réponse. Quand votre site apparaît dans ces sources, CiteMe le compte comme une citation, même si la marque n'est pas nommée dans le texte. **Google AI Overviews** résume les résultats de Google. Votre positionnement dans Google sur la requête pèse directement. Toutes les requêtes n'affichent pas d'AI Overview : CiteMe écarte du score celles qui n'en ont pas. **Grok** est l'assistant de X. Une présence active sur X donne plus de matière à citer sur votre marque. ### Les réponses varient Un modèle ne répond pas deux fois exactement de la même façon. Le même prompt peut citer votre marque à un appel et l'omettre au suivant. Pour juger une évolution, comparez des audits lancés sur les mêmes prompts et les mêmes moteurs, et utilisez les trois passes des forfaits Pro et Expert quand vous voulez mesurer l'écart. La page [Score GEO](../plateforme/geo-score.md) l'explique en détail. ### Fenêtres de contexte La fenêtre de contexte est la quantité de texte qu'un modèle peut lire en une fois. Elle atteint aujourd'hui des centaines de milliers de tokens, mais un texte long n'est pas lu uniformément. :::warning Lost in the Middle Les modèles exploitent moins bien les informations placées au milieu d'un long texte que celles du début et de la fin. Placez l'essentiel dans les premiers paragraphes d'une page et sous des titres explicites. ::: **[Vecteurs et faits](./vectors-facts.md)** --- ## Vecteurs et Faits : La Science du GEO Science Derrière chaque recommandation IA se cache un processus mathématique précis. Comprendre comment les modèles de langage transforment votre contenu en représentations numériques, et comment ils évaluent la "valeur informationnelle" de chaque phrase, vous donne un avantage concurrentiel majeur dans votre stratégie GEO. Cette section plonge dans les mécanismes techniques qui gouvernent la sélection des sources par les LLM. --- ### L'espace latent (Espace vectoriel) Chaque phrase, paragraphe ou page de votre site web est transformé en un **Embedding** — un vecteur numérique dans un espace à haute dimension (typiquement 768 à 4096 dimensions). Cette représentation numérique encode le **sens** de votre contenu, pas ses mots exacts. Deux phrases qui expriment la même idée avec des mots différents auront des embeddings proches dans l'espace vectoriel. Inversement, deux phrases qui partagent les mêmes mots mais dans des contextes différents auront des embeddings éloignés. L'objectif GEO central est de **minimiser la distance cosinus** entre les requêtes de vos prospects et votre contenu. Plus cette distance est faible, plus l'IA considère votre contenu comme pertinent pour répondre à la requête. :::info Comment fonctionne le retrieval Quand un utilisateur pose une question à un LLM équipé de RAG (comme Perplexity ou les plugins de browsing de ChatGPT), le système transforme d'abord la question en embedding, puis recherche dans sa base de données les chunks de contenu web dont les embeddings sont les plus proches. Ces chunks deviennent le "contexte" à partir duquel le modèle génère sa réponse. Si votre contenu n'est pas parmi les chunks les plus proches, il ne sera jamais utilisé pour générer la réponse. ::: --- ### Unités de Connaissance (UK) On peut évaluer la valeur informationnelle d'un texte à travers les **Unités de Connaissance** (UK) — des faits atomiques, vérifiables et non ambigus. Une UK est une information qui peut être confirmée ou infirmée de manière objective. #### Comparaison de densité **Contenu à faible densité (SEO traditionnel) :** > *"Notre équipe d'experts passionnés travaille chaque jour pour offrir des expériences exceptionnelles à nos clients."* **Analyse :** 0 UK détectée. Chaque élément de cette phrase est subjectif, non mesurable et non vérifiable. Un LLM ne peut pas extraire d'information factuelle exploitable de ce texte. **Contenu à haute densité (Optimisé GEO) :** > *"Acme, fondée en 2019 à Lyon par une équipe de 12 ingénieurs, équipe plus de 3 000 PME avec son logiciel de paie sur 5 pays, avec un temps de traitement moyen de 4,2 secondes par bulletin."* (exemple fictif) **Analyse :** 7 UK détectées : 1. Nom de l'entreprise : Acme 2. Date de fondation : 2019 3. Lieu : Lyon 4. Taille de l'équipe : 12 ingénieurs 5. Nombre de clients : 3 000+ 6. Nombre de pays : 5 7. Temps de traitement : 4,2 secondes :::danger Point critique L'IA "consomme" les UK pour construire ses réponses. Le contenu vide de substance (ce qu'on appelle le "fluff content" ou "corporate speak") est **systématiquement ignoré** lors de la synthèse générative. Un LLM préfère toujours un paragraphe court et dense en faits à un long paragraphe de marketing générique. ::: --- ### Hiérarchie des faits Tous les faits ne portent pas le même poids pour un LLM. Le tableau suivant les classe selon leur capacité à ancrer la confiance d'un modèle, ce que la recherche en NLP appelle les "grounding signals". | Rang | Type de fait | Poids | Exemples | Pourquoi | |------|-------------|-------|----------|----------| | 1 | Chiffres et Statistiques | Très élevé | "74%", "12ms", "500 EUR", "x3.5" | Les nombres sont les informations les plus facilement vérifiables et les moins ambiguës | | 2 | Entités nommées | Élevé | Noms de marques, personnes, technologies, lieux | Les entités ancrent l'information dans la réalité et réduisent les possibilités d'hallucination | | 3 | Dates et Événements | Élevé | "Q1 2026", "lancé en mars 2025", "depuis 10 ans" | La temporalité ajoute un axe de vérification et de contexte | | 4 | Comparaisons factuelles | Moyen | "2x plus rapide que X", "30% moins cher que Y" | Les comparaisons aident le modèle à positionner votre offre dans un espace relatif | | 5 | Citations et Références | Moyen | Sources académiques, études sectorielles | Les références externes renforcent la crédibilité perçue | #### Implications pratiques Pour chaque page clé de votre site, visez un minimum de **5 UK par section** (environ 200-300 mots). --- ### Analyse sémantique en pratique Pour évaluer une page, relisez-la section par section et comptez les faits vérifiables de chacune : chiffres, dates, noms propres, comparaisons explicites. Une section qui n'en contient aucun a peu de chances d'être reprise par un moteur IA. Commencez par les sections les moins denses : ajoutez des chiffres sourcés, nommez les entités concernées et donnez des comparaisons explicites. **[Optimisation RAG →](./rag-optimization)** --- ## Optimisation RAG Interne Technique Le RAG (Retrieval Augmented Generation) est le mécanisme par lequel les LLM enrichissent leurs connaissances en temps réel. Quand Perplexity ou le mode browsing de ChatGPT répondent à une question, ils ne se fient pas uniquement à leurs données d'entraînement : ils recherchent activement du contenu web pertinent, l'ingèrent, et l'utilisent comme base pour générer leur réponse. Comprendre comment fonctionne ce processus d'ingestion et optimiser votre site pour être **facilement et fidèlement ingéré** est un levier GEO majeur. CiteMe lit votre site de la même manière pour connaître votre contenu. --- ### Comment CiteMe lit votre site #### 1. Découverte et lecture des pages Le robot de CiteMe s'identifie avec le User-Agent `CiteMe Bot/1.0`. Il cherche votre sitemap dans `robots.txt`, puis à `/sitemap.xml` et `/sitemap_index.xml`, et suit les liens de la page d'accueil si aucun sitemap n'existe. Le nombre de pages lues dépend de votre forfait. Le texte de chaque page est extrait de son HTML. #### 2. Découpage Le texte est découpé en passages d'environ **1 000 caractères**, qui se chevauchent de 200 caractères pour qu'une idée coupée en deux reste lisible dans l'un des deux passages. #### 3. Vectorisation Chaque passage est converti en un vecteur de 1 536 dimensions avec le modèle `text-embedding-3-small` d'OpenAI, puis stocké dans l'index vectoriel du projet. CiteMe s'en sert notamment pour suggérer des prompts proches de votre offre. --- ### Optimiser votre "Ingestibilité" #### Crawlabilité Votre site doit être **facilement et complètement crawlable** par les robots IA. Les points de vérification essentiels : - **Sitemap à jour** — CiteMe utilise votre `sitemap.xml` comme source principale de découverte. Assurez-vous qu'il est complet, à jour, et inclut les dates de dernière modification - **Robots.txt** — Autorisez les robots des moteurs IA (`GPTBot`, `OAI-SearchBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`) dans votre fichier robots.txt. Le robot de CiteMe s'identifie avec le User-Agent `CiteMe Bot/1.0` - **Temps de réponse** — Un site lent ralentit le crawl. Visez un temps de réponse inférieur à 500ms par page - **Pas de contenu bloqué** — Évitez le contenu chargé exclusivement via JavaScript client-side (SPA sans SSR), qui est invisible pour la plupart des crawlers IA #### Enrichissement des métadonnées Les données structurées jouent un rôle crucial dans l'interprétabilité de votre contenu par les systèmes RAG : - **Schema.org / JSON-LD** — Implémentez les schémas pertinents pour vos types de contenu (Product, Article, FAQ, HowTo, Organization, Review) - **Open Graph et meta descriptions** — Fournissent un résumé structuré de chaque page qui aide les systèmes RAG à contextualiser le chunk - **Breadcrumbs structurées** — Aident les crawlers à comprendre la hiérarchie de votre contenu - **Données tabulaires** — Les tableaux HTML bien structurés sont particulièrement bien extraits par les systèmes RAG --- ### Cycle de mise à jour de l'index | Paramètre | Valeur | |-----------|--------| | **Fréquence par défaut** | Synchronisation hebdomadaire automatique de votre index vectoriel | | **Synchronisation manuelle** | Disponible à tout moment si vous publiez du contenu fréquemment | | **Temps de ré-indexation** | 5 à 30 minutes selon la taille du site | | **Notification** | Email automatique à la fin de chaque ré-indexation | Nous recommandons de déclencher une synchronisation manuelle après chaque publication de contenu important, afin que votre prochain audit prenne en compte les dernières modifications. --- ### Confidentialité et Sécurité des données :::note Données strictement privées Votre index vectoriel est rattaché à votre projet. Il n'est pas partagé avec les autres utilisateurs de CiteMe et sert uniquement aux fonctionnalités de votre projet, comme la suggestion de prompts. ::: **[GEO Score →](../plateforme/geo-score)** --- ## Score GEO Le score GEO résume un audit sur une échelle de 0 à 100. Il dit à quel point les moteurs IA citent votre site quand on leur pose vos prompts, corrigé par la qualité technique du site et par l'autorité de la marque. Le score affiché en tête du tableau de bord est celui du dernier audit terminé. ### Le calcul Le score se calcule en deux temps. **À la fin de l'audit**, CiteMe combine trois composantes : ``` audit = citations × 0,5 + technique × 0,25 + présence × 0,25 ``` C'est la répartition affichée dans le bloc **Composition du score** de la page Audit GEO. **Juste après**, CiteMe lance l'analyse d'autorité de marque. Quand elle aboutit, son score compte pour 20 % du score GEO final : ``` score GEO = audit × 0,8 + autorité × 0,2 ``` Si l'analyse d'autorité ne peut rien mesurer ou échoue, le score de l'audit est conservé tel quel. ### Citations (50 %) Pour chaque réponse d'un moteur, CiteMe retient la meilleure citation trouvée et lui donne une valeur de confiance. La composante Citations est la moyenne de ces valeurs sur toutes les réponses de l'audit, ramenée sur 100. Une réponse qui ne vous cite pas vaut 0. | Ce que contient la réponse | Valeur | |----------------------------|--------| | Un lien vers une page de votre site | 1,00 | | Votre nom de domaine, ou votre site parmi les sources du moteur | 0,95 | | Votre marque, dans un contexte positif | 0,90 | | Votre marque, dans un contexte neutre | 0,80 | | Votre nom de domaine sans son extension | 0,60 | | Votre marque, dans un contexte négatif | 0,40 | | Votre marque, dans une comparaison défavorable | 0,30 | Une mention de domaine, ou de marque dans un contexte positif ou neutre, gagne 0,05 quand elle apparaît dans les premiers 30 % de la réponse. Les cas ambigus sont vérifiés par un modèle IA, et les détections trop faibles sont écartées. Le sentiment n'est donc pas une composante à part : il pèse à travers la valeur de la citation. Une recommandation vaut plus du double d'une mention négative. Pour Google AI Overviews, un prompt pour lequel Google n'affiche pas d'AI Overview est écarté du calcul. ### Technique (25 %) Le score global de l'audit technique que CiteMe mène sur votre site pendant l'audit. C'est une moyenne pondérée de plusieurs catégories de vérifications : | Catégorie | Poids | |-----------|-------| | Données structurées (JSON-LD) | 20 % | | Découvrabilité par les IA (`llms.txt`, robots, citabilité) | 20 % | | Métadonnées (titre, description) | 15 % | | Contenu | 15 % | | Structure HTML | 10 % | | Présence sociale | 10 % | | Sécurité (HTTPS, en-têtes) | 5 % | | Performance | 5 % | ### Présence (25 %) La note de la catégorie présence sociale du même audit technique, prise seule : les réseaux sociaux de la marque que CiteMe détecte sur votre site, dont LinkedIn. ### Autorité de marque (20 % du score final) L'analyse d'autorité mesure la place de la marque hors de votre site. Son score est une moyenne pondérée de huit dimensions : | Dimension | Poids | |-----------|-------| | Empreinte de la marque | 20 % | | Visibilité dans les IA | 20 % | | Présence multiplateforme | 15 % | | Autorité du domaine | 12 % | | Technique | 10 % | | Contenu et E-E-A-T | 10 % | | Réputation | 8 % | | Maturité de l'entreprise | 5 % | Quand une dimension ne peut pas être mesurée, son poids est réparti sur les autres. ### Lire les variations Les réponses des moteurs ne sont pas déterministes : le même prompt posé deux fois peut citer votre marque une fois sur deux. Deux mécanismes aident à faire la part du bruit : - **Les trois passes.** Sur les forfaits Pro et Expert, un audit lancé en trois passes pose chaque prompt trois fois à chaque moteur. Le score porte sur l'ensemble des passes, et la **Marge de fiabilité (3 passes)** indique l'écart entre elles. - **Le graphique par modèle.** Le graphique **Score GEO par modèle** lisse chaque point sur les cinq derniers audits de chaque moteur. Le score affiché en tête, lui, n'est pas lissé. Avant de conclure à une progression ou à une baisse, comparez des audits lancés sur les mêmes prompts et les mêmes moteurs. ### Les libellés La vue détaillée d'un audit qualifie le score : | Score | Libellé | |-------|---------| | 80 à 100 | Excellent | | 60 à 79 | Bon | | 40 à 59 | Moyen | | 20 à 39 | Médiocre | | 0 à 19 | Critique | **[Suggestions](./suggestions)** --- ## Suggestions Une suggestion est une modification concrète proposée pour améliorer votre visibilité dans les moteurs IA : une optimisation de page, un article, un post. Elles sont rassemblées sur la page **Suggestions IA** du projet, où vous les validez, les modifiez, les publiez ou les rejetez. :::info D'où viennent les suggestions aujourd'hui CiteMe ne génère plus de suggestions automatiquement après un audit. Une nouvelle suggestion est créée quand vous acceptez une recommandation de l'audit d'autorité (**Audit > Audit Autorité**) : elle devient une suggestion de type optimisation du site. Les suggestions créées auparavant restent dans la liste. ::: ### Les types | Type | Valeur dans l'API | Contenu | |------|-------------------|---------| | Optimisation du site | `WEBSITE_OPTIMIZATION` | Une modification à faire sur une page de votre site | | Article de blog | `BLOG_ARTICLE` | Un article à publier sur votre site | | Post LinkedIn | `LINKEDIN_POST` | Un post pour la page ou le profil de la marque | | Post X | `TWEET` | Un post ou un fil pour X | | Personnalisée | `CUSTOM` | Un contenu libre | Chaque suggestion porte un titre, son contenu, une justification, une difficulté (Facile, Moyen, Difficile) et un impact estimé sur 10. La page permet de filtrer par catégorie, par priorité et par statut, et d'exporter la liste. ### Les statuts | Statut | Valeur dans l'API | Signification | |--------|-------------------|---------------| | En attente | `PENDING` | La suggestion attend votre décision | | Validé | `APPROVED` | Vous l'avez acceptée | | Modifié | `EDITED` | Vous avez modifié son contenu | | Rejeté | `REJECTED` | Vous l'avez écartée | | Publié | `PUBLISHED` | Elle a été publiée par une intégration | | Appliqué | `APPLIED` | La modification est en ligne sur votre site | | Échec | `FAILED` | La publication ou l'application a échoué | | Supprimé | `DELETED` | Elle a été supprimée de la liste | Vous pouvez valider, rejeter ou supprimer plusieurs suggestions à la fois. Une suggestion déjà publiée ou appliquée n'est pas modifiée par une action groupée. ### Appliquer une suggestion Depuis le détail d'une suggestion, vous pouvez : - **copier son contenu** et l'intégrer vous-même, puis la marquer comme appliquée ; - **la publier sur Webflow ou WordPress** si l'intégration est configurée dans **Configuration > Intégrations** ; - **vérifier la page en ligne** : CiteMe relit l'URL concernée et indique quels points de la suggestion sont bien en place. Une suggestion validée avec une date de publication est publiée automatiquement à cette date, sur LinkedIn, WordPress, X ou Webflow selon son type. ### Après l'application Quand une suggestion est publiée ou appliquée, CiteMe enregistre la modification avec sa date, sa provenance (vérifiée, déclarée ou détectée) et l'audit de référence qui la précède. Pour mesurer l'effet d'une suggestion, comparez les audits lancés avant et après sur les mêmes prompts et les mêmes moteurs. ### Depuis un agent ou l'API - Le [serveur MCP](../mcp/index.md) et la [CLI](../cli/index.md) listent les suggestions et peuvent les valider ou les rejeter. - L'[API](../api/suggestions.md) renvoie les suggestions d'un projet en lecture. **[Veille concurrentielle](./competitors.md)** --- ## Veille Concurrentielle GEO Intelligence Le GEO fonctionne comme un jeu à **somme nulle**. Contrairement au SEO où des dizaines de sites peuvent se partager les positions organiques, une réponse IA ne cite typiquement que 1 à 3 sources. Si un concurrent est cité, il occupe un espace que vous ne pouvez pas occuper simultanément. Comprendre **qui** est cité par les IA, **pourquoi** elles leur font confiance, et **comment** leur stratégie de contenu se compare à la vôtre est essentiel pour élaborer une stratégie GEO gagnante. C'est exactement ce que le module de Veille Concurrentielle de CiteMe vous apporte. --- ### Share of Model (SoM) Le **Share of Model** est une métrique propriétaire CiteMe qui représente le pourcentage de réponses IA mentionnant une marque spécifique sur un ensemble de requêtes thématiques. C'est l'équivalent GEO du "Share of Voice" en marketing traditionnel. Si un concurrent détient 60% de Share of Model sur le thème "outils de gestion de projet pour startup", cela signifie que dans 60% des réponses générées par les LLM sur ce thème, cette marque est mentionnée. Elle contrôle effectivement la perception de l'IA sur ce sujet. L'objectif stratégique du GEO compétitif est de **capturer progressivement le Share of Model** de vos concurrents en renforçant votre autorité sémantique sur les requêtes cibles où ils vous devancent. #### Lecture du dashboard concurrentiel Le dashboard affiche pour chaque concurrent : | Métrique | Description | |----------|-------------| | **SoM global** | Pourcentage moyen de mentions sur l'ensemble des requêtes | | **SoM par modèle** | Répartition par modèle IA (un concurrent peut dominer sur GPT mais être invisible sur Claude) | | **Tendance** | Évolution du SoM sur les 30/60/90 derniers jours | | **Requêtes dominées** | Liste des requêtes où ce concurrent est cité en première position | | **Score de densité factuelle** | Estimation de la densité UK du contenu concurrent (basée sur l'analyse des réponses IA) | --- ### Ajouter des concurrents La plateforme permet d'ajouter jusqu'à **5 domaines concurrents** sur le plan Starter, **10 sur le plan Pro**, et **20 sur le plan Expert**. Pour chaque concurrent ajouté, CiteMe exécute trois processus analytiques complémentaires. #### Scan structurel Analyse automatique du site concurrent pour évaluer : - Implémentation JSON-LD et Schema.org - Hiérarchie des titres (H1-H6) et profondeur sémantique - Densité factuelle estimée par page - Fréquence de mise à jour du contenu - Présence de données structurées (FAQ, How-to, Product, Review...) Cette analyse vous révèle la **formule de succès** de vos concurrents : quels éléments techniques et structurels contribuent à leur visibilité IA supérieure. #### Comparaison de scores Chaque audit CiteMe simule les mêmes requêtes pour votre site et pour chacun de vos concurrents. Cela crée un **benchmarking GEO en temps réel** qui vous montre exactement où vous vous situez par rapport à chaque concurrent, requête par requête, modèle par modèle. #### Analyse des gaps sémantiques CiteMe identifie les "gaps" — les sujets, concepts ou types de contenu que vos concurrents couvrent et que vous ne couvrez pas. Ces gaps sont à l'origine de leurs citations et de votre absence. --- ### Alertes de dérive sémantique Le système envoie des notifications automatisées (email et notification dashboard) pour deux scénarios critiques qui nécessitent votre attention immédiate. #### Alerte de perte de citation Déclenchée quand vous perdez votre position de source primaire sur une requête où vous étiez précédemment cité en premier. CiteMe identifie automatiquement quel concurrent vous a déplacé et analyse son contenu récent pour comprendre ce qui a changé. #### Alerte de nouvelle opportunité Déclenchée quand un nouveau domaine commence à être cité par les IA sur des requêtes de votre secteur. Cela signale l'émergence d'un nouveau concurrent ou la formation de **nouveaux clusters sémantiques** où le positionnement est encore possible. Les premières marques à se positionner sur un nouveau cluster bénéficient d'un avantage significatif car les LLM tendent à maintenir leurs préférences de citation dans le temps. :::info Disponibilité L'analyse concurrentielle est incluse dans tous les forfaits **Pro** et supérieur. Le plan Starter inclut le suivi de base (SoM global uniquement) pour 5 concurrents. ::: **[Prompts, thèmes et marchés →](./prompts)** --- ## Prompts, thèmes et marchés Plateforme Un audit GEO ne travaille pas sur des mots-clés mais sur des **prompts** : des questions complètes, telles qu'un utilisateur les poserait à ChatGPT, Claude, Gemini ou Perplexity. CiteMe les pose à chaque moteur choisi, puis regarde si votre marque est citée dans la réponse, à quelle position et avec quel sentiment. Les [mots-clés](./keywords) servent à autre chose et ne sont jamais posés aux moteurs. --- ### Le prompt Un prompt est une question de 10 à 1000 caractères, rangée dans un thème. > Bon : *« Quel outil choisir pour savoir si ma marque est citée par ChatGPT ? »* > > Mauvais : *« outil geo »* Plus la question ressemble à ce qu'un vrai utilisateur écrit, avec son contexte et ses contraintes (budget, langue, taille d'équipe), plus la mesure est représentative. Chaque prompt a un statut : | Statut | Effet | |--------|-------| | **Actif** | Il est posé aux moteurs à chaque audit et compte dans votre quota de prompts | | **Archivé** | Il sort des audits et du quota, ses résultats sont conservés. On peut le réactiver | | **Suggéré** | CiteMe l'a trouvé lui-même (découverte, Search Console, visites IA). Il n'est posé qu'une fois activé | | **Écarté** | Vous avez refusé une suggestion, elle ne vous est plus reproposée | Le nombre de prompts actifs par projet dépend du forfait : 10 en Free et Starter, 20 en Pro, illimité en Expert. --- ### Le thème Un thème regroupe des prompts qui portent sur un même sujet (par exemple « comparatifs » ou « tarifs »). Il appartient à un marché. Les résultats d'un audit se lisent par thème, et déplacer un prompt dans un autre thème lui donne le marché de ce thème. Supprimer un thème ne supprime pas ses prompts : ils restent, sans thème. ### Le marché Un marché est un couple pays et langue. C'est lui qui décide dans quel pays et dans quelle langue chaque prompt est mesuré. Un projet a un marché principal, les prompts d'un thème sans marché précis passent par celui-là. --- ### Créer des prompts - **Dans le dashboard**, depuis l'écran des prompts, en collant une liste de questions. - **Depuis un assistant IA**, avec le [serveur MCP](../mcp/index.md) : `create_topic` puis `create_prompts` (jusqu'à 50 questions d'un coup dans un thème), ou `import_prompts` (jusqu'à 500 lignes réparties sur plusieurs thèmes et marchés). Voir [Piloter CiteMe depuis un agent IA](../agents.md). - **Par la découverte** : CiteMe peut chercher de nouvelles questions posées sur votre marché et vous les proposer comme prompts suggérés. Un prompt déjà présent dans le projet est signalé comme doublon : le reformuler pour contourner crée une quasi-copie qui occupe une place de plus dans votre quota. Créer un prompt ne lance pas d'audit. L'API publique ne permet pas de créer de prompts : `POST /projects/:id/keywords` ajoute un mot-clé, pas un prompt. --- ### Audit et prompts Un audit pose chaque prompt actif à chaque moteur sélectionné. Le nombre d'appels est borné par le forfait : avec beaucoup de prompts actifs, une partie seulement peut être mesurée à chaque audit. Si l'audit ne trouve aucun prompt actif, il n'y a aucune réponse à lire. Entre deux audits, le **suivi des prompts** les mesure à nouveau selon une cadence qui dépend du forfait (manuelle, hebdomadaire ou quotidienne). --- **[Mots-clés →](./keywords)** --- ## Mots-clés Plateforme Les mots-clés de CiteMe décrivent le sujet de votre site en quelques mots (100 caractères au maximum, enregistrés en minuscules). Ils aident CiteMe à comprendre votre marché, par exemple pour repérer vos concurrents ou proposer des thèmes. :::warning Les mots-clés ne sont pas les prompts Un audit GEO ne pose **pas** vos mots-clés aux moteurs IA. Il pose vos **[prompts](./prompts)** : des questions complètes, rangées par thème. Ajouter un mot-clé ne change donc rien à ce que mesure un audit. Pour changer les questions posées, créez ou activez des prompts. ::: --- ### Limites Le nombre de mots-clés par projet dépend du forfait : 10 en Free et Starter, 25 en Pro, illimité en Expert. Un mot-clé déjà présent est refusé. ### Par l'API `GET /projects/:id/keywords` les liste, `POST /projects/:id/keywords` en ajoute un par appel avec `{ "keyword": "..." }`. Voir [Mots-clés (API)](../api/keywords). --- ### Pourquoi des questions plutôt que des mots-clés Les utilisateurs d'IA ne tapent pas `best saas seo` comme sur Google. Ils posent des questions longues, avec du contexte et des contraintes, et c'est ce que CiteMe reproduit. | Comportement Google | Comportement IA générative | |--------------------|-----------------------------| | `best saas seo` | *« Peux-tu me recommander un outil SaaS pour améliorer mon SEO, idéalement dans un budget de 50 EUR par mois, avec une interface en français ? »* | | `crm startup comparatif` | *« Je cherche un CRM adapté à une startup de 15 personnes. Quels sont les avantages et inconvénients de chaque option ? »* | **[Prompts, thèmes et marchés →](./prompts)** --- ## Les Actions Automatisation Nouveau Les **Actions** sont le moteur d'automatisation de CiteMe. C'est un constructeur de workflows visuels — pensez à un Zapier ou un n8n dédié au **Generative Engine Optimization** — qui vous permet d'enchaîner des audits, des agents IA et des publications CMS sans écrire une ligne de code. La promesse est simple : au lieu de surveiller manuellement votre visibilité IA, de rédiger des correctifs et de les publier un par un, vous décrivez **une fois** la réaction souhaitée, et CiteMe l'exécute automatiquement à chaque fois que la condition se présente. > Exemple : « Quand mon score GEO chute de plus de 10 %, identifie la page responsable, réécris-la pour qu'elle redevienne citable, et republie-la sur mon site — mais demande-moi validation avant la mise en ligne. » --- ### À quoi ça sert Les Actions répondent à quatre grands besoins : | Besoin | Ce que fait le workflow | |--------|-------------------------| | **Récupération** | Réagir automatiquement quand un score chute, qu'une citation est perdue ou qu'un concurrent apparaît dans les réponses IA. | | **Production** | Rédiger et publier du contenu GEO-optimisé de façon récurrente (blog, FAQ, schema.org). | | **Maintenance** | Corriger en lot les balises, les données structurées et les textes alternatifs sur tout un site. | | **Reporting** | Générer et envoyer des rapports PDF mensuels, prévenir l'équipe sur Slack ou par email. | --- ### Les concepts en une minute Un **workflow** est une suite d'étapes reliées entre elles. Chaque étape est un **node**. Tout workflow commence par un **déclencheur** (le node qui démarre l'exécution), puis enchaîne des nodes d'action jusqu'à la fin. ``` Declencheur -> Agent IA -> Publication CMS -> Notification (score chute) (reecrit) (Webflow) (email) ``` Chaque lancement d'un workflow s'appelle une **exécution** (ou *run*). Vous pouvez suivre chaque exécution en détail : quels nodes ont tourné, ce qu'ils ont produit, et où un éventuel blocage s'est produit. Les cinq familles de nodes : #### Déclencheurs Le point de départ : manuel, planifié (cron), webhook, ou événement GEO (audit terminé, score chute, concurrent détecté, visite d'un bot IA...). **[Voir les déclencheurs →](./nodes/triggers)** #### Agents IA Cinq agents spécialisés qui rédigent, optimisent et valident votre contenu : Sophia, Brian, Marcus, Élodie et Theo. **[Voir les agents IA →](./nodes/ai-agents)** #### Actions GEO Les opérations natives de CiteMe : lancer un audit, re-crawler, générer un rapport PDF, rafraîchir l'autorité de marque. **[Voir les actions GEO →](./nodes/geo-actions)** #### Logique & contrôle Faites bifurquer ou attendre le workflow : condition si/sinon, pauses, boucles, et validation humaine. **[Voir la logique →](./nodes/logic)** #### Approbations & notifications Mettez un workflow en pause pour relecture, ou prévenez par email, dans le dashboard ou sur Slack. **[Voir les approbations →](./nodes/approvals)** #### Connecteurs CMS Publiez directement sur **WordPress**, **Shopify** ou **Webflow** depuis vos workflows. **[Voir les connecteurs →](./connectors/wordpress)** --- ### Par où commencer 1. **[Comprendre les concepts](./concepts)** — workflows, nodes, exécutions et variables. 2. **[Découvrir le builder visuel](./builder)** — l'éditeur où vous assemblez vos nodes. 3. **[Créer votre premier workflow](./first-workflow)** — un tutoriel pas à pas en 5 minutes. 4. **[Partir d'un modèle](./templates)** — clonez un workflow prêt à l'emploi et adaptez-le. :::tip Pas besoin de partir de zéro La majorité des utilisateurs démarrent depuis un **[modèle](./templates)**. Vous clonez un workflow déjà construit (ex. « Webflow — Auto-blog 3x/semaine »), vous changez deux ou trois réglages, et c'est en ligne. ::: --- ## Concepts clés Fondamentaux Avant de construire, prenez deux minutes pour assimiler le vocabulaire. Tout le système repose sur cinq notions. --- ### Workflow Un **workflow** est une automatisation complète : un déclencheur, suivi d'une chaîne de nodes reliés par des flèches. C'est l'unité que vous créez, activez et désactivez. Un workflow a un **état** : | État | Signification | |------|---------------| | **Brouillon** | En cours de construction, jamais exécuté automatiquement. | | **Actif** | Le déclencheur est armé : le workflow se lance dès que la condition se présente. | | **En pause** | Conservé mais désarmé : il ne se déclenchera plus tant que vous ne le réactivez pas. | --- ### Node Un **node** est une étape unique du workflow. Chaque node a : - un **type** (ex. `agent.writer`, `cms.webflow.blog`, `approval.request`) ; - une **configuration** (quelle page modifier, quel ton adopter, quel destinataire prévenir) ; - des **entrées** (ce qu'il reçoit du node précédent) et des **sorties** (ce qu'il transmet au suivant). Les nodes se rangent en cinq familles : déclencheurs, agents IA, actions GEO, logique, approbations/notifications — plus les nodes CMS propres à chaque connecteur. La **[référence des nodes](./nodes/triggers)** détaille chacun d'eux. :::info Un seul déclencheur, plusieurs actions Tout workflow commence par **exactement un** déclencheur. Ensuite, vous pouvez enchaîner autant de nodes d'action que nécessaire, y compris des branches parallèles. ::: --- ### Déclencheur Le **déclencheur** (*trigger*) est le node de départ. Il décide **quand** le workflow s'exécute. Trois grandes catégories : - **Manuel** — vous lancez le workflow vous-même depuis le dashboard. - **Planifié** — selon un calendrier récurrent (« tous les lundis 9h », « le 1er du mois »). - **Événementiel** — en réaction à un événement GEO (audit terminé, score qui chute, concurrent détecté, bot IA qui visite une page, publication CMS, webhook entrant). Voir la liste complète dans **[Déclencheurs](./nodes/triggers)**. --- ### Exécution (run) {#execution-run} Chaque fois qu'un workflow se lance, CiteMe crée une **exécution** (ou *run*). Une exécution avance node par node et garde une trace de tout : ce que chaque node a reçu, produit, et combien de temps il a pris. Une exécution passe par différents statuts au cours de sa vie : | Statut | Signification | |--------|---------------| | **En file** | En attente d'un worker disponible. | | **En cours** | Les nodes s'exécutent les uns après les autres. | | **En attente de validation** | Un node d'approbation a mis le workflow en pause (voir [Approbations](./nodes/approvals)). | | **En sommeil** | Un node « Attendre jusqu'à une date » a suspendu l'exécution ; elle reprendra seule. | | **Terminé** | Tous les nodes atteignables ont fini avec succès. | | **Échoué** | Un node a rencontré une erreur bloquante. | | **Annulé** | Vous avez stoppé l'exécution manuellement. | Le détail de chaque exécution se consulte dans **[Exécutions & monitoring](./runs)**. --- ### Variables Les nodes ne sont pas isolés : un node peut réutiliser ce qu'un node précédent a produit. On référence ces valeurs avec des **variables**, écrites entre doubles accolades. | Syntaxe | Ce qu'elle désigne | |---------|--------------------| | `{{trigger.payload.url}}` | Une donnée fournie par le déclencheur. | | `{{node_n2.output.markdown}}` | La sortie d'un node précédent (ici le node `n2`). | | `{{loop.item}}` | L'élément courant dans une boucle « pour chaque ». | **Exemple** — un node de publication Webflow qui reprend le titre et le corps rédigés par l'agent au node `n2` : ``` Titre : {{node_n2.output.title_tag}} Corps : {{node_n2.output.markdown}} ``` :::tip Vous n'avez pas à mémoriser les noms de variables : le builder vous propose les sorties disponibles des nodes en amont quand vous remplissez un champ. ::: --- ### La suite Maintenant que le vocabulaire est posé, découvrez **[le builder visuel](./builder)** où vous assemblez concrètement ces nodes. --- ## Le builder visuel Interface Le **builder** est l'éditeur où vous construisez vos workflows. C'est un canvas visuel : vous déposez des nodes, vous les reliez par des flèches, et vous configurez chacun dans un panneau latéral. Aucune notion technique requise. On y accède depuis l'onglet **Actions** d'un projet, puis **Nouveau workflow** (ou en ouvrant un workflow existant pour l'éditer). --- ### L'anatomie de l'écran | Zone | Rôle | |------|------| | **La palette** | À gauche : tous les nodes disponibles, rangés par famille (Triggers, Agents IA, Actions CiteMe, Logique, Notifications, et les actions CMS). | | **Le canvas** | Au centre : l'espace où vous déposez et reliez vos nodes. | | **Le panneau de propriétés** | À droite : la configuration du node sélectionné, avec une explication de ce qu'il fait en haut. | --- ### Construire un workflow #### 1. Poser le déclencheur Tout workflow commence par un **déclencheur**. Faites glisser un node de la famille *Triggers* sur le canvas — par exemple « Démarrage manuel » ou « Planifié (récurrent) ». C'est le point de départ unique de votre automatisation. #### 2. Ajouter des actions Depuis la palette, déposez les nodes suivants : un agent IA pour rédiger, un node CMS pour publier, un node de notification pour prévenir. Chaque node déposé apparaît sur le canvas sous forme de carte colorée (la couleur indique sa famille). #### 3. Relier les nodes Tirez une flèche de la sortie d'un node vers l'entrée du suivant. Ces flèches définissent l'ordre d'exécution. Un node ne s'exécute que lorsque le node qui le précède a terminé. #### 4. Configurer chaque node Cliquez sur un node pour ouvrir son panneau de propriétés. Vous y trouvez : - une **description** en clair de ce que fait le node ; - ses **champs de configuration** (sujet de l'article, page à corriger, destinataire de l'email...) ; - la possibilité d'insérer des **[variables](./concepts#variables)** pour réutiliser la sortie d'un node précédent. #### 5. Tester puis activer Une fois le workflow assemblé, lancez une exécution de test (déclencheur manuel) pour vérifier le comportement, puis passez le workflow en **Actif**. Suivez le résultat dans **[Exécutions & monitoring](./runs)**. --- ### Lire les couleurs des nodes Chaque famille a sa teinte, ce qui permet de lire un workflow d'un coup d'œil : | Famille | Repère visuel | |---------|---------------| | Déclencheurs | Lime | | Agents IA | Violet | | Actions CiteMe | Bleu | | Webflow / WordPress / Shopify | Couleur de la plateforme | | Notifications | Ambre | | Logique | Gris | --- ### Bonnes pratiques :::tip Commencez petit Un déclencheur, un agent, une publication, une notification : quatre nodes suffisent pour un premier workflow utile. Vous enrichirez ensuite. ::: :::warning Validez avant d'automatiser la publication Tant que vous n'avez pas confiance dans la sortie d'un workflow, intercalez un node **[Validation humaine](./nodes/approvals)** avant toute publication CMS. Vous relisez, vous approuvez, et le workflow continue. ::: Prêts à construire ? Suivez le **[tutoriel pas à pas](./first-workflow)**. --- ## Agents IA Agents Les **agents IA** sont des nodes qui produisent ou transforment du contenu. CiteMe en propose cinq, chacun avec un rôle bien défini et un prénom pour le repérer facilement dans vos workflows. Vous choisissez « Sophia pour le blog » plutôt que « Rédacteur IA » : c'est plus parlant, et chaque agent est spécialisé sur sa tâche. --- ### Les cinq agents | Agent | Spécialité | Quand l'utiliser | |-------|-----------|------------------| | **Sophia** — rédactrice | Articles de blog, landing pages, FAQ, meta tags. Sort un markdown prêt à publier. | Vous voulez créer du contenu. Choisissez le format et le sujet, elle rédige le reste. | | **Brian** — technicien GEO | Balises title/meta, schema.org, textes alternatifs, hreflang. | Corriger les détails techniques qui aident les IA à comprendre vos pages. À brancher après un audit. | | **Marcus** — stratège GEO | Réécriture « citable » d'une page existante. | Un contenu ne ressort plus dans les réponses IA : Marcus le réécrit pour maximiser ses chances d'être cité. | | **Élodie** — gardienne de marque | Validation de la voix, du ton et de la charte. | À placer juste avant une publication pour bloquer ce qui sort de la ligne éditoriale. | | **Theo** — stratège | Lecture des audits et recommandations d'actions. | Vous ne savez pas par où commencer : Theo lit vos résultats et propose les pages et mots-clés à attaquer en priorité. | --- ### Sophia — rédactrice Écrit un contenu prêt à publier : article de blog, page d'atterrissage, FAQ ou meta tags. Vous choisissez le **format** et le **sujet**, elle produit un markdown structuré. Sortie typique réutilisable : `{{node_nX.output.markdown}}`, `{{node_nX.output.title_tag}}`. :::tip Branchez Sophia juste avant un node CMS (Webflow, WordPress) pour publier automatiquement ce qu'elle rédige. ::: --- ### Brian — technicien GEO Corrige les éléments techniques qui aident les IA à comprendre vos pages : titres, descriptions, balises, données structurées, textes d'images. **Branchez-le après un audit** : il sait alors exactement quelles pages corriger. --- ### Marcus — stratège GEO Réécrit une page pour qu'elle ait plus de chances d'être citée par ChatGPT, Claude ou Perplexity. Idéal sur un contenu qui ne génère plus de citations, ou en réaction à une **[citation perdue](./triggers#evenements-daudit)**. --- ### Élodie — gardienne de marque Vérifie qu'un contenu respecte le **ton** et la **charte** de votre marque avant qu'il ne parte. À placer en fin de chaîne, juste avant la publication : si le contenu sort de la ligne, le workflow peut être stoppé ou envoyé en validation. --- ### Theo — stratège Lit vos résultats d'audit et vous dit **quoi faire ensuite** : quelles pages et quels mots-clés attaquer en priorité. Parfait en tête d'un workflow de production de contenu. --- :::info Les agents consomment du crédit IA Chaque agent fait appel à un modèle de langage. Sa consommation dépend de votre plan. Les nodes de logique et de notification, eux, sont gratuits. ::: --- **Suite :** la **[Logique & contrôle](./logic)** pour orchestrer ces agents. --- ## Approbations & notifications Contrôle humain Ces nodes gardent l'humain dans la boucle : ils suspendent un workflow pour validation, ou préviennent les bonnes personnes au bon moment. --- ### Validation humaine Le node **Validation humaine** met le workflow en **pause** et envoie une demande d'approbation par email. L'exécution reprend dès que quelqu'un clique sur **Approuver** ; si la demande est rejetée, le workflow s'arrête. À placer **avant toute publication que vous voulez relire**. Pendant l'attente, l'exécution est en statut *En attente de validation* et ne consomme rien. ``` Sophia redige -> Validation humaine -> (approuve) -> Publier sur Webflow | (rejete) -> Fin ``` Les demandes en attente se gèrent depuis la boîte d'approbations de l'onglet Actions : vous y approuvez ou rejetez chaque exécution suspendue, depuis le dashboard ou directement depuis l'email reçu. :::tip Auto-publication + garde-fous Si vous activez l'auto-publication d'un workflow, CiteMe peut publier sans validation **tant que le contenu passe les garde-fous**. Dès qu'un garde-fou échoue, l'exécution bascule automatiquement en demande de validation. Voir **[Auto-publication & garde-fous](../auto-publish)**. ::: --- ### Notifications Quatre façons de prévenir, du plus discret au plus visible : | Node | Ce qu'il fait | Coût | |------|---------------|------| | **Notification dans le dashboard** | Affiche une alerte sur la cloche en haut à droite de l'app. Instantané. | Gratuit | | **Email à l'utilisateur** | Envoie un email à la personne qui a déclenché le workflow. | Gratuit | | **Email à toute l'équipe** | Envoie un email à tous les membres de l'organisation. | Gratuit | | **Message Slack** | Envoie un message vers un webhook Slack (canal de votre choix). | Gratuit | :::info Placez les notifications en fin de chaîne Une notification se met généralement en dernière étape : « contenu publié », « rapport envoyé », « validation requise ». Vous pouvez aussi en mettre plusieurs (ex. Slack pour l'équipe + email au client). ::: --- **Suite :** connectez votre CMS pour publier — **[WordPress](../connectors/wordpress)**, **[Shopify](../connectors/shopify)** ou **[Webflow](../connectors/webflow)**. --- ## Actions GEO Actions CiteMe Les **Actions GEO** sont les opérations natives de la plateforme. Ce sont les mêmes traitements que ceux lancés depuis le dashboard, mais pilotés automatiquement par un workflow. --- ### Audits | Node | Ce qu'il fait | Coût | |------|---------------|------| | **Audit complet** | Crawl du site, scan technique et test de citations sur 4 LLM (ChatGPT, Claude, Gemini, Perplexity). Le score arrive quelques minutes plus tard. | Consomme du crédit LLM | | **Audit léger** | Crawl et scan technique GEO uniquement, sans appel IA. Repère immédiatement les problèmes techniques de chaque page. | Gratuit | | **Audit d'un concurrent** | Compare votre site à un concurrent du point de vue des citations IA. | Consomme du crédit LLM | :::tip Audit léger + agent technique L'**Audit léger** est gratuit et parfait pour alimenter une correction automatique : il identifie les pages à problèmes, que vous passez ensuite à l'agent **[Brian](./ai-agents)** pour réparation. ::: --- ### Crawl & indexation | Node | Ce qu'il fait | |------|---------------| | **Re-crawler une page** | Recharge le contenu d'une page précise (après une modification). | | **Re-crawler tout le site** | Relance un crawl complet — utile après une refonte. | | **Réindexer une page** | Recalcule les embeddings vectoriels d'une page pour la recherche sémantique. | --- ### Autorité & presse | Node | Ce qu'il fait | |------|---------------| | **Rafraîchir l'autorité de marque** | Recalcule les signaux off-site : backlinks, mentions, présence sociale. | | **Scanner les mentions presse** | Cherche les nouvelles mentions de la marque dans les médias. | --- ### Rapports | Node | Ce qu'il fait | |------|---------------| | **Générer un rapport PDF** | Crée un PDF téléchargeable (audit, mensuel ou comparatif concurrents). | | **Envoyer un rapport par email** | Envoie un PDF déjà généré aux destinataires de votre choix. | :::info Un workflow de reporting complet Combinez « Planifié (1er du mois) » -> « Générer un rapport PDF » -> « Envoyer un rapport par email » pour automatiser entièrement le reporting mensuel d'un client. C'est exactement le modèle **[Monthly Report](../templates)**. ::: --- **Suite :** les **[Agents IA](./ai-agents)** qui rédigent et optimisent votre contenu. --- ## Logique & contrôle Logique Les nodes de **logique** ne produisent pas de contenu : ils orchestrent le déroulement du workflow. Ils permettent de conditionner, temporiser ou répéter des étapes. Tous sont gratuits. --- ### Condition #### Si / sinon Fait bifurquer le workflow selon une condition. Une branche « oui » et une branche « non » partent du node ; seule la branche correspondant au résultat est exécutée. **Exemple de condition :** `node_n2.output.score < 60` — si le score est inférieur à 60, on part en correction ; sinon, on s'arrête. ``` Audit -> Si score < 60 ? --oui--> Marcus reecrit -> Publier --non--> Fin ``` --- ### Temporisation | Node | Ce qu'il fait | |------|---------------| | **Attendre quelques secondes** | Pause courte, 60 secondes maximum. Pour de petits décalages entre deux étapes. | | **Attendre jusqu'à une date** | Met le workflow en pause jusqu'à une date écrite en clair : « dans 2 jours », « lundi 9h », « fin du mois ». Il reprend tout seul ensuite. **Gratuit pendant l'attente.** | :::info Pause longue = sommeil Pendant un « Attendre jusqu'à une date », l'exécution passe en statut **En sommeil** et ne consomme rien. CiteMe la réveille automatiquement le moment venu. Pour patienter plus de 60 secondes, utilisez toujours ce node plutôt que « Attendre quelques secondes ». ::: --- ### Répétition #### Boucle (pour chaque...) Répète les nodes suivants pour **chaque élément d'une liste** — par exemple chaque page à corriger. Les étapes à répéter se connectent depuis ce node, et l'élément courant est accessible via la variable `{{loop.item}}`. ``` Audit leger -> Boucle (chaque page en erreur) -> Brian corrige {{loop.item}} -> Webflow patch ``` :::warning Limite de tours Le nombre d'itérations d'une boucle est plafonné selon votre plan. Au-delà, la boucle s'arrête pour éviter les exécutions infinies. ::: --- ### Et la validation humaine ? Le node **Validation humaine** (`approval.request`) appartient aussi à la logique, mais comme il touche aux approbations et à la publication, il est documenté avec les notifications. **[Voir Approbations & notifications →](./approvals)** --- **Suite :** les **[Approbations & notifications](./approvals)**. --- ## Déclencheurs Triggers Le **déclencheur** est le node de départ : il décide **quand** le workflow s'exécute. Chaque workflow en contient exactement un. Cette page liste tous les déclencheurs disponibles, rangés par catégorie. --- ### Manuel & planifié | Node | Ce qu'il fait | |------|---------------| | **Démarrage manuel** | Vous lancez le workflow vous-même depuis le dashboard. Idéal pour tester ou pour les opérations ponctuelles. | | **Planifié (récurrent)** | Lance le workflow selon un calendrier : « lundi 9h », « tous les jours », « le 1er du mois ». Repose sur une expression cron (ex. `0 9 1 * *` pour le 1er du mois à 9h). | --- ### Événements d'audit {#evenements-daudit} Ces déclencheurs réagissent aux résultats de vos audits GEO. Ils sont au cœur des workflows de **récupération**. | Node | Se déclenche quand... | |------|-----------------------| | **Audit terminé** | Un audit finit de tourner. Point d'entrée classique pour enchaîner une correction. Peut filtrer (ex. seulement si 5+ nouveaux prompts). | | **Le score a chuté** | Votre score de visibilité IA baisse plus que prévu. Le seuil est configurable (ex. baisse de plus de 10 %). | | **Un concurrent est cité** | Un nouveau concurrent apparaît dans les réponses IA sur vos requêtes. | | **Une citation est perdue** | Une réponse IA qui vous citait ne vous cite plus. | | **Une citation est gagnée** | Une nouvelle réponse IA vous cite. Utile pour déclencher une notification positive. | --- ### Trafic des bots IA (Beacon) Ces déclencheurs s'appuient sur le suivi des visites de robots IA (ChatGPT, Claude, Perplexity, Gemini...) sur votre site. | Node | Se déclenche quand... | |------|-----------------------| | **Un bot IA visite votre site** | Un crawler IA accède à une page. | | **Pic de visites IA** | Le trafic des bots IA dépasse nettement la moyenne habituelle. | | **Première visite IA** | Un bot IA visite une page donnée pour la première fois. | --- ### Événements de contenu | Node | Se déclenche quand... | |------|-----------------------| | **Le contenu d'une page change** | CiteMe détecte qu'une page a été modifiée. | | **Le sitemap a changé** | De nouvelles URLs apparaissent dans votre sitemap. | --- ### Événements CMS Réagissez aux publications faites directement dans votre CMS. | Node | Se déclenche quand... | |------|-----------------------| | **Publication Webflow** | Vous publiez votre site Webflow. | | **Publication WordPress** | Un article est publié sur WordPress. | | **Produit Shopify modifié** | Bientôt Un produit est mis à jour dans votre boutique Shopify. | --- ### Webhook | Node | Ce qu'il fait | |------|---------------| | **Webhook entrant** | Génère une URL à appeler depuis n'importe quel système externe (Zapier, GitHub, Stripe...). Le corps de la requête devient le `payload` du déclencheur, réutilisable via `{{trigger.payload.champ}}`. | :::tip Réutiliser les données du déclencheur Tout ce que le déclencheur transmet est accessible aux nodes suivants via la variable `{{trigger.payload.…}}`. Voir la section [Variables](../concepts#variables). ::: --- **Suite :** les **[Actions GEO](./geo-actions)** que vous déclenchez ensuite. --- ## Connecteur Shopify CMS Publication bientôt Connectez votre boutique Shopify pour préparer l'automatisation de vos contenus e-commerce. La **connexion est disponible dès maintenant** ; les nodes de publication Shopify arrivent prochainement. --- ### Se connecter CiteMe utilise l'**Admin REST API** de Shopify avec un **access token** issu d'une custom app. 1. Dans Shopify Admin, créez une **custom app** (Paramètres -> Apps et canaux de vente -> Développer des apps). 2. Accordez-lui les scopes suivants : - `write_products` - `write_content` - `read_themes` 3. Installez l'app et copiez l'**Admin API access token** (il commence par `shpat_`). 4. Dans CiteMe, allez dans **Réglages du projet -> Intégrations -> Shopify -> Connecter**. 5. Renseignez : - **Domaine boutique** — ex. `ma-boutique.myshopify.com` - **Admin API access token** — celui copié à l'étape 3 6. Cliquez **Tester et connecter**. :::info Documentation Shopify La procédure détaillée de création d'un access token est décrite dans la [documentation officielle Shopify](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin). ::: --- ### Les nodes Shopify Bientôt disponible Ces nodes sont en cours de finalisation et apparaîtront dans le builder prochainement : | Node | Ce qu'il fera | |------|---------------| | **Publier un article sur Shopify** | Crée un article de blog dans votre boutique. | | **Mettre à jour la description d'un produit** | Réécrit la description d'un produit pour les moteurs IA. | | **Optimiser un produit Shopify pour les IA** | Met à jour les balises et métadonnées d'une fiche produit. | | **Injecter schema.org Produit** | Ajoute un JSON-LD `Product` à une fiche. | :::tip En attendant Vous pouvez déjà connecter votre boutique afin qu'elle soit prête dès l'ouverture de ces nodes. Le déclencheur **« Produit Shopify modifié »** suivra le même calendrier. ::: --- **Voir aussi :** **[WordPress](./wordpress)** · **[Webflow](./webflow)** --- ## Connecteur Webflow CMS Webflow est le connecteur le plus complet de CiteMe. Une fois relié, vos workflows peuvent gérer le blog, optimiser n'importe quelle page et piloter des actions sur tout le site — y compris choisir quels robots IA ont le droit de lire votre contenu. --- ### Démonstration --- ### Se connecter La connexion Webflow se fait en **OAuth** : vous autorisez l'application CiteMe depuis votre compte Webflow, sans copier de clé manuellement. 1. Dans CiteMe, lancez la connexion Webflow (depuis l'onboarding du projet ou les réglages d'intégration). 2. Vous êtes redirigé vers Webflow : autorisez l'application CiteMe à accéder à votre site. 3. De retour dans CiteMe, le site est connecté et ses collections sont détectées automatiquement. :::info Connexion sécurisée Les jetons d'accès Webflow sont stockés chiffrés. Vous pouvez révoquer l'accès à tout moment, côté CiteMe ou côté Webflow. ::: --- ### Les nodes Webflow CiteMe expose trois nodes consolidés, nommés par l'action plutôt que par l'objet technique : | Node | Ce qu'il fait | |------|---------------| | **Gérer un article du blog Webflow** | Créer, modifier, mettre en ligne ou archiver un article dans votre collection CMS. À brancher après Sophia pour publier automatiquement ce qu'elle rédige. | | **Optimiser une page Webflow (tout-en-un)** | Titre SEO, description, aperçu social, données structurées, hreflang, textes d'images — en un seul node. Vous ne remplissez que ce que vous voulez changer ; le reste est laissé intact. | | **Action globale sur le site Webflow** | Mettre le site en ligne, déclarer votre marque aux IA, ou choisir quels robots IA peuvent lire le site (GPTBot, Claude, Perplexity...). À placer en fin de workflow. | :::tip Anciens nodes Les workflows construits avant la consolidation continuent de fonctionner : les anciens nodes granulaires (publier un article, patcher une balise...) restent exécutables, mais les nouveaux workflows passent par les trois nodes ci-dessus. ::: --- ### Exemples de workflows Deux modèles prêts à cloner depuis les **[modèles](../templates)** : - **Webflow — Auto-blog 3x/semaine** : planifié -> Sophia rédige -> Brian génère le schéma -> publication Webflow -> mise en ligne -> email. - **Webflow — Fix SEO post-audit** : audit terminé -> si le site est bien Webflow -> Brian corrige titres et metas -> patch page par page -> récap Slack. --- **Voir aussi :** **[WordPress](./wordpress)** · **[Shopify](./shopify)** · **[Auto-publication & garde-fous](../auto-publish)** --- ## Connecteur WordPress CMS Connectez votre site WordPress pour que vos workflows publient directement dessus : création d'articles, mise à jour de contenu, optimisation des balises pour les IA et injection de schema.org. --- ### Se connecter CiteMe utilise la **REST API WordPress** avec un **mot de passe d'application** (WordPress 5.6 ou supérieur). Aucun plugin obligatoire pour la connexion directe. 1. Dans WordPress, ouvrez **Tableau de bord -> Profil -> Mots de passe d'application**. 2. Générez un nouveau mot de passe d'application et copiez-le. 3. Dans CiteMe, allez dans **Réglages du projet -> Intégrations -> WordPress -> Connecter**. 4. Renseignez : - **URL du site** — ex. `https://mon-site.com` - **Username** — votre identifiant WordPress (ex. `admin`) - **Mot de passe d'application** — celui généré à l'étape 2 5. Cliquez **Tester et connecter**. CiteMe vérifie la connexion avant de l'enregistrer. :::tip Plugin CiteMe pour WordPress Un plugin officiel CiteMe existe également : il ajoute un repli de connexion par mot de passe d'application pour les hébergeurs qui ne permettent pas la génération automatique, et expose les Actions directement dans l'admin WordPress. Reportez-vous au **[tutoriel WordPress](/tutorials/wordpress)** pour l'installation. ::: --- ### Les nodes WordPress Une fois le site connecté, ces nodes deviennent disponibles dans le builder : | Node | Ce qu'il fait | |------|---------------| | **Publier un article sur WordPress** | Crée un article, en brouillon ou publié directement. | | **Modifier un article WordPress** | Met à jour le contenu d'un article existant. | | **Optimiser une page WordPress pour les IA** | Met à jour le titre, la meta description et les balises Open Graph. | | **Injecter schema.org sur WordPress** | Ajoute un bloc JSON-LD (données structurées) à un article. | | **Uploader un media sur WordPress** | Téléverse une image dans la médiathèque. | --- ### Exemple de workflow Le modèle **WordPress — FAQ Refresh** illustre un usage typique : ``` Audit termine (5+ nouveaux prompts) -> Sophia genere la FAQ -> Modifier un article WordPress (push la FAQ) ``` À chaque fois que de nouveaux prompts émergent, la FAQ est régénérée et poussée sur WordPress. Clonez-le depuis les **[modèles](../templates)**. --- ### Gérer la connexion Depuis **Réglages -> Intégrations**, vous pouvez tester ou déconnecter un site à tout moment. Si vous déconnectez un site, les workflows qui l'utilisent afficheront une erreur tant que vous ne le reconnectez pas. --- **Voir aussi :** **[Shopify](./shopify)** · **[Webflow](./webflow)** · **[Auto-publication & garde-fous](../auto-publish)** --- ## Auto-publication & garde-fous Sécurité L'**auto-publication** permet à un workflow de mettre du contenu en ligne **sans validation manuelle**. Pour éviter de publier à l'aveugle du contenu généré par IA, CiteMe interpose des **garde-fous** : des contrôles automatiques exécutés juste avant chaque publication. --- ### Le bouton auto-publication Chaque workflow possède un réglage **auto-publication**, activé ou désactivé : | Réglage | Comportement | |---------|--------------| | **Désactivé** (par défaut) | Toute action CMS exige une **[validation humaine](./nodes/approvals)** avant publication. | | **Activé** | La publication se fait automatiquement, **à condition** que le contenu passe les garde-fous. Si un garde-fou échoue, l'exécution bascule en demande de validation au lieu de publier. | :::tip La sécurité reste assurée Activer l'auto-publication ne supprime pas les contrôles : ça les automatise. Un contenu douteux ne passe jamais en silence — il est renvoyé vers vous pour relecture. ::: --- ### Les garde-fous déterministes Trois garde-fous tournent avant chaque publication. Ils sont **déterministes** (pas d'IA, pas de réseau) : mêmes entrées, même verdict, instantané. #### 1. Schéma (données structurées) Si le workflow injecte du JSON-LD, le garde-fou vérifie que : - le bloc est un JSON valide (il doit parser) ; - il contient bien un attribut `@type`. Sinon, échec : « JSON-LD invalide » ou « JSON-LD sans @type ». #### 2. Contenu minimal Le corps généré doit dépasser un **plancher de longueur** — **200 caractères par défaut** (configurable). Cela bloque les sorties tronquées ou vides. Échec type : « Contenu trop court (120 < 200 caractères) ». #### 3. Sécurité Le contenu ne doit contenir : - **aucun marqueur d'injection de prompt** (« ignore previous instructions », « system prompt », « you are now »...) ; - **aucun secret évident** : clé API OpenAI (`sk-...`), clé AWS (`AKIA...`), bloc de clé privée, numéro de carte bancaire. Échec type : « Marqueur d'injection détecté » ou « Secret potentiel détecté : OpenAI key ». --- ### Que se passe-t-il en cas d'échec ? ``` Sophia redige -> Garde-fous | (tout passe) -> Publication automatique | (un echec) -> Demande de validation (vous relisez) ``` Dès qu'**au moins un** garde-fou échoue, le contenu n'est pas publié : l'exécution passe en **En attente de validation** et vous recevez la demande dans votre boîte d'approbations, avec la raison exacte de l'échec. --- ### Et la voix de marque ? Un quatrième contrôle — le respect du **ton et de la charte** — n'est pas déterministe : c'est un jugement IA, assuré par l'agent **[Élodie](./nodes/ai-agents)**. Placez-la dans le workflow avant la publication pour valider la voix de marque en complément des garde-fous techniques. --- **Voir aussi :** **[Approbations & notifications](./nodes/approvals)** · **[Exécutions & monitoring](./runs)** --- ## Tutoriel : votre premier workflow Pas à pas Construisons ensemble un premier workflow utile : **rédiger un article de blog et le publier sur votre site, avec une relecture avant la mise en ligne**. Comptez cinq minutes. --- ### Ce que nous allons construire ``` Demarrage manuel -> Sophia redige -> Validation humaine -> Publier sur Webflow -> Email ``` Quatre nodes utiles, un garde-humain avant publication. Vous pourrez ensuite remplacer Webflow par WordPress, ou le déclencheur manuel par un planning. --- ### Prérequis - Un projet CiteMe configuré. - Un **connecteur CMS** relié — **[Webflow](./connectors/webflow)** ou **[WordPress](./connectors/wordpress)**. (Vous pouvez aussi vous arrêter à la validation pour tester sans publier.) --- ### Étape 1 — Créer le workflow Ouvrez l'onglet **Actions** de votre projet, puis **Nouveau workflow**. Le **[builder visuel](./builder)** s'ouvre sur un canvas vide. ### Étape 2 — Poser le déclencheur Depuis la palette (famille *Triggers*), faites glisser **Démarrage manuel** sur le canvas. C'est le point de départ : vous lancerez le workflow vous-même, idéal pour un test. ### Étape 3 — Ajouter la rédactrice Déposez l'agent **Sophia, rédactrice** (famille *Agents IA*). Reliez le déclencheur à Sophia. Cliquez sur le node pour ouvrir ses propriétés et choisissez le **format** (article de blog) et le **sujet**. ### Étape 4 — Intercaler une validation Déposez **Validation humaine** (famille *Logique*) et reliez Sophia à ce node. Le workflow se mettra en pause ici et vous enverra un email : rien ne sera publié avant votre feu vert. ### Étape 5 — Publier Déposez **Gérer un article du blog Webflow** (ou **Publier un article sur WordPress**). Reliez la validation à ce node. Dans ses propriétés, reprenez la sortie de Sophia via des **[variables](./concepts#variables)** : ``` Titre : {{node_n2.output.title_tag}} Corps : {{node_n2.output.markdown}} ``` (`n2` est l'identifiant du node Sophia ; le builder vous propose les sorties disponibles.) ### Étape 6 — Notifier Déposez **Email à l'utilisateur** (famille *Notifications*) et reliez-le à la publication. Vous recevrez une confirmation une fois l'article en ligne. --- ### Étape 7 — Tester Lancez le workflow via son déclencheur manuel. Suivez l'exécution dans **[Exécutions & monitoring](./runs)** : 1. Sophia rédige — vous voyez le markdown produit. 2. Le workflow se met en pause : vous recevez la demande de validation. 3. Vous **approuvez** depuis l'email ou la boîte d'approbations. 4. L'article est publié, et l'email de confirmation arrive. :::tip Bravo Vous avez construit une chaîne complète : génération, contrôle humain, publication, notification. Vous tenez le schéma de la plupart des workflows. ::: --- ### Aller plus loin - Remplacez **Démarrage manuel** par **Planifié** pour publier automatiquement chaque semaine. - Une fois en confiance, activez l'**[auto-publication](./auto-publish)** : les garde-fous remplacent la validation manuelle tant que le contenu est sain. - Branchez **Brian** après Sophia pour ajouter le schema.org avant publication. - Explorez les **[modèles](./templates)** pour des scénarios prêts à l'emploi. --- **Retour :** **[Vue d'ensemble des Actions](./index.md)** --- ## Exécutions & monitoring Suivi Chaque fois qu'un workflow se lance, CiteMe crée une **exécution** (*run*) et en garde la trace complète. L'onglet Actions regroupe tout ce qu'il faut pour surveiller, diagnostiquer et reprendre la main. --- ### Le tableau des exécutions La vue **Exécutions** liste tous les lancements, du plus récent au plus ancien, avec leur statut, leur durée et le workflow concerné. Vous y voyez d'un coup d'œil ce qui tourne, ce qui a réussi et ce qui a échoué. Rappel des statuts (détaillés dans **[Concepts clés](./concepts#execution-run)**) : | Statut | Signification | |--------|---------------| | En file / En cours | L'exécution attend ou se déroule. | | En attente de validation | Suspendue par un node d'approbation. | | En sommeil | Suspendue par un « Attendre jusqu'à une date ». | | Terminé / Échoué / Annulé | États finaux. | --- ### Le détail d'une exécution Ouvrez une exécution pour inspecter son déroulement node par node : - la **chronologie** : quels nodes ont tourné, dans quel ordre, et combien de temps ; - les **sorties** de chaque node (le markdown produit, la page modifiée, l'email envoyé) ; - les **journaux** et, en cas d'échec, le node fautif et le message d'erreur exact. C'est l'outil de diagnostic principal : si un workflow ne fait pas ce que vous attendez, le détail de l'exécution vous montre précisément où et pourquoi. --- ### Quotas Les exécutions consomment des ressources (appels IA, audits, itérations de boucle). Un widget de **quotas** indique votre consommation et la limite de votre plan. Quand un quota est atteint, les nouvelles exécutions sont mises en file ou bloquées jusqu'au renouvellement. --- ### Boîte d'approbations Les exécutions suspendues par un node **[Validation humaine](./nodes/approvals)** — ou par un garde-fou d'**[auto-publication](./auto-publish)** — atterrissent dans la boîte d'approbations. Vous y **approuvez** ou **rejetez** chaque demande ; l'exécution reprend ou s'arrête en conséquence. --- ### Bibliothèque de contenu généré Tout le contenu produit par vos agents (articles, FAQ, rapports PDF) est conservé dans une **bibliothèque**. Vous pouvez le relire, le télécharger ou le réutiliser, même si l'exécution qui l'a produit est terminée. --- ### Annuler une publication Les actions CMS sont tracées : chaque publication est journalisée. Si un workflow a publié quelque chose d'indésirable, vous pouvez **annuler la publication** (revert) depuis le journal des publications, pour revenir à l'état précédent sans intervention manuelle dans le CMS. :::warning Surveillez les premiers lancements Après avoir activé un nouveau workflow, suivez ses premières exécutions de près. C'est le meilleur moment pour ajuster un réglage, ajouter un garde-fou ou intercaler une validation humaine avant de laisser tourner en pleine autonomie. ::: --- **Voir aussi :** **[Auto-publication & garde-fous](./auto-publish)** · **[Approbations & notifications](./nodes/approvals)** --- ## Modèles de workflows Démarrage rapide La manière la plus rapide de démarrer n'est pas de partir d'une page blanche, mais de **cloner un modèle**. Chaque modèle est un workflow complet et fonctionnel : vous l'ajoutez, vous ajustez deux ou trois réglages, et il est prêt. CiteMe propose un catalogue de modèles classés par usage. En voici les principaux. --- ### Récupération Réagir automatiquement quand la situation se dégrade. | Modèle | Ce qu'il fait | |--------|---------------| | **Score Recovery** | Quand le score GEO chute, identifie la page responsable, régénère le contenu avec Marcus et republie automatiquement. | | **Competitor Counter-Attack** | Détecte les concurrents qui vous prennent des citations et génère du contenu pour combler le manque. | --- ### Production de contenu Produire et publier du contenu GEO de façon récurrente. | Modèle | Ce qu'il fait | |--------|---------------| | **Blog — Publication** | Analyse de prompt, rédaction, publication et suivi d'une page de blog optimisée pour les moteurs IA. | | **FAQ Refresh** | Quand 5+ nouveaux prompts sont détectés, régénère la section FAQ pour coller aux questions réelles. | | **Monthly Site Fix-up** | Tous les 1ers du mois : schema.org, liens internes, textes alternatifs et titres sur l'ensemble du site. | --- ### Publication CMS Des modèles dédiés à un connecteur précis. | Modèle | Ce qu'il fait | |--------|---------------| | **Webflow — Auto-blog 3x/semaine** | Lun/Mer/Ven : récupère vos prompts en faiblesse, rédige un article avec Sophia, génère le schéma, et publie sur Webflow. | | **Webflow — Auto-publier un blog** | Génère un article GEO-optimisé et le publie en brouillon Webflow ; vous validez avant la mise en ligne. | | **Webflow — Fix SEO post-audit** | À chaque audit, identifie les pages au titre/meta faible et patche les balises directement via Webflow. | | **WordPress — FAQ Refresh** | Quand 5+ nouveaux prompts émergent, régénère la FAQ et la pousse sur WordPress. | --- ### Reporting | Modèle | Ce qu'il fait | |--------|---------------| | **Monthly Report** | Génère le rapport PDF mensuel et l'envoie par email à vous-même ou à votre client. | --- ### Cloner un modèle 1. Ouvrez l'onglet **Actions** de votre projet. 2. Parcourez le carrousel de modèles et choisissez celui qui correspond à votre besoin. 3. Cliquez **Ajouter** : une copie éditable est créée dans vos workflows. 4. Ajustez les réglages (collection Webflow, destinataire, seuil de déclenchement...) dans le **[builder](./builder)**. 5. Passez le workflow en **Actif**. :::info Un catalogue qui s'enrichit Au-delà des modèles ci-dessus, CiteMe enrichit régulièrement son catalogue (plus d'une centaine de modèles selon votre environnement et votre plan). Les modèles nécessitant un CMS connecté s'affichent une fois le connecteur en place. ::: --- **Voir aussi :** **[Créer votre premier workflow](./first-workflow)** · **[Le builder visuel](./builder)** --- ## Forfaits et quotas Chaque organisation a un forfait. Il fixe le nombre de projets, de prompts, d'audits et de membres, ainsi que les moteurs IA disponibles. Les prix à jour sont sur la page [Tarifs](https://www.citeme.io/pricing). ### Les forfaits | | Free | Pro (Plateforme) | Expert (Agency / Enterprise) | |---|---|---|---| | **Projets** | 1 | 3 | Illimités | | **Prompts par projet** | 10 | 20 | Illimités | | **Audits par mois** | 1 | 24 | Illimités | | **Lancement manuel d'audit** | Non | 5 par semaine | Illimité | | **Requêtes IA par audit** | 12 | 20 | 200 | | **Moteurs IA** | ChatGPT, Gemini, Perplexity, Google AI Overviews | Les 10 moteurs | Les 10 moteurs | | **Moteurs par audit** | 3 | 10 | Tous | | **Pages lues par projet** | 500 | Illimitées | Illimitées | | **Concurrents suivis** | 2 | 5 | Illimités | | **Membres de l'organisation** | 2 | 3 | Illimités | Les 10 moteurs sont ChatGPT, Claude, Gemini, Perplexity, Grok, Google AI Overviews, DeepSeek, Meta AI, Mistral et Siri. Le forfait Starter n'est plus proposé : les organisations qui l'ont gardent ses quotas, proches de ceux du forfait Free, avec 4 audits par mois. Le forfait Expert est sur devis. Certains quotas peuvent être ajustés pour une organisation donnée. ### Les requêtes IA d'un audit Une requête IA, c'est un prompt posé à un moteur. Le nombre de requêtes par audit est plafonné par le forfait, donc le nombre de prompts testés dépend du nombre de moteurs choisis : ``` prompts testés = requêtes IA par audit ÷ nombre de moteurs ``` Par exemple, en Pro (20 requêtes), un audit sur 2 moteurs teste 10 prompts, et un audit sur 5 moteurs en teste 4. Avec les trois passes, chaque prompt compte trois fois par moteur. ### Ce qui ne consomme pas votre compte chez les fournisseurs IA CiteMe interroge les moteurs avec ses propres accès. Le coût des requêtes est compris dans le forfait : vous n'avez pas de clé OpenAI, Anthropic ou Google à fournir, et rien n'est facturé sur vos comptes chez ces fournisseurs. ### Paiement Les abonnements sont gérés par Stripe. Pour changer de forfait ou pour un besoin particulier, passez par la page [Tarifs](https://www.citeme.io/pricing) ou contactez l'équipe CiteMe. **[Sécurité](./security.md)** --- ## Sécurité des intégrations Pour publier à votre place ou lire vos données, certaines intégrations demandent une clé ou un jeton d'accès. Cette page explique ce que CiteMe conserve et comment ces secrets sont protégés. ### Ce que CiteMe conserve CiteMe n'a besoin d'aucune clé de fournisseur IA : les moteurs sont interrogés avec les accès de CiteMe. Les secrets conservés sont ceux de vos intégrations : - **Publication** : LinkedIn, Medium, X, Webflow, WordPress ; - **Données** : Google Search Console et Google Analytics 4, connectés par OAuth, Bing Webmaster Tools, Google Ads. Ils s'ajoutent et se gèrent par projet dans **Configuration > Intégrations**. ### Chiffrement Chaque secret est chiffré avant d'être écrit en base, avec l'algorithme **AES-256-GCM**. Chaque secret a son propre sel et son propre vecteur d'initialisation, et le mode GCM ajoute une étiquette d'authentification : une valeur modifiée en base n'est plus déchiffrable. La clé maîtresse est conservée côté serveur, hors de la base de données. Le déchiffrement n'a lieu que côté serveur, au moment où une fonctionnalité utilise le secret, par exemple pour publier un article. Le tableau de bord n'affiche que des valeurs masquées. ### Qui peut agir Un membre avec le rôle **Lecteur** ne peut rien modifier, ni les intégrations ni le reste du projet. Les rôles sont décrits dans [Gestion d'équipe](./team.md). ### Révoquer un accès Supprimez la clé dans **Configuration > Intégrations**. Pensez à la révoquer aussi chez le service concerné (LinkedIn, Webflow, Google...), pour qu'elle ne soit plus valable nulle part. Les clés d'API CiteMe (préfixe `cm_`), qui donnent accès à votre compte depuis vos outils, sont un autre sujet : voir [Authentification](../api/authentication.md). ### Signaler une faille Écrivez à [contact@citeme.fr](mailto:contact@citeme.fr) en décrivant le problème et la façon de le reproduire. --- ## Gestion d'Équipe et Rôles Administration CiteMe est conçu pour la collaboration en équipe. Que vous soyez une agence gérant plusieurs clients, une équipe marketing interne, ou une entreprise avec des rôles SEO spécialisés, le système de contrôle d'accès basé sur les rôles (RBAC) de CiteMe vous permet de donner à chaque membre le niveau d'accès exact dont il a besoin. --- ### Hiérarchie des rôles CiteMe propose quatre niveaux de permission distincts, chacun conçu pour un profil d'utilisateur spécifique. Les permissions sont cumulatives : chaque rôle inclut toutes les permissions des rôles inférieurs. #### Owner (Propriétaire) Le propriétaire est le créateur de l'organisation. Il dispose d'un accès **complet et illimité** à toutes les fonctionnalités, y compris les opérations critiques que les autres rôles ne peuvent pas effectuer. | Permission | Détail | |-----------|--------| | Suppression de l'organisation | Seul le Owner peut supprimer l'organisation et toutes ses données | | Gestion de la facturation | Modification du plan, des moyens de paiement et consultation des factures | | Transfert de propriétaire | Transfert du rôle Owner à un autre membre | | Toutes les permissions Admin | Incluses | Il ne peut y avoir qu'**un seul Owner** par organisation. Le transfert de propriété est une opération irréversible qui nécessite une confirmation par email. #### Admin Les administrateurs gèrent la configuration technique de l'organisation. C'est le rôle idéal pour les **SEO Leads**, **CTOs** ou **responsables techniques** qui configurent l'infrastructure GEO sans avoir besoin d'accéder à la facturation. | Permission | Détail | |-----------|--------| | Gestion des projets | Ajout, modification et suppression de projets (domaines) | | Gestion de l'équipe | Invitation de nouveaux membres, modification des rôles, révocation d'accès | | Configuration des intégrations | Ajout et modification des clés d'intégration (LinkedIn, Webflow, Google Ads...) | | Gestion des mots-clés | Ajout, modification et suppression de prompts de recherche | | Toutes les permissions Éditeur | Incluses | #### Éditeur Les éditeurs sont les utilisateurs opérationnels du quotidien. C'est le rôle idéal pour les **Content Managers**, **rédacteurs SEO** et **consultants** qui utilisent CiteMe pour optimiser le contenu sans avoir besoin d'accéder à la configuration technique. | Permission | Détail | |-----------|--------| | Lancement d'audits | Déclenchement d'audits GEO sur les projets existants | | Validation de suggestions | Approbation, rejet et application des suggestions | | Modification de contenu | Édition des suggestions avant application | | Accès aux rapports | Consultation de tous les résultats d'audit et métriques | | **Restriction** | Pas d'accès aux secrets d'intégration (clés API masquées) | #### Lecteur Les lecteurs ont un accès en **lecture seule** à toute la plateforme. C'est le rôle idéal pour les **clients** d'agences, les **dirigeants** qui souhaitent suivre les KPI, ou les **stakeholders** qui ont besoin de visibilité sur les résultats sans pouvoir modifier quoi que ce soit. | Permission | Détail | |-----------|--------| | Consultation des scores | Visualisation du GEO Score et de son historique | | Consultation des suggestions | Lecture des suggestions | | Consultation des rapports | Accès à tous les dashboards et métriques | | **Restriction** | Ne peut effectuer aucune action (pas de lancement d'audit, pas de validation) | --- ### Inviter des collaborateurs L'invitation de nouveaux membres se fait en quelques étapes : 1. Naviguez vers **Paramètres > Équipe** 2. Cliquez sur **Inviter un membre** 3. Entrez l'adresse email professionnelle du collaborateur 4. Sélectionnez le rôle à attribuer (Admin, Éditeur ou Lecteur) 5. Cliquez sur **Envoyer l'invitation** Le collaborateur reçoit un email contenant un **lien d'invitation valable 7 jours**. Passé ce délai, vous devrez renvoyer une nouvelle invitation. Le collaborateur peut se connecter avec son email ou via SSO Google si configuré. --- ### Gestion des notifications Chaque membre de l'équipe peut configurer indépendamment ses préférences de notification depuis son profil : | Notification | Description | Fréquence | |-------------|-------------|-----------| | **Fin d'audit** | Email envoyé à la complétion de chaque audit | Temps réel | | **Alerte de dérive sémantique** | Notification quand un concurrent vous déplace sur une requête | Temps réel | | **Résumé hebdomadaire** | Synthèse du GEO Score et des changements de la semaine | Hebdomadaire (lundi matin) | Les notifications sont indépendantes par rôle : un Lecteur reçoit les mêmes notifications qu'un Admin, permettant à chaque membre d'être informé selon ses besoins. :::info Capacité des sièges Le nombre total de membres de l'organisation, propriétaire compris, dépend de votre forfait : 2 en Free et Starter, 3 en Pro, sans limite en Expert. Tous les forfaits permettent d'inviter. Consultez la [documentation des plans](./billing) pour les détails complets. ::: **[Plans et Quotas →](./billing)** --- ## Piloter CiteMe depuis un agent IA Trois surfaces existent. Elles n'ont pas les mêmes clés et ne s'échangent pas. | Surface | Pour quoi faire | Authentification | Forfait minimal | |---------|-----------------|------------------|-----------------| | **Serveur MCP hébergé**, `https://mcp.citeme.io` | Recommandé pour un agent : créer des prompts, lancer et lire les audits, lire citations et suggestions | OAuth 2.1 dans le navigateur, ou en Bearer la clé de `citeme login` | Starter | | **CLI** `citeme` | Analyse du code, suggestions, `llms-txt`, agent des Actions. Pas encore de prompts ni de résultats d'audit GEO ([cli-citeme#57](https://github.com/CiteMe/cli-citeme/issues/57)), voir la [CLI](./cli/index.md) | clé créée par `citeme login` | Starter | | **API publique**, `https://app.citeme.io/api/v1` | Intégrations serveur : lister, lancer et lire des audits, lire les suggestions | clé `cm_` du dashboard | Pro | Les deux clés sont distinctes : la clé `cm_` ne marche que sur `/api/v1/projects/*`, la clé de `citeme login` ne marche que sur `/api/v1/cli/*` et sur le MCP hébergé. Détails dans [Authentification](./api/authentication.md). La connexion du MCP est décrite dans [le guide MCP](./mcp/index.md). :::warning Mots-clés et prompts Un audit s'exécute sur les **prompts** actifs du projet (des questions complètes, rangées par thème), jamais sur les mots-clés. `POST /projects/:id/keywords` ne crée pas de prompt. ::: --- ### Recette avec le MCP hébergé Les outils qui écrivent exigent un rôle qui peut modifier. Chaque outil accepte `projectId`, facultatif quand l'organisation n'a qu'un projet. 1. **Trouver le projet** : `list_projects`. 2. **Choisir le marché** : `list_markets` donne les marchés suivis, qui décident du pays et de la langue des prompts. 3. **Créer un thème** : `create_topic` avec `name` (et `marketId` si besoin). Il renvoie l'id du thème. 4. **Créer les prompts** : `create_prompts` avec `topicId` et `prompts`, de 1 à 50 questions de 10 à 1000 caractères, envoyées telles quelles. Pour plusieurs thèmes ou marchés d'un coup, `import_prompts` prend jusqu'à 500 lignes `{ prompt, topic, market }`. Aucun des deux ne lance d'audit. Contrôle : `list_topic_prompts`. 5. **Lancer l'audit** : `run_audit` avec `providers` (par défaut `chatgpt`) et `confirm`. Avec `confirm: false` l'outil renvoie un aperçu sans rien dépenser, avec `confirm: true` il démarre l'audit. Il demande le forfait Pro ou Expert. 6. **Suivre le statut** : `list_audits` (filtre `status` : `PENDING`, `RUNNING`, `COMPLETED`, `FAILED`) ou `get_audit` avec `auditId`, qui donne la progression, le code d'échec le cas échéant, le nombre de prompts exécutés. 7. **Lire les réponses question par question** : `get_audit` (pagination par `limit` et `offset`), ou `list_prompts` pour chaque question avec cité ou non, position et sentiment, ou `get_prompt_detail` pour un prompt. 8. **Lire les citations** : `list_citations` pour les passages où la marque est citée, `list_cited_sources` pour les sources citées par les moteurs, `list_suggestions` pour les recommandations. La liste complète et les arguments de chaque outil sont dans la [référence des outils](./mcp/tools.md) du [guide MCP](./mcp/index.md). --- ### Recette avec l'API publique Avec une clé `cm_` qui a le scope `write` (une clé lecture seule ne permet que les étapes 1, 3 et 4). Les prompts ne se créent pas par cette API : créez-les avant, dans le dashboard ou par le MCP. ```bash BASE=https://app.citeme.io/api/v1 KEY=cm_xxxxxxxxxxxx # 1. trouver l'id du projet curl -s $BASE/projects -H "Authorization: Bearer $KEY" # 2. lancer l'audit, renvoie { "data": { "auditId", "jobId" } } curl -s -X POST $BASE/projects/$PROJECT_ID/audits \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"model":"gpt-4.1","region":"fr"}' # 3. suivre le statut: chercher l'auditId, attendre COMPLETED ou FAILED curl -s $BASE/projects/$PROJECT_ID/audits -H "Authorization: Bearer $KEY" # 4. lire les réponses et les citations de chaque question curl -s $BASE/projects/$PROJECT_ID/audits/$AUDIT_ID -H "Authorization: Bearer $KEY" ``` Si un audit est déjà en cours, l'étape 2 renvoie son `auditId` avec `reused: true` au lieu d'en créer un second. Le détail (`queries[].prompt`, `response`, `provider`, `cited`, `sources`, `citations`, `analytics`) est décrit dans [Audits GEO](./api/audits.md). --- ### Erreurs fréquentes | Symptôme | Cause | |----------|-------| | `401` sur `app.citeme.io/api/v1/projects` avec la clé de `citeme login` | Mauvaise clé : il faut une clé `cm_` du dashboard | | `403 ... does not have write permissions` | Clé `cm_` créée en lecture seule : en créer une avec écriture | | `403 ... requires a platform subscription` | Forfait sans accès API : Pro ou Expert requis | | `500 Failed to start audit` | Quota d'audits épuisé ou modèle non disponible dans le forfait | | Audit terminé mais `queries` vide | Aucun prompt actif : en créer, les mots-clés ne comptent pas | --- ## Serveur MCP Assistants IA Nouveau Le serveur MCP de CiteMe branche votre compte sur votre assistant IA. Vous posez une question à Claude, à ChatGPT ou à un autre client compatible, et l'assistant va chercher la réponse dans CiteMe : vos audits, les réponses des moteurs IA, vos citations, le trafic que l'IA envoie sur votre site, vos suggestions. Il peut aussi agir pour vous dans CiteMe, par exemple ranger vos prompts, approuver une suggestion ou lancer un audit. MCP (*Model Context Protocol*) est le standard ouvert qui permet à ces assistants d'utiliser des services externes. Le serveur est hébergé par CiteMe à l'adresse `https://mcp.citeme.io` : il n'y a rien à installer, vous ajoutez cette adresse dans votre assistant et vous vous connectez avec votre compte CiteMe. > Exemple : « Sur quels moteurs IA sommes-nous le moins cités, et sur quelles questions concurrent.com passe-t-il devant nous ? » --- ### Qui peut l'utiliser #### Forfait Le serveur MCP est disponible à partir du forfait **Starter** : Starter, Pro et Expert. Une organisation en **Free** ne peut pas se connecter, la connexion est refusée avec un lien vers la page des tarifs. Certains outils suivent les mêmes restrictions que le dashboard. Le trafic IA, l'impact business, le lancement manuel d'un audit et l'analyse des profils sociaux demandent le forfait **Pro** ou **Expert**, la vue portefeuille multi-projets le forfait **Expert**. La [référence des outils](./tools.md) l'indique pour chaque outil concerné. #### Rôle dans l'organisation | Rôle | Ce que l'assistant peut faire | |------|-------------------------------| | **Propriétaire**, **Administrateur**, **Membre** | Lire et modifier | | **Lecteur** | Lire uniquement | Avec un siège Lecteur, les outils qui modifient quelque chose sont refusés et rien n'est changé. L'accès se donne au niveau de l'organisation : la connexion ouvre tous les projets de l'organisation. Une personne invitée sur un seul projet, sans siège dans l'organisation, ne peut pas connecter le serveur MCP. #### Si vous appartenez à plusieurs organisations {#plusieurs-organisations} Une connexion donne accès à une seule organisation. Si votre compte appartient à plusieurs, CiteMe retient, par ordre de priorité : 1. une organisation dont le forfait inclut le MCP ; 2. parmi elles, une où votre rôle permet de modifier ; 3. à égalité, celle que vous avez rejointe en premier. Le choix de l'organisation n'est pas encore proposé au moment de la connexion. Quand l'organisation compte plusieurs projets, nommez le site concerné dans votre demande : l'assistant retrouve le projet tout seul. #### Durée de l'accès Après la connexion, votre client reçoit un jeton d'accès valable une heure au plus, qu'il renouvelle seul en arrière-plan. À chaque renouvellement, CiteMe revérifie que vous êtes toujours membre de l'organisation, votre rôle et le forfait. - **Les écritures s'arrêtent tout de suite** quand un membre est retiré, passe Lecteur, ou quand l'organisation repasse en Free : chaque outil qui modifie quelque chose revérifie le rôle et le forfait à chaque appel. - **La lecture peut continuer jusqu'à une heure**, le temps que le jeton en cours expire. Le renouvellement suivant est refusé et la connexion s'arrête. - **Une connexion inutilisée pendant 30 jours expire.** Il suffit de reconnecter le connecteur. --- ### Par où commencer 1. **[Connecter votre assistant](./connect.md)** : Claude, ChatGPT, un autre client MCP ou le paquet local. 2. **[Exemples de demandes](./examples.md)** : ce que vous pouvez demander, classé par besoin. 3. **[Sécurité et confirmations](./safety.md)** : ce que l'assistant peut faire dans CiteMe, et ce qu'il ne fera jamais. 4. **[Référence des outils](./tools.md)** : la liste complète des outils et ce que chacun touche. 5. **[Limites et dépannage](./troubleshooting.md)** : nombre d'appels, taille des réponses, messages d'erreur. --- ## Connecter votre assistant Installation Il vous faut un compte CiteMe dans une organisation **Starter**, **Pro** ou **Expert**, et l'adresse du serveur : ``` https://mcp.citeme.io ``` :::tip Le raccourci depuis CiteMe Dans un projet, ouvrez **Paramètres > Outils développeur**. La carte **Serveur MCP** propose les boutons **Connecter à Claude** et **Connecter à ChatGPT**, qui ouvrent le bon écran avec l'adresse déjà remplie, ainsi que la configuration à copier pour Cursor, n8n et les autres clients. ::: --- ### Claude La connexion se fait dans le navigateur, sans clé à copier. 1. Cliquez sur **Connecter à Claude** dans CiteMe. Sinon, ouvrez [la page des connecteurs de Claude](https://claude.ai/customize/connectors), cliquez sur « Add custom connector », nommez le connecteur `CiteMe` et collez l'adresse `https://mcp.citeme.io`. 2. Vérifiez le nom et l'adresse, puis validez l'ajout. 3. Sur la fiche du connecteur, cliquez sur « Connect », puis sur « Sign in now » si Claude le propose. Une page CiteMe s'ouvre : connectez-vous si besoin, vérifiez le nom de l'application qui demande l'accès, puis cliquez sur « Authorize ». 4. Dans une conversation, ouvrez le menu « + », puis « Connectors », et activez **CiteMe**. :::info Claude Team et Enterprise Sur ces offres, l'ajout d'un connecteur personnalisé est en général réservé aux propriétaires de l'organisation Claude. Une fois le connecteur ajouté, chaque personne s'y connecte avec son propre compte CiteMe et garde les droits de son propre rôle. ::: --- ### ChatGPT ChatGPT accepte les serveurs MCP externes en **mode développeur**, disponible sur les forfaits ChatGPT payants et désactivé par défaut. 1. Dans ChatGPT, ouvrez « Settings », puis « Security and login », et activez « Developer mode ». 2. Cliquez sur **Connecter à ChatGPT** dans CiteMe. Dans le formulaire « New Plugin », donnez-lui un nom (`CiteMe`), collez `https://mcp.citeme.io` dans « Connection », cochez « I understand and want to continue », puis cliquez sur « Create ». 3. ChatGPT ouvre la page de connexion CiteMe : connectez-vous si besoin, puis cliquez sur « Authorize ». 4. Dans chaque conversation, activez CiteMe via le menu « + », puis « Developer mode ». :::note ChatGPT renomme régulièrement ces menus. Si un libellé a changé, cherchez « Developer mode » et « Connectors » dans les réglages. ::: --- ### Autres clients MCP Tout client qui parle MCP en **Streamable HTTP** peut se connecter : n8n, un framework d'agents, votre propre code. | Réglage | Valeur | |---------|--------| | URL du serveur | `https://mcp.citeme.io`, ou `https://mcp.citeme.io/api/mcp` si votre client exige un chemin | | Transport | Streamable HTTP, réponses en JSON | | Authentification | OAuth 2.1 avec PKCE (`S256`) | | Scopes | `read`, `write` | La découverte est automatique. Sans jeton, le serveur répond `401` avec un en-tête `WWW-Authenticate` qui pointe vers ses métadonnées, `https://mcp.citeme.io/.well-known/oauth-protected-resource`. Le serveur d'autorisation est `https://app.citeme.io` : il accepte l'enregistrement dynamique des clients et les documents de métadonnées client (un `client_id` sous forme d'URL HTTPS). Le paramètre `resource` doit être l'URL du serveur MCP. #### Clients sans connexion OAuth Certains outils, comme n8n, envoient un en-tête fixe au lieu d'ouvrir une connexion dans le navigateur. Utilisez alors la clé que la CLI CiteMe enregistre quand vous vous connectez : ```bash npm install -g @citeme-io/cli citeme login citeme config ``` `citeme config` affiche l'emplacement du fichier de configuration qui contient la clé. Envoyez-la dans l'en-tête `Authorization: Bearer `. Elle expire au bout de 90 jours : relancez `citeme login` pour en obtenir une nouvelle. :::caution Cette clé agit en votre nom, avec tous les droits de votre rôle. Ne la partagez pas et ne la placez pas là où d'autres peuvent la lire, par exemple dans un workflow n8n partagé. ::: --- ### Paquet local (stdio) {#paquet-local} Certains clients ne lancent que des serveurs MCP installés sur votre machine. Pour eux, CiteMe publie le paquet `@citeme-io/mcp`. Il réutilise la connexion de la CLI : pas de seconde connexion, pas de seconde clé. Il expose ses propres outils (projets, suggestions, thèmes, prompts, workflows) et reprend une partie de ceux du serveur hébergé. Les outils `run_audit`, `list_audits` et `get_audit` sont ceux du serveur hébergé : pour piloter les audits, connectez-vous-y directement. Voir la [CLI](../cli/index.md). Il faut Node.js 18 ou plus récent. **1. Connectez la CLI une fois :** ```bash npm install -g @citeme-io/cli citeme login ``` **2. Ajoutez le serveur à votre client.** Pour Claude Desktop (`claude_desktop_config.json`) et Cursor (`.cursor/mcp.json` dans le projet, ou `~/.cursor/mcp.json`) : ```json { "mcpServers": { "citeme": { "command": "npx", "args": ["-y", "@citeme-io/mcp"] } } } ``` Pour Claude Code : ```bash claude mcp add citeme -- npx -y @citeme-io/mcp ``` Le paquet ajoute aussi quelques outils qui lui sont propres, dont ceux des [Actions](../actions/index.md) : `list_workflows`, `run_workflow` et `get_workflow_run`. `run_workflow` lance un de vos workflows tel que vous l'avez configuré, publication sur votre CMS comprise si le workflow en contient une. Ces outils n'existent pas sur le serveur hébergé. --- **[Exemples de demandes →](./examples.md)** --- ## Exemples de demandes Usage Vous n'avez pas besoin de connaître les outils : décrivez ce que vous voulez savoir ou faire, et l'assistant choisit les outils CiteMe à appeler, souvent plusieurs à la suite. Si votre organisation compte plusieurs projets, nommez le site concerné. Sous chaque groupe d'exemples figurent les principaux outils que l'assistant utilisera. Ils sont décrits dans la [référence des outils](./tools.md). --- ### Vérifier votre visibilité - « Quel est notre score GEO sur le dernier audit, et comment a-t-il évolué sur les cinq derniers ? » - « Sur quels moteurs IA sommes-nous bien cités, et lesquels nous ignorent ? » - « Dans le dernier audit, sur quelles questions sommes-nous cités, et sur lesquelles ne le sommes-nous pas ? » - « Y a-t-il des alertes non lues sur le projet ? » *Outils : `get_latest_audit`, `visibility_trend`, `visibility_by_model`, `list_prompts`, `list_alerts`.* --- ### Comprendre pourquoi un concurrent passe devant - « Pourquoi les moteurs IA citent-ils concurrent.com plutôt que nous ? » - « Quelle est notre part de voix face à nos concurrents, et quels sites cités ressemblent à des concurrents que nous ne suivons pas encore ? » - « Sur la question "meilleur logiciel de paie pour PME", qu'ont répondu ChatGPT et Perplexity, et quelles sources ont-ils citées ? » - « Quels sites les moteurs IA citent-ils le plus sur nos sujets : les nôtres, ceux des concurrents, Wikipedia, les réseaux sociaux ? » *Outils : `compare_visibility`, `get_competitor_insights`, `get_prompt_detail`, `list_cited_sources`, `get_authority_report`.* --- ### Voir ce que les robots IA lisent sur votre site Forfaits Pro et Expert. - « Quels robots IA ont visité le site ces 30 derniers jours, et quelles pages lisent-ils le plus ? » - « Combien de visiteurs ChatGPT et Perplexity nous ont-ils envoyés ce mois-ci, et combien ont converti ? » - « Quelles vraies questions ont amené des visiteurs depuis un moteur IA, et lesquelles ne sont pas encore suivies comme prompts ? » *Outils : `get_ai_traffic_summary`, `list_ai_visits`, `get_ai_impact`, `list_discovered_queries`.* --- ### Trier les suggestions - « Liste les suggestions en attente et résume les cinq plus récentes. » - « Lis la suggestion sur la page tarifs et explique-moi son raisonnement. » - « Rejette les suggestions qui concernent le blog, et approuve les deux sur la FAQ. » - « Nous avons mis en ligne la nouvelle page tarifs hier à 14 h : enregistre ce changement pour mesurer son effet. » *Outils : `list_suggestions`, `get_suggestion`, `set_suggestion_status`, `record_change_event`.* Approuver une suggestion ne la publie pas et ne l'applique pas sur votre site. Voir [Sécurité et confirmations](./safety.md). --- ### Ranger la bibliothèque de prompts - « Quels prompts ont le meilleur score d'opportunité ? Et lesquels ne sont jamais cités ? » - « Archive les prompts actifs qui n'ont jamais été cités. » - « Crée un sujet "Livraison" sur le marché France et déplace-y toutes les questions sur les délais de livraison. » - « Renomme le sujet "Divers" en "Questions générales". » - « Supprime le sujet "Test" mais garde ses prompts. » *Outils : `list_prompt_performance`, `list_topics`, `list_topic_prompts`, `create_topic`, `move_prompts`, `rename_topic`, `archive_prompts`, `activate_prompts`, `delete_topic`, `remove_prompts`.* --- ### Ajouter et importer des prompts - « Ajoute ces 12 questions au sujet "Tarifs" : … » - « Voici les 200 questions de notre FAQ client, avec un sujet pour chacune : importe-les sur le marché fr-FR. Montre-moi d'abord l'aperçu. » - « Trouve de nouvelles questions que les gens posent dans notre marché. » *Outils : `create_prompts`, `import_prompts`, `run_prompt_discovery`, `get_prompt_discovery`.* L'import et la découverte consomment des crédits : l'assistant obtient d'abord un aperçu, et ne lance rien sans confirmation. Voir [Sécurité et confirmations](./safety.md). --- ### Lancer un suivi ou un audit - « Combien d'audits manuels me reste-t-il cette semaine, et de suivis manuels ce mois-ci ? » - « Relance le suivi de nos prompts sur Perplexity et dis-moi quand c'est fini. » - « Lance un audit sur ChatGPT, Claude et Gemini. Montre-moi d'abord ce que ça consomme. » *Outils : `get_usage`, `run_prompt_tracking`, `get_tracking_run`, `get_tracking_status`, `run_audit`, `get_audit`.* Le lancement manuel d'un audit demande le forfait Pro ou Expert. --- ### Suivre plusieurs clients Pour les agences, sur le forfait Expert. - « Classe tous nos projets par évolution du score sur 30 jours et dis-moi lesquels demandent de l'attention. » - « Compare les projets A, B et C sur le score, le taux de citation et la couverture des prompts. » *Outils : `list_projects`, `get_portfolio`.* --- ### Réseaux sociaux - « Comment les moteurs IA voient-ils nos profils LinkedIn et YouTube ? » - « Notre compte X est @exemple : enregistre-le, puis relance l'analyse des profils sociaux. » *Outils : `get_social_analysis`, `set_social_profiles`, `run_social_analysis`. Le lancement d'une analyse demande le forfait Pro ou Expert.* --- ### Les questions prêtes à l'emploi Le serveur propose aussi quatre questions préparées, que certains clients affichent dans un menu, par exemple le menu « + » de Claude Desktop ou les commandes `/` de Claude Code : | Question | Ce qu'elle fait | |----------|-----------------| | `why_am_i_losing` | Explique pourquoi les moteurs citent un concurrent plus que vous, et quoi faire | | `what_should_i_fix_first` | Choisit, d'après le dernier audit, le changement le plus utile à faire ensuite | | `am_i_improving` | Dit si votre visibilité IA progresse ou recule, et pourquoi | | `who_is_reading_my_site` | Montre quels robots IA ont lu le site, et quelles pages | --- **[Sécurité et confirmations →](./safety.md)** --- ## Sécurité et confirmations Sécurité Le serveur MCP donne à votre assistant le même accès que vous dans CiteMe, limité par votre rôle et votre forfait, et rien de plus. Chaque outil appartient à l'une de ces familles : | Famille | Effet | Exemples | |---------|-------|----------| | **Lecture** | Ne modifie rien | `get_latest_audit`, `list_citations`, `get_usage` | | **Écriture** | Modifie vos données CiteMe | `create_topic`, `move_prompts`, `set_suggestion_status` | | **Consomme** | Lance un traitement qui consomme des crédits ou un quota, après un aperçu | `run_audit`, `run_prompt_tracking`, `import_prompts` | | **Destructif** | Supprime des données | `delete_topic`, `remove_prompts` | Chaque outil déclare sa famille à votre client, ce qui lui permet de vous demander votre accord avant d'appeler un outil qui modifie quelque chose. Gardez cette confirmation activée. --- ### Les outils de lecture Ils consultent vos données et ne changent rien, ni dans CiteMe ni ailleurs. Un siège Lecteur n'a accès qu'à ceux-là. --- ### Les outils qui consomment des crédits Cinq outils lancent des appels aux moteurs IA ou à des services de recherche, ou utilisent un quota de votre forfait. Ils fonctionnent tous en deux temps : 1. **L'aperçu.** Appelé avec `confirm: false`, l'outil ne lance rien. Il répond avec ce qui serait exécuté, le nombre d'appels prévus, le quota utilisé et ce qu'il vous en reste. Il fait les mêmes vérifications qu'un vrai lancement, donc un refus (quota épuisé, projet pas prêt, forfait insuffisant) apparaît dès l'aperçu. 2. **Le lancement.** L'outil ne lance le traitement qu'avec `confirm: true`. L'assistant doit vous montrer l'aperçu et attendre votre accord avant de confirmer. Vous pouvez le lui demander explicitement : « montre-moi d'abord ce que ça va consommer ». | Outil | Ce qu'il utilise | |-------|------------------| | `run_audit` | Un audit manuel de la semaine par moteur choisi. Forfaits Pro et Expert. | | `run_prompt_tracking` | Un des suivis manuels du mois, pour un moteur. Les suivis planifiés ne sont pas touchés. | | `import_prompts` | Une place du quota de prompts par prompt ajouté. L'aperçu classe chaque ligne : nouvelle, doublon, invalide ou hors quota. | | `run_prompt_discovery` | Une des découvertes de prompts du mois. | | `run_social_analysis` | Aucun quota mensuel, mais une seule analyse à la fois, puis une heure d'attente avant la suivante. Forfaits Pro et Expert. | Ces outils utilisent les mêmes quotas que le dashboard : un audit lancé depuis votre assistant compte comme un audit lancé depuis CiteMe. Un seul traitement de chaque sorte tourne à la fois sur un projet. Si un audit lancé dans l'heure est encore en cours, `run_audit` renvoie cet audit au lieu d'en démarrer un second, et il en va de même pour un suivi ou une découverte en cours. Une nouvelle analyse sociale est refusée tant que la précédente tourne. --- ### Les outils destructifs Deux outils suppriment des données. Ils sont déclarés comme destructifs, pour que votre client vous demande confirmation avant chaque appel. - **`delete_topic`** supprime un sujet. Ses prompts ne sont pas supprimés : ils gardent leur statut et leur marché, et se retrouvent sans sujet. Les réponses des audits passés perdent leur rattachement à ce sujet. - **`remove_prompts`** retire jusqu'à 100 prompts. Un prompt écrit à la main, ou inactif, est supprimé définitivement : ses anciens résultats de suivi sont conservés mais ne lui sont plus rattachés. Un prompt actif trouvé par CiteMe (découverte, Search Console, visites IA) est seulement écarté, pour ne pas vous être reproposé. Le retirer une seconde fois le supprime. Pour mettre des prompts de côté sans rien perdre, préférez `archive_prompts` : ils sortent des audits et du quota, et `activate_prompts` les fait revenir. --- ### Les autres écritures Elles agissent uniquement sur vos données CiteMe. - Quand un outil reçoit une liste d'identifiants de prompts ou de suggestions, chacun doit appartenir au projet. Sinon, rien n'est modifié. - `set_suggestion_status` change seulement le statut d'une suggestion, en Approuvée ou Rejetée. Il ne publie, n'applique et ne modifie jamais son contenu. Il refuse d'approuver une suggestion qui porte une date de publication programmée, puisque CiteMe la publierait à cette date. - `record_change_event` enregistre seulement qu'une page a changé à une date donnée. Il ne touche pas à la page et ne lance pas d'audit. --- ### Ce que le serveur MCP ne fait jamais Le serveur hébergé n'a aucun outil pour : - publier du contenu, appliquer une suggestion sur votre site, lancer ou valider un workflow Actions, ni déployer quoi que ce soit sur votre site ; - toucher à la facturation : abonnement, crédits, options, moyens de paiement ; - lire ou modifier des identifiants : clés API, secrets, connexions CMS, CRM, Stripe, Cloudflare ou Google ; - gérer l'équipe : invitations, rôles, retrait de membres ; - supprimer ou archiver un projet ou un marché, supprimer le compte ou transférer l'organisation ; - accéder aux données personnelles des visiteurs identifiés ou lancer un export RGPD. Ces actions restent dans le dashboard, où vous les faites vous-même. :::caution Paquet local Le [paquet local](./connect.md#paquet-local) ajoute l'outil `run_workflow`, qui lance un de vos workflows Actions tel que vous l'avez configuré, y compris une publication sur votre CMS si le workflow en contient une. Cet outil n'existe pas sur le serveur hébergé. ::: --- ### Ce que CiteMe voit CiteMe reçoit les appels d'outils de votre assistant et leurs paramètres, pas vos conversations. Pour chaque appel, CiteMe enregistre l'outil, le projet, la durée et l'éventuelle erreur, pour le support et le suivi de l'usage. --- ### Bonnes pratiques - Gardez activée, dans votre client, la confirmation avant tout outil qui n'est pas en lecture. - Donnez le rôle Lecteur aux personnes qui n'ont besoin que de consulter. - Les outils renvoient des contenus venus du web : réponses des moteurs, pages citées, suggestions. Si l'assistant propose une action inattendue juste après avoir lu ces contenus, refusez-la et vérifiez dans le dashboard. --- **[Référence des outils →](./tools.md)** --- ## Référence des outils Référence Le serveur MCP propose **46 outils** : 30 en lecture et 16 en écriture, dont 5 qui consomment des crédits et 2 destructifs. Votre assistant les choisit seul. Cette page sert à savoir ce qu'il peut faire et ce que chaque outil touche. | Type | Signification | |------|---------------| | **Lecture** | Consulte vos données, ne modifie rien. | | **Écriture** | Modifie vos données CiteMe. Demande le rôle Propriétaire, Administrateur ou Membre. | | **Consomme** | Écriture qui consomme des crédits ou un quota. Aperçu avec `confirm: false`, lancement avec `confirm: true`. | | **Destructif** | Écriture qui supprime des données. | Presque tous les outils prennent un `projectId`. Il est facultatif quand l'organisation n'a qu'un projet. Sinon, l'assistant le trouve avec `list_projects`. Votre client affiche le détail des paramètres de chaque outil. Les règles communes sont dans [Sécurité et confirmations](./safety.md). --- ### Projets et usage | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `list_projects` | Lecture | Les projets de l'organisation, avec leur URL et leur statut de crawl. | | `get_usage` | Lecture | Le forfait et les quotas de l'organisation (projets, sièges, audits du mois). Pour un projet, ajoute ses audits manuels, ses prompts actifs et ses suivis manuels restants. | | `get_portfolio` | Lecture | Tous les projets côte à côte sur 7, 30 ou 90 jours : score, taux de citation, visiteurs envoyés par l'IA, évolution, rang et points d'attention. Peut comparer 2 à 10 projets. Forfait Expert. | --- ### Audits et citations | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `get_latest_audit` | Lecture | Le dernier audit terminé : score global, scores par moteur et jusqu'à 50 réponses, celles qui citent la marque en premier. | | `list_audits` | Lecture | L'historique des audits, tous statuts confondus, avec le score, les moteurs, la durée et la cause d'un échec. | | `get_audit` | Lecture | Un audit précis, même en cours : progression, scores, et les réponses page par page avec les URL citées. | | `list_prompts` | Lecture | Les questions posées lors d'un audit et, pour chacune, si la marque est citée, à quelle position et avec quel sentiment. | | `list_citations` | Lecture | Les extraits cités par les moteurs sur la marque, avec la page d'origine, la confiance et le sentiment. | | `visibility_by_model` | Lecture | La fréquence de citation par moteur IA sur les audits récents. | | `visibility_trend` | Lecture | Le score et le détail par moteur sur les derniers audits, pour voir ce qui monte ou baisse. | | `list_alerts` | Lecture | Les alertes du projet : score en baisse ou en hausse, citations perdues ou gagnées, concurrent qui passe devant, audit en échec. | --- ### Prompts et sujets | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `list_markets` | Lecture | Les marchés du projet, un par couple pays et langue, avec leur identifiant. | | `list_topics` | Lecture | Les sujets, leur marché et leur nombre de prompts actifs. | | `list_topic_prompts` | Lecture | Les prompts de la bibliothèque, avec texte, langue, marché et statut, pour tout le projet ou un seul sujet. | | `list_prompt_performance` | Lecture | Les prompts actifs avec leur taux de citation, les moteurs qui les citent, le volume estimé, le score d'opportunité et la tendance. | | `get_prompt_detail` | Lecture | Un prompt en détail : dernière réponse de chaque moteur et ses sources, tendance et part de voix. | | `create_topic` | Écriture | Crée un sujet, sur un marché donné ou sur le marché principal. | | `rename_topic` | Écriture | Renomme un sujet et, si demandé, change sa description. | | `delete_topic` | Destructif | Supprime un sujet. Ses prompts restent, sans sujet. | | `create_prompts` | Écriture | Ajoute jusqu'à 50 prompts actifs à un sujet. Chacun prend une place du quota de prompts. Ne lance pas d'audit. | | `move_prompts` | Écriture | Déplace jusqu'à 100 prompts dans un sujet, qui leur donne son marché. | | `archive_prompts` | Écriture | Archive jusqu'à 100 prompts : ils sortent des audits et du quota, leurs résultats sont conservés. | | `activate_prompts` | Écriture | Active jusqu'à 100 prompts archivés, écartés ou suggérés, dans la limite du quota. | | `remove_prompts` | Destructif | Retire jusqu'à 100 prompts : suppression définitive, ou mise à l'écart pour ceux que CiteMe a trouvés lui-même. | --- ### Analytique et trafic IA Ces outils lisent les visites captées par le beacon CiteMe, sur les forfaits Pro et Expert. | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `get_ai_traffic_summary` | Lecture | Les robots IA (par fournisseur, pages les plus lues) et les visiteurs arrivés depuis une réponse IA, sur 7, 30 ou 90 jours. | | `list_ai_visits` | Lecture | Les visites une par une, robot ou humain, avec la page, la date et la requête quand elle est connue. | | `get_ai_impact` | Lecture | Visites, conversions, pipeline et revenus apportés par l'IA, par moteur, comparés à la période précédente. | | `list_discovered_queries` | Lecture | Les requêtes réelles détectées dans les visites IA, et si elles sont déjà suivies comme prompts. | --- ### Concurrents et autorité | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `compare_visibility` | Lecture | Votre score GEO à côté de celui de chaque concurrent suivi, du meilleur au moins bon. | | `get_competitor_insights` | Lecture | La part de voix de la marque face à chaque concurrent, et les sites cités qui ressemblent à des concurrents pas encore suivis. | | `list_cited_sources` | Lecture | Les sites cités comme sources sur 30 ou 90 jours, répartis entre les vôtres, les concurrents, les réseaux sociaux, Wikipedia et les autres, par moteur. | | `get_authority_report` | Lecture | Le dernier audit d'autorité de marque : score par dimension, actions recommandées, mentions presse récentes. | --- ### Suggestions et changements | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `list_suggestions` | Lecture | Les suggestions d'optimisation, des plus récentes aux plus anciennes, filtrables par statut. | | `get_suggestion` | Lecture | Une suggestion complète : contenu, raisonnement, impact attendu, effort, et dernière vérification sur le site. | | `set_suggestion_status` | Écriture | Approuve ou rejette jusqu'à 50 suggestions. Ne publie et n'applique rien. | | `record_change_event` | Écriture | Enregistre qu'une page a changé à une date donnée, pour comparer la visibilité avant et après. | --- ### Exécutions qui consomment des crédits | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `run_audit` | Consomme | Lance un audit GEO complet sur les moteurs choisis. Utilise un audit manuel de la semaine par moteur. Forfaits Pro et Expert. | | `run_prompt_tracking` | Consomme | Mesure à nouveau les prompts actifs sur un moteur, en dehors du calendrier. Utilise un suivi manuel du mois. | | `get_tracking_run` | Lecture | La progression d'un suivi : statut, prompts traités ou en échec, cause d'un échec. | | `get_tracking_status` | Lecture | La cadence du suivi, le dernier et le prochain passage, les suivis manuels restants et le dernier résultat de chaque prompt par moteur. | | `import_prompts` | Consomme | Importe jusqu'à 500 prompts répartis par sujet et par marché, en créant les sujets manquants. | | `run_prompt_discovery` | Consomme | Cherche de nouvelles questions posées dans votre marché et les ajoute comme prompts suggérés. Utilise une découverte du mois. | | `get_prompt_discovery` | Lecture | Le résultat d'une découverte : sources utilisées et prompts suggérés. | --- ### Réseaux sociaux | Outil | Type | Ce qu'il fait | |-------|------|---------------| | `get_social_analysis` | Lecture | Comment les moteurs IA voient vos profils sociaux : profils connus, dernière analyse, score et recommandations. | | `set_social_profiles` | Écriture | Enregistre ou retire l'URL d'un ou plusieurs profils : LinkedIn, YouTube, X, Instagram, TikTok, Reddit, Facebook. | | `run_social_analysis` | Consomme | Lance l'analyse des profils sociaux. Une à la fois, puis une heure d'attente. Forfaits Pro et Expert. | ### Arguments par outil Colonnes : `Requis` indique si l'argument est obligatoire. `projectId` est facultatif partout où il figure : sans lui, l'outil prend l'unique projet de l'organisation et refuse si elle en a plusieurs. Les types et bornes sont ceux que le serveur impose, il refuse tout appel qui sort du schéma. #### `list_projects` Type : lecture seule. Aucun argument. #### `get_latest_audit` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `compare_visibility` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `visibility_by_model` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `visibility_trend` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `limit` | entier | non | 1 à 30, défaut `5` | #### `list_prompts` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `auditId` | texte | non | au moins 1 caractère | | `citedOnly` | booléen | non | | | `limit` | entier | non | 1 à 100, défaut `30` | #### `list_citations` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `auditId` | texte | non | au moins 1 caractère | | `limit` | entier | non | 1 à 100, défaut `25` | #### `list_ai_visits` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `visitors` | texte | non | parmi `all`, `humans`, `bots`, `all` (défaut `all`) | | `days` | entier | non | 1 à 90, défaut `7` | | `limit` | entier | non | 1 à 200, défaut `50` | #### `list_suggestions` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `status` | texte | non | parmi `PENDING`, `APPROVED`, `EDITED`, `REJECTED`, `PUBLISHED`, `FAILED`, `APPLIED`, `DELETED` | | `limit` | entier | non | 1 à 100, défaut `20` | #### `list_markets` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `list_topics` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `status` | texte | non | parmi `ACTIVE`, `SUGGESTED`, `ARCHIVED` | #### `list_topic_prompts` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `topicId` | texte | non | au moins 1 caractère | | `status` | texte | non | parmi `ACTIVE`, `SUGGESTED`, `ARCHIVED`, `DISMISSED` | | `limit` | entier | non | 1 à 500, défaut `100` | | `offset` | entier | non | 0 à 100000, défaut `0` | #### `create_topic` Type : écriture, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `name` | texte | oui | au moins 2 caractères | | `description` | texte | non | | | `marketId` | texte | non | au moins 1 caractère | #### `create_prompts` Type : écriture, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `topicId` | texte | oui | au moins 1 caractère | | `prompts` | liste de textes | oui | 1 à 50 éléments, chacun de 10 à 1000 caractères | | `language` | texte | non | parmi `fr`, `en`, `es`, `de`, `it`, `pt`, `nl`, `af`, … | #### `get_social_analysis` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `run_social_analysis` Type : écriture, consomme des crédits ou un quota, `confirm` obligatoire, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `confirm` | booléen | oui | | #### `set_social_profiles` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `profiles` | liste d'objets | oui | 1 à 7 éléments | | `profiles[].platform` | texte | oui | parmi `linkedin`, `youtube`, `x`, `instagram`, `tiktok`, `reddit`, `facebook` | | `profiles[].url` | string or null | oui | | #### `get_audit` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `auditId` | texte | oui | au moins 1 caractère | | `limit` | entier | non | 1 à 50, défaut `15` | | `offset` | entier | non | 0 à 10000, défaut `0` | #### `list_audits` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `status` | texte | non | parmi `PENDING`, `RUNNING`, `COMPLETED`, `FAILED` | | `limit` | entier | non | 1 à 50, défaut `10` | #### `list_cited_sources` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `days` | entier | non | parmi `30`, `90`, `30` (défaut `30`) | | `limit` | entier | non | 1 à 50, défaut `20` | #### `get_usage` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `get_suggestion` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `suggestionId` | texte | oui | au moins 1 caractère | #### `list_discovered_queries` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `days` | entier | non | parmi `7`, `30`, `90`, `30` (défaut `30`) | | `state` | texte | non | parmi `NEW`, `TRACKED`, `SUGGESTED`, `INACTIVE` | | `limit` | entier | non | 1 à 100, défaut `25` | #### `get_tracking_status` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `limit` | entier | non | 1 à 100, défaut `30` | #### `list_alerts` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `unreadOnly` | booléen | non | | | `limit` | entier | non | 1 à 100, défaut `20` | #### `get_portfolio` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `days` | entier | non | parmi `7`, `30`, `90`, `7` (défaut `7`) | | `limit` | entier | non | 1 à 200, défaut `50` | | `benchmarkProjectIds` | liste de textes | non | 2 à 10 éléments, chacun au moins 1 caractère | #### `get_ai_impact` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `days` | entier | non | parmi `7`, `30`, `90`, `30` (défaut `30`) | | `from` | texte | non | 10 à 10 caractères | | `to` | texte | non | 10 à 10 caractères | #### `get_ai_traffic_summary` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `days` | entier | non | parmi `7`, `30`, `90`, `30` (défaut `30`) | #### `get_competitor_insights` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `list_prompt_performance` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `topicId` | texte | non | au moins 1 caractère | | `marketId` | texte | non | au moins 1 caractère | | `sort` | texte | non | parmi `opportunity_score`, `estimated_monthly_volume`, `citation_rate`, `created_at`, `opportunity_score` (défaut `opportunity_score`) | | `limit` | entier | non | 1 à 50, défaut `20` | | `cursor` | texte | non | 1 à 32 caractères | #### `get_prompt_detail` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `promptId` | texte | oui | au moins 1 caractère | #### `get_authority_report` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | #### `rename_topic` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `topicId` | texte | oui | 1 à 64 caractères | | `name` | texte | oui | 2 à 200 caractères | | `description` | string or null | non | at most 1000 caractères | #### `delete_topic` Type : écriture, destructif, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `topicId` | texte | oui | 1 à 64 caractères | #### `move_prompts` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `promptIds` | liste de textes | oui | 1 à 100 éléments, chacun de 1 à 64 caractères | | `topicId` | texte | oui | 1 à 64 caractères | #### `archive_prompts` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `promptIds` | liste de textes | oui | 1 à 100 éléments, chacun de 1 à 64 caractères | #### `activate_prompts` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `promptIds` | liste de textes | oui | 1 à 100 éléments, chacun de 1 à 64 caractères | #### `remove_prompts` Type : écriture, destructif, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `promptIds` | liste de textes | oui | 1 à 100 éléments, chacun de 1 à 64 caractères | #### `set_suggestion_status` Type : écriture, idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `suggestionIds` | liste de textes | oui | 1 à 50 éléments, chacun de 1 à 64 caractères | | `status` | texte | oui | parmi `APPROVED`, `REJECTED` | #### `record_change_event` Type : écriture, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `pageUrl` | texte | oui | 4 à 2048 caractères | | `shippedAt` | texte | oui | 4 à 64 caractères | #### `run_prompt_tracking` Type : écriture, consomme des crédits ou un quota, `confirm` obligatoire, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `provider` | texte | non | parmi `PERPLEXITY`, `OPENAI`, `GOOGLE`, `ANTHROPIC`, `XAI`, `DEEPSEEK`, `META`, `MISTRAL`, … | | `scope` | texte | non | parmi `FULL`, `PRIORITY`, `FULL` (défaut `FULL`) | | `confirm` | booléen | oui | | #### `get_tracking_run` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `runId` | texte | non | 1 à 64 caractères | #### `run_audit` Type : écriture, consomme des crédits ou un quota, `confirm` obligatoire, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `providers` | liste de textes | non | 1 à 10 éléments, chacun parmi `chatgpt`, `claude`, `gemini`, `perplexity`, `grok`, `google-aio`, `siri`, `deepseek`, `meta`, `mistral` | | `confirm` | booléen | oui | | #### `import_prompts` Type : écriture, consomme des crédits ou un quota, `confirm` obligatoire, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `rows` | liste d'objets | oui | 1 à 500 éléments | | `rows[].prompt` | texte | oui | 1 à 2000 caractères | | `rows[].topic` | texte | oui | 1 à 200 caractères | | `rows[].market` | texte | non | 1 à 64 caractères | | `confirm` | booléen | oui | | #### `run_prompt_discovery` Type : écriture, consomme des crédits ou un quota, `confirm` obligatoire, non idempotent. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `confirm` | booléen | oui | | #### `get_prompt_discovery` Type : lecture seule. | Argument | Type | Requis | Valeurs | |----------|------|--------|---------| | `projectId` | texte | non | au moins 1 caractère | | `runId` | texte | non | 1 à 64 caractères | --- **[Limites et dépannage →](./troubleshooting.md)** --- ## Limites et dépannage Support --- ### Limites #### Nombre d'appels Une connexion peut faire **60 appels par minute**. Au-delà, le serveur répond `429` (« Too many requests ») avec un en-tête `Retry-After` qui indique combien de secondes attendre avant de réessayer. Une longue série de lectures dans la même conversation peut atteindre cette limite. #### Durée d'un appel Un appel dure **60 secondes** au plus. `import_prompts` s'arrête avant cette limite et renvoie les lignes qu'il n'a pas eu le temps d'écrire dans `pendingRows`, prêtes à être envoyées dans un nouvel appel. #### Taille des réponses Les réponses sont plafonnées pour ne pas saturer la mémoire de travail de l'assistant. Quand une réponse ne contient pas tout : - un champ `truncated` dit ce qui a été laissé de côté, et un total (`total`, ou un compteur propre à l'outil) donne le nombre réel d'éléments ; - les listes se lisent par pages : `limit` règle la taille, `offset` passe à la page suivante dans `get_audit`, `cursor` et `nextCursor` dans `list_prompt_performance` ; - les textes longs sont coupés : 500 caractères par réponse de moteur, 20 000 pour le contenu d'une suggestion. L'assistant lit ces champs et demande la suite quand il en a besoin. Si une réponse vous semble incomplète, demandez-lui de lire la page suivante. #### Taille des lots | Outil | Maximum par appel | |-------|-------------------| | `create_prompts` | 50 prompts | | `move_prompts`, `archive_prompts`, `activate_prompts`, `remove_prompts` | 100 prompts | | `set_suggestion_status` | 50 suggestions | | `import_prompts` | 500 lignes | Pour ajouter beaucoup de prompts, préférez `import_prompts`. Avec `create_prompts`, demandez à l'assistant d'envoyer les appels un par un : des appels lancés en même temps partagent le même quota et ne voient pas ce que les autres ont écrit. --- ### Les outils CiteMe n'apparaissent pas - **Claude** : vérifiez que le connecteur CiteMe est activé dans la conversation, via le menu « + », puis « Connectors ». - **ChatGPT** : vérifiez que le mode développeur est activé et que CiteMe est activé dans la conversation. - **Paquet local** : vérifiez que vous êtes connecté avec `citeme login`. Si vous ne l'étiez pas au démarrage du client, les outils analytiques ne sont pas chargés : connectez-vous, puis redémarrez votre client. Les versions du paquet qui proxifient tous les outils hébergés ([cli-citeme#56](https://github.com/CiteMe/cli-citeme/pull/56)) remplacent ces outils par un seul, `load_citeme_tools`, que l'assistant peut appeler après la connexion, sans redémarrage. ### Un nouvel outil n'apparaît pas Votre client garde la liste des outils obtenue à la connexion. Quand CiteMe ajoute des outils, déconnectez puis reconnectez le connecteur CiteMe dans Claude, ou rafraîchissez-le dans les réglages de ChatGPT (sinon, supprimez-le et recréez-le). Avec le paquet local, redémarrez votre client. ### L'assistant ne trouve pas le bon projet {#mauvais-projet} Une connexion couvre une seule organisation, choisie selon les règles décrites dans [Qui peut l'utiliser](./index.md#plusieurs-organisations). Si le projet que vous cherchez appartient à une autre organisation, l'assistant ne le verra pas. Quand l'organisation compte plusieurs projets, nommez le site concerné dans votre demande. --- ### Messages d'erreur et refus Les messages du serveur sont en anglais. Votre assistant les reformule en général. | Le message parle de | Cause | Que faire | |---------------------|-------|-----------| | « Starter plan or above » | L'organisation est en Free. | Passez au forfait Starter ou supérieur, puis reconnectez le connecteur. | | « on the Pro and Expert plans » | L'outil demande un forfait supérieur au vôtre. | Voir le forfait requis dans la [référence des outils](./tools.md). | | « edit access », « not a viewer seat » | Votre rôle est Lecteur. | Demandez le rôle Membre ou plus à un administrateur de l'organisation. | | « authorized for reading only » | La connexion a été autorisée en lecture seule, par exemple quand vous étiez Lecteur. | Reconnectez le connecteur pour obtenir l'écriture. | | « no longer a member », « no longer covers » | Vous avez été retiré de l'organisation, ou votre rôle a changé. | Reconnectez le connecteur si vous avez toujours accès, sinon voyez avec un administrateur. | | « has used its … manual audits » ou « manual tracking runs » | Le quota du forfait est atteint pour la période. | Vérifiez ce qu'il reste avec `get_usage`, attendez la période suivante ou changez de forfait. | | « already in progress », « still running », « already running » | Un traitement de la même sorte tourne déjà sur ce projet. Rien de nouveau n'est lancé ni consommé. | Attendez la fin. L'assistant peut suivre l'avancement avec `get_audit`, `get_tracking_run`, `get_prompt_discovery` ou `get_social_analysis`. | | « Several projects exist, so pass projectId » | L'organisation a plusieurs projets et la demande n'en nomme aucun. | Précisez le site concerné. | | « not found in this organization » | Le projet appartient à une autre organisation, ou l'identifiant est faux. | Vérifiez le projet. Voir [L'assistant ne trouve pas le bon projet](#mauvais-projet). | | « CiteMe could not complete this call » | Erreur interne de CiteMe. | Réessayez dans un moment. Si l'erreur persiste, écrivez au support. | | « Too many requests » | Plus de 60 appels en une minute. | Attendez quelques secondes. | --- ### Contacter le support Écrivez à **support@citeme.io** en précisant : - l'assistant utilisé (Claude, ChatGPT, autre client, paquet local) ; - la date et l'heure approximatives ; - l'outil concerné et le message d'erreur. N'envoyez jamais votre clé CLI ni un jeton d'accès. --- ## CLI CiteMe Développeurs `citeme` est la ligne de commande de CiteMe, publiée sous `@citeme-io/cli`. Elle analyse le code d'un dépôt, applique les suggestions techniques approuvées, génère un `llms.txt` et fait tourner votre machine comme agent des [Actions](../actions/index.md). Elle demande Node.js 18 ou plus récent et un forfait **Starter** ou supérieur. ```bash npm install -g @citeme-io/cli citeme login ``` --- ### Se connecter `citeme login` ouvre votre navigateur sur CiteMe, puis enregistre une clé sur votre machine. `citeme login --no-browser` demande l'email et le mot de passe dans le terminal. La connexion expire au bout de 5 minutes si vous ne la terminez pas. - La clé expire au bout de **90 jours** : relancez `citeme login`. - Une clé est enregistrée par client (CLI, extension Chrome, MCP). Se connecter dans l'un ne déconnecte pas les autres. - `citeme config` affiche l'emplacement du fichier de configuration, `citeme whoami` et `citeme status` l'état de la connexion, `citeme logout` supprime la clé. - Pour un CI ou un agent sans navigateur, exportez la clé dans `CITEME_API_KEY`. `CITEME_API_URL` change l'URL de l'API et `CITEME_PROJECT_ID` le projet par défaut. :::warning Ce n'est pas une clé API `cm_` La clé de `citeme login` ne fonctionne que sur `/api/v1/cli/*` et sur le [serveur MCP hébergé](../mcp/index.md). Elle est refusée par `/api/v1/projects/*`, qui exige une clé `cm_` du dashboard (forfait Pro). Voir [Authentification](../api/authentication.md). Pour piloter CiteMe depuis un agent, `citeme login` suffit : ne cherchez pas de clé API. ::: --- ### Ce que la CLI sait faire, et ce qu'elle ne sait pas faire Elle couvre le code, les suggestions et les Actions. Elle ne couvre **pas encore** le côté GEO de la plateforme : pas de commande pour créer ou lister des prompts et des thèmes, choisir les questions d'un audit, suivre son avancement ou lire ses résultats (réponses par question, citations, concurrents). C'est suivi dans [cli-citeme#57](https://github.com/CiteMe/cli-citeme/issues/57). `citeme audit` est une analyse du code du dépôt courant, pas l'audit GEO du dashboard. Quand un projet est sélectionné, elle met aussi en file un audit GEO du site en ligne (sur les prompts actifs du projet), et `--wait` attend son score. C'est tout : pour le détail des réponses, utilisez le MCP ou l'API. Pour créer des prompts, lancer un audit et lire ses réponses depuis un agent, utilisez le [serveur MCP hébergé](../mcp/index.md) : la recette est dans [Piloter CiteMe depuis un agent IA](../agents.md). --- ### Paquet MCP local `@citeme-io/mcp` est un serveur MCP qui tourne sur votre machine en stdio, pour les clients qui ne savent lancer qu'un processus local (Claude Desktop, Cursor, Claude Code). Il réutilise la connexion de `citeme login`. ```bash npm install -g @citeme-io/cli @citeme-io/mcp claude mcp add citeme -- npx -y @citeme-io/mcp ``` Il expose ses propres outils, qui appellent `/api/v1/cli/*` : `list_projects`, `get_project`, `get_latest_audit`, `list_suggestions`, `get_suggestion`, `set_suggestion_status`, `list_markets`, `list_topics`, `create_topic`, `create_prompts`, `list_workflows`, `run_workflow` et `get_workflow_run`, ainsi que quatre prompts prêts à l'emploi (`why_am_i_losing`, `what_should_i_fix_first`, `am_i_improving`, `who_is_reading_my_site`). Après connexion, il va chercher une partie des outils analytiques du serveur hébergé. Les outils qui lancent un audit ou lisent ses réponses (`run_audit`, `get_audit`, `list_audits`) sont ceux du serveur hébergé : connectez-vous-y directement. Voir [Connecter votre assistant](../mcp/connect.md#paquet-local). `run_workflow` et la commande `citeme agent` peuvent modifier des fichiers et ouvrir des pull requests sur la machine qui exécute l'agent : n'y branchez que des workflows que vous avez relus. --- **[Référence des commandes →](./commands.md)** --- ## Référence des commandes Référence Les commandes qui parlent à CiteMe (`audit`, `apply`, `projects`, `use`, `suggestions`, `agent`) exigent d'être connecté (`citeme login`). `demo`, `llms-txt`, `completions`, `update`, `version` et `config` fonctionnent sans compte. Les routes appelées sont sous `https://app.citeme.io/api/v1/cli`. Les commandes qui agissent sur un projet utilisent celui choisi par `citeme use`, ou l'option `-p, --project `. ### Compte et projet | Commande | Ce qu'elle fait | |----------|-----------------| | `citeme login [--no-browser]` | Se connecte et enregistre la clé (`/auth`, `/auth/code`, `/auth/exchange`) | | `citeme logout` | Supprime la clé enregistrée | | `citeme whoami` | Affiche l'utilisateur connecté (`/validate`) | | `citeme status` | Connexion, projet sélectionné et chemin de la configuration | | `citeme config` | Affiche le chemin du fichier de configuration | | `citeme projects` / `citeme projects list [--json]` | Liste les projets de l'organisation (`/projects`). Avec `--json` : `{ "projects": [...], "selected": ... }` | | `citeme use [projectId]` | Choisit le projet des commandes suivantes | ### Analyse du code | Commande | Options | Ce qu'elle fait | |----------|---------|-----------------| | `citeme audit` | `-u, --url `, `-v, --verbose`, `--json`, `--threshold `, `-p, --project `, `--wait` | Analyse le dépôt courant (framework détecté, jusqu'à 100 fichiers) et envoie le résultat à `POST /audit` : score technique, problèmes, suggestions. Avec un projet, met aussi en file un audit GEO du site, `--wait` attend son score. `--threshold` fait sortir en code 1 sous le score donné, utile en CI. `--json` imprime le résultat. Quota mensuel de ces audits : 25 en Starter, 100 en Pro, illimité en Expert | | `citeme apply` | `-a, --audit-id `, `--all`, `--dry-run` | Applique dans votre code les patchs techniques approuvés (`/patches`, puis `/patches/:id/applied`). Fait des sauvegardes et les restaure en cas d'échec. `--dry-run` montre les changements sans les écrire | | `citeme llms-txt generate` | `-u, --url `, `-o, --out ` (défaut `llms.txt`), `--stdout` | Construit un `llms.txt` à partir des pages du dépôt | | `citeme llms-txt validate [path]` | | Vérifie un `llms.txt` existant par rapport à la spécification | | `citeme demo` | | Audit d'exemple sur des données fictives, sans compte | ### Suggestions | Commande | Options | Ce qu'elle fait | |----------|---------|-----------------| | `citeme suggestions` | | Menu interactif | | `citeme suggestions list` | `-s, --status` (`PENDING,APPROVED,PUBLISHED,REJECTED`), `-t, --type`, `-l, --limit` (défaut 20), `--json`, `-p, --project` | Liste les suggestions (`/suggestions`) | | `citeme suggestions view ` | | Affiche une suggestion | | `citeme suggestions approve ` / `reject ` | | Change son statut. Approuver une suggestion technique ne modifie pas le code : `citeme apply` l'écrira ensuite | ### Agent des Actions | Commande | Ce qu'elle fait | |----------|-----------------| | `citeme agent register -p [-n ]` | Enregistre cette machine comme agent d'un projet (`/agents/register`) | | `citeme agent run` | Boucle qui récupère les jobs `cli.*` des workflows (`/jobs/next`), les exécute en local et renvoie le résultat (`/jobs/:id/result`) | | `citeme agent status` | État de l'agent de cette machine | ### Divers | Commande | Ce qu'elle fait | |----------|-----------------| | `citeme completions [bash\|zsh\|fish]` | Imprime le script de complétion | | `citeme update [--check]` | Met la CLI à jour, ou vérifie seulement | | `citeme version`, `citeme help [commande]` | Version et aide | --- ### Sortie JSON `--json` existe sur `audit`, `projects list` et `suggestions list`. En cas d'erreur, ces commandes impriment `{ "error": "message" }` sur la sortie standard et sortent en code 1. **[Piloter CiteMe depuis un agent IA →](../agents.md)** --- ## Introduction à CiteAPI Développeurs v1.0.0 CiteAPI est l'interface de programmation REST de CiteMe. Elle permet aux développeurs d'intégrer les capacités de Generative Engine Optimization directement dans leurs applications, pipelines CI/CD, outils de reporting et workflows marketing. L'API expose l'ensemble des fonctionnalités de la plateforme CiteMe : gestion des projets, déclenchement et récupération des audits GEO, consultation des suggestions IA, et gestion des mots-clés. Toutes les réponses sont en JSON et l'authentification se fait par Bearer token. --- ### Cas d'usage typiques #### Automatisation des audits Planifiez des audits GEO récurrents via un cron job ou un pipeline CI/CD. Par exemple, déclenchement automatique d'un audit à chaque déploiement de votre site pour mesurer l'impact des modifications de contenu sur votre visibilité IA. Couplez cela avec des alertes Slack ou email pour être notifié si le GEO Score baisse après un déploiement. #### Reporting et Business Intelligence Récupérez les données brutes d'audit (citations, scores, contextes de réponse) pour les intégrer dans vos dashboards de reporting interne. Construisez des rapports personnalisés croisant les données GEO avec vos métriques business (conversion, revenue, trafic) pour mesurer le ROI de votre stratégie GEO. #### Intégration dans les outils existants Connectez CiteMe à votre stack marketing existante. Utilisez l'API pour pousser les suggestions IA directement dans votre CMS, vos outils de gestion de projet, ou vos plateformes de publication (WordPress, Medium, LinkedIn...). --- ### Standards techniques #### Conditions d'accès L'URL de base est `https://app.citeme.io/api/v1`. L'API est réservée aux forfaits **Pro** et **Expert**. L'accès est contrôlé par des scopes portés par la clé : `read` (lecture) et `write` (lancer un audit, ajouter un mot-clé). Le scope se choisit à la création de la clé, lecture seule par défaut. Voir [Authentification](./authentication). #### Format des réponses - Corps de réponse en **JSON** avec un envelope `data` pour les résultats - Erreurs sous la forme `{ "error": "message" }` avec un code HTTP standard (400, 401, 403, 404, 500) --- ### Endpoints principaux | Catégorie | Endpoints | Description | |-----------|-----------|-------------| | **[Authentification](./authentication)** | — | Bearer token, scopes, sécurité des clés | | **[Projets](./projects)** | `GET /projects`, `GET /projects/:id` | Gestion du portfolio de projets | | **[Audits GEO](./audits)** | `GET /projects/:id/audits`, `POST /projects/:id/audits` | Lancement et récupération des audits | | **[Suggestions IA](./suggestions)** | `GET /projects/:id/suggestions` | Recommandations d'optimisation | | **[Mots-clés](./keywords)** | `GET /projects/:id/keywords`, `POST /projects/:id/keywords` | Mots-clés du projet (pas les prompts d'audit) | | **[Codes d'erreur](./errors)** | — | Référence complète de debug | --- ### Démarrage rapide Générez votre clé secrète depuis le dashboard (**Paramètres > Clés API**), puis testez avec une première requête : ```bash curl https://app.citeme.io/api/v1/projects \ -H "Authorization: Bearer cm_xxxxxxxxxxxx" ``` Si la réponse contient vos projets en JSON, votre clé est valide et vous êtes prêt à intégrer CiteAPI dans vos applications. Vous pilotez CiteMe depuis un agent IA ? Lisez [Piloter CiteMe depuis un agent IA](../agents). **[Authentification →](./authentication)** --- ## Authentification Développeurs L'URL de base est `https://app.citeme.io/api/v1`. Toutes les requêtes exigent un en-tête `Authorization: Bearer cm_...`. ```bash curl https://app.citeme.io/api/v1/projects \ -H "Authorization: Bearer cm_xxxxxxxxxxxx" ``` --- ### Créer une clé Dashboard → Paramètres → Clés API. Seuls les propriétaires et administrateurs de l'organisation peuvent en créer. - **Format** : `cm_` suivi de 48 caractères hexadécimaux. Elle n'est affichée qu'une fois à la création. - **Forfait** : **Pro** ou **Expert**. Avec un autre forfait, les requêtes reçoivent `403`. - **Lecture seule par défaut** : à la création, vous choisissez entre une clé en lecture seule (scope `read`) et une clé qui autorise aussi les écritures (scopes `read` et `write`). Le scope ne dépend pas du forfait. :::danger Ne jamais exposer votre clé Ne l'incluez jamais dans du code côté client ni dans un dépôt public. ::: --- ### Scopes | Requête | Scope exigé | Réponse si absent | |---------|-------------|-------------------| | Toute requête | `read` | `403 Forbidden: This API key does not have read permissions` | | `POST` (lancer un audit, ajouter un mot-clé) | `write`, en plus de `read` | `403 Forbidden: This API key does not have write permissions` | Une clé en lecture seule ne peut donc que lister et lire. Pour lancer un audit par API, créez une clé avec écriture. --- ### Quelle clé pour quelle surface CiteMe a deux systèmes de clés, volontairement séparés. Chacun refuse les routes de l'autre. | | Clé API `cm_` | Clé de `citeme login` | |---|---|---| | Création | Dashboard → Paramètres → Clés API | commande `citeme login` (CLI, extension Chrome, MCP local) | | Forfait minimal | Pro | Starter | | Routes acceptées | `/api/v1/projects/*` (cette documentation) | `/api/v1/cli/*` | | Serveur MCP hébergé (`https://mcp.citeme.io`) | refusée | acceptée comme Bearer | Une clé de `citeme login` appelée sur `/api/v1/projects` est refusée, et une clé `cm_` appelée sur `/api/v1/cli/*` aussi. Pour piloter CiteMe depuis un agent IA, voir [Piloter CiteMe depuis un agent IA](../agents). --- **[Projets →](./projects)** --- ## Audits GEO Trois appels couvrent le cycle d'un audit : lancer, suivre le statut, lire le détail. Tous exigent une clé `cm_` d'un forfait **Pro** ou **Expert** (voir [Authentification](./authentication)). Lancer un audit demande en plus une clé avec le scope `write`. :::info Un audit tourne sur les prompts, pas sur les mots-clés L'audit pose aux moteurs IA les **prompts actifs** du projet. Ils se créent dans le dashboard ou via les outils MCP `create_prompts` et `import_prompts`, pas via [`/keywords`](./keywords). Vérifiez qu'il y en a avant de lancer. ::: --- ### `POST /projects/:id/audits` Lance un audit GEO. Scope `write` requis. **Corps de la requête** (tous les champs sont facultatifs) : ```json { "keywords": ["geo saas"], "model": "gpt-4.1", "region": "fr" } ``` | Champ | Défaut | Description | |-------|--------|-------------| | `keywords` | aucun | Mots-clés de contexte pour l'analyse du site. Ne remplace pas les prompts et ne les sélectionne pas. Sans valeur, le titre du site est utilisé | | `model` | `gpt-4.1` | Modèle à interroger. Les modèles disponibles dépendent de votre forfait | | `region` | `fr` | Langue/région de la simulation | **Réponse (201 Created) :** ```json { "data": { "auditId": "3f6c0d52-1b9e-4c5a-9a53-0c7f3d2a1e44", "jobId": "b2d1c7e0-5a41-4a6e-8f1d-6a0b9c3e7f10" } } ``` Si un audit est déjà en cours sur le projet, aucun second audit n'est créé : la réponse est aussi un `201`, avec l'`auditId` de l'audit en cours, `jobId: null` et `reused: true`. | Statut | Cas | |--------|-----| | `201` | Audit créé ou audit déjà en cours renvoyé | | `403` | Clé sans scope `write`, ou forfait sans accès API | | `404` | Projet introuvable dans votre organisation | | `500` | `Failed to start audit`, y compris quand le quota d'audits du mois ou l'accès au modèle demandé est refusé | Chaque audit consomme du quota mensuel. --- ### `GET /projects/:id/audits` Liste les audits du projet, du plus récent au plus ancien, quel que soit leur statut. C'est l'appel pour suivre un audit lancé : cherchez son `id` et regardez `status`. **Réponse (200 OK) :** ```json { "data": [ { "id": "3f6c0d52-1b9e-4c5a-9a53-0c7f3d2a1e44", "score": 78, "status": "COMPLETED", "duration": 4500, "created_at": "2026-01-22T15:30:00Z", "completed_at": "2026-01-22T15:34:10Z", "technical_details": { "model": "gpt-4.1", "region": "fr" }, "provider_scores": {}, "source": "manual", "is_automatic": false } ] } ``` `status` vaut `PENDING`, `RUNNING`, `COMPLETED` ou `FAILED`. `completed_at` reste `null` tant que l'audit n'est ni `COMPLETED` ni `FAILED`. `score` vaut `0` jusqu'à la fin. --- ### `GET /projects/:id/audits/:auditId` Le détail complet d'un audit : une ligne par couple prompt et moteur, avec la réponse du moteur, et des statistiques calculées. **Réponse (200 OK), champs principaux :** ```json { "data": { "id": "3f6c0d52-1b9e-4c5a-9a53-0c7f3d2a1e44", "score": 78, "status": "COMPLETED", "currentProgress": 100, "duration": 4500, "technicalDetails": { "model": "gpt-4.1", "region": "fr" }, "providerScores": {}, "source": "manual", "isAutomatic": false, "createdAt": "2026-01-22T15:30:00Z", "completedAt": "2026-01-22T15:34:10Z", "project": { "id": "…", "name": "…", "url": "https://exemple.com" }, "analytics": { "totalQueries": 12, "citedQueries": 5, "citationRate": 42, "totalCitations": 7, "avgConfidence": 81, "confidenceDistribution": { "high": 4, "medium": 2, "low": 1 }, "providerBreakdown": [{ "provider": "CHATGPT", "cited": 5, "total": 12, "rate": 42 }] }, "queries": [ { "id": "…", "prompt": "Quel est le meilleur outil GEO ?", "response": "Texte complet de la réponse du moteur", "provider": "chatgpt", "cited": true, "sources": ["https://exemple.com/page"], "sentiment": "POSITIVE", "citations": [ { "id": "…", "excerpt": "…", "confidence": 0.9, "sentiment": "POSITIVE" } ] } ] } } ``` - `currentProgress` : avancement de 0 à 100. - `completedAt` : `null` tant que l'audit n'est ni `COMPLETED` ni `FAILED`. - `queries[].cited` : la marque est-elle citée dans cette réponse. `sources` : les URL citées par le moteur. `citations` : les extraits où la marque apparaît, avec une `confidence` entre 0 et 1. - `404` si le projet ou l'audit n'existe pas dans votre organisation. Les audits `COMPLETED` sont mis en cache 5 minutes côté client (`Cache-Control: private`), les autres ne le sont pas : relisez-les librement pour suivre l'avancement. --- **[Suggestions IA →](./suggestions)** --- ## Codes d'Erreurs CiteAPI utilise les codes de statut HTTP standards pour indiquer le succès ou l'échec des requêtes. --- ### Codes de statut HTTP | Code | Nom | Description | Solution | |------|-----|-------------|----------| | **400** | Bad Request | Requête malformée ou paramètres invalides | Vérifiez votre structure JSON et les valeurs des paramètres | | **401** | Unauthorized | Clé API manquante ou invalide | Vérifiez que votre token Bearer est correctement formaté | | **403** | Forbidden | Forfait sans accès API (il faut Pro ou Expert), ou clé sans le scope `write` sur un `POST` | Vérifiez le forfait et recréez une clé avec écriture si besoin | | **404** | Not Found | Ressource inexistante | Vérifiez l'ID du projet, de l'audit ou le chemin de l'endpoint | | **500** | Internal Error | Erreur serveur inattendue | L'équipe technique est notifiée automatiquement | --- ### Format des réponses d'erreur Toutes les erreurs retournent un objet JSON avec un champ `error` contenant un message descriptif : ```json { "error": "Forbidden: This API key does not have write permissions" } ``` --- :::tip Débogage rapide Le message d'erreur est toujours en anglais et conçu pour être **actionnable** — il indique précisément ce qui doit être corrigé. ::: --- ## Mots-clés (Api) ## Gestion des Mots-clés :::warning Les mots-clés ne sont pas les prompts d'audit Un mot-clé est un terme court (100 caractères maximum) qui décrit le sujet du site. Les audits GEO ne s'exécutent **pas** sur les mots-clés : ils posent aux moteurs IA les **prompts** actifs du projet, c'est-à-dire des questions complètes rangées par thème. Si vous envoyez vos questions d'audit à cet endpoint, elles seront stockées comme des mots-clés et aucun audit ne les posera. Les prompts se créent dans le dashboard ou avec les outils MCP `create_prompts` et `import_prompts` (voir [Piloter CiteMe depuis un agent IA](../agents)). ::: --- ### `GET /projects/:id/keywords` Liste les mots-clés du projet, du plus récent au plus ancien. **Réponse (200 OK) :** ```json { "data": [ { "id": "7c1f5e0a-0000-0000-0000-000000000000", "keyword": "geo saas", "source": "manual", "created_at": "2026-01-10T09:00:00Z" } ] } ``` --- ### `POST /projects/:id/keywords` Ajoute **un seul** mot-clé par appel. Il n'existe pas de format par lot : pour plusieurs mots-clés, faites un appel par mot-clé. Exige une clé avec le scope `write`. **Corps de la requête :** ```json { "keyword": "geo saas" } ``` Le mot-clé est normalisé (espaces retirés, minuscules). Il ne peut pas être vide ni dépasser 100 caractères, et le nombre de mots-clés est limité par votre forfait. **Réponses :** | Statut | Cas | |--------|-----| | `201 Created` | Mot-clé ajouté, renvoyé dans `data` | | `400` | JSON invalide, `keyword` absent, mot-clé vide ou trop long, mot-clé déjà présent, limite du forfait atteinte | | `403` | Clé sans scope `write` | | `404` | Projet introuvable dans votre organisation | --- **[Codes d'erreur →](./errors)** --- ## Projets ## Gestion des Projets Les projets sont l'unité organisationnelle centrale dans CiteMe, regroupant domaines, mots-clés suivis et historique du GEO Score. --- ### `GET /projects` Récupère tous les projets associés à votre organisation. **Réponse (200 OK) :** ```json { "data": [ { "id": "proj_12345", "name": "CiteMe AI", "url": "https://exemple.com", "status": "READY", "created_at": "2026-01-08T22:33:23Z" } ] } ``` :::tip Cet endpoint est essentiel pour obtenir les **IDs de projets** nécessaires aux appels API suivants. ::: --- ### `GET /projects/:id` Accédez aux métadonnées techniques et au dernier snapshot GEO d'un projet spécifique. **Réponse (200 OK) :** ```json { "data": { "id": "proj_12345", "name": "CiteMe AI", "url": "https://exemple.com", "status": "READY", "project_snapshots": { "last_checked_at": "2026-01-23T10:00:00Z", "pages": 42, "structured_data_score": 85, "meta_quality_score": 92 } } } ``` | Champ | Description | |-------|-------------| | `pages` | Nombre de pages analysées | | `structured_data_score` | Score de qualité des données structurées | | `meta_quality_score` | Score de qualité des métadonnées | | `last_checked_at` | Dernière vérification automatisée | --- **[Audits GEO →](./audits)** --- ## Suggestions IA L'endpoint Suggestions renvoie les suggestions d'un projet. Ce que sont les suggestions et d'où elles viennent est expliqué sur la page [Suggestions](../plateforme/suggestions.md). --- ### `GET /projects/:id/suggestions` Retourne toutes les suggestions du projet, quel que soit leur statut, de la plus récente à la plus ancienne. L'endpoint n'accepte aucun paramètre de requête : pas de filtre ni de pagination. Il demande une clé avec le scope `read`. ```bash curl https://app.citeme.io/api/v1/projects/PROJECT_ID/suggestions \ -H "Authorization: Bearer cm_..." ``` **Réponse (200 OK) :** ```json { "data": [ { "id": "6f1c2a8e-3b4d-4e5f-9a0b-1c2d3e4f5a6b", "type": "WEBSITE_OPTIMIZATION", "title": "Ajouter un bloc FAQ sur la page tarifs", "content": "Contenu complet de la suggestion...", "status": "PENDING", "reasoning": "Pourquoi cette modification aide les moteurs IA à citer la page.", "created_at": "2026-09-14T09:12:40.000Z", "updated_at": "2026-09-14T09:12:40.000Z" } ] } ``` --- ### Champs de réponse | Champ | Type | Description | |-------|------|-------------| | `id` | UUID | Identifiant de la suggestion | | `type` | chaîne | Type de suggestion, voir ci-dessous | | `title` | chaîne | Titre court | | `content` | chaîne | Contenu prêt à l'emploi | | `status` | chaîne | Statut actuel, voir ci-dessous | | `reasoning` | chaîne ou `null` | Justification de la suggestion | | `created_at` | date ISO 8601 | Date de création | | `updated_at` | date ISO 8601 | Date de dernière modification | #### Valeurs de `type` `WEBSITE_OPTIMIZATION`, `BLOG_ARTICLE`, `LINKEDIN_POST`, `TWEET`, `CUSTOM`. #### Valeurs de `status` `PENDING`, `APPROVED`, `EDITED`, `REJECTED`, `PUBLISHED`, `APPLIED`, `FAILED`, `DELETED`. La réponse inclut aussi les suggestions rejetées et supprimées. Filtrez sur `status` côté client si vous ne voulez que les suggestions actives. --- ### Erreurs | Code | Corps | Cause | |------|-------|-------| | `404` | `{"error": "Project not found"}` | Le projet n'existe pas ou n'appartient pas à votre organisation | | `500` | `{"error": "Failed to fetch suggestions"}` | Erreur interne | Les erreurs d'authentification et de forfait sont décrites dans [Codes d'erreurs](./errors.md). :::tip Valider ou rejeter une suggestion L'API publique ne fait que lire les suggestions. Pour en valider ou en rejeter une depuis un agent, utilisez le [serveur MCP](../mcp/index.md) ou la [CLI](../cli/index.md). ::: --- **[Mots-clés](./keywords.md)** --- ## Toutes les Intégrations ## Tutoriels d'Intégration API Automatisez l'application de vos suggestions en connectant vos outils préférés. Une fois vos clés API configurées dans la section **Intégrations**, appliquez vos suggestions en un clic. --- ### Intégrations populaires | Plateforme | Difficulté | Durée | Fonction | |------------|-----------|-------|----------| | **[LinkedIn](./linkedin)** | Moyen | 10 min | Auto-publication de posts depuis CiteMe | | **[Twitter / X](./twitter)** | Difficile | 15 min | Automatisation de tweets et threads | | **[Medium](./medium)** | Facile | 5 min | Rédaction automatique d'articles de blog | | **[WordPress](./wordpress)** | Facile | 7 min | Publication et auto-optimisation du contenu | --- ### Intégrations avancées | Plateforme | Difficulté | Durée | Fonction | |------------|-----------|-------|----------| | **[GitHub](./github)** | Moyen | 10 min | Auto-génération de Pull Requests avec optimisations techniques | | **[Vercel](./vercel)** | Moyen | 10 min | Déploiement automatique de JSON-LD et robots.txt | | **[Google Search Console](./google-search-console)** | Facile | 5 min | Soumission de pages pour indexation instantanée | | **[Google Ads](./google-ads)** | Moyen | 10 min | Exploitation des données de recherche pour la découverte de prompts | --- :::info Sécurité Toutes les clés d'intégration sont chiffrées avec **AES-256-GCM**. Consultez la [documentation sécurité](../admin/security) pour plus de détails. ::: --- ## Intégration GitHub Moyen 10 min Générez automatiquement des Pull Requests contenant des optimisations techniques (JSON-LD, métadonnées, données structurées) directement dans votre repository. --- ### Configuration #### 1. Générer un Personal Access Token 1. Allez dans **GitHub → Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens** 2. Cliquez sur **« Generate new token »** 3. Configurez : - **Repository access** : Sélectionnez le repo cible - **Permissions** : `Contents` (Read and Write), `Pull Requests` (Read and Write) 4. Copiez le token généré #### 2. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → GitHub** 2. Renseignez le token et l'URL du repository 3. Sauvegardez --- ### Utilisation Les suggestions techniques (JSON-LD, Schema.org, métadonnées) peuvent être appliquées comme des **Pull Requests** automatiques sur votre repository, prêtes à être review et mergées. --- ### Dépannage | Problème | Solution | |----------|----------| | Erreur 403 | Vérifiez les permissions du token | | PR non créée | Vérifiez que le repo est correctement configuré | --- ## Google Ads / Keyword Planner ## Intégration Google Ads Moyen 10 min Exploitez les données de recherche Google Ads et du Keyword Planner pour enrichir votre liste de prompts GEO. --- ### Configuration #### 1. Activer l'API Google Ads 1. Accédez à la **Google Cloud Console** 2. Activez l'**API Google Ads** 3. Configurez les credentials OAuth 2.0 #### 2. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → Google Ads** 2. Renseignez les credentials OAuth 3. Sélectionnez le compte Google Ads cible 4. Sauvegardez --- ### Fonctionnalités - **Découverte de prompts** : Utilisez les données de volume de recherche pour identifier les requêtes à forte valeur GEO - **Pondération automatique** : Les données de volume enrichissent le calcul de pondération de vos mots-clés - **Synchronisation** : Import automatique des nouveaux termes pertinents --- ### Dépannage | Problème | Solution | |----------|----------| | Erreur OAuth | Régénérez les credentials dans Google Cloud Console | | Aucune donnée | Vérifiez que le compte Google Ads est actif avec des campagnes | --- ## Google Search Console ## Intégration Google Search Console Facile 5 min Soumettez automatiquement vos pages optimisées pour une indexation instantanée par Google. --- ### Configuration #### 1. Activer l'API Indexing 1. Accédez à la **Google Cloud Console** 2. Activez l'**API Indexing** 3. Créez un **Service Account** avec les permissions appropriées 4. Téléchargez le fichier de clé JSON #### 2. Autoriser dans Search Console 1. Allez dans **Google Search Console → Paramètres → Utilisateurs et autorisations** 2. Ajoutez l'email du Service Account comme **propriétaire** #### 3. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → Google Search Console** 2. Uploadez le fichier de clé JSON du Service Account 3. Sauvegardez --- ### Utilisation Après l'application d'une suggestion sur votre site, CiteMe soumet automatiquement l'URL modifiée à Google pour une **réindexation prioritaire**. --- ### Dépannage | Problème | Solution | |----------|----------| | Erreur de permission | Vérifiez que le Service Account est propriétaire dans GSC | | Quota dépassé | L'API Indexing a une limite de 200 requêtes/jour | --- ## Intégration LinkedIn Moyen 10 min OAuth 2.0 Configurez l'authentification OAuth 2.0 pour publier automatiquement des posts LinkedIn depuis CiteMe. --- ### Prérequis - Compte LinkedIn actif (personnel ou business) - Accès au portail LinkedIn Developer - 10 minutes disponibles --- ### Étapes d'installation #### 1. Créer une application LinkedIn 1. Rendez-vous sur le **portail LinkedIn Developers** et connectez-vous 2. Cliquez sur **« Create app »** (en haut à droite) 3. Remplissez les champs requis : - **App Name** : `CiteMe Automation` - **LinkedIn Page** : Sélectionnez votre page business - **Privacy Policy URL** : `https://citeme.io/privacy` 4. Acceptez les conditions d'utilisation de l'API 5. Cliquez sur **« Create app »** :::note LinkedIn requiert une **page business** pour créer des applications. ::: #### 2. Demander les permissions produit 1. Naviguez vers l'onglet **« Products »** 2. Demandez l'accès à : - **Share on LinkedIn** (permet la publication) - **Sign In with LinkedIn using OpenID Connect** (authentification) 3. L'approbation est généralement instantanée pour un usage personnel #### 3. Configurer les URLs de redirection OAuth 1. Allez dans l'onglet **« Auth »** 2. Dans **OAuth 2.0 settings**, ajoutez cette URL de redirection : ``` https://citeme.io/api/auth/linkedin/callback ``` #### 4. Récupérer les identifiants Dans l'onglet **« Auth »** : 1. Copiez le **Client ID** 2. Cliquez sur « Show » et copiez le **Client Secret** :::danger Sécurité Ne partagez jamais le Client Secret publiquement. Traitez-le comme un mot de passe. ::: #### 5. Générer le Access Token 1. Scrollez jusqu'à **« OAuth 2.0 tools »** 2. Cochez la permission **`w_member_social`** (accès écriture pour les posts) 3. Cliquez sur **« Request access token »** 4. Autorisez dans la popup LinkedIn 5. Copiez le token généré (commence par `AQV...`) :::warning Durée de vie Le token expire après **60 jours**. Régénérez-le tous les deux mois. ::: #### 6. Enregistrer dans CiteMe 1. Allez dans **Paramètres → Intégrations** 2. Trouvez la section **« LinkedIn »** 3. Collez le Access Token 4. Cliquez sur **« Sauvegarder »** Le token est immédiatement chiffré avec AES-256-GCM. --- ### Tester l'intégration 1. Naviguez vers **Dashboard → Suggestions** 2. Générez ou sélectionnez une suggestion de type LinkedIn Post 3. Cliquez sur **« Appliquer »** 4. Vérifiez que le post apparaît sur votre profil LinkedIn 5. Attendez 1-2 minutes pour la propagation --- ### Dépannage | Problème | Solution | |----------|----------| | « Token expired » | Régénérez à l'étape 5 | | « Insufficient permissions » | Vérifiez que `w_member_social` est sélectionné | | « Product not approved » | Attendez l'email de confirmation LinkedIn | | Le post ne s'affiche pas | Vérifiez le profil personnel (pas la page business) ; attendez 1-2 min | --- ### FAQ **Puis-je publier sur des pages business ?** Actuellement, seuls les profils personnels sont supportés. **CiteMe accède-t-il à mes posts ?** Non. CiteMe envoie uniquement le contenu à l'API LinkedIn, sans stockage. **Limite de posts par jour ?** LinkedIn autorise ~100 posts API par jour. CiteMe n'impose pas de limite supplémentaire. --- ## Intégration Medium Facile 5 min Publiez automatiquement des articles de blog optimisés GEO en draft sur Medium. --- ### Configuration #### 1. Générer un Integration Token 1. Connectez-vous à **Medium** 2. Allez dans **Settings → Security and apps → Integration tokens** 3. Créez un nouveau token avec la description `CiteMe` 4. Copiez le token généré #### 2. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → Medium** 2. Collez le token 3. Sauvegardez --- ### Utilisation Les suggestions de type **Blog Article** créent automatiquement un **brouillon** sur Medium lors de l'application. Relisez et publiez manuellement. --- ### Dépannage | Problème | Solution | |----------|----------| | Token invalide | Régénérez le token Medium | | Article non visible | Vérifiez dans vos brouillons Medium | --- ## Intégration Twitter / X Difficile 15 min OAuth 2.0 Automatisez la publication de tweets et threads optimisés GEO directement depuis CiteMe. --- ### Prérequis - Compte développeur Twitter approuvé - Projet et App créés dans le portail Twitter Developer - Plan Basic ou supérieur (l'accès Free ne permet pas l'écriture) --- ### Configuration #### 1. Créer un projet Twitter Developer 1. Rendez-vous sur **developer.twitter.com** 2. Créez un nouveau projet et une application 3. Activez les permissions **Read and Write** #### 2. Générer les tokens Dans l'onglet **Keys and Tokens** : - Générez un **Access Token** et **Access Token Secret** - Copiez également le **API Key** et **API Key Secret** #### 3. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → Twitter** 2. Renseignez les 4 clés 3. Sauvegardez --- ### Utilisation Les suggestions de type **Twitter Post** et **Twitter Thread** sont automatiquement publiées lors de l'application. --- ### Dépannage | Problème | Solution | |----------|----------| | Erreur 403 | Vérifiez que vos permissions sont en Read + Write | | Erreur 429 | Rate limit atteint, attendez 15 min | | Tweet dupliqué rejeté | Twitter rejette les contenus identiques dans un court laps de temps | --- ## Intégration Vercel Moyen 10 min Déployez automatiquement les modifications de JSON-LD et robots.txt générées par CiteMe directement sur vos projets Vercel. --- ### Configuration #### 1. Générer un Vercel Token 1. Allez dans **Vercel → Settings → Tokens** 2. Créez un nouveau token avec le scope approprié 3. Copiez le token #### 2. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → Vercel** 2. Renseignez le token et l'ID du projet Vercel 3. Sauvegardez --- ### Fonctionnalités - **Déploiement JSON-LD** : Injection automatique de données structurées - **Modification robots.txt** : Optimisation pour les crawlers IA - **Redéploiement automatique** : Trigger un nouveau build Vercel après modification --- ### Dépannage | Problème | Solution | |----------|----------| | Erreur d'authentification | Régénérez le token Vercel | | Déploiement échoué | Vérifiez les logs de build Vercel | --- ## Intégration WordPress Facile 7 min REST API Publiez et optimisez automatiquement votre contenu WordPress depuis CiteMe. --- ### Prérequis - WordPress version **5.6** ou supérieure - **HTTPS** activé sur le site - Application Passwords activé - API REST accessible --- ### Configuration #### 1. Vérifier l'accès à l'API REST Testez votre endpoint : ``` https://votre-site.com/wp-json/wp/v2/ ``` La réponse doit contenir du JSON avec les champs `namespaces` et `routes`. :::tip Si l'API est inaccessible - Confirmez que HTTPS est activé - Vérifiez que les permaliens ne sont pas en mode « Simple » - Vérifiez que les plugins de sécurité ne bloquent pas l'API REST ::: #### 2. Générer un Application Password 1. Connectez-vous à l'admin WordPress 2. Allez dans **Utilisateurs → Votre Profil** 3. Scrollez jusqu'à la section **« Application Passwords »** 4. Entrez `CiteMe` comme nom d'application 5. Cliquez sur **« Add New Application Password »** 6. **Copiez immédiatement** le mot de passe généré :::note Les Application Passwords sont des identifiants jetables que vous pouvez révoquer à tout moment, séparés de votre mot de passe WordPress principal. ::: #### 3. Tester avec cURL (optionnel) ```bash curl -X POST \ https://votre-site.com/wp-json/wp/v2/posts \ -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" \ -H "Content-Type: application/json" \ -d '{"title":"CiteMe Test","content":"Test article","status":"draft"}' ``` #### 4. Enregistrer dans CiteMe 1. **Paramètres → Intégrations → WordPress** 2. Remplissez : - **URL du site** : `https://votre-site.com` (sans slash final) - **Nom d'utilisateur** : Votre login WordPress - **App Password** : Le mot de passe généré à l'étape 2 3. Sauvegardez --- ### Utilisation 1. Générez une suggestion d'article de blog 2. Cliquez sur **« Appliquer »** → choisissez **WordPress** 3. L'article est créé en **brouillon** sur votre site 4. Relisez dans **wp-admin → Articles → Brouillons** 5. Éditez si nécessaire, puis publiez --- ### Dépannage | Problème | Solution | |----------|----------| | « Application Passwords » manquant | Mettez à jour vers WordPress 5.6+ | | Erreur `rest_cannot_create` | Vérifiez que l'utilisateur a un rôle Admin ou Éditeur | | Erreur 401 Unauthorized | Régénérez le Application Password | --- ### Bientôt disponible Plugin WordPress officiel CiteMe pour l'injection automatique de JSON-LD, la modification du robots.txt et l'optimisation des images.