Felo API PlatformFelo API Platform

Konten

Ubah brief produk menjadi landing page

Riset audiens, simpan brief di LiveDoc, buat tugas Landing Page dari konteks itu, dan tanyakan sampai halaman yang dihosting siap.

Waktu30 menitTingkatMenengahDiperbarui2026-10-30
Untuk siapaPendiriProduct marketingTim pertumbuhan

Salin prompt

Ganti kolom dalam kurung siku lalu tempel ke Claude Code, Codex, atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum memakai kredit, dan menjalankan alur kerja.

Buat landing page untuk [produk] yang ditujukan kepada [audiens].

Tujuan: [pendaftaran / demo / daftar tunggu]. Nada: [nada]. Bahasa: [bahasa].
Materi sumber: [URL ringkasan produk atau tempel ringkasannya]. Wajib memuat: [poin bukti, harga, CTA].

Gunakan Chat dan Web Fetch untuk meriset audiens dan dua atau tiga halaman pesaing. Simpan ringkasan dan riset di LiveDoc, lalu buat tugas Landing Page dengan LiveDoc itu sebagai konteks. Polling sampai selesai dan kembalikan tautan halaman yang dihosting.

Hasilkan:
1. Outline halaman: bagian utama, bukti, fitur, keberatan, CTA.
2. Tautan halaman yang dihosting.
3. Tautan LiveDoc yang dipakai sebagai konteks.
4. Daftar periksa klaim yang perlu diverifikasi.

Aturan:
- Jangan mengarang metrik, pelanggan, testimoni, harga, atau klaim kepatuhan.
- Jaga setiap klaim bisa dilacak ke ringkasan atau halaman yang diambil.
- Tanya dulu sebelum memakai kredit untuk riset atau pembuatan halaman.
- Jangan menerbitkan atau menghubungkan domain; kembalikan tautan hosting untuk ditinjau.
- Tulis outline ke ./landing-page-outline.md dan ringkas di chat.

Salinan juga menyertakan langkah pemasangan dan aturan keamanan.

Yang Anda dapatkan

Contoh keluaran dari satu eksekusi. Bukan pembuatan langsung.

Contoh kerangka landing (kutipan)

Kerangka landing page

Bagian utama: “Riset pasar tanpa membuka tiga puluh tab.” Subhead: Sumber dan draf ringkasan dalam satu kali jalan. Bukti: Waktu hemat per ringkasan; setiap klaim tertaut ke sumber. Fitur: Pencarian, ekstraksi halaman, sinyal X, bukti LiveDoc. Keberatan: “Apakah akan mengarang angka?” Tidak: data hilang adalah “Tidak tersedia”. CTA: Mulai dari satu pertanyaan.

Halaman: https://felo.ai/ai-page/... Konteks: https://felo.ai/livedoc/...

Panggilan persisnya

Untuk developer: alur kerja yang sama sebagai kode, sesuai urutan eksekusi.

Tampilkan panggilan API asli
  1. Riset audiens dan alternatif

    Tanya Chat siapa audiens dan apa yang mereka butuhkan, lalu baca dua atau tiga halaman pesaing dengan 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 })),
      ),
    );

    Contoh keluaran

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

    Buat LiveDoc, tambahkan brief sebagai dokumen dan lampirkan halaman yang ditangkap.

    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. Buat tugas landing page

    Kirim ke /v2/landing_page prompt halaman dan LiveDoc short_id, lalu terima 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);

    Contoh keluaran

    { "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }
  4. Tanya sampai selesai

    Periksa riwayat sampai COMPLETED dan baca 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);

    Contoh keluaran

    {
      "task_status": "COMPLETED",
      "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ",
      "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ"
    }
  5. Tinjau sebelum dibagikan

    Periksa klaim, harga, teks hukum, dan tautan CTA, lalu bagikan.

Termasuk

  • Riset audiens dan pesaing dari halaman publik
  • Brief dan riset di LiveDoc
  • Halaman yang dihosting dari konteks itu
  • Daftar periksa klaim, tautan, dan CTA sebelum dibagikan

Yang tidak dilakukan

  • Membuat halaman hosted, tidak menerbitkan situs dan tidak menghubungkan domain
  • Teks yang dihasilkan perlu tinjauan manusia sebelum dibagikan
  • Tanpa A/B test dan tanpa koneksi analytics
  • Tidak memverifikasi klaim di luar brief dan halaman
  • Tidak membuat logo, sistem merek, atau ilustrasi khusus

Pertanyaan

Apa yang dihasilkan?

Landing page yang dihosting di Felo dari brief dan riset. Anda menerima tautan, bukan situs terbit.

Bisa memakai domain sendiri?

Alur ini tidak menghubungkan domain. Ia mengembalikan halaman hosted untuk ditinjau; domain dan publikasi langkah lain.

Apakah mengarang testimoni atau angka?

Tidak. Prompt melarang karangan dan mewajibkan setiap klaim berasal dari brief atau halaman yang ditangkap.

Bisa iterasi?

Bisa. Ubah brief di LiveDoc dan buat tugas Landing Page baru.

Apakah membuat gambar khusus?

Ia mengurus struktur dan teks; ilustrasi dan materi merek di luar alur.

Berapa biaya satu halaman?

Riset dan pembuatan halaman ditagih sesuai pemakaian; tarif saat ini di halaman harga dan prompt meminta persetujuan sebelum mengeluarkan biaya.

Alur kerja terkait

Sesuaikan

Resep yang sama, disesuaikan dengan cara Anda benar-benar mengirim.

Mulai dari PDF

Kirim PDF lewat multipart; platform menyimpannya sebagai resource LiveDoc dan meneruskannya ke tugas.

Dua versi positioning

Buat dua tugas dengan sudut berbeda di LiveDoc yang sama dan bandingkan sebelum memilih.

Pakai ulang untuk presentasi

LiveDoc yang sama bisa memberi tugas PPT agar halaman dan deck bercerita sama.

Halaman referensi di balik resep ini dan langkah berikutnya.