İçerik
Sosyal konuşmaları haftalık bir dinleme brifine dönüştürün
Bu haftaki marka ve rakip X gönderilerini arayın, kaynaklı web bağlamı ekleyin, arkasındaki sayfaları okuyun ve her edisyonu arşivleyin ki sonraki hafta bilinenden başlasın.
İstemi kopyalayın
Köşeli parantezli alanları değiştirip Claude Code, Codex veya terminal erişimi olan bir AI’ya yapıştırın. Felo becerisini kurar, kredi harcamadan önce sorar ve iş akışını çalıştırır.
[Marka, ürün veya kategori] için sosyal dinleme özeti yürüt. İzlenen terimler: [marka], [ürün adı], [rakip adları], [kategori anahtar kelimeleri]. Dönem: son [7 / 14] gün. Saat dilimi: [saat dilimi]. Hedef kitle: [ekip]. İzin verilen kaynaklar: yalnızca kamusal X gönderileri ve kamusal web sayfaları. Şunları hazırla: 1. Konuşmada neyin değiştiğine dair beş satırlık özet. 2. Temalar; her biri insanların ne dediği, destekleyen gönderiler ve kapsanan tarih aralığıyla. 3. Rakip anmaları: kim öneriliyor ve hangi bağlamda. 4. Riskler: şikayetler, kesintiler, tekrarlanan sorular veya olumsuz tepki. 5. Sonraki adımlar: “şimdi yanıtla”, “izle” ve “ürüne ilet” olarak ayrılmış. 6. Her gönderi ve sayfanın URL’si ve tarihiyle kaynak listesi. Kurallar: - Yalnızca API’nin döndürdüğü gönderileri ve sayfaları bildir. Asla duygu puanı, etkileşim sayısı, alıntı veya kaynak uydurma. - X’i sinyal olarak ele al, temsili anket olarak değil. Örneklem sonuç çıkarmak için çok küçükse söyle. - Müşterinin sözlerini kendi özetinden ayır ve kısa alıntı yapıp bağlantı ver. - Dönemi açık başlangıç ve bitiş tarihlerine çevir, saat dilimini belirt. - Kredi harcamadan önce planlanan aramaları ve çıkarımları göster ve onayımı bekle. - Yanıt verme, gönderi paylaşma, takip etme ve kimseye mesaj atma. Bu özet salt okunurdur. - Sonucu ./social-listening.md dosyasına yaz ve sohbette özetle.
Kopya kurulum adımlarını ve güvenlik kurallarını da içerir.
Ne elde edersiniz
Bir çalıştırmanın örnek çıktısı. Canlı üretim değil.
Sosyal dinleme brief’i — 2026-10-30
Ne değişti
- Dışa aktarma akışı şikâyetleri artık ana tema.
- Fiyat başlıklarında daha ucuz bir rakip öneriliyor.
- 2026-10-27 kesintisi artık anılmıyor.
Temalar
- Güncellemeden beri dışa aktarma yavaş — @example_dev: “Dışa aktarma düğmesi 40 sayfalık belge için artık dakikalar alıyor.” (2026-10-28); @example_ops: “Ay sonunda dışa aktarmaları kuyrukta gören başka biri var mı?” (2026-10-29)
- Daha ucuz bir alternatif öneriliyor — Example Rival, daha düşük fiyat istenen başlıklarda görünüyor
Rakipler
Daha ucuz alternatif istendiğinde Example Rival öneriliyor; öneri fiyatla ilgili, özelliklerle değil.
Riskler
Dışa aktarma şikâyeti desteğe yakın başlıklarda görünüyor ve terk etme konuşmalarına ulaşabilir.
Sonraki adımlar
- Şimdi yanıtla: 2026-10-28 dışa aktarma başlığı.
- İzle: şikâyetin API kitlesine yayılıp yayılmadığını.
- Ürüne ilet: ay sonu dışa aktarma gecikmesi.
Kaynaklar
- https://x.com/example_dev/status/... — 2026-10-28
- https://example.com/export-thread — 2026-10-29
Tam çağrılar
Geliştiriciler için: aynı iş akışı kod olarak, yürütme sırasıyla.
Gerçek API çağrılarını göster
Haftanın gönderilerini arayın
Marka ve rakipler için son 7 günde X Search kullanın, hesapları ve tarihleri saklayın.
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;Örnek çıktı
{ "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/..." } ] } }Kaynaklı web bağlamı ekleyin
Chat’e tartışmaların bağlamını sorun ve kaynaklı sayfa listesi alın.
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);Örnek çıktı
{ "answer": "The main threads are …", "sources": [ { "link": "https://example.com/thread", "title": "…", "snippet": "…" } ] }Arkasındaki sayfaları okuyun
Web Fetch ile en ilgili iki veya üç sayfayı okuyun ve gerçekleri, bağlantıları ekleyin.
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 })), ), );Örnek çıktı
// pages[0].content "# Example thread summary\n\nExtracted page content…"
Raporu temalara göre yazın
Temalar, temsili gönderiler, bağlam, riskler ve odaklarla Markdown kurun.
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);Arşivleyin ve geçen haftayla karşılaştırın
Raporu ve kaynakları LiveDoc’a kaydedin, sonraki hafta önceki edisyonu arayın.
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));Örnek çıktı
[ { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 } ]
Neler dahil
- Haftanın tarihli X gönderileri
- Kaynaklı web bağlamı
- Konulara göre tartışma özeti
- Paylaşıma hazır haftalık rapor
- Her edisyonu tutan LiveDoc
Neleri yapmaz
- X kapsamı eksiktir ve tüm kullanıcıları temsil etmez
- Duygu hakkında kesin sonuç yok
- Otomatik paylaşmaz veya yanıtlamaz
- DM veya özel topluluk yok
- Haftada bir çalıştırma; zamanlama ajanınızda veya cron’da
Sorular
Ney kaynak sayılır?
Her X gönderisi bağlantı, hesap ve tarih tutar; web bağlamı kamuya açık Chat ve Web Fetch sayfalarından. Kaynaksız iddialar girmez.
Rakipler izlenebilir mi?
Evet. Marka ve rakipleri birlikte arayın ve raporda gruplayın.
Duyguyu ölçer mi?
Temaları ve tonu özetler ama bunu editoryal yargı olarak işaretler, kesin bir duygu yüzdesi iddia etmez.
Ne kadar geriye bakar?
Haftalık rapor için varsayılan son 7 gün; daha büyük pencere için `since_time` değiştirin.
Her hafta çalıştırılabilir mi?
Evet. Aynı istemi cron’a veya ajan zamanlayıcısına koyun ve aynı LiveDoc’a yazın.
Bir brifin maliyeti nedir?
X Search, Chat ve sayfa çıkarımı kullanıma göre faturalanır; güncel tarifeler fiyat sayfasında ve istem harcamadan önce onay ister.
İlgili iş akışları
Tek bir soruyu kaynaklı araştırma brifine dönüştürün
Web’e sorun, yanıtın arkasındaki sayfaları Markdown olarak kaydedin, X’te uygulayıcıların söylediklerini ekleyin ve kanıtları daha sonra tekrar aranabilen bir LiveDoc’ta tutun.
İş akışını açAraştırmaSatış ekibinin kullanabileceği bir rakip analizi oluşturun
Rakibin sayfalarını, çevresindeki haberciliği ve alıcıların X’te söylediklerini toplayın, ardından her iddianın kaynak, tarih ve durum taşıdığı bir analiz kurun.
İş akışını açİçerikEkibin gerçekten okuduğu günlük bir AI haber özeti yayımlayın
Kaynaklı bir özet alın, X’te uygulayıcı tartışmalarını ekleyin, bir video transkripti alın, edisyonu Markdown’da kurun ve LiveDoc’ta arşivleyin.
İş akışını açKendinize uyarlayın
Aynı tarif, gerçekte nasıl teslim ettiğinize uyarlanmış.
Yalnızca tek konu
Bir lansman veya tartışmayla sınırlayın, brif odaklansın.
YouTube görüşleri ekleyin
Video transkriptiyle tamamlayın ama kişisel deneyim olarak işaretleyin.
Aylık yapın
Marka ve PR için sıklığı aylığa çevirin.
Devam edin
Bu tarifin arkasındaki referans sayfaları ve sonraki adımlar.