วิจัย
วิจัยสินค้าเฉพาะกลุ่มก่อนสั่งสต็อก
รวมบริบทหมวดหมู่ จับภาพหน้าคู่แข่งในวันที่ระบุ อ่านข้อร้องเรียนของผู้ซื้อบน X และเก็บหลักฐานกับบันทึกไว้ใน LiveDoc เพื่อทบทวนก่อนสั่ง
คัดลอกพรอมป์ต์
แทนช่องในวงเล็บเหลี่ยมแล้ววางใน Claude Code, Codex หรือ AI ที่เข้าถึงเทอร์มินัล ระบบจะติดตั้งสกิล Felo ถามก่อนใช้เครดิต และรันเวิร์กโฟลว์
วิจัยสินค้าเฉพาะกลุ่มนี้ก่อนที่เราจะสต็อกหรือเปิดตัว: [สินค้าหรือหมวดหมู่] ตลาด: [ประเทศหรือภูมิภาค] ช่องทาง: [มาร์เก็ตเพลส / DTC / ค้าปลีก] ช่วงเวลาของโพสต์ผู้ซื้อ: [30] วันล่าสุด สินค้าที่เทียบได้หรือ URL คู่แข่ง: [URL] ข้อจำกัดด้านงบและกำไร: [ข้อจำกัด] ผู้อ่าน: [ทีม] สร้างบันทึก Markdown ที่มี: 1. คำตัดสินหนึ่งย่อหน้า: ควรวิจัยต่อหรือไม่ และอะไรจะเปลี่ยนความคิดของคุณ 2. สัญญาณความต้องการ: แหล่งข้อมูลว่าอย่างไรเรื่องความสนใจ ฤดูกาล และสินค้าทดแทน 3. สินค้าคู่แข่ง: แต่ละรายอ้างอะไร ราคาที่บันทึกจากหน้าเว็บ และจุดที่ผู้ซื้อบอกว่ายังขาด 4. การวางตำแหน่งราคา: ราคาที่พบจริงบนหน้าเว็บแต่ละราย พร้อมวันที่บันทึก 5. ข้อร้องเรียนและความต้องการที่ยังไม่ตอบโจทย์ พร้อมคำพูด บัญชี และวันที่ 6. ความเสี่ยงและคำถามเปิดที่ต้องแก้ก่อนซื้อสต็อก 7. แหล่งอ้างอิง: ทุกหน้าและโพสต์ที่ใช้ พร้อม URL และวันที่ กฎ: - ใช้เฉพาะสิ่งที่ API ส่งกลับ ห้ามแต่งขนาดตลาด ประมาณการขาย จำนวนรีวิว หรือราคาคู่แข่ง - รายงานราคาตามที่บันทึกไว้ พร้อม URL หน้าเว็บและวันที่บันทึก ห้ามเฉลี่ยหรือปรับมาตรฐาน - ถือว่าโพสต์ X เป็นเกร็ดประสบการณ์ ไม่ใช่ข้อมูลตลาด และบอกเมื่อตัวอย่างน้อยเกินไป - แยกข้อกล่าวอ้างของผู้ขายจากสิ่งที่ผู้ซื้อรายงาน - ก่อนใช้เครดิต ให้แสดงการดึงข้อมูลและค้นหาที่จะทำและรอการอนุมัติจากฉัน - ห้ามติดต่อซัพพลายเออร์ สั่งซื้อ หรือส่งข้อความหาใครบน X - เขียนผลลัพธ์ลง ./product-research.md และสรุปในแชท
สำเนายังรวมขั้นตอนติดตั้งและกฎความปลอดภัย
สิ่งที่คุณได้รับ
ตัวอย่างผลลัพธ์จากการรันหนึ่งครั้ง ไม่ใช่การสร้างสด
วิจัยผลิตภัณฑ์ — หมวดหมู่ตัวอย่าง
คำตัดสิน
ควรดูใกล้ขึ้น แต่หลักฐานสาธารณะยังไม่พอตัดสินสต็อก คำถามเปิดด้านล่างคือขั้นต่อไป
บริบทหมวดหมู่
ผู้ซื้อเปรียบเทียบพื้นที่เคาน์เตอร์และความง่ายในการทำความสะอาดมากกว่าแรงดัน ไม่มีแหล่งสาธารณะรองรับการประเมินขนาดตลาด
หน้าคู่แข่ง
- Example A — หน้าผลิตภัณฑ์ (บันทึก 2026-10-30)
- Example B — หน้าผลิตภัณฑ์ (บันทึก 2026-10-30)
ผู้ซื้อรายงาน
- @example_buyer: “เปลี่ยนครั้งที่สามในหนึ่งปี ซีลแตก” — 2026-10-19
- @example_home: “ทำความสะอาดใช้เวลาหลายนาที ไม่มีใครพูดถึง” — 2026-10-24
การวางตำแหน่งราคา
ราคาบันทึกเมื่อ 2026-10-30 จากหน้าที่ลิงก์ มีสองระดับ แต่ละหน้าอ้างโดยตรง ไม่เฉลี่ย
ความเสี่ยงและคำถามเปิด
- ความทนทานของซีลเป็นข้อร้องเรียนที่ซ้ำที่สุด
- ไม่มีแหล่งใดครอบคลุมอัตราการคืนสินค้า
- ตรวจสอบเวลาส่งของซัพพลายเออร์และต้นทุนถึงปลายทางก่อนสั่ง
แหล่งข้อมูล
- https://example.com/product-a — 2026-10-30
- https://x.com/example_buyer/status/... — 2026-10-19
การเรียกที่แน่นอน
สำหรับนักพัฒนา: เวิร์กโฟลว์เดียวกันในรูปโค้ดตามลำดับการทำงาน
แสดงการเรียก API จริง
ขอภาพหมวดหมู่จาก Chat
เริ่มจากคำตอบพร้อมแหล่ง ไม่ใช่หน้าว่าง: Chat ค้นเว็บสาธารณะ จัดอันดับหน้า และคืนรีซอร์สที่ใช้ ถามบริบทอุปสงค์ ทางเลือกทดแทน และข้อร้องเรียนทั่วไปในคำถามเดียว แล้วเก็บรีซอร์สต้น ๆ เป็นรายการหลักฐาน
product-research.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 ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const niche = "portable espresso maker"; // replace with the category you are judging const context = await felo<ChatData>("/v2/chat", { query: `Demand, price bands, and buyer complaints for ${niche} in the US`, }); const sources = context.data.resources.slice(0, 5);ตัวอย่างผลลัพธ์
{ "answer": "Buyers compare on counter space and cleanup …", "sources": [ { "link": "https://example.com/category-guide", "title": "…", "snippet": "…" } ] }จับภาพหน้าคู่แข่ง
สกัดหน้าสินค้าคู่แข่งสองสามหน้าเป็น Markdown พร้อมโหมดอ่าน เป้าหมายคือข้ออ้างและราคาบนหน้าวันนี้ ไม่ใช่สเปกที่เขียนใหม่ เก็บ URL กับเนื้อหาและบันทึกวันที่จับ ราคาที่ไม่มีวันคือข่าวลือ
product-research.ts const PRODUCT_PAGES = [ { url: "https://example.com/product-a", title: "Example A — product page" }, { url: "https://example.com/product-b", title: "Example B — product page" }, ]; type ExtractData = { data: { content: string } }; const listings = await Promise.all( PRODUCT_PAGES.map((page) => felo<ExtractData>("/v2/web/extract", { url: page.url, output_format: "markdown", with_readability: true, }).then((extracted) => ({ ...page, content: extracted.data.content })), ), );ตัวอย่างผลลัพธ์
[ { "url": "https://example.com/product-a", "title": "Example A — product page", "content": "# Example A\n\nSpecs and price as displayed…" } ]อ่านสิ่งที่ผู้ซื้อรายงานบน X
หน้าซัพพลายเออร์ระบุฟีเจอร์ ผู้ซื้ออธิบายความล้มเหลว ค้นกลุ่มสินค้ากับคำเสียดทาน — การจัดส่ง คุณภาพ การคืนเงิน — ใน 30 วัน และเก็บบัญชี วันที่ ลิงก์ นี่คือเกร็ด ไม่ใช่ข้อมูลอุปสงค์ และบันทึกต้องบอกอย่างนั้น
product-research.ts 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() - 30 * 24 * 60 * 60 * 1000) / 1000); const search = await felo<XData>("/v2/x/tweet/search", { query: `"${niche}" (shipping OR quality OR refund)`, limit: 50, since_time: since, }); const complaints = search.data.tweets;ตัวอย่างผลลัพธ์
{ "data": { "tweets": [ { "content": "Third replacement in a year; the seal fails.", "author": { "username": "example_buyer" }, "created_at": "2026-10-19T15:02:00Z", "metrics": { "retweet_count": 1, "favorite_count": 12, "reply_count": 3 }, "url": "https://x.com/example_buyer/status/..." } ] } }เขียนบันทึก
ขั้นนี้คือโค้ดง่าย ๆ: รวมคำตอบหมวดหมู่ วันที่จับภาพ คำอ้างผู้ซื้อ และรายการแหล่งเป็น Markdown เดียว ซื่อสัตย์กับคำถามเปิด — บันทึกมีประโยชน์เพราะแยกสิ่งที่หน้าพิสูจน์จากสิ่งที่ต้องยืนยันกับซัพพลายเออร์
product-research.ts const capturedOn = new Date().toISOString().slice(0, 10); const memo = [ `# Product research — ${niche}`, "", "## Category context", context.data.answer, "", "## Competitor pages", ...listings.map( (page) => `- [${page.title}](${page.url}) — captured ${capturedOn}`, ), "", "## What buyers report", ...complaints.slice(0, 10).map( (post) => `- @${post.author.username} (${post.created_at.slice(0, 10)}): ${post.content}`, ), "", "## Sources", ...sources.map((source) => `- [${source.title}](${source.link})`), ].join("\n"); console.log(memo);เก็บหลักฐานใน LiveDoc
รันครั้งเดียวต่อกลุ่ม: สร้าง LiveDoc และเก็บ
short_idในคอนฟิก เพิ่มหน้าคู่แข่งและแหล่ง Chat เป็นรีซอร์ส URL เพื่อให้ที่เก็บลบซ้ำ แล้วบันทึกเป็นเอกสาร ก่อนซื้อให้ค้นภาพและดูว่าราคาใดขยับproduct-research.ts type LiveDocData = { data: { short_id: string } }; const research = await felo<LiveDocData>("/v2/livedocs", { name: `Product research: ${niche}`, description: "Competitor pages, buyer posts, and the memo", }); await felo(`/v2/livedocs/${research.data.short_id}/resources/urls`, { urls: [ ...listings.map((page) => ({ url: page.url, title: page.title })), ...sources.map((source) => ({ url: source.link, title: source.title })), ].slice(0, 10), }); await felo(`/v2/livedocs/${research.data.short_id}/resources/doc`, { title: `Product memo — ${capturedOn}`, content: memo, });ตัวอย่างผลลัพธ์
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
รวมอะไรบ้าง
- ภาพหมวดหมู่พร้อมแหล่งจาก Chat และหน้าเว็บเบื้องหลัง
- หน้าคู่แข่งเป็น Markdown พร้อมวันที่จับภาพ
- ข้อร้องเรียนผู้ซื้อบน X พร้อมบัญชี วันที่ และลิงก์
- บันทึก Markdown จากอินพุตเหล่านี้
- LiveDoc หนึ่งแห่งเก็บหลักฐานและบันทึก
สิ่งที่ไม่ทำ
- เฉพาะแหล่งสาธารณะ รายงานเสียเงิน ใบเสนอราคาซัพพลายเออร์ และยอดขายภายในไม่อยู่ในขอบเขต
- ไม่ประมาณขนาดตลาด ปริมาณ หรือกำไร
- ราคาบันทึกตามที่จับภาพ ไม่ปรับมาตรฐานหรือเฉลี่ย
- โพสต์ X เป็นเกร็ด ไม่ใช่ข้อมูลอุปสงค์
- ไม่ติดต่อซัพพลายเออร์ ไม่สั่งซื้อ และไม่แก้ไขรายการ
คำถาม
บริบทตลาดมาจากไหน?
Chat API คืนคำตอบพร้อมแหล่งและหน้าสาธารณะที่ใช้ หน้าคู่แข่งมาจาก URL ของคุณและสกัดด้วย Web Fetch โพสต์ผู้ซื้อจาก X Search ไม่ใช้ข้อมูลยอดขายส่วนตัว
บอกได้ไหมว่าสินค้าจะขายได้?
ไม่ได้ จัดเรียงหลักฐานสาธารณะ — บริบท ราคาที่จับ และข้อร้องเรียน — แล้วเขียนสิ่งที่ไม่รู้ การตรวจสอบอุปสงค์ต้องใช้ข้อมูลของคุณ เช่น โฆษณา พรีออเดอร์ หรือคุยกับซัพพลายเออร์
ถ้ามาร์เก็ตเพลสบล็อกการสกัด?
Web Fetch ดึงหน้าสาธารณะทีละ URL และบางไซต์บล็อก ใช้หน้าสินค้าหรือซัพพลายเออร์ที่เข้าถึงได้ และให้บันทึกทำเครื่องหมายภาพที่ขาดแทนการเดาราคา
หลีกเลี่ยงราคาคู่แข่งที่ล้าสมัยอย่างไร?
ทุกราคาในบันทึกผูกกับ URL และวันที่จับภาพ รันการสกัดใหม่ใกล้การตัดซื้อ ที่เก็บรักษาภาพก่อนหน้าเพื่อดูการเคลื่อนไหว
ติดต่อซัพพลายเออร์หรือผู้ขายไหม?
ไม่ เวิร์กโฟลว์อ่านเท่านั้น: สกัดหน้า ค้นโพสต์สาธารณะ เขียนบันทึกในเครื่อง ไม่ส่งข้อความ ไม่สั่งซื้อ และไม่แก้รายการ
การวิจัยหนึ่งครั้งมีค่าใช้จ่ายเท่าไร?
ทุกการเรียก Chat การสกัด และค้น X ใช้เครดิตตามการใช้งาน อัตราปัจจุบันที่หน้าค่าบริการ พรอมป์ต์ขออนุมัติก่อนใช้จ่าย
เวิร์กโฟลว์ที่เกี่ยวข้อง
เปลี่ยนคำถามหนึ่งข้อเป็นบรีฟวิจัยที่มีแหล่งอ้างอิง
ถามเว็บ บันทึกหน้าเว็บที่อยู่เบื้องหลังคำตอบเป็น Markdown เพิ่มสิ่งที่ผู้ปฏิบัติพูดบน X และเก็บหลักฐานใน LiveDoc ที่ค้นซ้ำได้
เปิดเวิร์กโฟลว์เนื้อหาเปลี่ยนบทสนทนาโซเชียลเป็นบรีฟฟังรายสัปดาห์
ค้นโพสต์ X สัปดาห์นี้เกี่ยวกับแบรนด์และคู่แข่ง เพิ่มบริบทเว็บพร้อมแหล่ง อ่านหน้าเบื้องหลัง และเก็บทุกฉบับเพื่อให้สัปดาห์ถัดไปเริ่มจากที่รู้แล้ว
เปิดเวิร์กโฟลว์สำนักงานเปลี่ยนหน้างานวิจัยเป็นงานนำเสนอ
สกัดหน้า เก็บเป็นบริบท LiveDoc ให้ PPT Task API สร้างเด็ค และถามจนได้ลิงก์ที่เสร็จ
เปิดเวิร์กโฟลว์ปรับให้เป็นของคุณ
สูตรเดิม ปรับตามวิธีที่คุณส่งมอบจริง
เพิ่มทรานสคริปต์รีวิววิดีโอ
เมื่อหมวดหมู่มีวิดีโอรีวิว ดึงทรานสคริปต์ด้วย YouTube Subtitling และเพิ่มคำอ้างที่มีเวลาแสตมป์สองสามรายการในส่วนผู้ซื้อ รีวิววิดีโอยังเป็นประสบการณ์ของคนหนึ่ง จึงคงป้ายเกร็ดเหมือนโพสต์ X
เปรียบเทียบสองตัวเลือก
รันขั้นตอนเดิมต่อตัวเลือกและวางบันทึกข้างกัน: ฟีเจอร์ที่อ้าง ราคาที่จับ ข้อร้องเรียนซ้ำ และคำถามเปิด การเปรียบเทียบยังเป็นเชิงคุณภาพจนมีข้อมูลขายหรือคืนสินค้า
อัปเดตก่อนซื้อ
รันการสกัดใหม่หนึ่งวันก่อนสั่ง เก็บ LiveDoc เดิมและเพิ่มบันทึกใหม่ เพื่อให้ที่เก็บแสดงสิ่งที่เปลี่ยนระหว่างวิจัยกับการซื้อ
ไปต่อ
หน้าเอกสารอ้างอิงเบื้องหลังสูตรนี้และก้าวต่อไป