Felo API PlatformFelo API Platform

Контент

Наповніть місяць контенту питаннями аудиторії

Змапуйте теми з Chat, знайдіть питання аудиторії на X, візьміть справжній кут із транскрипту відео й складіть чотиритижневий календар, де кожен рядок називає свій доказ.

Час25 хвилинРівеньСереднійОновлено2026-10-30
Для когоКонтент-лідСоцмережіТворці

Скопіювати промпт

Замініть поля в квадратних дужках і вставте в Claude Code, Codex або AI з доступом до термінала. Він встановить скіл Felo, запитає перед витратою кредитів і запустить процес.

Сплануй чотири тижні контенту про [тема] для [аудиторія].

Канал: [канал]. Дозволені формати: [список]. Дні публікації: [дні]. Мова: [мова].
Референсне відео (необов'язково): [URL YouTube або ID відео]. Період питань аудиторії: останні [90] днів.

Створи Markdown-таблицю календаря з одним рядком на ідею:
| Дата | Формат | Робочий заголовок | Кут | Доказ |
- Дата: наступні чотири тижні в дозволені дні.
- Формат: один із дозволених.
- Робочий заголовок: як називається матеріал.
- Кут: обіцянка аудиторії одним реченням.
- Доказ: питання, допис, сторінка або часова мітка відео, що обґрунтовує ідею.

Після таблиці додай:
1. Три теми, на яких тримається місяць.
2. Які ідеї з питань аудиторії, які з референсного відео, а які — твоя гіпотеза.
3. Що треба дослідити перед написанням кожного матеріалу.
4. Список джерел із посиланнями й датами.

Правила:
- Це ідеї, а не гарантії. Ніколи не обіцяй охоплення, кліки, позиції чи зростання.
- Не вигадуй тренди, обсяг пошуку, показники залученості чи цитати.
- Прив'язуй кожне питання аудиторії до датованого допису або сторінки. Якщо доказів мало, познач ідею як гіпотезу.
- Використовуй референсне відео лише для кутів, які воно справді охоплює; цитуй коротко з часовими мітками.
- Перед витратою кредитів покажи заплановані пошуки й витяги та дочекайся мого схвалення.
- Не плануй дописи, не створюй чернетки в CMS і нічого не публікуй.
- Запиши результат у ./content-calendar.md і підсумуй його в чаті.

Копія також містить кроки встановлення й правила безпеки.

Що ви отримаєте

Приклад результату одного запуску. Не живе генерування.

Приклад календаря (фрагмент)

Контент-календар — приклад місяця

Теми

  1. Час на чищення — прихована вартість.
  2. Місце на столі вирішує покупку.
  3. Купівля для себе vs як подарунок.

Календар

ДатаФорматРобочий заголовокКутДоказ
2026-11-02КарусельТест чищення за 5 хвилинПоказати крок чищення, який ніхто не знімає@example_home, 2026-10-24
2026-11-04Коротке відеоМісце на столі, виміряноПорівняти слід на реальному століРеференсне відео — 42 с
2026-11-09РозсилкаЧому ущільнювач ламаєтьсяПояснити режим відмови, про який повідомляють покупці@example_buyer, 2026-10-19

Звідки ідеї

Два рядки з датованих питань аудиторії, один із референсного відео; рядок-гіпотеза був би позначений.

Що дослідити першим

Відсоток повернень і політику заміни ущільнювача — жодне не покрито джерелами вище.

Джерела

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

Точні виклики

Для розробників: той самий процес як код, у порядку виконання.

Показати справжні виклики API
  1. Змапуйте теми з Chat

    Запитайте Chat про підтеми, які аудиторія шукає найбільше, і збережіть джерела.

    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);

    Приклад результату

    {
      "answer": "Beginners ask about cleanup, counter space, and grind size …",
      "sources": [
        { "link": "https://example.com/guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Знайдіть питання аудиторії на X

    Шукайте питання за темою на X за останні 90 днів, зберігаючи акаунти й дати.

    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;

    Приклад результату

    { "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. Візьміть референсний транскрипт

    Використайте YouTube Subtitling для транскрипту й знайдіть справжній кут для повторного використання.

    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`,
    );

    Приклад результату

    {
      "title": "Example Video Title",
      "contents": [
        { "text": "Subtitle text", "start": 42.3, "duration": 8.1 }
      ]
    }
  4. Складіть чотиритижневий календар

    Створіть Markdown-таблицю з датою, форматом, робочою назвою, кутом і доказом.

    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);

    Приклад результату

    | 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. Збережіть у LiveDoc

    Збережіть календар і джерела в LiveDoc для перегляду наприкінці місяця.

    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));

    Приклад результату

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Що входить

  • Карта тем із Chat
  • Датовані питання аудиторії на X
  • Транскрипт і кут референсного відео
  • Чотиритижневий контент-календар
  • LiveDoc із планом і джерелами

Чого не робить

  • Не прогнозує результативність і не гарантує трафік
  • Не читає вашу історичну аналітику
  • Не пише повних постів і не публікує
  • Без референсного відео крок можна пропустити
  • Календар — пропозиція, не обіцянка

Запитання

Звідки ідеї?

З карти тем Chat, справжніх питань аудиторії на X і кута референсного відео. Кожен елемент зберігає посилання або дату доказу.

Чи знає, що працювало раніше?

Ні. Не читає аналітику; історичні результати додаєте ви.

Чи пише пости?

Ні. Дає календар і кути; письмо — ваше або вашого агента письма.

Без референсного відео?

Пропустіть цей крок; теми й питання X утримують календар.

Чи можна планувати публікації?

Ні. Створює файл плану; планування — у вашому інструменті.

Скільки коштує одне планування?

Chat, X Search і транскрипт відео оплачуються за використання; актуальні тарифи на сторінці цін, а промпт просить схвалення перед витратою.

Пов’язані процеси

Адаптуйте

Той самий рецепт, підлаштований під те, як ви насправді працюєте.

Лише два тижні

Стисніть чотири тижні до двох для команд, які щойно починають.

Розділіть за каналом

Зробіть колонки розсилки, X і YouTube з тією самою темою в різних форматах.

Додайте запуск продукту

Поставте дати запуску як фіксовані рядки й заповніть контент навколо.

Довідкові сторінки за цим рецептом і наступні кроки.