ฉบับทดลอง · คู่มือนี้อ่านได้ครบ แต่ยังรอผู้ก่อตั้งตรวจรับก่อนเผยแพร่เป็นฉบับทางการ

คู่มือ · มีพื้นฐาน

สร้าง AI Lead Magnet Funnel ด้วย Claude Code

ให้ AI ช่วยงานที่ซ้ำ แต่ให้คนตัดสินใจในจุดที่สำคัญ

แก้ปัญหามีคนดูแต่ไม่มี Lead

  • Prompt คัดลอกได้ 26

ใช้ AI เร่งงานที่ซ้ำ แต่ให้คนตัดสินใจในจุดที่สำคัญ

Lead Magnet คือของฟรีที่มีประโยชน์จริง เช่น คู่มือ Checklist หรือ Template ที่คนยินดีแลกด้วยอีเมล เพื่อให้คุณได้เริ่มความสัมพันธ์กับคนที่สนใจเรื่องเดียวกับธุรกิจของคุณ

Funnel คือเส้นทางทั้งหมดตั้งแต่คนเห็นโพสต์ของคุณ กดลิงก์ อ่านหน้า Resource กรอกฟอร์ม ได้รับของ และรู้ว่าขั้นต่อไปคืออะไร

คู่มือนี้พาคุณสร้างเส้นทางนั้นด้วย Claude Code แบบที่ MEW ใช้จริงบนเว็บไซต์ของตัวเอง ไม่ใช่ทฤษฎี เราจะบอกชัดทุกขั้นว่าอะไร ใช้งานจริงใน MEW แล้ว และอะไรเป็น แนวทางที่ยังไม่ได้สร้าง

คู่มือนี้เหมาะกับใคร

  • Creator, Coach, Freelancer หรือเจ้าของธุรกิจที่อยากมีรายชื่อคนสนใจเป็นของตัวเอง ไม่ฝากไว้กับ DM หรือ algorithm อย่างเดียว
  • คนที่มีเว็บไซต์ (หรือพร้อมจะมี) และอยากให้ AI ช่วยเขียนโค้ดกับเนื้อหาแทนการจ้างทำทุกครั้ง
  • คนที่กล้าเปิด Terminal พิมพ์คำสั่งตามตัวอย่าง ไม่จำเป็นต้องเป็นโปรแกรมเมอร์ แต่ต้องอ่านและตรวจงานที่ AI ทำได้

ถ้าคุณอยากได้ระบบที่ “กดปุ่มเดียวแล้วทุกอย่างขึ้นเองโดยไม่ต้องตรวจ” คู่มือนี้อาจไม่ใช่สิ่งที่คุณหา เพราะเราตั้งใจให้มีจุดตรวจโดยคนในทุกขั้นที่เกี่ยวกับเนื้อหา ข้อมูลส่วนตัว และการเผยแพร่

สิ่งที่คุณจะได้หลังทำตามคู่มือ

  • Resource ฟรี 1 ชิ้นที่เขียนจากปัญหาจริงของลูกค้าคุณ
  • หน้า Resource ที่บอกชัดว่าใครควรอ่าน ได้อะไร และได้รับอย่างไร
  • ฟอร์มที่ขอความยินยอมแยกส่วน: ยินยอมเพื่อรับ Resource (บังคับ) กับสมัครรับข่าว (ไม่บังคับ)
  • การบันทึกที่มา (source / UTM) ว่าคนมาจากโพสต์ไหน
  • การส่งมอบที่ทำงานแน่นอนบนหน้าเว็บ และส่งอีเมลเพิ่มเฉพาะเมื่อระบบอีเมลพร้อมจริง
  • คำสั่ง Claude Code ที่ใช้ซ้ำได้สำหรับ Resource ชิ้นถัดไป

สถานะของแต่ละส่วนใน MEW

ใช้งานจริงใน MEW แล้ว (ทดสอบในระบบของเรา):

  • Lead Magnet Engine กลาง: ฟอร์ม, การตรวจข้อมูล, บันทึกลง Cloudflare D1, session และหน้า Guide ที่เปิดได้หลังกรอกฟอร์ม
  • เวอร์ชันความยินยอมแยกต่อ Resource และช่องสมัครรับข่าวที่ไม่บังคับ
  • บันทึก source, UTM และ referrer
  • Export รายชื่อแบบ CSV สำหรับผู้ดูแล (ต้องมี token)
  • สคริปต์ตรวจไฟล์ก่อน Deploy ว่าไม่มีไฟล์ส่วนตัวหลุดขึ้นเว็บ

รองรับในโค้ด แต่ขึ้นกับการตั้งค่า:

  • ส่งอีเมลผ่าน Resend เมื่อมีการตั้งค่า API key แล้วเท่านั้น ถ้ายังไม่ตั้งค่า ผู้ใช้ยังเปิด Guide บนหน้าเว็บได้ทันที

แนวทางในอนาคต (ยังไม่มีใน MEW):

  • อีเมลชุดต่อเนื่อง (nurture sequence) หลังรับ Resource
  • ส่งข้อมูลเข้า CRM ผ่าน webhook
  • Dashboard วัดผล conversion ต่อ Resource
  • ดึงเนื้อหาจาก Notion เข้าเว็บอัตโนมัติ
  • การทดลอง A/B หน้า Resource

ภาพรวมระบบ

ทั้งระบบมีแค่ไม่กี่ชิ้น และทุกชิ้นอยู่ใน repo เดียวกับเว็บไซต์:

[ปัญหาจริงของลูกค้า]
        │  คุณเลือกหัวข้อ
        ▼
[Claude Code] ── ร่างเนื้อหา + config ──► คุณตรวจและแก้ (จุดตรวจที่ 1)
        │
        ▼
content/free/<slug>.md          ← เนื้อหา Guide (Markdown)
lead-magnets.config.mjs         ← ชื่อ, คำโปรย, คำถามในฟอร์ม, เวอร์ชันความยินยอม
        │  node scripts/build.mjs
        ▼
dist/                           ← หน้าเว็บ (Static)
functions/_generated/           ← เนื้อหา Guide แบบเก็บฝั่ง server
        │  ตรวจไฟล์ + ทดสอบ (จุดตรวจที่ 2)
        ▼
[Cloudflare Pages] ── หน้า /free/<slug>/ ──► คนอ่านแล้วกรอกฟอร์ม
        │
        ▼
POST /api/free/<slug>           ← ตรวจข้อมูล, บันทึกความยินยอม + UTM
        │
        ├─► Cloudflare D1 (LEADS_DB)  ← รายชื่อ + คำตอบ + ที่มา
        ├─► Session cookie            ← เปิด /free/<slug>/guide/ ได้ทันที
        └─► อีเมล (เฉพาะเมื่อตั้งค่า Resend แล้ว)
        │
        ▼
[หน้า Guide] ──► ขั้นต่อไป: Resource อื่น, Product หรือบริการ

ในระบบแบบ Gated ที่คู่มือนี้สอน เนื้อหาเต็มของ Guide จะไม่อยู่ในไฟล์ HTML สาธารณะ แต่ถูกส่งให้เฉพาะคนที่มี session จากการกรอกฟอร์ม (คลังความรู้ของ MEW เองเลือกเปิดให้อ่านคู่มือฉบับเต็มฟรีบนเว็บ ไม่ต้องกรอกฟอร์ม)

สิ่งที่ต้องเตรียม

  • Claude Code — ต้องมีบัญชี Claude แบบเสียเงิน (เช่น Pro หรือ Max) หรือบัญชี Claude API ที่ตั้งค่าการชำระเงินแล้ว ติดตั้งตามคู่มือของ Anthropic แล้วเปิดในโฟลเดอร์ของเว็บไซต์
  • Node.js 22 ขึ้นไป และ Git
  • บัญชี Cloudflare ที่มี Cloudflare Pages และฐานข้อมูล D1 (แผนฟรีเริ่มได้)
  • เว็บไซต์ที่มี Lead Magnet Engine แบบ MEW หรือโครงคล้ายกัน ถ้ายังไม่มี ให้เริ่มจากขั้นที่ 0
  • Notion (ไม่บังคับ) สำหรับร่างเนื้อหาและเก็บไอเดีย
  • เวลาโดยประมาณ: ครั้งแรกอาจใช้ครึ่งวันถึงหนึ่งวัน ชิ้นถัดไปเร็วขึ้นมากเพราะใช้ config และคำสั่งเดิม (เป็นการประมาณ ไม่ใช่คำรับประกัน)

คุณ ไม่จำเป็นต้องมี Vercel, CRM หรือระบบอีเมลอัตโนมัติเพื่อเริ่ม ทั้งหมดนี้เพิ่มทีหลังได้

ขั้นที่ 0: ถ้ายังไม่มีระบบรับ Lead

อ่านก่อน: ตั้งแต่ขั้นที่ 3 คู่มือนี้ใช้ชื่อไฟล์จริงของเว็บ MEW เป็นตัวอย่าง เช่น lead-magnets.config.mjs ถ้าคุณสร้างระบบเองตามขั้นนี้ ชื่อไฟล์ของคุณอาจต่างไป ให้บอก Claude Code ว่า “ใช้ไฟล์ที่ทำหน้าที่เดียวกันในโปรเจกต์นี้”

ถ้าเว็บคุณยังไม่มีฟอร์มและฐานข้อมูล อย่าเริ่มด้วยการขอให้ AI “สร้าง funnel ทั้งหมด” ในคำสั่งเดียว ให้แบ่งเป็นชิ้นเล็ก แล้วตรวจทีละชิ้น

0.1 เตรียมเครื่องและโปรเจกต์

  1. ติดตั้ง Claude Code ตามคู่มือทางการของ Anthropic
  2. เปิด Terminal ในโฟลเดอร์เว็บไซต์ แล้วพิมพ์ claude เพื่อเริ่มใช้งาน
  3. สร้างไฟล์ CLAUDE.md ไว้ที่โฟลเดอร์หลักของโปรเจกต์ Claude Code จะอ่านไฟล์นี้ทุกครั้งที่เริ่มงาน จึงเหมาะสำหรับเขียนกฎที่ไม่อยากพูดซ้ำ

ตัวอย่าง CLAUDE.md:

# กฎของโปรเจกต์นี้
- เสนอแผนก่อนแก้ไฟล์ และแสดง diff ให้ตรวจทุกครั้ง
- ห้าม deploy, ห้ามส่งอีเมล และห้ามแก้ฐานข้อมูลจริง เว้นแต่ฉันสั่งชัดเจน
- ห้ามแต่งตัวเลข รีวิว หรือผลลัพธ์ลูกค้า
- ข้อความที่ลูกค้าเห็นเขียนเป็นภาษาไทยที่อ่านง่าย

0.2 สร้างฐานข้อมูล D1

ใช้ Wrangler ซึ่งเป็นเครื่องมือ command line ของ Cloudflare สร้างฐานข้อมูล แล้วให้ Claude Code เขียน schema ให้:

npx wrangler d1 create my-leads
เขียนไฟล์ schema.sql สำหรับตาราง lead_magnet_leads ที่เก็บ:
email, magnet_slug, answers_json, consent_version, consent_at,
marketing_opt_in (ค่าเริ่มต้น 0), source, utm_source, utm_medium,
utm_campaign, utm_content, utm_term, referrer, first_seen_at, updated_at
ให้ email + magnet_slug ไม่ซ้ำกัน และอธิบายแต่ละคอลัมน์เป็นภาษาไทย
ยังไม่ต้องรันกับฐานข้อมูลจริง

ทดลองกับฐานข้อมูลบนเครื่องก่อนเสมอ:

npx wrangler d1 execute my-leads --local --file=schema.sql

เชื่อมฐานข้อมูลกับเว็บในไฟล์ wrangler.toml โดยใช้ database_id ที่ได้จากคำสั่ง create:

[[d1_databases]]
binding = "LEADS_DB"
database_name = "my-leads"
database_id = "ใส่-id-ที่ได้จากคำสั่ง-create"

เมื่อทดสอบบนเครื่องผ่านแล้ว จึงสร้างตารางบนฐานข้อมูลจริงด้วย --remote (ทำครั้งเดียว และอ่านไฟล์ schema ให้แน่ใจก่อนรัน):

npx wrangler d1 execute my-leads --remote --file=schema.sql

แนะนำให้สร้างฐานข้อมูลแยกสำหรับ preview อีกตัว เพื่อไม่ให้ข้อมูลทดสอบปนกับรายชื่อจริง MEW เองก็แยกฐานข้อมูล preview ออกจาก production

0.3 สร้างทีละชิ้น แล้วตรวจทุกชิ้น

ให้ Claude Code ทำทีละข้อ และตรวจผลตามที่เขียนไว้ก่อนไปข้อต่อไป:

  1. หน้า Resource ที่มีฟอร์ม — ตรวจ: เปิดบนมือถือได้ ช่องความยินยอมบังคับ และช่องรับข่าวไม่ได้ติ๊กไว้ก่อน
  2. API รับฟอร์ม ที่ตรวจข้อมูลและมีช่องกันบอท (honeypot) ซึ่งเป็นช่องที่คนมองไม่เห็นแต่บอทมักกรอก — ตรวจ: ส่งอีเมลผิดรูปแบบแล้วถูกปฏิเสธ
  3. บันทึกลง D1 พร้อมเวอร์ชันความยินยอม เวลา และ UTM — ตรวจ: ส่งฟอร์มทดสอบแล้วเห็นแถวใหม่ในฐานข้อมูลบนเครื่อง
  4. หน้า Guide ที่เปิดได้เฉพาะคนที่กรอกฟอร์ม โดยใช้ session cookie — ตรวจ: เปิดในหน้าต่างไม่ระบุตัวตนแล้วต้องเห็นข้อความให้กรอกฟอร์มก่อน
  5. Export รายชื่อ ที่ต้องใช้ token — ตรวจ: เรียกโดยไม่มี token แล้วถูกปฏิเสธ

คำสั่งเริ่มต้นสำหรับ Claude Code:

ช่วยวางแผน (ยังไม่ต้องเขียนโค้ด) ระบบรับ Lead สำหรับ Resource ฟรีบนเว็บนี้
ข้อกำหนด:
- deploy บน Cloudflare Pages + Pages Functions, เก็บข้อมูลใน D1 binding ชื่อ LEADS_DB
- ฟอร์มมี: อีเมล (บังคับ), checkbox ยินยอมรับ Resource (บังคับ), checkbox รับข่าว (ไม่บังคับ, ห้ามติ๊กไว้ก่อน)
- บันทึก consent version, เวลา, source, utm_* และ referrer
- เปิด Guide ได้ทันทีหลังกรอก ไม่พึ่งอีเมล
- อีเมลเป็นทางเลือก ส่งเฉพาะเมื่อมี API key
ขอ: โครงไฟล์, ลำดับงาน 5 ชิ้นตามรายการด้านบน และวิธีทดสอบแต่ละชิ้น

ทดสอบเว็บพร้อม API บนเครื่องด้วย:

npx wrangler pages dev ./dist

ให้ Claude Code เสนอแผนก่อนเสมอ อ่านแผน ถามจุดที่ไม่เข้าใจ แล้วค่อยให้ทำทีละชิ้น ถ้าอ่านโค้ดไม่ออก ขอให้อธิบายเป็นภาษาไทยทีละไฟล์

ขั้นที่ 1: เลือกปัญหาเดียวให้ชัด

Lead Magnet ที่ได้ผลมักแก้ปัญหา เดียว ที่คนเจอ ตอนนี้ ได้ใน เวลาสั้น มากกว่าคู่มือครอบจักรวาล

ตอบ 4 ข้อนี้ก่อนเปิด Claude Code:

  • คนที่คุณอยากได้เป็นลูกค้าคือใคร (บอกให้เจาะจง เช่น “เจ้าของคลินิกที่ทำคลิปเองแต่ไม่มีเวลาตัด”)
  • ปัญหาที่เขาพูดถึงบ่อยที่สุดคืออะไร ใช้คำของเขา ไม่ใช่คำของคุณ
  • หลังอ่าน Resource เขาควรทำอะไรได้ทันที 1 อย่าง
  • Resource นี้เชื่อมกับสิ่งที่คุณขายหรือบริการต่ออย่างไร

แหล่งหาปัญหาที่ดีที่สุดคือข้อมูลที่คุณมีอยู่แล้ว: DM ที่ถามซ้ำ, comment, คำถามตอนขาย, หรือคำตอบจากแบบสอบถาม

ตัวอย่าง (สมมติ):

  • คน: Freelancer ด้านกราฟิกที่รับงานผ่าน Facebook
  • ปัญหา: “ลูกค้าแก้งานไม่จบ และไม่กล้าคิดค่าแก้เพิ่ม”
  • ทำได้ทันทีหลังอ่าน: ส่งข้อตกลงเรื่องรอบแก้ไขให้ลูกค้าก่อนเริ่มงาน
  • เชื่อมกับ: บริการวางระบบงานหรือคอร์สของคุณ

ขั้นที่ 2: ร่างเนื้อหาด้วย Claude Code (และตรวจด้วยตัวเอง)

ให้ Claude Code ทำหน้าที่ผู้ช่วยค้นคว้าและร่าง ไม่ใช่ผู้เขียนแทนคุณทั้งหมด ความน่าเชื่อถือมาจากประสบการณ์จริงของคุณ

Prompt ร่างโครง:

ฉันจะทำ Resource ฟรีหัวข้อ: [หัวข้อ]
สำหรับ: [คนกลุ่มไหน] ที่กำลังเจอ: [ปัญหาด้วยคำของลูกค้า]
หลังอ่านจบ เขาควรทำได้: [ผลลัพธ์ 1 อย่าง]

ช่วยเสนอโครง 5–7 หัวข้อ แต่ละหัวข้อบอก:
- ประเด็นหลัก 1 ประโยค
- ตัวอย่างที่ควรใส่ (ให้ฉันเติมจากประสบการณ์จริง)
- จุดที่อาจเข้าใจผิดบ่อย
อย่าใส่สถิติหรือผลลัพธ์ลูกค้าที่ไม่มีแหล่งอ้างอิง

Prompt ร่างเนื้อหาทีละหัวข้อ:

เขียนหัวข้อที่ [เลข] จากโครงด้านบนเป็นภาษาไทยที่อ่านง่าย
ใช้น้ำเสียงแบบคุยกับเพื่อนที่เก่งกว่าเราเล็กน้อย ไม่ขายของ
ใช้ตัวอย่างนี้จากประสบการณ์ของฉัน: [เล่าเหตุการณ์จริงสั้น ๆ]
ใส่ checklist ท้ายหัวข้อ 3–5 ข้อ
ถ้ามีคำศัพท์อังกฤษที่จำเป็น ให้คงไว้ แต่อธิบายเป็นไทยครั้งแรกที่ใช้

ก่อนใช้เนื้อหา ตรวจ 5 อย่าง:

  1. ข้อเท็จจริงทุกข้อถูกต้องและตรวจได้
  2. ไม่มีตัวเลข รีวิว หรือผลลัพธ์ที่แต่งขึ้น
  3. ไม่ได้คัดลอกหรือเรียบเรียงงานของคนอื่นใหม่ ถ้าได้แรงบันดาลใจจากใคร ให้เขียนใหม่ด้วยประสบการณ์ของคุณและให้เครดิต
  4. ทุกขั้นทำตามได้จริงโดยคนที่ไม่รู้บริบทของคุณ
  5. ภาษาเป็นธรรมชาติ อ่านแล้วไม่รู้สึกว่า “AI เขียน”

ใช้ Notion ร่วมด้วยได้อย่างไร

MEW ใช้ Notion เป็นที่ร่างและเก็บไอเดีย แต่เว็บไซต์ ไม่ได้ดึงเนื้อหาจาก Notion อัตโนมัติ มี 2 วิธีที่ใช้ได้จริงวันนี้:

  1. ร่างใน Notion แล้วย้ายเข้าเว็บ — ใช้เมนู Export ของ Notion เลือก Markdown แล้วให้ Claude Code จัดรูปแบบลง content/free/<slug>.md เนื้อหาจะเปิดอ่านบนเว็บหลังกรอกฟอร์ม
  2. ใช้หน้า Notion ที่เผยแพร่แล้วเป็นตัว Resource — Publish หน้า Notion เป็นเว็บ แล้วใส่ลิงก์นั้นใน config (ดูขั้นที่ 3) เหมาะกับเนื้อหาที่แก้บ่อย แต่คนที่ได้ลิงก์จะแชร์ต่อได้

Prompt สำหรับวิธีที่ 1:

นี่คือไฟล์ Markdown ที่ export จาก Notion: [วางเนื้อหา หรือบอกตำแหน่งไฟล์]
จัดให้อยู่ในรูปแบบเดียวกับไฟล์ใน content/free/ ของโปรเจกต์นี้ (frontmatter + หัวข้อ ##)
ลบลิงก์ภายใน Notion ที่คนนอกเปิดไม่ได้ และรายงานรายการที่ลบ
ห้ามเปลี่ยนเนื้อหาหรือแต่งข้อมูลเพิ่ม แสดง diff ก่อนบันทึก

ขั้นที่ 3: ใส่เนื้อหาและ config เข้า repo

ใน MEW การเพิ่ม Resource ใหม่ใช้แค่ 2 ไฟล์ ไม่ต้องสร้าง API หรือตารางใหม่

ไฟล์ที่ 1: content/free/<slug>.md — เนื้อหา Guide

---
title: ชื่อ Resource
description: คำอธิบายสั้น 1 ประโยค
date: 2026-10-17
tag: FREE GUIDE
---
# ชื่อ Resource

> ประโยคเดียวที่สรุปแนวคิดหลัก

## 1. หัวข้อแรก
เนื้อหา...

ไฟล์ที่ 2: เพิ่ม entry ใน lead-magnets.config.mjs

{
  slug: 'client-revision-guide',
  status: 'active',
  contentFile: 'client-revision-guide.md',
  title: 'คู่มือคุมรอบแก้งานกับลูกค้า',
  shortTitle: 'คุมรอบแก้งาน',
  eyebrow: 'FREE • PRACTICAL GUIDE',
  thesis: 'งานแก้ไม่จบ มักเริ่มจากข้อตกลงที่ไม่ชัด',
  description: 'เทมเพลตข้อตกลงและวิธีคุยเรื่องรอบแก้ไขก่อนเริ่มงาน',
  promise: 'จากงานแก้ไม่รู้จบ → ข้อตกลงที่ลูกค้าเข้าใจตั้งแต่วันแรก',
  path: ['ตั้งขอบเขต', 'เขียนข้อตกลง', 'คุยกับลูกค้า', 'ใช้ซ้ำ'],
  proof: ['เทมเพลตข้อตกลง', 'ตัวอย่างข้อความ', 'Checklist ก่อนเริ่มงาน'],
  consentVersion: '2026-10-17-client-revision-guide-v1',
  questions: [],
  email: {
    subject: 'คู่มือคุมรอบแก้งานที่ขอไว้',
    kicker: 'FREE GUIDE',
    headline: 'คุมรอบแก้งานตั้งแต่วันแรก',
    body: 'นี่คือลิงก์คู่มือที่คุณขอไว้',
    replyPrompt: 'ติดตรงไหน ตอบกลับอีเมลนี้ได้เลย'
  }
}

ข้อควรรู้:

  • slug จะกลายเป็น URL /free/<slug>/ เปลี่ยนภายหลังไม่ได้ง่าย ๆ เพราะลิงก์ที่แชร์ไปแล้วจะเสีย
  • consentVersion ต้องเปลี่ยนทุกครั้งที่แก้ข้อความความยินยอม เพื่อให้รู้ว่าแต่ละคนยินยอมกับข้อความไหน
  • questions ใส่ได้ถ้าอยากถามเพิ่ม แต่ยิ่งถามมาก คนกรอกยิ่งน้อย เริ่มจาก 0–2 ข้อพอ
  • ใช้ contentFile เมื่อต้องการให้เปิด Guide บนเว็บทันทีหลังกรอกฟอร์ม วิธีนี้ทำงานได้แม้ยังไม่เปิดระบบอีเมล
  • ถ้าเนื้อหาอยู่ใน Notion ใช้ deliveryMode: 'external-email' คู่กับ deliveryUrl แต่วิธีนี้ต้องส่งอีเมลได้จริง ถ้ายังไม่เปิดระบบอีเมล ให้ใส่ immediateAccessUrl เพื่อให้คนเปิดลิงก์ได้ทันทีโดยไม่ต้องรออีเมล
  • email คือข้อความในอีเมลที่จะส่งเมื่อเปิดระบบอีเมลแล้ว ใส่ไว้ตั้งแต่แรกได้ แม้ยังไม่ได้เปิดส่ง

ให้ Claude Code สร้าง config จากโครงเนื้อหาของคุณ:

อ่าน content/free/<slug>.md แล้วเสนอ entry ใหม่สำหรับ lead-magnets.config.mjs
ทำตามรูปแบบของ entry ที่มีอยู่แล้วในไฟล์ ห้ามแก้ entry อื่น
ตั้ง consentVersion เป็น <วันที่>-<slug>-v1
questions ให้เป็น [] ก่อน
แสดง diff ให้ฉันตรวจก่อนบันทึก

ขั้นที่ 4: ความยินยอมที่ถูกต้อง

นี่คือส่วนที่หลายคนข้าม แต่สำคัญที่สุดต่อความไว้ใจ

  • แยกความยินยอม 2 เรื่อง: ยินยอมให้เก็บข้อมูลเพื่อส่ง Resource (จำเป็น) กับสมัครรับข่าว (ไม่บังคับ)
  • ห้ามติ๊กช่องรับข่าวไว้ก่อน และห้ามสมัครให้อัตโนมัติ
  • บอกตรง ๆ ว่าคนจะได้ของอย่างไร ถ้ายังไม่ได้เปิดระบบอีเมล ห้ามเขียนว่า “ส่งเข้าอีเมลแล้ว”
  • เก็บเวอร์ชันความยินยอม พร้อมเวลา เพื่อตอบได้ว่าแต่ละคนยินยอมกับข้อความไหน
  • ลิงก์ Privacy Notice ที่อธิบายว่าเก็บอะไร ใช้ทำอะไร และขอลบได้อย่างไร

คู่มือนี้ไม่ใช่คำแนะนำทางกฎหมาย ถ้าธุรกิจของคุณเก็บข้อมูลจำนวนมากหรือข้อมูลอ่อนไหว ควรปรึกษาผู้เชี่ยวชาญด้าน PDPA

ขั้นที่ 5: รู้ว่าคนมาจากไหน (Attribution)

ระบบของ MEW อ่านค่าจาก URL แล้วบันทึกพร้อมการสมัคร ทำให้รู้ว่าโพสต์ไหนพาคนมา

ตัวอย่างลิงก์สำหรับ bio Instagram:

https://your-site.com/free/client-revision-guide/?utm_source=instagram&utm_medium=bio&utm_campaign=revision-guide

ตัวอย่างลิงก์สำหรับตอบ DM ของโพสต์หนึ่ง:

https://your-site.com/free/client-revision-guide/?utm_source=instagram&utm_medium=dm&utm_campaign=revision-guide&utm_content=reel-2026-10-17

หลักง่าย ๆ:

  • utm_source = แพลตฟอร์ม (instagram, tiktok, line)
  • utm_medium = ช่องทางในแพลตฟอร์ม (bio, dm, story, post)
  • utm_campaign = ชื่อ Resource
  • utm_content = โพสต์หรือคลิปที่เฉพาะเจาะจง

ตั้งชื่อเป็นตัวพิมพ์เล็กเสมอ และจดไว้ในที่เดียว เพื่อไม่ให้ “Instagram” กับ “instagram” กลายเป็นสองแหล่ง

ขั้นที่ 6: การส่งมอบที่ไม่หลอกคนอ่าน

ใน MEW คนที่กรอกฟอร์มจะได้ session และถูกพาไปหน้า /free/<slug>/guide/ ทันที นี่คือการส่งมอบหลักที่ทำงานแน่นอน

อีเมลเป็นช่องทางเสริม ระบบจะพยายามส่งเฉพาะเมื่อมีการตั้งค่า RESEND_API_KEY และ LEAD_MAGNET_FROM_EMAIL แล้ว และหน้าเว็บจะบอกสถานะตามจริง

ถ้าพร้อมเปิดอีเมลภายหลัง: ยืนยันโดเมนผู้ส่งกับ Resend ก่อน แล้วเก็บ API key เป็น secret ของ Cloudflare Pages (ไม่ใส่ในไฟล์ใน repo) จากนั้นทดสอบกับ preview ก่อนเสมอ

npx wrangler pages secret put RESEND_API_KEY --project-name <ชื่อโปรเจกต์>

ข้อความหลังสมัครที่ดีควร:

  • บอกว่าเปิดอ่านได้ทันทีที่ไหน
  • ไม่อ้างว่าส่งอีเมลแล้วถ้ายังไม่ได้ส่ง
  • บอกขั้นต่อไป 1 อย่าง เช่น Resource ที่เกี่ยวข้องหรือบริการ

ขั้นที่ 7: ทดสอบก่อนเผยแพร่

รันคำสั่งเหล่านี้ในโฟลเดอร์เว็บไซต์:

node scripts/build.mjs
npm test
node scripts/qa/verify-public-dist.mjs
  • คำสั่งแรกสร้างเว็บใน dist/
  • คำสั่งที่สองรันชุดทดสอบทั้งหมด (ใช้ได้เมื่อโปรเจกต์ตั้งคำสั่ง test ไว้ใน package.json ของ MEW จะ build ให้ด้วย)
  • คำสั่งที่สามตรวจว่าใน dist/ ไม่มีไฟล์ส่วนตัว วิดีโอที่ไม่ได้อนุญาต หรือราคาที่ยังไม่อนุมัติ

ถ้าโปรเจกต์ของคุณยังไม่มีสคริปต์ตรวจแบบคำสั่งที่สาม ให้ Claude Code สร้างให้:

สร้างสคริปต์ Node ที่ตรวจโฟลเดอร์ dist/ ก่อน deploy และจบด้วย exit code 1 ถ้าพบ:
- ไฟล์หรือโฟลเดอร์ที่ใช้ทดสอบภายใน (ระบุชื่อโฟลเดอร์ของโปรเจกต์นี้)
- ไฟล์วิดีโอหรือเสียงที่ไม่ได้อยู่ในรายการที่อนุญาต
- ราคาหรือข้อความที่ยังไม่อนุมัติ (เช่น สัญลักษณ์ ฿ ตามด้วยตัวเลข)
พิมพ์รายการปัญหาเป็นภาษาไทย และเพิ่มคำสั่งนี้ไว้ใน README ส่วนการ deploy

แล้วทดสอบด้วยมือบนเครื่อง:

  1. เปิดหน้า /free/<slug>/ บนมือถือและคอมพิวเตอร์
  2. ลองส่งฟอร์มโดยไม่ติ๊กความยินยอม ต้องส่งไม่ผ่านและบอกเหตุผล
  3. ส่งฟอร์มด้วยอีเมลทดสอบ ต้องเปิด Guide ได้ทันที
  4. ตรวจว่าช่องรับข่าวไม่ได้ถูกติ๊กไว้ก่อน
  5. ตรวจว่าข้อความหลังสมัครไม่อ้างเรื่องอีเมลเกินจริง
  6. เปิดลิงก์ที่มี UTM แล้วตรวจว่าข้อมูลที่มาถูกบันทึก

ให้ Claude Code ช่วยตรวจหน้า:

ตรวจหน้า /free/<slug>/ ที่ build แล้วใน dist/ ตาม checklist นี้ และรายงานเป็นข้อ ๆ ห้ามแก้ไฟล์:
1) ข้อความความยินยอมแยก "รับ Resource" กับ "รับข่าว" และช่องรับข่าวไม่ได้ติ๊กไว้ก่อน
2) ไม่มีประโยคที่อ้างว่าส่งอีเมลแล้วโดยไม่มีเงื่อนไข
3) ทุกลิงก์ภายในเว็บชี้ไปหน้าที่มีอยู่จริง
4) ไม่มีราคา ส่วนลด จำนวนที่นั่ง หรือรีวิวที่แต่งขึ้น
5) หัวข้อเรียงลำดับ h1 → h2 → h3 ไม่ข้ามระดับ

ขั้นที่ 8: Deploy บน Cloudflare Pages

เว็บของ MEW deploy โฟลเดอร์ dist/ ขึ้น Cloudflare Pages และใช้ D1 ผ่าน binding ชื่อ LEADS_DB ตามที่กำหนดใน wrangler.toml

ลำดับที่ปลอดภัย:

  1. Build ใหม่ทุกครั้งก่อน deploy (อย่า deploy โฟลเดอร์ที่เคยใช้ทดสอบหรือเคยใส่ไฟล์ส่วนตัว)
  2. รัน node scripts/qa/verify-public-dist.mjs ให้ผ่าน
  3. Deploy ไปที่ environment ทดสอบ (preview) ก่อน แล้วลองสมัครด้วยอีเมลทดสอบ
  4. ตรวจข้อมูลใน D1 ของ preview ว่าบันทึกถูกต้อง
  5. ค่อย deploy production และลองซ้ำอีกครั้งด้วยอีเมลทดสอบ

ตัวอย่างคำสั่ง deploy ด้วย Wrangler (หรือใช้การเชื่อม Git ของ Cloudflare Pages แทนก็ได้):

# Preview: deploy ไปที่ branch ที่ไม่ใช่ production branch จะได้ preview URL แยก ไม่กระทบเว็บจริง
npx wrangler pages deploy ./dist --project-name <ชื่อโปรเจกต์> --branch preview

# Production: ใช้ production branch ของโปรเจกต์ (เช่น main) หลังตรวจ preview แล้วเท่านั้น
npx wrangler pages deploy ./dist --project-name <ชื่อโปรเจกต์> --branch main

ถ้าการเปลี่ยนแปลงต้องเพิ่มตารางหรือคอลัมน์ ให้ backup ฐานข้อมูลก่อน และทดลอง migration บนสำเนาก่อนเสมอ Resource ใหม่ที่ใช้ระบบเดิมไม่ต้องมี migration

ขั้นที่ 9: ทำให้ใช้ซ้ำได้ด้วยคำสั่ง Claude Code

เมื่อทำชิ้นแรกสำเร็จ ให้เก็บขั้นตอนเป็น custom slash command ของ Claude Code โดยสร้างไฟล์ Markdown ในโฟลเดอร์ .claude/commands/ แล้วเรียกใช้ด้วย /ชื่อไฟล์ ข้อความที่พิมพ์ต่อท้ายคำสั่งจะถูกส่งเข้าไปแทน $ARGUMENTS

แนะนำให้แยกเป็น 3 คำสั่ง แต่ละคำสั่งจบด้วยจุดตรวจของคน ไม่รวมทุกอย่างไว้ในคำสั่งเดียว

ไฟล์ .claude/commands/lead-magnet-draft.md

ร่าง Resource ฟรีใหม่จากข้อมูลนี้: $ARGUMENTS

1. สรุปกลุ่มคน ปัญหา และผลลัพธ์ที่ควรได้ เป็น 3 บรรทัด แล้วถามฉันว่าถูกต้องไหม
2. เมื่อฉันยืนยัน เสนอโครง 5–7 หัวข้อ
3. เมื่อฉันยืนยันโครง เขียนลง content/free/<slug>.md ตามรูปแบบไฟล์ที่มีอยู่แล้วใน content/free/
ข้อห้าม: ห้ามแต่งสถิติ รีวิว หรือผลลัพธ์ลูกค้า ห้ามคัดลอกงานของคนอื่น
จบด้วยรายการจุดที่ฉันต้องเติมจากประสบการณ์จริง

ไฟล์ .claude/commands/lead-magnet-config.md

สร้าง entry ใน lead-magnets.config.mjs สำหรับ content/free/$ARGUMENTS.md
- ทำตามรูปแบบ entry ที่มีอยู่แล้ว ห้ามแก้ entry อื่น
- consentVersion = <วันนี้>-$ARGUMENTS-v1, questions = []
- ใช้ contentFile เพื่อเปิด Guide บนเว็บทันที
แสดง diff และรอฉันอนุมัติก่อนบันทึก

ไฟล์ .claude/commands/lead-magnet-check.md

ตรวจ Resource $ARGUMENTS ก่อนเผยแพร่ ห้าม deploy และห้ามส่งอะไรออกไปภายนอก:
1. รัน node scripts/build.mjs แล้ว npm test และ node scripts/qa/verify-public-dist.mjs
2. ตรวจหน้า dist/free/$ARGUMENTS/index.html: ความยินยอมแยกส่วน, ช่องรับข่าวไม่ติ๊กไว้ก่อน, ไม่อ้างการส่งอีเมลเกินจริง, ลิงก์ภายในใช้งานได้
3. รายงานผลเป็นตาราง ผ่าน / ไม่ผ่าน พร้อมไฟล์และบรรทัดที่ต้องแก้

วิธีใช้:

/lead-magnet-draft Freelancer กราฟิก ลูกค้าแก้งานไม่จบ อยากได้เทมเพลตข้อตกลงรอบแก้ไข
/lead-magnet-config client-revision-guide
/lead-magnet-check client-revision-guide

ทำไมไม่รวมเป็นคำสั่งเดียวที่ deploy เลย: เพราะเนื้อหาที่เผยแพร่ด้วยชื่อคุณ ข้อความความยินยอม และการ deploy ขึ้นเว็บจริง เป็นการตัดสินใจที่ควรมีคนตรวจทุกครั้ง AI ช่วยลดงาน แต่ไม่ควรตัดคุณออกจากการตัดสินใจ

Checklist ก่อนเปิดใช้งาน

  • เลือกปัญหาเดียว ใช้คำของลูกค้า และรู้ว่า Resource นี้พาไปสู่อะไร
  • เนื้อหาตรวจข้อเท็จจริงแล้ว ไม่มีตัวเลขหรือรีวิวที่แต่งขึ้น
  • เนื้อหาเป็นงานของคุณเอง ให้เครดิตแหล่งแรงบันดาลใจถ้ามี
  • slug และ consentVersion ตั้งแล้ว และไม่ชนกับของเดิม
  • ความยินยอมแยก “รับ Resource” กับ “รับข่าว” และไม่ติ๊กไว้ก่อน
  • ข้อความหลังสมัครตรงกับการส่งมอบจริง
  • ลิงก์ UTM สำหรับแต่ละช่องทางพร้อมแล้ว
  • node scripts/build.mjs, npm test และ node scripts/qa/verify-public-dist.mjs ผ่าน
  • ทดสอบบนมือถือและคอมพิวเตอร์ด้วยอีเมลทดสอบแล้ว
  • Deploy preview ก่อน production

คำถามที่พบบ่อย

ต้องเขียนโค้ดเป็นไหม?

ไม่ต้องเขียนเอง แต่ต้องอ่านแผนและ diff ที่ Claude Code เสนอ และกล้าถามเมื่อไม่เข้าใจ ถ้าอ่านไม่ออกเลย ให้ขอให้ Claude Code อธิบายเป็นภาษาไทยทีละไฟล์

ใช้ Vercel หรือแพลตฟอร์มอื่นแทน Cloudflare ได้ไหม?

แนวคิดเหมือนกัน แต่คำสั่ง การตั้งค่า และฐานข้อมูลต่างกัน คู่มือนี้เขียนตามระบบของ MEW ที่ใช้ Cloudflare Pages และ D1 ถ้าใช้แพลตฟอร์มอื่น ให้ Claude Code ช่วยแปลงแผนในขั้นที่ 0 ให้เข้ากับ stack ของคุณ

ต้องมีระบบอีเมลก่อนไหม?

ไม่จำเป็น การเปิด Guide บนหน้าเว็บหลังกรอกฟอร์มทำงานได้โดยไม่ต้องมีอีเมล เพิ่มระบบอีเมลภายหลังได้เมื่อพร้อมเรื่องโดเมนและการส่ง

ควรถามคำถามในฟอร์มกี่ข้อ?

เริ่มจาก 0–2 ข้อ ถามเฉพาะสิ่งที่คุณจะใช้จริง เช่น บทบาท หรือปัญหาหลัก ทุกคำถามที่เพิ่มขึ้นทำให้คนกรอกน้อยลง

ให้ AI สร้าง Resource ทุกสัปดาห์โดยไม่ต้องตรวจได้ไหม?

ไม่แนะนำ Resource ที่ไม่มีประสบการณ์จริงของคุณอยู่ข้างในจะแยกไม่ออกจากเนื้อหาทั่วไปบนอินเทอร์เน็ต และอาจมีข้อผิดพลาดที่ทำลายความน่าเชื่อถือ

รายชื่อที่ได้ควรใช้อย่างไร?

ใช้ตามที่คนยินยอมเท่านั้น คนที่ยินยอมแค่รับ Resource ไม่ได้ยินยอมรับข่าวการตลาด ถ้าเขาขอให้หยุดติดต่อ ให้หยุดทันทีและบันทึกไว้

ไปต่อกับ MEW

  • อยากวางแผนคอนเทนต์และเชื่อม Resource เข้ากับการผลิตเป็นระบบ: ดู MEW Content OS
  • มีคลิปพูดอยู่แล้ว อยากลองให้ MEW เสนอจุดตัดและทำซับไทย (รอบ Private Alpha ที่ได้รับเชิญ · การตัดร่างแรกที่ AI กำกับและการเรียงเรื่องใหม่ยังเป็นเป้าหมาย): ดู MEW EDIT
  • อยากให้ทีม MEW ช่วยวางระบบ Lead และ Content ให้ธุรกิจของคุณ: ดูบริการ MEW Growth Studio

ที่มาของคู่มือนี้

แนวคิดการใช้ Claude Code สร้าง Lead Magnet แบบเป็นขั้นตอนได้แรงบันดาลใจจาก Justyn Berk (justyn.ai) คู่มือฉบับนี้เขียนใหม่ทั้งหมดโดย MEW เป็นภาษาไทย ปรับตามเครื่องมือและระบบที่ MEW ใช้จริง และไม่ได้คัดลอกเนื้อหา คำสั่ง หรือเทมเพลตจากต้นฉบับ