Podpora
Triažujte ticket podpory do podloženého návrhu odpovědi
Maskujte ticket, klasifikujte záměr a prioritu s Chat, získejte pasáže odpovídající z dokumentace, zkontrolujte veřejné diskuse o incidentu a nechte routovaný návrh k lidskému schválení.
Zkopírovat prompt
Nahraďte pole v hranatých závorkách a vložte do Claude Code, Codex nebo AI s přístupem k terminálu. Nainstaluje skill Felo, zeptá se před utracením kreditů a spustí workflow.
Zatřiď tento ticket podpory a napiš návrh odpovědi k lidské kontrole: [vlož ticket po odstranění jména, e-mailu, ID účtu, platebních údajů a dalších identifikujících informací]. Oblast produktu: [produkt]. Plán nebo region: [jen pokud je potřeba k odpovědi]. Zdroj dokumentace: [URL help centra nebo LiveDoc short_id]. Cesta schválení: [kdo kontroluje]. Eskalační fronta: [tým nebo kanál]. Vytvoř: 1. Záměr: jedna kategorie a jedna věta odůvodnění. 2. Prioritu: naléhavá / normální / nízká, s použitým pravidlem. 3. Důkazy: pasáže dokumentace, které odpovídají na ticket, s názvem a relevancí. 4. Kontrolu incidentu: naznačují veřejné zprávy rozsáhlý výpadek? Odkaz a datum, nebo „žádný veřejný signál“. 5. Routing: koncept, žádost o doplňující informace, nebo eskalace — a proč. 6. Návrh odpovědi: dvě až čtyři věty, pouze na důkazech, s uvedením použitého zdroje. Pravidla: - Nedávej jména, e-maily, čísla objednávek, tokeny ani platební údaje do volání API nebo výstupů. Pracuj jen s maskovaným ticketem. - Odpovídej pouze z načtené dokumentace. Bez důkazů eskaluj, nehádej. - Neslibuj vratky, slevy, termíny ani změny účtu; tyto případy posílej na eskalaci. - Veřejné zvěsti o výpadku jsou signál, ne důkaz. Cituj příspěvek a datum. - Než utratíš kredity, ukaž plánovaná volání a počkej na mé schválení. - Neposílej odpověď, neaktualizuj ticket a neprováděj akce na účtu. Vrať koncept k revizi. - Výsledek zapiš do ./support-triage.md a shrň ho v chatu.
Kopie obsahuje i instalační kroky a bezpečnostní pravidla.
Co dostanete
Ukázkový výstup jednoho běhu. Ne živé generování.
Triage — ukázkový ticket
Záměr
Dotaz na fakturaci / obnovení. Zákazník se ptá, proč se plán znovu obnovil.
Priorita
Normální. Je to fakturační dotaz, ne výpadek, a zákazník není blokován.
Důkazy
- „časté dotazy k fakturaci” — čas obnovení a opakování karty. Relevance: vysoká.
- „Změny plánu” — downgrade mezi obnoveními. Relevance: střední.
Kontrola incidentů
Žádná veřejná hlášení za posledních 48 hodin.
Routing
Koncept. Dokumentace dotaz pokrývá.
Koncept odpovědi
Dobrý den — váš plán se obnovuje prvního dne v měsíci a neúspěšná karta se opakuje tři dny, pak se místo pozastaví. Kartu změníte v nastavení fakturace; časté dotazy k fakturaci má kroky. Pokud potřebujete posunout datum obnovení, odpovězte a eskalujeme to fakturačnímu týmu.
Poznámka pro recenzenta
Schválit, upravit nebo eskalovat do fakturační fronty.
Přesná volání
Pro vývojáře: stejný workflow jako kód, v pořadí provádění.
Zobrazit skutečná API volání
Maskujte a klasifikujte
Odstraňte kódem e-mail, telefon a číslo objednávky, potom použijte Chat pro záměr a prioritu.
triage.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>; } const redact = (text: string) => text .replace(/[\w.+-]+@[\w.-]+\.\w+/g, "[email]") .replace(/\b(?:acct|account|order|invoice)[-_ ]?\w+\b/gi, "[id]") .replace(/\b(?:\d[ -]?){13,19}\b/g, "[card]"); type Ticket = { id: string; product: string; subject: string; body: string; plan?: string; sensitive?: boolean; }; const ticket: Ticket = { id: "T-1042", product: "Acme Workspace", subject: "Why did my plan renew?", body: "I was charged again and cannot find the renewal date on my account.", plan: "team", }; const summary = redact(`${ticket.subject}\n\n${ticket.body}`).slice(0, 1500); type ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const triage = await felo<ChatData>("/v2/chat", { query: `Classify this support question by intent and priority, and list what is missing:\n\n${summary}`, }); console.log(triage.data.answer);Ukázkový výstup
{ "answer": "Intent: billing / renewal question. Priority: normal. Missing: the renewal date the customer expects.", "resources": [ { "link": "https://example.com/billing-faq", "title": "Billing FAQ", "snippet": "…" } ] }Získejte důkazy z dokumentace
Hledejte relevantní pasáže v LiveDoc podpory, držte tituly a skóre.
triage.ts type Hit = { title: string; content: string; score: number }; const KB = process.env.SUPPORT_LIVEDOC_ID!; // the help-center LiveDoc short_id const retrieved = await felo<{ data: Hit[] }>( `/v2/livedocs/${KB}/resources/retrieve`, { query: summary }, ); const hits = retrieved.data.filter((hit) => hit.score >= 0.7).slice(0, 4); if (hits.length === 0) { console.log("No grounded evidence: escalate instead of drafting"); }Ukázkový výstup
[ { "title": "Billing FAQ", "content": "Your plan renews on the first of the month; a failed card retries for three days…", "score": 0.91 } ]Zkontrolujte veřejný incident
Hledejte na X produkt a slova jako „výpadek/offline“ za 48 hodin, jen jako veřejný signál.
triage.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; url: string; }[]; }; }; const since = Math.floor((Date.now() - 48 * 60 * 60 * 1000) / 1000); const incident = await felo<XData>("/v2/x/tweet/search", { query: `"${ticket.product}" (outage OR "not working" OR error)`, limit: 20, since_time: since, }); const reports = incident.data.tweets.map((post) => ({ text: post.content, handle: post.author.username, at: post.created_at.slice(0, 10), link: post.url, }));Ukázkový výstup
[ { "text": "Workspace login is failing for my whole team.", "handle": "example_user", "at": "2026-10-30", "link": "https://x.com/example_user/status/..." } ]Určete cestu a sestavte odpověď
Pravidla určují frontu; zabalte důkazy, další krok a návrh.
triage.ts type Route = "draft" | "ask-customer" | "escalate"; function decideRoute(): { route: Route; reason: string } { if (hits.length === 0) { return { route: "escalate", reason: "no grounded evidence in the knowledge base" }; } if (ticket.sensitive) { return { route: "escalate", reason: "an account or billing action is requested" }; } if (reports.length >= 3) { return { route: "escalate", reason: "public reports suggest a wider issue" }; } if (!ticket.plan) { return { route: "ask-customer", reason: "the plan is needed to answer the question" }; } return { route: "draft", reason: "the documentation covers the question" }; } const decision = decideRoute(); const packet = [ `# Triage — ${ticket.id}`, "", `Route: ${decision.route} (${decision.reason})`, "", "## Intent and priority", triage.data.answer, "", "## Evidence", ...hits.map((hit) => `- ${hit.title} (score ${hit.score})`), "", "## Public signal", ...(reports.length ? reports.map((report) => `- @${report.handle} (${report.at}): ${report.text} — ${report.link}`) : ["No public reports in the last 48 hours."]), "", "## Reply draft", "[Written by the host Agent from the evidence above — human review required]", ].join("\n"); console.log(packet);Ukázkový výstup
# Triage — T-1042 Route: draft (the documentation covers the question) ## Intent and priority Intent: billing / renewal question. Priority: normal. ## Evidence - Billing FAQ (score 0.91)
Zaznamenejte triáž
Zapište výsledek do LiveDoc pro zpětný pohled a audit.
triage.ts type LiveDocData = { data: { short_id: string } }; const log = await felo<LiveDocData>("/v2/livedocs", { name: "Support triage log", description: "One document resource per triaged ticket", }); await felo(`/v2/livedocs/${log.data.short_id}/resources/doc`, { title: `Triage — ${ticket.id}`, content: packet, }); console.log(log.data.short_id); // reuse it for the next ticketUkázkový výstup
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Co obsahuje
- Záměr a priorita po maskování
- Důkazy z dokumentace se skóre
- Kontrola veřejného incidentu
- Routovaný návrh odpovědi
- LiveDoc se záznamem triáže
Co nedělá
- Neposílá odpověď, nezavírá ticket a nevykonává akce účtu
- Neposílejte do API hesla, platební data ani plná data zákazníka
- Bez výsledku dokumentace je eskalace povinná
- X je veřejný signál incidentu, ne stav systému podpory
- Pravidla priority jsou vaše; model jen navrhuje
Otázky
Jaká data ticketu mohu poslat?
Jen potřebný kontext po maskování: produkt, popis, plán a region. Bez hesel, plateb, plné adresy a privátní konverzace.
Odkud odpověď?
Z pasáží získaných v LiveDoc dokumentace. Bez výsledků workflow eskaluje místo hádání.
Odpovídá nebo zavírá ticket?
Ne. Tvoří jen návrh a cestu; odeslání a zavření dělá člověk nebo váš systém.
Jak se určuje priorita?
Vašimi pravidly; model navrhuje a zdůvodňuje, cesta potvrzuje konečnou prioritu.
Když dokumentace nepokrývá?
Eskalace do lidské fronty s „nepokryto“ v balíčku triáže.
Kolik stojí jedna triáž?
Chat, hledání a X Search se účtují podle užití; aktuální sazby na stránce cen a prompt žádá schválení před útratou.
Související workflowy
Odpovídejte na otázky podpory z vlastní dokumentace
Vytvořte LiveDoc, nahrajte help centrum a interní runbook, získejte pasáže odpovídající ticketu a nechte model odpovídat jen z těch důkazů.
Otevřít workflowObsahProměňte sociální konverzace v týdenní brief naslouchání
Najděte posty X z tohoto týdne o značce a konkurentech, přidejte kontext webu se zdroji, přečtěte stránky za ním a archivujte každé vydání, aby další týden startoval od známého.
Otevřít workflowVýzkumProměňte jednu otázku ve výzkumný brief se zdroji
Zeptejte se webu, uložte stránky za odpovědí jako Markdown, přidejte, co říkají praktici na X, a udržte důkazy v LiveDoc, který lze později prohledat.
Otevřít workflowPřizpůsobte
Stejný recept, upravený podle toho, jak skutečně dodáváte.
Jen klasifikace
Bez odpovědi: jen záměr, priorita a doporučená fronta.
Připojte k ticket systému
Svým webhookem zapište balíček do ticketu bez automatického odeslání.
Rozšiřte na znalostní bázi
Při výsledcích dokumentace přejděte do workflow znalostní báze pro plnější odpověď.
Pokračujte
Referenční stránky za tímto receptem a další kroky.