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.
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.
Quelle -> Deck-Gliederung
- Warum dieser Bericht wichtig ist
- Was sich in diesem Quartal geändert hat
- Die drei Kundensegmente
- Wo die Evidenz dünn ist
- 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
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, });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, }, );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" } }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
Eine Frage in ein belegtes Research-Briefing verwandeln
Frage das Web, speichere die Seiten hinter der Antwort als Markdown, ergänze, was Praktiker auf X sagen, und halte die Belege in einem LiveDoc fest, das du später erneut durchsuchen kannst.
Workflow öffnenContentEinen täglichen KI-News-Digest bauen, den dein Team wirklich liest
Hole eine belegte News-Zusammenfassung, ergänze Diskussionen von Praktikern auf X, nimm ein Video-Transkript auf, verfasse die Ausgabe in Markdown und archiviere sie im LiveDoc.
Workflow öffnenSupportSupport-Fragen aus deiner eigenen Dokumentation beantworten
Erstelle ein LiveDoc, lade Helpcenter und internes Runbook, rufe die Passagen ab, die den Ticket beantworten, und lass das Modell nur aus diesen Belegen antworten.
Workflow öffnenMach 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.
Weiter
Die Referenzseiten hinter diesem Rezept und die nächsten Schritte.