Felo API PlatformFelo API Platform

سپورٹ

سپورٹ ٹکٹ کو ثبوت والے جواب مسودے میں ٹرائیج کریں

ٹکٹ ماسک کریں، Chat سے نیت اور ترجیح درجہ بند کریں، دستاویزات سے جواب دینے والے اقتباسات نکالیں، عوامی واقعہ گفتگو جانچیں اور انسانی منظوری کے لیے روٹ شدہ مسودہ چھوڑیں۔

وقت20 منٹسطحدرمیانہاپ ڈیٹ2026-10-30
کिसके لیےسپورٹ لیڈزHelpdesk Agentسپورٹ انجینئر

پرامپٹ کاپی کریں

مربع بریکٹ کے فیلڈز بدلیں اور Claude Code، Codex یا ٹرمینل رسائی والے AI میں چسپاں کریں۔ یہ Felo اسکل نصب کرتا ہے، کریڈٹ سے پہلے پوچھتا ہے اور ورک فلو چلاتا ہے۔

اس سپورٹ ٹکٹ کی ٹرائیج کریں اور انسانی جائزے کے لیے جواب کا ڈرافٹ لکھیں: [نام، ای میل، اکاؤنٹ ID، ادائیگی ڈیٹا اور دیگر شناختی معلومات ہٹا کر ٹکٹ چسپاں کریں]۔

مصنوعات کا شعبہ: [مصنوعات]۔ پلان یا علاقہ: [صرف جب جواب کے لیے ضروری ہو]۔ دستاویز کا ماخذ: [ہیلپ سینٹر URL یا LiveDoc short_id]۔
منظوری کا راستہ: [کون جائزہ لے گا]۔ ایسکلیشن قطار: [ٹیم یا چینل]۔

تیار کریں:
1. ارادہ: ایک زمرہ اور ایک جملے کی وجہ۔
2. ترجیح: فوری / معمول / کم، لاگو قاعدے کے ساتھ۔
3. ثبوت: ٹکٹ کا جواب دینے والے دستاویز اقتباسات، عنوان اور مطابقت کے ساتھ۔
4. واقعہ کی جانچ: کیا عوامی رپورٹیں وسیع بندش کی طرف اشارہ کرتی ہیں؟ لنک اور تاریخ، یا «کوئی عوامی اشارہ نہیں»۔
5. روٹنگ: ڈرافٹ، گاہک سے اضافی معلومات مانگنا یا ایسکلیٹ — اور کیوں۔
6. جواب کا ڈرافٹ: دو سے چار جملے، صرف ثبوت پر، استعمال شدہ ماخذ کا نام لیتے ہوئے۔

قواعد:
- نام، ای میل، آرڈر نمبر، ٹوکن یا ادائیگی ڈیٹا API کالز یا آؤٹ پٹ میں نہ ڈالیں۔ صرف ماسک شدہ ٹکٹ پر کام کریں۔
- صرف حاصل شدہ دستاویزات سے جواب دیں۔ ثبوت نہ ہو تو ایسکلیٹ کریں، اندازہ نہ لگائیں۔
- واپسی، رعایت، مہلت یا اکاؤنٹ تبدیلی کا وعدہ نہ کریں؛ ایسے معاملات ایسکلیشن کو بھیجیں۔
- عوامی بندش کی افواہیں اشارے ہیں، ثبوت نہیں۔ پوسٹ اور تاریخ نقل کریں۔
- کریڈٹ خرچ کرنے سے پہلے منصوبہ بند کالز دکھائیں اور میری منظوری کا انتظار کریں۔
- جواب نہ بھیجیں، ٹکٹ اپ ڈیٹ نہ کریں اور اکاؤنٹ کارروائی نہ کریں۔ ڈرافٹ جائزے کے لیے واپس دیں۔
- نتیجہ ./support-triage.md میں لکھیں اور چیٹ میں خلاصہ دیں۔

کاپی میں تنصیب کے مراحل اور حفاظتی اصول بھی شامل ہیں۔

آپ کو کیا ملتا ہے

ایک رن کی مثال آؤٹ پٹ۔ لائیو جنریشن نہیں۔

نمونہ ٹرائیج (اقتباس)

ٹرائیج — نمونہ ٹکٹ

ارادہ

بلنگ / تجدید سوال۔ گاہک پوچھتا ہے پلان دوبارہ کیوں تجدید ہوا۔

ترجیح

معمولی۔ یہ بلنگ سوال ہے، بندش نہیں، اور گاہک مسدود نہیں۔

ثبوت

  • «بلنگ کے عمومی سوالات» — تجدید کا وقت اور ناکام کارڈ کی دوبارہ کوشش۔ مطابقت: زیادہ۔
  • «پلان تبدیلیاں» — تجدید کے درمیان ڈاؤن گریڈ۔ مطابقت: درمیانے۔

واقعہ جانچ

گزشتہ 48 گھنٹوں میں کوئی عوامی رپورٹ نہیں۔

روٹ

مسودہ۔ دستاویزات سوال کا احاطہ کرتی ہیں۔

جواب کا مسودہ

سلام — آپ کا پلان ہر مہینے کی 1 تاریخ کو تجدید ہوتا ہے، اور ناکام کارڈ تین دن دوبارہ کوشش ہوتا ہے، پھر نشست روک دی جاتی ہے۔ آپ بلنگ سیٹنگز میں کارڈ بدل سکتے ہیں؛ بلنگ کے عمومی سوالات میں مراحل ہیں۔ تجدید کی تاریخ بدلنی ہو تو جواب دیں، ہم بلنگ ٹیم کو بھیجیں گے۔

جائزہ لینے والے کا نوٹ

منظور کریں، ترمیم کریں، یا بلنگ قطار میں بھیجیں۔

درست کالز

ڈویلپرز کے لیے: وہی ورک فلو کوڈ کے طور پر، چلانے کی ترتیب میں۔

اصل API کالز دکھائیں
  1. ماسک اور درجہ بندی کریں

    کوڈ سے ای میل، فون اور آرڈر نمبر ہٹائیں پھر 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": "…" }
      ]
    }
  2. دستاویز ثبوت نکالیں

    سپورٹ 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
      }
    ]
  3. عوامی واقعہ جانچیں

    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/..."
      }
    ]
  4. راستہ طے اور جواب بنائیں

    اصول قطار طے کرتے ہیں؛ ثبوت، اگلا مرحلہ اور مسودہ پیک کریں۔

    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)
  5. ٹرائیج درج کریں

    نتیجہ 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 استعمال کے مطابق بل ہوتے ہیں؛ موجودہ نرخ قیمت صفحے پر اور پرامپٹ خرچ سے پہلے منظوری مانگتا ہے۔

متعلقہ ورک فلو

اسے اپنا بنائیں

وہی ترکیب، آپ کے اصل انداز کے مطابق۔

صرف درجہ بندی

بغیر جواب: صرف نیت، ترجیح اور تجویز کردہ قطار۔

ٹکٹ سسٹم سے جوڑیں

اپنے webhook سے پیکج ٹکٹ میں لکھیں، خودکار بھیجے بغیر۔

نالج بیس تک بڑھائیں

دستاویز نتیجہ ہو تو مکمل جواب کے لیے نالج بیس ورک فلو میں جائیں۔

اس ترکیب کے پیچھے کے ریفرنس صفحات اور اگلے مراحل۔