Felo API PlatformFelo API Platform

Contenu

Remplissez un mois de contenu avec les questions de votre audience

Cartographiez les thèmes avec Chat, trouvez les questions de l’audience sur X, prenez un angle réel dans une transcription vidéo et composez un calendrier de quatre semaines où chaque ligne nomme sa preuve.

Temps25 minutesNiveauIntermédiaireMis à jour2026-10-30
Pour quiResponsables contenuSocial mediaCréateurs

Copier le prompt

Remplacez les champs entre crochets, puis collez dans Claude Code, Codex ou toute IA avec accès au terminal. Elle installe le skill Felo, demande avant de dépenser des crédits et exécute le workflow.

Planifie quatre semaines de contenu sur [sujet] pour [public].

Canal : [canal]. Formats autorisés : [liste]. Jours de publication : [jours]. Langue : [langue].
Vidéo de référence (facultatif) : [URL YouTube ou ID vidéo]. Période des questions du public : [90] derniers jours.

Produis un tableau calendrier Markdown avec une ligne par idée :
| Date | Format | Titre de travail | Angle | Preuve |
- Date : les quatre prochaines semaines, sur les jours autorisés.
- Format : l’un des formats autorisés.
- Titre de travail : comment s’appelle le contenu.
- Angle : la promesse faite au public en une phrase.
- Preuve : la question, la publication, la page ou l’horodatage vidéo qui justifie l’idée.

Après le tableau, ajoute :
1. Les trois thèmes qui structurent le mois.
2. Quelles idées viennent des questions du public, lesquelles de la vidéo de référence, et lesquelles sont tes hypothèses.
3. Ce qu’il faudrait rechercher avant d’écrire chaque contenu.
4. Une liste de sources avec liens et dates.

Règles :
- Ce sont des idées, pas des garanties. Ne promets jamais portée, clics, classement ou croissance.
- N’invente ni tendances, ni volume de recherche, ni chiffres d’engagement, ni citations.
- Rattache chaque question du public à une publication ou une page datée. Si la preuve est mince, étiquette l’idée comme hypothèse.
- Utilise la vidéo de référence uniquement pour les angles qu’elle couvre réellement ; cite brièvement avec horodatages.
- Avant de consommer des crédits, montre les recherches et extractions prévues et attends mon accord.
- Ne planifie pas de publications, ne crée pas de brouillons dans le CMS et ne publie rien.
- Écris le résultat dans ./content-calendar.md et résume-le dans le chat.

La copie inclut aussi les étapes d'installation et les règles de sécurité.

Ce que vous obtenez

Exemple de sortie d'une exécution. Pas de génération en direct.

Exemple de calendrier (extrait)

Calendrier de contenu — mois d’exemple

Thèmes

  1. Le temps de nettoyage est le coût caché.
  2. L’encombrement décide de l’achat.
  3. Achat pour soi vs achat cadeau.

Calendrier

DateFormatTitre de travailAnglePreuve
2026-11-02CarrouselLe test de nettoyage en 5 minutesMontrer l’étape de nettoyage que personne ne filme@example_home, 2026-10-24
2026-11-04Vidéo courteL’encombrement, mesuréComparer les empreintes sur un vrai plan de travailVidéo de référence — 42 s
2026-11-09NewsletterPourquoi le joint lâcheExpliquer le mode de défaillance que les acheteurs signalent@example_buyer, 2026-10-19

D’où viennent les idées

Deux lignes viennent de questions datées du public, une de la vidéo de référence ; une ligne hypothèse serait étiquetée comme telle.

À rechercher d’abord

Taux de retour et politique de remplacement du joint — ni l’un ni l’autre n’est couvert par les sources ci-dessus.

Sources

  • https://example.com/category-guide — 2026-10-12
  • https://x.com/example_home/status/... — 2026-10-24

Les appels exacts

Pour les développeurs : le même workflow en code, dans l'ordre d'exécution.

Afficher les appels API
  1. Cartographiez les thèmes avec Chat

    Demandez à Chat les sous-thèmes les plus recherchés par l’audience et gardez les sources.

    calendar.ts
    const BASE = "https://openapi.felo.ai";
    const headers = {
      Authorization: `Bearer ${process.env.FELO_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    async function felo<T>(path: string, body?: unknown): Promise<T> {
      const res = await fetch(`${BASE}${path}`, {
        method: body ? "POST" : "GET",
        headers,
        body: body ? JSON.stringify(body) : undefined,
      });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      return res.json() as Promise<T>;
    }
    
    type ChatData = {
      data: {
        answer: string;
        resources: { link: string; title: string; snippet: string }[];
      };
    };
    
    const topic = "portable espresso makers";
    const audience = "home espresso beginners";
    
    const themes = await felo<ChatData>("/v2/chat", {
      query: `Themes, recurring questions, and content gaps around ${topic} for ${audience}`,
    });
    
    const sources = themes.data.resources.slice(0, 5);

    Exemple de sortie

    {
      "answer": "Beginners ask about cleanup, counter space, and grind size …",
      "sources": [
        { "link": "https://example.com/guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Trouvez les questions de l’audience sur X

    Cherchez les questions liées au thème sur X sur 90 jours, en gardant comptes et dates.

    calendar.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          url: string;
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000);
    
    const questions = await felo<XData>("/v2/x/tweet/search", {
      query: `"${topic}" (recommend OR beginner OR how)`,
      limit: 50,
      since_time: since,
    });
    
    const asked = questions.data.tweets;

    Exemple de sortie

    { "data": { "tweets": [
      {
        "content": "How do you clean one of these without taking it apart?",
        "author": { "username": "example_home" },
        "created_at": "2026-10-24T11:30:00Z",
        "url": "https://x.com/example_home/status/..."
      }
    ] } }
  3. Récupérez une transcription de référence

    Utilisez YouTube Subtitling pour une vidéo liée et trouvez un angle réel réutilisable.

    calendar.ts
    type SubtitleData = {
      data: {
        title: string;
        contents: { text: string; start: number; duration: number }[];
      };
    };
    
    const videoCode = "dQw4w9WgXcQ"; // replace with your reference video id
    
    const video = await felo<SubtitleData>(
      `/v2/youtube/subtitling?video_code=${videoCode}&language=en&with_time=true`,
    );

    Exemple de sortie

    {
      "title": "Example Video Title",
      "contents": [
        { "text": "Subtitle text", "start": 42.3, "duration": 8.1 }
      ]
    }
  4. Composez le calendrier de quatre semaines

    Créez un tableau Markdown avec date, format, titre de travail, angle et preuve.

    calendar.ts
    const start = new Date();
    const day = (offset: number) => {
      const date = new Date(start);
      date.setDate(date.getDate() + offset);
      return date.toISOString().slice(0, 10);
    };
    
    type Idea = {
      dayOffset: number;
      format: string;
      title: string;
      angle: string;
      evidence: string;
    };
    
    // Rows come from the themes, the dated questions, and the transcript.
    const anchor = video.data.contents[0];
    
    const ideas: Idea[] = [
      {
        dayOffset: 1,
        format: "carousel",
        title: "The 5-minute cleanup test",
        angle: "Show the cleanup step nobody films",
        evidence: asked[0]?.url ?? "hypothesis",
      },
      {
        dayOffset: 3,
        format: "short video",
        title: "Counter space, measured",
        angle: "Compare footprints on one real counter",
        evidence: anchor
          ? `${video.data.title} — ${Math.round(anchor.start)}s`
          : video.data.title,
      },
    ];
    
    const calendar = [
      "| Date | Format | Working title | Angle | Evidence |",
      "| --- | --- | --- | --- | --- |",
      ...ideas.map(
        (idea) =>
          `| ${day(idea.dayOffset)} | ${idea.format} | ${idea.title} | ${idea.angle} | ${idea.evidence} |`,
      ),
    ].join("\n");
    
    console.log(calendar);

    Exemple de sortie

    | Date | Format | Working title | Angle | Evidence |
    | --- | --- | --- | --- | --- |
    | 2026-11-02 | carousel | The 5-minute cleanup test | Show the cleanup step nobody films | https://x.com/example_home/status/... |
    | 2026-11-04 | short video | Counter space, measured | Compare footprints on one real counter | Example Video Title — 42s |
  5. Enregistrez dans le LiveDoc

    Enregistrez le calendrier et les sources dans le LiveDoc pour la revue de fin de mois.

    calendar.ts
    type LiveDocData = { data: { short_id: string } };
    
    const plan = await felo<LiveDocData>("/v2/livedocs", {
      name: `Content calendar: ${topic}`,
      description: "Monthly plan with themes, calendar rows, and evidence",
    });
    
    await felo(`/v2/livedocs/${plan.data.short_id}/resources/urls`, {
      urls: sources.map((source) => ({ url: source.link, title: source.title })),
    });
    
    await felo(`/v2/livedocs/${plan.data.short_id}/resources/doc`, {
      title: `Content calendar — ${day(0).slice(0, 7)}`,
      content: calendar,
    });
    
    type Retrieved = { data: { title: string; content: string; score: number }[] };
    
    const lastMonth = await felo<Retrieved>(
      `/v2/livedocs/${plan.data.short_id}/resources/retrieve`,
      { query: "what did we plan last month" },
    ).then((res) => res.data.filter((hit) => hit.score >= 0.7));

    Exemple de sortie

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Ce qui est inclus

  • Carte des thèmes issue de Chat
  • Questions datées de l’audience sur X
  • Transcription et angle d’une vidéo de référence
  • Calendrier de quatre semaines
  • LiveDoc avec le plan et les sources

Ce qu'elle ne fait pas

  • Ne prédit pas la performance et ne garantit pas le trafic
  • Ne lit pas votre analytics historique
  • N’écrit pas les posts entiers et ne publie pas
  • Sans vidéo de référence, l’étape peut être sautée
  • Le calendrier est une suggestion, pas une promesse

Questions

D’où viennent les idées ?

De la carte des thèmes de Chat, des questions réelles de l’audience sur X et de l’angle d’une vidéo de référence. Chaque entrée garde un lien ou une date de preuve.

Sait-il ce qui a marché avant ?

Non. Il ne lit pas votre analytics ; l’historique doit être ajouté par vous.

Écrit-il aussi les posts ?

Non. Il livre le calendrier et les angles ; l’écriture revient à vous ou à votre agent rédacteur.

Et sans vidéo de référence ?

Sautez cette étape ; les thèmes et les questions X suffisent à porter le calendrier.

Puis-je planifier les publications automatiquement ?

Non. Il crée un fichier de plan ; la planification se fait dans votre outil.

Combien coûte une planification ?

Chat, recherche X et transcription vidéo sont facturés à l’usage ; les tarifs actuels sont sur la page des prix, et le prompt demande votre accord avant dépense.

Workflows liés

Adaptez-la

La même recette, adaptée à votre façon de livrer.

Deux semaines seulement

Compressez quatre semaines en deux pour une équipe qui démarre.

Séparez par canal

Créez des colonnes newsletter, X et YouTube avec le même thème dans des formats différents.

Ajoutez un lancement produit

Placez les dates de lancement comme lignes fixes et remplissez le contenu autour.

Les pages de référence derrière cette recette et la suite.