Felo API PlatformFelo API Platform

Контент

Заполните месяц контентом по вопросам вашей аудитории

Соберите темы в Chat, найдите вопросы аудитории в X, возьмите реальный угол из транскрипта видео и составьте календарь на четыре недели, где каждая строка имеет доказательство.

Время25 минутУровеньСреднийОбновлено2026-10-30
Для когоКонтент-лидыSMMАвторы

Скопировать промпт

Замените поля в квадратных скобках и вставьте в 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 и угла референсного видео. Каждый пункт сохраняет ссылку или дату доказательства.

Он знает, что раньше сработало?

Нет. Он не читает аналитику; прошлые результаты нужно добавить самостоятельно.

Он также пишет посты?

Нет. Он выдаёт календарь и углы, а пишете вы или ваш писательский agent.

Что если нет референсного видео?

Пропустите этот шаг; темы и вопросы из X всё равно поддерживают календарь.

Можно планировать публикации автоматически?

Нет. Он создаёт файл плана; расписание публикаций настраивается в вашем инструменте.

Сколько стоит планирование?

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

Связанные процессы

Исследования

Превратите один поисковый запрос в SEO-бриф для контента

Посмотрите, какие страницы сейчас отвечают на запрос, прочитайте их как Markdown, сопоставьте вопросы, на которые они отвечают и которые пропускают, и напишите бриф, по которому автор сразу составит план.

Открыть рабочий процесс
Контент

Выпускайте ежедневный AI-дайджест, который команда действительно читает

Получите подборку новостей с источниками, добавьте обсуждения практиков в X, загрузите один транскрипт видео, соберите выпуск в Markdown и сохраните его в LiveDoc.

Открыть рабочий процесс
Контент

Превратите обсуждения в еженедельный бриф социального слушания

Ищите посты X о бренде и конкурентах за неделю, добавьте веб-контекст с источниками, прочитайте страницы за ним и сохраняйте каждый выпуск, чтобы следующая неделя начиналась с известного.

Открыть рабочий процесс

Адаптируйте под себя

Тот же рецепт, подстроенный под ваш реальный процесс.

Только две недели

Сожмите четыре недели в две для команды, которая только начинает выпускать контент.

Разделите по каналам

Сделайте колонки для рассылки, X и YouTube с одной темой в разных форматах.

Добавьте запуск продукта

Поставьте даты запуска и события фиксированными строками и заполните контент вокруг них.

Справочные страницы этого рецепта и куда двигаться дальше.