Felo API PlatformFelo API Platform

Nội dung

Biến báo cáo sản phẩm thành landing page

Nghiên cứu khán giả, lưu báo cáo trong LiveDoc, tạo tác vụ Landing Page từ bối cảnh đó và hỏi cho đến khi trang được lưu trữ sẵn sàng.

Thời gian30 phútMứcTrung cấpCập nhật2026-10-30
Dành cho aiNhà sáng lậpProduct marketingNhóm tăng trưởng

Sao chép prompt

Thay các trường trong ngoặc vuông rồi dán vào Claude Code, Codex hoặc AI có quyền truy cập terminal. Nó cài skill Felo, hỏi trước khi dùng credit và chạy quy trình.

Tạo trang đích cho [sản phẩm] nhắm đến [độc giả].

Mục tiêu: [đăng ký / demo / danh sách chờ]. Giọng điệu: [giọng điệu]. Ngôn ngữ: [ngôn ngữ].
Tư liệu nguồn: [URL bản tóm tắt sản phẩm hoặc dán bản tóm tắt]. Phải bao gồm: [điểm chứng minh, giá, CTA].

Dùng Chat và Web Fetch để nghiên cứu độc giả và hai hoặc ba trang đối thủ. Lưu bản tóm tắt và nghiên cứu vào LiveDoc, rồi tạo tác vụ Landing Page với LiveDoc đó làm ngữ cảnh. Poll đến khi hoàn tất và trả về liên kết trang được lưu trữ.

Tạo:
1. Dàn ý trang: màn hình chính, bằng chứng, tính năng, phản đối, CTA.
2. Liên kết trang được lưu trữ.
3. Liên kết LiveDoc dùng làm ngữ cảnh.
4. Danh sách kiểm tra các tuyên bố cần xác minh.

Quy tắc:
- Không bịa số liệu, khách hàng, lời chứng thực, giá hay tuyên bố tuân thủ.
- Giữ mọi tuyên bố truy được đến bản tóm tắt hoặc trang đã lấy.
- Hỏi trước khi tiêu tín dụng cho nghiên cứu hoặc tạo trang.
- Không công bố hoặc kết nối tên miền; trả về liên kết lưu trữ để xem xét.
- Ghi dàn ý vào ./landing-page-outline.md và tóm tắt trong chat.

Bản sao cũng gồm các bước cài đặt và quy tắc an toàn.

Bạn nhận được gì

Kết quả mẫu của một lần chạy. Không phải tạo trực tiếp.

Ví dụ dàn ý landing (trích)

Dàn ý trang đích

Màn hình chính: “Nghiên cứu thị trường mà không mở ba mươi tab.” Subhead: Nguồn và bản nháp brief trong một lần chạy. Bằng chứng: Thời gian tiết kiệm mỗi brief; mọi nhận định liên kết nguồn. Tính năng: Tìm kiếm, trích xuất trang, tín hiệu X, bằng chứng LiveDoc. Phản đối: “Có bịa số không?” Không: thiếu dữ liệu là “Không có dữ liệu”. CTA: Bắt đầu bằng một câu hỏi.

Trang: https://felo.ai/ai-page/... Ngữ cảnh: https://felo.ai/livedoc/...

Các lệnh gọi chính xác

Dành cho lập trình viên: cùng quy trình dưới dạng mã, theo thứ tự chạy.

Hiện lệnh gọi API thật
  1. Nghiên cứu khán giả và lựa chọn

    Hỏi Chat khán giả là ai và cần gì, rồi đọc hai hoặc ba trang đối thủ bằng 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 })),
      ),
    );

    Kết quả mẫu

    { "answer": "…", "resources": [{ "link": "https://example.com", "title": "…" }] }
  2. Lưu báo cáo trong LiveDoc

    Tạo LiveDoc, thêm báo cáo làm tài liệu và đính kèm trang đã tải.

    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. Tạo tác vụ landing page

    Gửi /v2/landing_page prompt và LiveDoc short_id, nhận 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);

    Kết quả mẫu

    { "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }
  4. Hỏi đến khi xong

    Kiểm tra lịch sử đến COMPLETED và đọc 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);

    Kết quả mẫu

    {
      "task_status": "COMPLETED",
      "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ",
      "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ"
    }
  5. Duyệt trước khi chia sẻ

    Kiểm tra khẳng định, giá, văn bản pháp lý và liên kết CTA, rồi chia sẻ.

Bao gồm

  • Nghiên cứu khán giả và đối thủ trên trang công khai
  • Báo cáo và nghiên cứu trong LiveDoc
  • Trang được lưu trữ từ bối cảnh đó
  • Danh sách kiểm tra khẳng định, liên kết và CTA trước khi chia sẻ

Không làm gì

  • Tạo trang lưu trữ, không xuất bản site và không kết nối tên miền riêng
  • Văn bản tạo ra cần người duyệt trước khi chia sẻ
  • Không A/B test và không kết nối analytics
  • Không xác minh khẳng định ngoài báo cáo và trang
  • Không tạo logo, hệ thống thương hiệu hay minh họa riêng

Câu hỏi

Nó tạo gì?

Landing page lưu trữ tại Felo từ báo cáo và nghiên cứu. Bạn nhận liên kết, không phải site đã xuất bản.

Có dùng tên miền riêng không?

Quy trình này không kết nối tên miền. Nó trả trang lưu trữ để duyệt; tên miền và xuất bản là bước khác.

Có bịa testimonial hay số liệu không?

Không. Prompt cấm bịa và yêu cầu mọi khẳng định đến từ báo cáo hoặc trang đã tải.

Có lặp được không?

Có. Sửa báo cáo trong LiveDoc và tạo tác vụ Landing Page mới.

Có tạo ảnh riêng không?

Nó xử lý cấu trúc và văn bản; minh họa và tư liệu thương hiệu nằm ngoài.

Một trang tốn bao nhiêu?

Nghiên cứu và tạo trang tính theo mức dùng; giá hiện tại ở trang giá và prompt hỏi duyệt trước khi chi.

Quy trình liên quan

Tùy biến

Cùng công thức, điều chỉnh theo cách bạn thực sự triển khai.

Bắt đầu bằng PDF

Gửi PDF qua multipart; nền tảng lưu làm tài nguyên LiveDoc và chuyển cho tác vụ trang.

Hai phiên bản định vị

Tạo hai tác vụ với góc khác nhau trong cùng LiveDoc và so trước khi chọn.

Dùng lại cho bài thuyết trình

Cùng LiveDoc có thể nuôi tác vụ PPT để trang và deck kể cùng câu chuyện.

Các trang tham chiếu đằng sau công thức và nơi đi tiếp.