Felo API PlatformFelo API Platform

محتوا

گفت‌وگوهای اجتماعی را به خلاصه شنود هفتگی تبدیل کنید

پست‌های X این هفته درباره برند و رقبا را جست‌وجو کنید، زمینه وب با منابع اضافه کنید، صفحات پشت آن را بخوانید و هر نسخه را بایگانی کنید تا هفته بعد از دانسته‌ها شروع شود.

زمان۲۵ دقیقهسطحمتوسطبه‌روزرسانی2026-10-30
برای چه کسانیبرند و ارتباطاتبازاریابی محصولمدیریت جامعه

کپی پرامپت

فیلدهای داخل قلاب را جایگزین کنید و در Claude Code، Codex یا هوش مصنوعی با دسترسی ترمینال بچسبانید. مهارت Felo را نصب می‌کند، پیش از خرج اعتبار می‌پرسد و گردش‌کار را اجرا می‌کند.

یک خلاصه شنود اجتماعی برای [برند، محصول یا دسته] اجرا کنید.

واژه‌های پایش: [برند]، [نام محصول]، [نام رقبا]، [کلیدواژه‌های دسته].
بازه: [۷ / ۱۴] روز گذشته. منطقه زمانی: [منطقه]. مخاطب: [تیم].
منابع مجاز: فقط پست‌های عمومی X و صفحه‌های وب عمومی.

خروجی:
1. خلاصه پنج‌خطی از آنچه در گفتگو تغییر کرده.
2. موضوع‌ها، هر یک با آنچه مردم می‌گویند، پست‌های پشتیبان و بازه تاریخی.
3. اشاره به رقبا: چه کسی توصیه می‌شود و در چه زمینه‌ای.
4. ریسک‌ها: شکایت، اختلال، پرسش تکراری یا واکنش منفی.
5. گام‌های بعدی، تقسیم‌شده به «همین حالا پاسخ بده»، «پایش کن» و «به محصول بده».
6. فهرست منابع با هر پست و صفحه، URL و تاریخ.

قواعد:
- فقط پست‌ها و صفحه‌هایی را گزارش کنید که API برمی‌گرداند. هرگز امتیاز احساس، عدد تعامل، نقل‌قول یا منبع نسازید.
- X را سیگنال بدانید، نه نظرسنجی نماینده. وقتی نمونه برای نتیجه‌گیری کوچک است بگویید.
- سخن مشتری را از خلاصه خود جدا کنید و کوتاه با پیوند نقل کنید.
- بازه را به تاریخ شروع و پایان صریح تبدیل کنید و منطقه زمانی را ذکر کنید.
- پیش از مصرف اعتبار، جست‌وجوها و استخراج‌های برنامه‌ریزی‌شده را نشان دهید و منتظر تأیید من بمانید.
- پاسخ ندهید، پست نکنید، دنبال نکنید و به کسی پیام ندهید. این خلاصه فقط‌خواندنی است.
- نتیجه را در ./social-listening.md بنویسید و در چت خلاصه کنید.

نسخه شامل مراحل نصب و قواعد ایمنی نیز هست.

چه دریافت می‌کنید

خروجی نمونه یک اجرا. نه تولید زنده.

نمونه خلاصه (بخش)

خلاصه شنود اجتماعی — 2026-10-30

چه تغییری کرد

  • شکایت از جریان خروجی اکنون موضوع اصلی است.
  • رقیب ارزان‌تر در رشته‌های قیمت توصیه می‌شود.
  • اختلال 2026-10-27 دیگر ذکر نمی‌شود.

موضوعات

  1. خروجی از زمان به‌روزرسانی کند است — @example_dev: «دکمه خروجی حالا برای سند ۴۰ صفحه‌ای چند دقیقه می‌گیرد» (2026-10-28)؛ @example_ops: «کسی دیگر خروجی در صف آخر ماه می‌بیند؟» (2026-10-29)
  2. یک جایگزین ارزان‌تر توصیه می‌شود — Example Rival در رشته‌هایی که قیمت کمتر می‌خواهند ظاهر می‌شود

رقبا

وقتی جایگزین ارزان‌تر خواسته می‌شود Example Rival توصیه می‌شود؛ توصیه درباره قیمت است نه ویژگی.

ریسک‌ها

شکایت خروجی در رشته‌های نزدیک پشتیبانی دیده می‌شود و ممکن است به گفتگوهای ریزش برسد.

بعدی

  • همین حالا پاسخ بده: رشته خروجی 2026-10-28.
  • پایش: آیا شکایت به مخاطب API سرایت می‌کند.
  • به محصول بده: تأخیر خروجی پایان ماه.

منابع

  • https://x.com/example_dev/status/... — 2026-10-28
  • https://example.com/export-thread — 2026-10-29

فراخوانی‌های دقیق

برای توسعه‌دهندگان: همان گردش‌کار به‌صورت کد، به ترتیب اجرا.

نمایش فراخوانی‌های واقعی API
  1. پست‌های هفته را جست‌وجو کنید

    برای برند و رقبا در ۷ روز آخر X Search را به کار ببرید و حساب‌ها و تاریخ‌ها را نگه دارید.

    listening.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 XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          metrics: { retweet_count: number; favorite_count: number; reply_count: number };
          url: string;
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 7 * 24 * 60 * 60 * 1000) / 1000);
    
    const search = await felo<XData>("/v2/x/tweet/search", {
      query: '"Acme" OR "Acme app"',
      limit: 50,
      since_time: since,
    });
    
    const posts = search.data.tweets;

    خروجی نمونه

    { "data": { "tweets": [
      {
        "content": "The export flow is slow again.",
        "author": { "username": "example_dev" },
        "created_at": "2026-10-28T09:14:00Z",
        "metrics": { "retweet_count": 4, "favorite_count": 21, "reply_count": 6 },
        "url": "https://x.com/example_dev/status/..."
      }
    ] } }
  2. زمینه وب با منابع اضافه کنید

    از Chat زمینه گفت‌وگوها را بپرسید و فهرست صفحات دارای منبع بگیرید.

    listening.ts
    type ChatData = {
      data: {
        answer: string;
        resources: { link: string; title: string; snippet: string }[];
      };
    };
    
    const context = await felo<ChatData>("/v2/chat", {
      query: "Recent customer complaints and competitor mentions around Acme",
    });
    
    const sources = context.data.resources.slice(0, 5);

    خروجی نمونه

    {
      "answer": "The main threads are …",
      "sources": [
        { "link": "https://example.com/thread", "title": "…", "snippet": "…" }
      ]
    }
  3. صفحات پشت آن را بخوانید

    با Web Fetch دو یا سه صفحه مرتبط‌تر را بخوانید و واقعیت‌ها و پیوندها را اضافه کنید.

    listening.ts
    type ExtractData = { data: { content: string } };
    
    const pages = await Promise.all(
      sources.slice(0, 3).map((source) =>
        felo<ExtractData>("/v2/web/extract", {
          url: source.link,
          output_format: "markdown",
          with_readability: true,
          with_cache: true,
        }).then((page) => ({ ...source, content: page.data.content })),
      ),
    );

    خروجی نمونه

    // pages[0].content
    "# Example thread summary\n\nExtracted page content…"
  4. گزارش را بر اساس موضوع بنویسید

    Markdown با موضوعات، پست‌های نماینده، زمینه، خطرها و نقاط تمرکز بسازید.

    listening.ts
    const date = new Date().toISOString().slice(0, 10);
    
    const ranked = [...posts].sort(
      (a, b) => b.metrics.favorite_count - a.metrics.favorite_count,
    );
    
    const brief = [
      `# Social listening brief — ${date}`,
      "",
      "## What the web says",
      context.data.answer,
      "",
      "## What people are posting",
      ...ranked.slice(0, 10).map(
        (post) =>
          `- @${post.author.username} (${post.created_at.slice(0, 10)}): ${post.content}\n  ${post.url}`,
      ),
      "",
      "## Pages behind the answer",
      ...pages.map((page) => `- [${page.title}](${page.link})`),
      "",
      "## Sources",
      ...sources.map((source) => `- [${source.title}](${source.link})`),
    ].join("\n");
    
    console.log(brief);
  5. بایگانی و مقایسه با هفته قبل

    گزارش و منابع را در LiveDoc ذخیره کنید و هفته بعد نسخه قبلی را جست‌وجو کنید.

    listening.ts
    type LiveDocData = { data: { short_id: string } };
    
    const archive = await felo<LiveDocData>("/v2/livedocs", {
      name: "Social listening archive",
      description: "One document resource per weekly brief",
    });
    
    await felo(`/v2/livedocs/${archive.data.short_id}/resources/doc`, {
      title: `Social listening — ${date}`,
      content: brief,
    });
    
    type Retrieved = { data: { title: string; content: string; score: number }[] };
    
    const previous = await felo<Retrieved>(
      `/v2/livedocs/${archive.data.short_id}/resources/retrieve`,
      { query: "what changed since last week" },
    ).then((res) => res.data.filter((hit) => hit.score >= 0.7));

    خروجی نمونه

    [
      { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 }
    ]

چه چیزی دارد

  • پست‌های X تاریخ‌دار این هفته
  • زمینه وب با منابع
  • خلاصه گفت‌وگوها بر اساس موضوع
  • گزارش هفتگی آماده اشتراک
  • LiveDoc با هر نسخه

چه کاری نمی‌کند

  • پوشش X ناقص است و همه کاربران را نمایندگی نمی‌کند
  • بدون نتیجه نهایی درباره احساس
  • خودکار منتشر یا پاسخ نمی‌دهد
  • بدون DM یا جوامع خصوصی
  • هفته‌ای یک اجرا؛ زمان‌بندی در عامل یا cron شما

پرسش‌ها

چه چیزی منبع حساب می‌شود؟

هر پست X پیوند، حساب و تاریخ را نگه می‌دارد؛ زمینه وب از صفحات عمومی Chat و Web Fetch است. ادعاهای بدون منبع وارد نمی‌شوند.

می‌توان رقبا را دنبال کرد؟

بله. برند و رقبا را با هم جست‌وجو کنید و در گزارش گروه‌بندی کنید.

آیا احساس را می‌سنجد؟

موضوعات و لحن را خلاصه می‌کند اما آن را داوری تحریریه علامت می‌زند و درصد دقیق احساس را ادعا نمی‌کند.

چقدر به عقب نگاه می‌کند؟

پیش‌فرض ۷ روز آخر برای گزارش هفتگی؛ برای پنجره بزرگ‌تر `since_time` را عوض کنید.

هفتگی اجرا می‌شود؟

بله. همان پرامپت را در cron یا زمان‌بند عامل بگذارید و در همان LiveDoc بنویسید.

هزینه یک خلاصه چقدر است؟

X Search، Chat و استخراج صفحات بر اساس استفاده محاسبه می‌شوند؛ نرخ‌های فعلی در صفحه قیمت و پرامپت پیش از هزینه تأیید می‌خواهد.

گردش‌کارهای مرتبط

آن را از خود کنید

همان دستور، متناسب با روش واقعی تحویل شما.

فقط یک موضوع

به یک عرضه یا بحث محدود کنید تا خلاصه متمرکز شود.

نظرهای YouTube اضافه کنید

با متن ویدیو تکمیل کنید اما تجربه شخصی علامت بزنید.

ماهانه کنید

برای برند و روابط عمومی بسامد را ماهانه کنید.

صفحات مرجع پشت این دستور و گام‌های بعدی.