Підтримка
Тріажте тікет підтримки в обґрунтовану чернетку відповіді
Замаскуйте тікет, класифікуйте намір і пріоритет із Chat, отримайте уривки з документації, перевірте публічні обговорення інциденту й залиште маршрутизовану чернетку для людського схвалення.
Скопіювати промпт
Замініть поля в квадратних дужках і вставте в Claude Code, Codex або AI з доступом до термінала. Він встановить скіл Felo, запитає перед витратою кредитів і запустить процес.
Зроби тріаж цього тікета підтримки й підготуй чернетку відповіді для людської перевірки: [встав тікет після видалення імені, email, ID акаунта, платіжних даних та іншої ідентифікуючої інформації]. Галузь продукту: [продукт]. План або регіон: [лише якщо потрібно для відповіді]. Джерело документації: [URL довідкового центру або LiveDoc short_id]. Шлях схвалення: [хто перевіряє]. Черга ескалації: [команда або канал]. Створи: 1. Намір: одна категорія й одне речення обґрунтування. 2. Пріоритет: терміновий / звичайний / низький, із застосованим правилом. 3. Докази: фрагменти документації, що відповідають на тікет, із назвою й релевантністю. 4. Перевірку інциденту: чи публічні звіти вказують на масштабний збій? Посилання й дата, або «публічних сигналів немає». 5. Маршрут: чернетка, запит додаткової інформації або ескалація — і чому. 6. Чернетку відповіді: два-чотири речення, лише на доказах, із зазначенням використаного джерела. Правила: - Не додавай імена, email, номери замовлень, токени чи платіжні дані у виклики API або вивід. Працюй лише з маскованим тікетом. - Відповідай лише з отриманої документації. Без доказів ескалюй, а не вгадуй. - Не обіцяй повернення коштів, знижки, терміни чи зміни акаунта; такі випадки передавай на ескалацію. - Публічні чутки про збій — це сигнал, а не доказ. Цитуй допис і дату. - Перед витратою кредитів покажи заплановані виклики й дочекайся мого схвалення. - Не надсилай відповідь, не оновлюй тікет і не виконуй дії з акаунтом. Поверни чернетку на перевірку. - Запиши результат у ./support-triage.md і підсумуй його в чаті.
Копія також містить кроки встановлення й правила безпеки.
Що ви отримаєте
Приклад результату одного запуску. Не живе генерування.
Тріаж — приклад тікета
Намір
Питання оплати / поновлення. Клієнт питає, чому план знову поновився.
Пріоритет
Звичайний. Це питання оплати, не збій, і клієнт не заблокований.
Докази
- «часті запитання з оплати» — час поновлення й повтори картки. Релевантність: висока.
- «Зміни плану» — зниження між поновленнями. Релевантність: середня.
Перевірка інцидентів
Публічних повідомлень за останні 48 годин немає.
Маршрут
Чернетка. Документація покриває питання.
Чернетка відповіді
Вітаю — ваш план поновлюється першого числа місяця, а відхилена картка повторюється три дні, потім місце призупиняється. Картку можна змінити в налаштуваннях оплати; у часті запитання з оплати є кроки. Якщо потрібно перенести дату поновлення, відповідайте, і ми ескалуємо до команди оплати.
Нотатка для рецензента
Схвалити, відредагувати або ескалювати до черги оплати.
Точні виклики
Для розробників: той самий процес як код, у порядку виконання.
Показати справжні виклики API
Замаскуйте й класифікуйте
Приберіть кодом email, телефон і номер замовлення, потім використайте Chat для наміру й пріоритету.
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);Приклад результату
{ "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": "…" } ] }Отримайте докази з документації
Шукайте релевантні уривки в LiveDoc підтримки, зберігаючи заголовки й оцінки.
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"); }Приклад результату
[ { "title": "Billing FAQ", "content": "Your plan renews on the first of the month; a failed card retries for three days…", "score": 0.91 } ]Перевірте публічний інцидент
Шукайте на X продукт і слова як «збій/офлайн» за 48 годин, лише як публічний сигнал.
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, }));Приклад результату
[ { "text": "Workspace login is failing for my whole team.", "handle": "example_user", "at": "2026-10-30", "link": "https://x.com/example_user/status/..." } ]Визначте маршрут і складіть відповідь
Правила визначають чергу; упакуйте докази, наступний крок і чернетку.
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);Приклад результату
# 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)
Запишіть тріаж
Запишіть результат у LiveDoc для огляду й аудиту.
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 ticketПриклад результату
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Що входить
- Намір і пріоритет після маскування
- Докази з документації з оцінками
- Перевірка публічного інциденту
- Маршрутизована чернетка відповіді
- LiveDoc із записом тріажу
Чого не робить
- Не надсилає відповідь, не закриває тікет і не виконує дій з акаунтом
- Не надсилайте в API паролі, платіжні дані чи повні дані клієнта
- Без результату документації ескалація обов’язкова
- X — публічний сигнал інциденту, не статус системи підтримки
- Правила пріоритету ваші; модель лише пропонує
Запитання
Які дані тікета можна надіслати?
Лише потрібний контекст після маскування: продукт, опис, план і регіон. Без паролів, платежів, повної адреси й приватної розмови.
Звідки відповідь?
З уривків, отриманих у LiveDoc документації. Без результатів процес ескалує замість вгадувати.
Чи відповідає або закриває тікет?
Ні. Створює лише чернетку й маршрут; надсилання та закриття робить людина або ваша система.
Як визначається пріоритет?
Вашими правилами; модель пропонує й обґрунтовує, маршрут підтверджує фінальний пріоритет.
Якщо документація не покриває?
Ескалація до людської черги з «не покрито» в пакеті тріажу.
Скільки коштує один тріаж?
Chat, пошук і X Search оплачуються за використання; актуальні тарифи на сторінці цін, а промпт просить схвалення перед витратою.
Пов’язані процеси
Відповідайте на питання підтримки з власної документації
Створіть LiveDoc, завантажте центр допомоги й внутрішній runbook, отримайте уривки, що відповідають тікету, і дозвольте моделі відповідати лише з цих доказів.
Відкрити робочий процесКонтентПеретворіть соціальні розмови на тижневий бриф слухання
Знайдіть пости X за цей тиждень про бренд і конкурентів, додайте контекст вебу з джерелами, прочитайте сторінки за ним і заархівуйте кожен випуск, щоб наступний тиждень починався з відомого.
Відкрити робочий процесДослідженняПеретворіть одне питання на дослідницький бриф із джерелами
Запитайте веб, збережіть сторінки за відповіддю як Markdown, додайте те, що кажуть практики на X, і тримайте докази в LiveDoc, який можна згодом переглянути.
Відкрити робочий процесАдаптуйте
Той самий рецепт, підлаштований під те, як ви насправді працюєте.
Лише класифікація
Без відповіді: лише намір, пріоритет і рекомендована черга.
Підключіть до системи тікетів
Своїм webhook запишіть пакет у тікет без автоматичного надсилання.
Розширте до бази знань
За наявності результатів документації перейдіть у процес бази знань для повнішої відповіді.
Далі
Довідкові сторінки за цим рецептом і наступні кроки.