Konten
Ubah percakapan sosial menjadi brief mendengarkan mingguan
Cari post X minggu ini tentang merek dan pesaing, tambahkan konteks web bersumber, baca halaman di baliknya, dan arsipkan setiap edisi agar minggu berikutnya mulai dari yang sudah diketahui.
Salin prompt
Ganti kolom dalam kurung siku lalu tempel ke Claude Code, Codex, atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum memakai kredit, dan menjalankan alur kerja.
Jalankan ringkasan social listening untuk [merek, produk, atau kategori]. Istilah pantau: [merek], [nama produk], [nama pesaing], [kata kunci kategori]. Rentang waktu: [7 / 14] hari terakhir. Zona waktu: [zona waktu]. Audiens: [tim]. Sumber yang diizinkan: hanya unggahan X publik dan halaman web publik. Hasilkan: 1. Ringkasan lima baris tentang apa yang berubah dalam percakapan. 2. Tema, masing-masing dengan apa yang dikatakan orang, unggahan pendukung, dan rentang tanggalnya. 3. Sebutan pesaing: siapa yang direkomendasikan, dan dalam konteks apa. 4. Risiko: keluhan, gangguan, pertanyaan berulang, atau reaksi negatif. 5. Langkah berikutnya, dibagi menjadi “balas sekarang”, “pantau”, dan “teruskan ke produk”. 6. Daftar sumber dengan setiap unggahan dan halaman, URL, dan tanggal. Aturan: - Laporkan hanya unggahan dan halaman yang dikembalikan API. Jangan mengarang skor sentimen, angka interaksi, kutipan, atau sumber. - Perlakukan X sebagai sinyal, bukan survei representatif. Sebutkan bila sampel terlalu kecil untuk menyimpulkan. - Pisahkan kata-kata pelanggan dari ringkasanmu dan kutip singkat dengan tautan. - Ubah rentang waktu menjadi tanggal mulai dan selesai yang eksplisit, sebutkan zona waktunya. - Sebelum memakai kredit, tampilkan pencarian dan ekstraksi yang direncanakan dan tunggu persetujuan saya. - Jangan membalas, mengunggah, mengikuti, atau mengirim pesan ke siapa pun. Ringkasan ini hanya baca. - Tulis hasilnya ke ./social-listening.md dan ringkas di chat.
Salinan juga menyertakan langkah pemasangan dan aturan keamanan.
Yang Anda dapatkan
Contoh keluaran dari satu eksekusi. Bukan pembuatan langsung.
Ringkasan social listening — 2026-10-30
Apa yang berubah
- Keluhan soal alur ekspor kini jadi tema utama.
- Pesaing lebih murah direkomendasikan di utas harga.
- Gangguan 2026-10-27 tidak lagi disebut.
Tema
- Ekspor lambat sejak pembaruan — @example_dev: “Tombol ekspor sekarang butuh beberapa menit untuk dokumen 40 halaman.” (2026-10-28); @example_ops: “Ada yang melihat ekspor mengantre akhir bulan?” (2026-10-29)
- Alternatif lebih murah direkomendasikan — Example Rival muncul di utas yang meminta harga lebih rendah
Pesaing
Example Rival direkomendasikan saat orang meminta alternatif lebih murah; rekomendasinya soal harga, bukan fitur.
Risiko
Keluhan ekspor muncul di utas dekat dukungan dan bisa sampai ke percakapan berhenti berlangganan.
Berikutnya
- Balas sekarang: utas ekspor 2026-10-28.
- Pantau: apakah keluhan menyebar ke audiens API.
- Teruskan ke produk: latensi ekspor akhir bulan.
Sumber
- https://x.com/example_dev/status/... — 2026-10-28
- https://example.com/export-thread — 2026-10-29
Panggilan persisnya
Untuk developer: alur kerja yang sama sebagai kode, sesuai urutan eksekusi.
Tampilkan panggilan API asli
Cari post minggu ini
Gunakan X Search untuk merek dan pesaing dalam 7 hari, simpan akun dan tanggal.
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;Contoh keluaran
{ "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/..." } ] } }Tambahkan konteks web bersumber
Tanya Chat konteks diskusi dan dapatkan daftar halaman bersumber.
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);Contoh keluaran
{ "answer": "The main threads are …", "sources": [ { "link": "https://example.com/thread", "title": "…", "snippet": "…" } ] }Baca halaman di baliknya
Dengan Web Fetch baca dua atau tiga halaman paling relevan dan tambahkan fakta serta tautan.
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 })), ), );Contoh keluaran
// pages[0].content "# Example thread summary\n\nExtracted page content…"
Tulis laporan per tema
Susun Markdown dengan tema, post representatif, konteks, risiko, dan fokus.
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);Arsipkan dan bandingkan minggu lalu
Simpan laporan dan sumber di LiveDoc, minggu berikutnya telusuri edisi sebelumnya.
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));Contoh keluaran
[ { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 } ]
Termasuk
- Post X bertanggal minggu ini
- Konteks web bersumber
- Ringkasan diskusi per tema
- Laporan mingguan siap dibagikan
- LiveDoc berisi setiap edisi
Yang tidak dilakukan
- Cakupan X tidak lengkap dan tidak mewakili semua pengguna
- Tanpa kesimpulan sentimen final
- Tidak memposting atau membalas otomatis
- Tanpa DM atau komunitas privat
- Satu eksekusi per minggu; penjadwalan ada di agent atau cron Anda
Pertanyaan
Apa yang dihitung sebagai sumber?
Setiap post X menyimpan tautan, akun, dan tanggal; konteks web dari halaman publik Chat dan Web Fetch. Klaim tanpa sumber tidak masuk.
Bisa mengikuti pesaing?
Bisa. Cari merek dan pesaing bersama lalu kelompokkan di laporan.
Apakah mengukur sentimen?
Ia merangkum tema dan nada tetapi menandainya penilaian editorial, bukan persentase sentimen yang tepat.
Seberapa jauh melihat ke belakang?
Default 7 hari terakhir untuk laporan mingguan; untuk jendela lebih besar ubah `since_time`.
Bisa dijalankan setiap minggu?
Bisa. Letakkan prompt yang sama di cron atau penjadwal agent dan tulis ke LiveDoc yang sama.
Berapa biaya satu brief?
X Search, Chat, dan ekstraksi ditagih sesuai pemakaian; tarif saat ini di halaman harga dan prompt meminta persetujuan sebelum mengeluarkan biaya.
Alur kerja terkait
Ubah satu pertanyaan menjadi brief riset bersumber
Tanya web, simpan halaman di balik jawaban sebagai Markdown, tambahkan apa yang dikatakan praktisi di X, dan simpan bukti dalam LiveDoc yang bisa ditelusuri lagi.
Buka alur kerjaRisetBuat analisis pesaing yang bisa dipakai tim penjualan
Kumpulkan halaman pesaing, liputan di sekitarnya, dan apa yang pembeli katakan di X, lalu susun analisis dengan sumber, tanggal, dan status di setiap klaim.
Buka alur kerjaKontenTerbitkan ringkasan berita AI harian yang benar-benar dibaca tim
Dapatkan ringkasan bersumber, tambahkan diskusi praktisi di X, ambil transkrip video, susun edisi Markdown, dan arsipkan di LiveDoc.
Buka alur kerjaSesuaikan
Resep yang sama, disesuaikan dengan cara Anda benar-benar mengirim.
Hanya satu topik
Batasi ke satu peluncuran atau kontroversi agar fokus.
Tambahkan opini YouTube
Lengkapi dengan transkrip video, tetapi tandai pengalaman pribadi.
Ubah menjadi bulanan
Ganti frekuensi ke bulanan untuk merek dan PR.
Lanjut
Halaman referensi di balik resep ini dan langkah berikutnya.