Felo API PlatformFelo API Platform

Office

Eine Rechercheseite in eine Präsentation verwandeln

Extrahiere die Seite, speichere sie als LiveDoc-Kontext, lass die PPT Task API das Deck bauen und frage ab, bis der fertige Link vorliegt.

Dauer15 MinutenLevelEinsteigerAktualisiert2026-10-29
Für wenBeraterVertrieb & MarketingInterne Tools

Prompt kopieren

Ersetze die Felder in eckigen Klammern und füge den Prompt in Claude Code, Codex oder eine KI mit Terminalzugriff ein. Sie installiert den Felo-Skill, fragt vor Credits und führt den Workflow aus.

Verwandle diese Quelle in ein Slide-Deck: [öffentliche URL oder PDF-Pfad].

Zielgruppe: [wer es sieht]. Folien: [6–10]. Sprache: [Sprache]. Theme: [Theme-Name oder „default“].

Nutze Web Fetch auf der öffentlichen Seite (oder der hochgeladenen Datei), speichere die Quelle als LiveDoc-Kontext, erstelle eine PPT-Aufgabe und frage den Status ab, bis das Deck fertig ist.

Erstelle:
1. Eine Gliederung mit einer Zeile pro Folie.
2. Den Link zum generierten Deck.
3. Den als Kontext genutzten LiveDoc-Link.

Regeln:
- Erfinde keine Fakten, die nicht in der Quelle stehen. Lücken heißen „In der Quelle nicht genannt“.
- PPT-Aufgaben verbrauchen Credits; frage vor dem Absenden.
- Bewahre Quell-URL, Gliederung und Deck-Link zusammen auf.
- Veröffentliche oder teile das Deck nicht außerhalb des Workspace.
- Schreibe die Gliederung nach ./deck-outline.md und fasse es im Chat zusammen.

Die Kopie enthält auch die Installationsschritte und Sicherheitsregeln.

Das bekommst du

Beispielausgabe eines Laufs. Keine Live-Generierung.

Beispiel-Deck-Gliederung (Auszug)

Quelle -> Deck-Gliederung

  1. Warum dieser Bericht wichtig ist
  2. Was sich in diesem Quartal geändert hat
  3. Die drei Kundensegmente
  4. Wo die Evidenz dünn ist
  5. Was als Nächstes zu testen ist

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

Die konkreten Aufrufe

Für Entwickler: derselbe Workflow als kopierbarer Code in Ausführungsreihenfolge.

Konkrete API-Aufrufe zeigen
  1. Quellseite extrahieren

    Wandle die öffentliche Seite mit Web Fetch in Markdown um und behalte Titel und Text.

    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. Als LiveDoc-Kontext speichern

    Erstelle ein LiveDoc, füge die Quelle als Dokument hinzu und erhalte die 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. Slide-Aufgabe senden

    Rufe die PPT Task API mit Seiteninhalt und LiveDoc short_id auf und erhalte die 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);

    Beispielausgabe

    {
      "data": {
        "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
        "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
        "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
      }
    }
  4. Bis zum Abschluss abfragen

    Prüfe den Aufgabenstatus bis zum Abschluss und lies den Slide-Link.

    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);

    Beispielausgabe

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

Enthalten

  • Saubere Markdown-Extraktion der Quellseite
  • LiveDoc als wiederverwendbarer Kontext
  • Asynchrone PPT-Aufgabe und fertiger Link
  • Slide-Gliederung zur Prüfung vor dem Teilen

Was es nicht macht

  • Quelle nur öffentliche Seite oder hochgeladene Datei; Login-Seiten können fehlschlagen
  • Slides folgen der Quelle und decken nicht das ganze Brand-System ab
  • Ein Deck pro Lauf; mehrere brauchen eine Schleife
  • Bearbeitet kein bestehendes Deck und garantiert keine visuelle Übereinstimmung
  • Veröffentlicht oder teilt das Deck nicht

Fragen

Kann ich PDF statt URL nutzen?

Ja. Sende die PPT-Aufgabe als multipart form data mit der Datei; die Plattform speichert sie als LiveDoc-Ressource und erstellt das Deck.

Kann ich ein Theme wählen?

Ja. Liste zuerst die Themes und übergib die Theme-ID bei der Aufgabenerstellung.

Wie lange dauert ein Deck?

Es ist eine asynchrone Aufgabe. Frage den Verlauf bis zum Abschluss ab; lange Decks dauern länger.

Bearbeitet es mein bestehendes Deck?

Nein. Es erstellt ein neues Deck aus der Quelle; das Bearbeiten eines bestehenden Decks ist ein anderer Workflow.

Was kostet ein Deck?

Slide-Generierung wird nutzungsbasiert abgerechnet; aktuelle Preise stehen auf der Preisseite, und der Prompt fragt vor Ausgaben nach Bestätigung.

Kann ich die Quelle wiederverwenden?

Ja. Das LiveDoc speichert die Quelle; spätere Decks oder Mindmaps können die short_id nutzen.

Verwandte Workflows

Mach es zu deinem

Dasselbe Rezept, angepasst an deinen tatsächlichen Ablauf.

PDF als Quelle

Lade ein PDF per multipart hoch; die Plattform speichert es zuerst als LiveDoc-Ressource.

Theme setzen

Liste verfügbare Themes und übergib die Theme-ID bei der Aufgabenerstellung.

Im nächsten Deck wiederverwenden

Erstelle mit derselben LiveDoc short_id eine neue PPT-Aufgabe.

Die Referenzseiten hinter diesem Rezept und die nächsten Schritte.