Felo API PlatformFelo API Platform

Контент

Превратите продуктовый бриф в лендинг

Исследуйте аудиторию, сохраните бриф в LiveDoc, создайте задачу Landing Page из этого контекста и опрашивайте её до готовности размещённой страницы.

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

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

Замените поля в квадратных скобках и вставьте в Claude Code, Codex или любой AI с доступом к терминалу. Он установит навык Felo, спросит перед списанием кредитов и выполнит процесс.

Создай лендинг для [продукт], нацеленный на [аудитория].

Цель: [регистрация / демо / список ожидания]. Тон: [тон]. Язык: [язык].
Исходный материал: [URL брифа продукта или вставь бриф]. Обязательно включить: [доказательства, цену, CTA].

Используй Chat и Web Fetch, чтобы изучить аудиторию и две-три страницы конкурентов. Сохрани бриф и исследование в LiveDoc, затем создай задачу Landing Page с этим LiveDoc как контекстом. Опрашивай до завершения и верни ссылку на размещённую страницу.

Подготовь:
1. Структуру страницы: главный экран, доказательства, функции, возражения, CTA.
2. Ссылку на размещённую страницу.
3. Ссылку на LiveDoc, использованный как контекст.
4. Чек-лист утверждений, которые нужно проверить.

Правила:
- Не выдумывай метрики, клиентов, отзывы, цены и заявления о соответствии.
- Каждое утверждение должно прослеживаться до брифа или полученной страницы.
- Спрашивай перед расходом кредитов на исследование или генерацию страницы.
- Не публикуй и не подключай домен; верни размещённую ссылку для проверки.
- Запиши структуру в ./landing-page-outline.md и кратко изложи её в чате.

В копию также входят шаги установки и правила безопасности.

Что получится

Пример вывода одного запуска. Не живая генерация.

Пример структуры лендинга (фрагмент)

Структура лендинга

Главный экран: «Исследуйте рынок, не открывая тридцать вкладок». Подзаголовок: Источники и черновик брифа за один запуск. Доказательство: Сэкономленное время на бриф; каждое утверждение ведёт к источнику. Функции: Поиск, извлечение страниц, сигнал X, доказательства LiveDoc. Возражения: «Придумает цифры?» Нет: нет данных — «Нет данных». CTA: Начните с одного вопроса.

Страница: https://felo.ai/ai-page/... Контекст: https://felo.ai/livedoc/...

Реальные вызовы

Для разработчиков: тот же процесс в виде кода в порядке выполнения.

Показать реальные вызовы API
  1. Исследуйте аудиторию и альтернативы

    Спросите Chat, кто аудитория и что ей нужно, и прочитайте 2–3 страницы конкурентов через Web Fetch.

    landing.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 }[] };
    };
    type ExtractData = { data: { content: string } };
    
    const research = await felo<ChatData>("/v2/chat", {
      query: "Who is [audience] and what do they need from [product]?",
    });
    
    const pages = await Promise.all(
      research.data.resources.slice(0, 2).map((source) =>
        felo<ExtractData>("/v2/web/extract", {
          url: source.link,
          output_format: "markdown",
          with_readability: true,
        }).then((page) => ({ ...source, content: page.data.content })),
      ),
    );

    Пример вывода

    { "answer": "…", "resources": [{ "link": "https://example.com", "title": "…" }] }
  2. Сохраните бриф в LiveDoc

    Создайте LiveDoc, добавьте продуктовый бриф документом и приложите загруженные страницы конкурентов.

    landing.ts
    type LiveDocData = { data: { short_id: string } };
    
    const doc = await felo<LiveDocData>("/v2/livedocs", {
      name: "Landing page: [product]",
      description: "Product brief, audience research and competitor notes",
    });
    
    await felo(`/v2/livedocs/${doc.data.short_id}/resources/doc`, {
      title: "Product brief",
      content: "[paste the brief: audience, problem, proof, pricing, CTA]",
    });
    
    await felo(`/v2/livedocs/${doc.data.short_id}/resources/urls`, {
      urls: pages.map((page) => ({ url: page.link, title: page.title })),
    });
    
    console.log(doc.data.short_id); // page context
  3. Создайте задачу лендинга

    Отправьте в /v2/landing_page промпт страницы и LiveDoc short_id, получите task_id.

    landing.ts
    type LandingTaskData = { data: { task_id: string } };
    
    const task = await felo<LandingTaskData>("/v2/landing_page", {
      query:
        "Create a landing page for [product] for [audience]. Goal: [signup]. " +
        "Use the product brief and research in the LiveDoc. Return a hero, proof, " +
        "features, objections and one CTA. Do not invent claims.",
      livedoc_short_id: doc.data.short_id,
    });
    
    console.log(task.data.task_id);

    Пример вывода

    { "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }
  4. Опрашивайте до готовности

    Проверяйте историю задачи до COMPLETED и прочитайте ai_page_html.

    landing.ts
    type TaskState = {
      data: { task_status: string; ai_page_html?: string; ppt_url?: string };
    };
    
    async function waitForPage(taskId: string) {
      for (let attempt = 0; attempt < 40; attempt++) {
        const state = await felo<TaskState>(`/v2/tasks/${taskId}/historical`);
        if (state.data.task_status === "COMPLETED") {
          return state.data.ai_page_html ?? state.data.ppt_url;
        }
        if (["FAILED", "EXPIRED", "CANCELED"].includes(state.data.task_status)) {
          throw new Error(`Landing page task ${state.data.task_status}`);
        }
        await new Promise((resolve) => setTimeout(resolve, 3000));
      }
      throw new Error("Landing page task timed out");
    }
    
    const pageUrl = await waitForPage(task.data.task_id);
    console.log(pageUrl);

    Пример вывода

    {
      "task_status": "COMPLETED",
      "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ",
      "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ"
    }
  5. Проверьте перед публикацией

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

Что входит

  • Исследование аудитории и конкурентов по публичным страницам
  • Бриф и исследование в LiveDoc
  • Размещённая страница из этого контекста
  • Список проверки утверждений, ссылок и CTA перед публикацией

Чего не делает

  • Создаёт только размещённую страницу, не публикует сайт и не подключает домен
  • Сгенерированный текст требует ручной проверки перед публикацией
  • Не делает A/B-тесты и не подключает аналитику
  • Не проверяет утверждения, которых нет в брифе и странице
  • Не создаёт логотип, бренд-систему и иллюстрации

Вопросы

Что он создаёт?

Размещённую в Felo страницу на основе брифа и исследования. Вы получаете ссылку, а не развёрнутый сайт.

Можно подключить свой домен?

Этот процесс не подключает домены. Он возвращает размещённую страницу для проверки; домен и публикация — отдельный шаг.

Он выдумывает отзывы и метрики?

Нет. Промпт запрещает выдумывать и требует привязки каждого утверждения к брифу или загруженной странице. Неподтверждённое исключается.

Можно улучшать итерациями?

Да. Измените бриф в LiveDoc и создайте новую задачу Landing Page с новым контекстом.

Он делает кастомные изображения?

Он отвечает за структуру и текст страницы; кастомные иллюстрации и брендовые материалы вне процесса.

Сколько стоит страница?

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

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

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

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

Начните с PDF-брифа

Отправьте PDF через multipart; платформа сохранит его как ресурс LiveDoc и передаст задаче страницы.

Сделайте два варианта позиционирования

Создайте две задачи с разными углами на одном LiveDoc и сравните перед выбором.

Переиспользуйте в презентации

Тот же LiveDoc можно передать задаче PPT, чтобы страница и deck рассказывали одну историю.

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