Felo API PlatformFelo API Platform

Conteúdo

Transforme um briefing de produto em landing page

Pesquise a audiência, guarde o briefing no LiveDoc, crie uma tarefa de Landing Page a partir desse contexto e consulte até a página hospedada ficar pronta.

Tempo30 minutosNívelIntermediárioAtualizado2026-10-30
Para quemFundadoresMarketing de produtoTimes de crescimento

Copiar o prompt

Substitua os campos entre colchetes e cole no Claude Code, Codex ou qualquer IA com acesso ao terminal. Ela instala a skill da Felo, pergunta antes de gastar créditos e executa o fluxo.

Crie uma landing page para [produto] voltada a [público].

Objetivo: [cadastro / demo / lista de espera]. Tom: [tom]. Idioma: [idioma].
Material de origem: [URL do briefing do produto ou cole o briefing]. Deve incluir: [pontos de prova, preço, CTA].

Use Chat e Web Fetch para pesquisar o público e duas ou três páginas de concorrentes. Guarde o briefing e a pesquisa em um LiveDoc e crie uma tarefa Landing Page com esse LiveDoc como contexto. Consulte até concluir e retorne o link da página hospedada.

Produza:
1. Um esqueleto de página: destaque, prova, recursos, objeções, CTA.
2. O link da página hospedada.
3. O link do LiveDoc usado como contexto.
4. Uma lista de verificação das afirmações que precisam ser comprovadas.

Regras:
- Não invente métricas, clientes, depoimentos, preços ou alegações de conformidade.
- Mantenha cada afirmação rastreável até o briefing ou uma página obtida.
- Pergunte antes de gastar créditos em pesquisa ou geração de página.
- Não publique nem conecte um domínio; retorne o link hospedado para revisão.
- Grave o esqueleto em ./landing-page-outline.md e resuma no chat.

A cópia também inclui os passos de instalação e as regras de segurança.

O que você recebe

Saída de exemplo de uma execução. Não é geração ao vivo.

Exemplo de esboço de landing (trecho)

Esboço da landing page

Destaque: “Pesquise um mercado sem abrir trinta abas.” Subhead: Fontes e um rascunho de briefing numa execução. Prova: Tempo economizado por briefing; cada afirmação leva a uma fonte. Recursos: Busca, extração de página, sinal do X, evidência do LiveDoc. Objeções: “Vai inventar números?” Não: dado ausente é “Não disponível”. CTA: Comece com uma pergunta.

Página: https://felo.ai/ai-page/... Contexto: https://felo.ai/livedoc/...

As chamadas exatas

Para desenvolvedores: o mesmo fluxo em código, na ordem de execução.

Mostrar as chamadas reais da API
  1. Pesquise a audiência e as alternativas

    Pergunte ao Chat quem é a audiência e do que precisa, e leia duas ou três páginas de concorrentes com 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 })),
      ),
    );

    Saída de exemplo

    { "answer": "…", "resources": [{ "link": "https://example.com", "title": "…" }] }
  2. Guarde o briefing no LiveDoc

    Crie o LiveDoc, adicione o briefing de produto como documento e anexe as páginas de concorrentes capturadas.

    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. Crie a tarefa de landing page

    Envie ao /v2/landing_page o prompt da página e o LiveDoc short_id, recebendo o 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);

    Saída de exemplo

    { "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }
  4. Consulte até ficar pronta

    Verifique o histórico da tarefa até COMPLETED e leia 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);

    Saída de exemplo

    {
      "task_status": "COMPLETED",
      "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ",
      "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ"
    }
  5. Revise antes de compartilhar

    Confira afirmações, preços, texto jurídico e links de CTA, depois compartilhe.

O que está incluído

  • Pesquisa de audiência e concorrentes em páginas públicas
  • Briefing e pesquisa no LiveDoc
  • Página hospedada gerada a partir desse contexto
  • Lista de revisão de afirmações, links e CTA antes de compartilhar

O que não faz

  • Gera uma página hospedada, não publica um site nem conecta domínio próprio
  • O texto gerado precisa de revisão humana antes de ser compartilhado
  • Não faz testes A/B nem conecta analítica
  • Não verifica afirmações ausentes do briefing e da página
  • Não cria logotipo, sistema de marca ou ilustrações personalizadas

Perguntas

O que ele gera?

Uma landing page hospedada na Felo, baseada no briefing e na pesquisa. Você recebe um link, não um site publicado.

Posso usar meu domínio?

Este fluxo não conecta domínio próprio. Ele devolve uma página hospedada para revisão; domínio e publicação são outro passo.

Ele inventa depoimentos ou métricas?

Não. O prompt proíbe invenções e exige que cada afirmação venha do briefing ou de uma página capturada. O que não tem base fica de fora.

Posso iterar na página?

Sim. Altere o briefing no LiveDoc e crie uma nova tarefa de Landing Page com o novo contexto.

Ele cria imagens personalizadas?

Ele cuida da estrutura e do texto; ilustrações e materiais de marca ficam fora do fluxo.

Quanto custa uma página?

Pesquisa e geração da página são cobradas por uso; as tarifas atuais estão na página de preços, e o prompt pede aprovação antes de gastar.

Fluxos relacionados

Faça do seu jeito

A mesma receita, adaptada ao seu processo real.

Comece com PDF

Envie um PDF via multipart; a plataforma o salva como recurso do LiveDoc e o passa para a tarefa da página.

Crie duas versões de posicionamento

Crie duas tarefas com ângulos diferentes no mesmo LiveDoc e compare antes de escolher.

Reutilize na apresentação

O mesmo LiveDoc pode alimentar uma tarefa de PPT para a página e o deck contarem a mesma história.

As páginas de referência por trás desta receita e para onde ir depois.