Felo API PlatformFelo API Platform

Treści

Zamień brief produktu w landing page

Zbadaj publiczność, zapisz brief w LiveDoc, utwórz z tego kontekstu zadanie Landing Page i pytaj, aż hostowana strona będzie gotowa.

Czas30 minutPoziomŚredniZaktualizowano2026-10-30
Dla kogoFounderzyProduct marketingZespoły wzrostu

Skopiuj prompt

Podmień pola w nawiasach kwadratowych i wklej do Claude Code, Codex albo AI z dostępem do terminala. Instaluje skill Felo, pyta przed wydaniem kredytów i uruchamia workflow.

Zbuduj landing page dla [produkt] skierowany do [odbiorcy].

Cel: [rejestracja / demo / lista oczekujących]. Ton: [ton]. Język: [język].
Materiał źródłowy: [URL briefu produktu lub wklej brief]. Musi zawierać: [punkty dowodowe, cenę, CTA].

Użyj Chat i Web Fetch, aby zbadać odbiorców i dwie lub trzy strony konkurencji. Zapisz brief i badanie w LiveDoc, a następnie utwórz zadanie Landing Page z tym LiveDoc jako kontekstem. Odpytuj aż do ukończenia i zwróć link do hostowanej strony.

Przygotuj:
1. Konspekt strony: główna sekcja, dowody, funkcje, obiekcje, CTA.
2. Link do hostowanej strony.
3. Link do LiveDoc użytego jako kontekst.
4. Listę kontrolną twierdzeń do weryfikacji.

Zasady:
- Nie wymyślaj metryk, klientów, testimoniali, cen ani twierdzeń o zgodności.
- Utrzymuj każde twierdzenie możliwe do prześledzenia do briefu lub pobranej strony.
- Pytaj przed zużyciem kredytów na badanie lub generowanie strony.
- Nie publikuj i nie podłączaj domeny; zwróć hostowany link do przeglądu.
- Zapisz konspekt w ./landing-page-outline.md i podsumuj go w czacie.

Kopia zawiera też kroki instalacji i zasady bezpieczeństwa.

Co otrzymujesz

Przykładowy wynik jednego uruchomienia. Nie generowanie na żywo.

Przykładowy plan landing page (fragment)

Plan landing page

Główna sekcja: „Zbadaj rynek bez otwierania trzydziestu kart.” Subhead: Źródła i szkic briefingu w jednym uruchomieniu. Dowód: Czas oszczędzony na briefie; każde twierdzenie linkuje do źródła. Funkcje: Wyszukiwanie, ekstrakcja stron, sygnał X, dowody LiveDoc. Obiekcje: „Czy wymyśli liczby?” Nie: brak danych to „Brak danych”. CTA: Zacznij od jednego pytania.

Strona: https://felo.ai/ai-page/... Kontekst: https://felo.ai/livedoc/...

Dokładne wywołania

Dla deweloperów: ten sam workflow jako kod, w kolejności wykonania.

Pokaż rzeczywiste wywołania API
  1. Zbadaj publiczność i alternatywy

    Zapytaj Chat, kim jest publiczność i czego potrzebuje, potem przeczytaj dwie lub trzy strony konkurentów przez 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 })),
      ),
    );

    Przykładowy wynik

    { "answer": "…", "resources": [{ "link": "https://example.com", "title": "…" }] }
  2. Zapisz brief w LiveDoc

    Utwórz LiveDoc, dodaj brief jako dokument i dołącz uchwycone strony.

    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. Utwórz zadanie landing page

    Wyślij na /v2/landing_page prompt strony i LiveDoc short_id, odbierz 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);

    Przykładowy wynik

    { "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }
  4. Pytaj do końca

    Sprawdzaj historię do COMPLETED i czytaj 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);

    Przykładowy wynik

    {
      "task_status": "COMPLETED",
      "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ",
      "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ"
    }
  5. Sprawdź przed udostępnieniem

    Zweryfikuj twierdzenia, ceny, tekst prawny i linki CTA, potem udostępnij.

Co zawiera

  • Badanie publiczności i konkurencji na publicznych stronach
  • Brief i badanie w LiveDoc
  • Hostowana strona z tego kontekstu
  • Lista kontrolna twierdzeń, linków i CTA przed udostępnieniem

Czego nie robi

  • Tworzy hostowaną stronę, nie publikuje serwisu i nie podłącza domeny
  • Wygenerowany tekst wymaga ludzkiej weryfikacji przed udostępnieniem
  • Bez testów A/B i podłączenia analityki
  • Nie weryfikuje twierdzeń spoza briefu i strony
  • Nie tworzy logo, systemu marki ani własnych ilustracji

Pytania

Co generuje?

Hostowaną landing page w Felo z briefu i badania. Dostajesz link, nie opublikowaną stronę.

Czy można użyć własnej domeny?

Ten workflow nie podłącza domen. Zwraca hostowaną stronę do przeglądu; domena i publikacja to osobny krok.

Czy wymyśla testimonialy lub metryki?

Nie. Prompt zakazuje wymyślania i wymaga, by każde twierdzenie pochodziło z briefu lub uchwyconej strony.

Czy można iterować?

Tak. Zmień brief w LiveDoc i utwórz nowe zadanie Landing Page.

Czy tworzy własne obraz?

Zajmuje się strukturą i tekstem; ilustracje i materiały marki są poza workflow.

Ile kosztuje jedna strona?

Badanie i generowanie strony są rozliczane według użycia; aktualne stawki na stronie cen, a prompt pyta o zgodę przed wydaniem.

Powiązane workflowy

Dostosuj

Ta sama receptura, dopasowana do tego, jak naprawdę dostarczasz.

Zacznij od PDF

Wyślij PDF przez multipart; platforma zapisuje go jako zasób LiveDoc i przekazuje do zadania.

Dwie wersje pozycjonowania

Utwórz dwa zadania z różnymi kątami w tym samym LiveDoc i porównaj przed wyborem.

Użyj ponownie w prezentacji

Ten sam LiveDoc może zasilić zadanie PPT, żeby strona i deck opowiadały tę samą historię.

Strony referencyjne za tą recepturą i kolejne kroki.