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.
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.
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
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": "…" }] }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 contextUtwórz zadanie landing page
Wyślij na
/v2/landing_pageprompt 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" } }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" }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
Zamień pytanie rynkowe w brief go-to-market
Zadaj rynkowi precyzyjne pytanie, przeczytaj strony kategorii i cen za odpowiedzią, zbierz, jak kupujący opisują problem na X, i zapisz brief GTM z twierdzeniami ze źródeł i otwartymi pytaniami.
Otwórz workflowTreściWypełnij miesiąc treści pytaniami odbiorców
Zmapuj tematy z Chat, znajdź pytania odbiorców na X, weź prawdziwy kąt z transkryptu wideo i złóż czterotygodniowy kalendarz, w którym każdy wiersz podaje dowód.
Otwórz workflowBiuroZamień stronę badawczą w prezentację
Wyekstrahuj stronę, zapisz jako kontekst LiveDoc, pozwól PPT Task API zbudować deck i pytaj, aż link będzie gotowy.
Otwórz workflowDostosuj
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ę.
Idź dalej
Strony referencyjne za tą recepturą i kolejne kroki.