Felo API PlatformFelo API Platform

Oficina

Convierte una página de investigación en una presentación

Extrae la página, guárdala como contexto LiveDoc, deja que la API PPT Task construya el deck y consulta hasta obtener el enlace final.

Tiempo15 minutosNivelInicialActualizado2026-10-29
Para quiénConsultoresVentas y marketingHerramientas internas

Copiar el prompt

Sustituye los campos entre corchetes y pégalo en Claude Code, Codex o cualquier IA con acceso a terminal. Instala el skill de Felo, pregunta antes de gastar créditos y ejecuta el flujo.

Convierte esta fuente en una presentación: [URL pública o ruta PDF].

Audiencia: [quién la ve]. Diapositivas: [6–10]. Idioma: [idioma]. Tema: [nombre del tema o «default»].

Usa Web Fetch en la página pública (o el archivo subido), guarda la fuente como contexto LiveDoc, crea una tarea PPT y consulta hasta que la presentación esté lista.

Genera:
1. Un esquema de una línea por diapositiva.
2. El enlace de la presentación generada.
3. El enlace del LiveDoc usado como contexto.

Reglas:
- No inventes hechos que no estén en la fuente. Los huecos se escriben «No mencionado en la fuente».
- Las tareas PPT consumen créditos; pregunta antes de enviarlas.
- Conserva juntos la URL de origen, el esquema y el enlace de la presentación.
- No publiques ni compartas la presentación fuera del espacio de trabajo.
- Escribe el esquema en ./deck-outline.md y resúmelo en el chat.

La copia también incluye los pasos de instalación y las reglas de seguridad.

Lo que obtienes

Salida de ejemplo de una ejecución. No es generación en vivo.

Ejemplo de esquema de deck (extracto)

Fuente -> esquema del deck

  1. Por qué importa este informe
  2. Qué cambió este trimestre
  3. Los tres segmentos de cliente
  4. Dónde la evidencia es débil
  5. Qué probar después

Deck: https://felo.ai/slides/... Contexto: https://felo.ai/livedoc/...

Las llamadas exactas

Para desarrolladores: el mismo flujo como código, en orden de ejecución.

Mostrar las llamadas reales a la API
  1. Extrae la página fuente

    Con Web Fetch, convierte la página pública en Markdown manteniendo título y cuerpo.

    deck.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 ExtractData = { data: { content: string } };
    
    const page = await felo<ExtractData>("/v2/web/extract", {
      url: "https://example.com/research",
      output_format: "markdown",
      with_readability: true,
    });
  2. Guarda como contexto LiveDoc

    Crea el LiveDoc, añade la fuente como documento y obtén el short_id.

    deck.ts
    type LiveDocData = { data: { short_id: string } };
    type ResourceData = { data: { id: string } };
    
    const doc = await felo<LiveDocData>("/v2/livedocs", {
      name: "Quarterly research deck",
      description: "Source material for the next deck",
    });
    
    const resource = await felo<ResourceData>(
      `/v2/livedocs/${doc.data.short_id}/resources/doc`,
      {
        title: "Source page",
        content: page.data.content,
      },
    );
  3. Envía la tarea de slides

    Llama a PPT Task API con el contenido y el LiveDoc short_id para obtener el task_id.

    deck.ts
    type PptTaskData = {
      data: { task_id: string; livedoc_short_id: string };
    };
    
    const task = await felo<PptTaskData>("/v2/ppts", {
      query: "Six slides for a product review: findings, evidence, next steps",
      livedoc_short_id: doc.data.short_id,
    });
    
    console.log(task.data.task_id);

    Salida de ejemplo

    {
      "data": {
        "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
        "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
        "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
      }
    }
  4. Consulta hasta terminar

    Revisa el estado hasta completar y lee el enlace de slides.

    deck.ts
    type TaskState = {
      data: { task_status: string; ppt_url?: string; live_doc_url?: string };
    };
    
    async function waitForDeck(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;
        if (["FAILED", "EXPIRED", "CANCELED"].includes(state.data.task_status)) {
          throw new Error(`Deck task ${state.data.task_status}`);
        }
        await new Promise((resolve) => setTimeout(resolve, 3000));
      }
      throw new Error("Deck task timed out");
    }
    
    const result = await waitForDeck(task.data.task_id);
    console.log(result.ppt_url);

    Salida de ejemplo

    {
      "task_status": "COMPLETED",
      "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
      "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
    }

Qué incluye

  • Extracción limpia de la página en Markdown
  • LiveDoc como contexto reutilizable
  • Tarea PPT asíncrona y enlace final
  • Esquema de slides para revisar antes de compartir

Qué no hace

  • Solo página pública o archivo subido; páginas con login pueden fallar
  • Las slides siguen la fuente y no cubren todo el sistema de marca
  • Un deck por ejecución; varios requieren bucle
  • No edita un deck existente ni garantiza coincidencia visual
  • No publica ni comparte el deck

Preguntas

¿Puedo usar PDF en vez de URL?

Sí. Envía la tarea PPT como multipart form data con el archivo; la plataforma lo guarda como recurso LiveDoc y crea el deck.

¿Puedo elegir un tema?

Sí. Lista los temas y pasa el id al crear la tarea.

¿Cuánto tarda un deck?

Es una tarea asíncrona. Consulta el historial hasta terminar; los decks largos tardan más.

¿Edita mi deck existente?

No. Crea un deck nuevo desde la fuente; editar uno existente es otro flujo.

¿Cuánto cuesta un deck?

La generación de slides se factura por uso; las tarifas están en la página de precios y el prompt pide aprobación antes de gastar.

¿Puedo reutilizar la fuente?

Sí. El LiveDoc guarda la fuente; decks o mindmaps posteriores pueden usar su short_id.

Flujos relacionados

Hazlo tuyo

La misma receta, adaptada a cómo entregas de verdad.

Fuente PDF

Sube un PDF en multipart; la plataforma lo guarda primero como recurso LiveDoc.

Define el tema

Lista los temas disponibles y pasa el id al crear la tarea.

Reutiliza en el próximo deck

Crea una nueva tarea PPT con el mismo LiveDoc short_id.

Las páginas de referencia detrás de esta receta y los siguientes pasos.