Kantoor
Maak van een onderzoekspagina een presentatie
Extraheer de pagina, bewaar hem als LiveDoc-context, laat de PPT Task API het deck bouwen en vraag door tot de voltooide link.
Prompt kopiëren
Vervang de velden tussen blokhaken en plak in Claude Code, Codex of een AI met terminaltoegang. Die installeert de Felo-skill, vraagt voor credits en voert de workflow uit.
Zet deze bron om in een slide-deck: [publieke URL of PDF-pad]. Publiek: [wie kijkt]. Slides: [6–10]. Taal: [taal]. Thema: [themanaam of ‘default’]. Gebruik Web Fetch op de publieke pagina (of het geüploade bestand), sla de bron op als LiveDoc-context, maak een PPT-taak en poll tot het deck klaar is. Lever: 1. Een outline met één regel per slide. 2. De link naar het gegenereerde deck. 3. De link naar het gebruikte LiveDoc. Regels: - Verzin geen feiten die niet in de bron staan. Gaten heten ‘Niet vermeld in de bron’. - PPT-taken kosten credits; vraag het voordat je ze indient. - Houd bron-URL, outline en decklink bij elkaar. - Publiceer of deel het deck niet buiten de workspace. - Schrijf de outline naar ./deck-outline.md en vat het samen in de chat.
De kopie bevat ook de installatiestappen en veiligheidsregels.
Wat je krijgt
Voorbeelduitvoer van een run. Geen live generatie.
Bron -> deck-outline
- Waarom dit rapport ertoe doet
- Wat dit kwartaal veranderde
- De drie klantsegmenten
- Waar het bewijs dun is
- Wat hierna te testen
Deck: https://felo.ai/slides/... Context: https://felo.ai/livedoc/...
De exacte aanroepen
Voor ontwikkelaars: dezelfde workflow als kopieerbare code in uitvoeringsvolgorde.
Exacte API-aanroepen tonen
Extraheer de bronpagina
Zet de openbare pagina met Web Fetch om naar Markdown en behoud titel en tekst.
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, });Bewaar als LiveDoc-context
Maak de LiveDoc, voeg de bron als document toe en ontvang de 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, }, );Stuur de slidetaak
Roep de PPT Task API aan met inhoud en LiveDoc short_id en ontvang de 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);Voorbeelduitvoer
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Poll tot voltooiing
Controleer de status tot voltooid en lees de slidlink.
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);Voorbeelduitvoer
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
Wat inbegrepen is
- Schone Markdown-extractie van de bronpagina
- LiveDoc als herbruikbare context
- Asynchrone PPT-taak en voltooide link
- Slide-outline om voor delen te controleren
Wat het niet doet
- Bron alleen openbare pagina of geüpload bestand; loginpagina’s kunnen falen
- Slides volgen de bron en dekken niet het hele brandsysteem
- Eén deck per run; meerdere vragen een lus
- Bewerkt geen bestaand deck en garandeert geen visuele match
- Publiceert of deelt het deck niet
Vragen
Kan ik PDF in plaats van URL gebruiken?
Ja. Stuur de PPT-taak als multipart form data met het bestand; het platform bewaart het als LiveDoc-resource en maakt het deck.
Kan ik een thema kiezen?
Ja. Noem eerst de thema’s en geef de thema-id mee bij het maken van de taak.
Hoe lang duurt een deck?
Het is een asynchrone taak. Poll de historie tot voltooiing; lange decks duren langer.
Bewerkt het mijn bestaande deck?
Nee. Het maakt een nieuw deck uit de bron; een bestaand deck bewerken is een andere workflow.
Wat kost een deck?
Slidegeneratie wordt op gebruik gefactureerd; actuele tarieven staan op de prijspagina en de prompt vraagt goedkeuring voor uitgaven.
Kan ik de bron hergebruiken?
Ja. De LiveDoc bewaart de bron; volgende decks of mindmaps kunnen de short_id gebruiken.
Gerelateerde workflows
Maak van één vraag een onderbouwde researchbrief
Vraag het web, bewaar de pagina’s achter het antwoord als Markdown, voeg toe wat practitioners op X zeggen en houd het bewijs in een LiveDoc dat je later opnieuw kunt doorzoeken.
Workflow openenContentPubliceer een dagelijkse AI-nieuwsdigest die je team echt leest
Haal een onderbouwde nieuwssamenvatting, voeg discussies van practitioners op X toe, neem één videotranscript op, stel de editie samen in Markdown en archiveer in een LiveDoc.
Workflow openenSupportBeantwoord supportvragen vanuit je eigen documentatie
Maak een LiveDoc, laad het helpcenter en de interne runbook, haal de passages op die het ticket beantwoorden en laat het model alleen uit dat bewijs antwoorden.
Workflow openenMaak het van jou
Hetzelfde recept, aangepast aan hoe je echt oplevert.
PDF-bron
Upload een PDF via multipart; het platform bewaart die eerst als LiveDoc-resource.
Thema instellen
Noem beschikbare thema’s en geef de thema-id mee bij het maken van de taak.
Hergebruik in het volgende deck
Maak een nieuwe PPT-taak met dezelfde LiveDoc short_id.
Verder
De referentiepagina’s achter dit recept en de volgende stappen.