productize.blog
AI · Messenger

ทำบอทตอบแชทเพจ ให้ไม่เงียบกลางทาง

ลูกค้าทักมาตอนดึกแล้วไม่มีใครตอบ บอทช่วยได้ แต่บอทที่อยู่รอดต้องเดินตามกติกาของ Meta ตั้งแต่ต้น นี่คือของที่ต้องเตรียม เงื่อนไขเรื่องเวลา และจุดที่พลาดง่าย

Yim· เขียนด้วยกันกับ Dobby (AI Oracle)/10 ต.ค. 2026/~10 นาที

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

เจ้าของเพจหลายคนเจอแบบนี้จนอยากได้บอทมาช่วยตอบ แล้วก็จะเจอคนเสนอทางลัด เช่น เอาบัญชีที่ล็อกอินค้างไว้ให้โปรแกรมเข้าไปกดอ่านกดตอบแทน ใช้ได้สักพัก พอล็อกอินหลุด บอทก็เงียบ บอทที่อยู่ได้นานต้องสร้างบนช่องทางที่ Meta เปิดให้ ซึ่งก็คือ Messenger Platform

Productize กำลังทำบริการบอทตอบเพจบน Graph API ของ Meta (ช่องทางที่ Meta เปิดให้โปรแกรมขอข้อมูลและส่งข้อความกับ Facebook ตัว Messenger Platform ก็ทำงานผ่านช่องทางนี้) ระหว่างทางเราเจอหลายเรื่องที่เจ้าของเพจควรรู้ก่อนจ้างใครทำหรือลงมือเอง เลยเขียนเก็บไว้ตรงนี้ ส่วนไหนเป็นงานของนักพัฒนา เราจะบอกไว้ คุณแค่รู้ว่าต้องถามอะไร

ขั้นที่ 1ทางลัดที่ยืมล็อกอิน ใช้ได้ไม่นาน

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

เราเจอเองตอนเริ่มทำ ครั้งแรกเราลองให้เบราว์เซอร์บนเซิร์ฟเวอร์ในศูนย์ข้อมูล ล็อกอินเข้า Meta Business Suite ซึ่งเป็นหน้าเว็บที่แอดมินใช้ตอบแชทเพจ เพื่ออ่านกล่องข้อความ แค่ขั้นล็อกอินก็ไปไม่ผ่าน เพราะ Facebook เห็นเป็นเครื่องใหม่และขอให้ยืนยันตัวตน แต่เครื่องนั้นไม่มีคนนั่งอยู่หน้าจอคอยกดยืนยัน ทางที่เหลือคือยืม cookie จากเครื่องที่ล็อกอินไว้แล้ว ซึ่งแค่เลื่อนปัญหาเดิมออกไป พอ Facebook ขอยืนยันตัวตนรอบใหม่ บอทก็ติดอยู่ตรงนั้นอีก ล็อกอินใหม่ก็ไม่ผ่าน ยืมของเดิมก็อยู่ได้ไม่นาน สองทางนี้พึ่งไม่ได้ทั้งคู่

เราเลยเปลี่ยนไปใช้ Graph API ซึ่งเป็นทางที่ Meta เตรียมไว้สำหรับข้อความของเพจโดยตรง ใช้ Page access token แทนการล็อกอิน ผลคืออ่านบทสนทนาของเพจได้ครบ ไม่ต้องพึ่งหน้าเว็บ และไม่ต้องลุ้นว่าพรุ่งนี้ล็อกอินจะยังอยู่ไหม

ขั้นที่ 2ของที่ต้องเตรียม ก่อนมีบอท

ก่อนจะมีบอทสักตัว ต้องมีของ 4 อย่างนี้ครบ ชื่อเทคนิคในวงเล็บเป็นของที่นักพัฒนาต้องเลือก คุณไม่ต้องจำ

  1. Meta App ที่เพิ่ม Messenger แล้ว "ตัวตน" ของบอทในสายตา Meta สร้างที่ developers.facebook.com แล้วผูกเพจของคุณเข้ากับแอป
  2. Page access token ที่ขอสิทธิ์อ่านและตอบแชทของเพจไว้แล้ว ออกโดยคนที่ดูแลข้อความของเพจได้ เช่น แอดมินของเพจ (สิทธิ์ที่นักพัฒนาต้องเลือกคือ pages_messaging สำหรับตอบแชท และ pages_manage_metadata สำหรับให้ Meta แจ้งเมื่อมีคนทัก)
  3. เซิร์ฟเวอร์ คอมพิวเตอร์ที่เปิดไว้ตลอดเพื่อรับข้อความ ต้องเป็นเว็บแบบปลอดภัยที่มีรูปกุญแจ (HTTPS) ด้วยใบรับรองจริง Meta ไม่รับใบรับรองที่ทำขึ้นเอง
  4. คนรับผิดชอบเรื่อง token เพราะ token หมดอายุได้ ถ้าไม่มีใครดู บอทจะหยุดเงียบๆ

แล้วใครทำอะไร? การสร้างแอปกับออก token ทำในหน้าเว็บสำหรับนักพัฒนาของ Meta ถ้าไม่ถนัด ให้นักพัฒนาหรือผู้ให้บริการที่คุณจ้างทำให้ได้ แต่ตอนออก token ต้องมีคนที่ดูแลเพจมากดอนุญาตด้วย เพราะ token ต้องออกจากบัญชีที่มีสิทธิ์บนเพจ ถ้าคุณเป็นแอดมินเพจ คนนั้นก็คือคุณ ส่วนเซิร์ฟเวอร์เป็นงานของนักพัฒนาล้วนๆ คุณไม่ต้องตั้งเอง แค่รู้ว่าต้องถามเขาเรื่องอะไร ซึ่งอยู่ในขั้นถัดไป ข้อที่ควรเป็นของคุณเองจริงๆ คือข้อ 4 คนดูแล token

ข้อสุดท้ายฟังดูเล็ก แต่เราโดนมาแล้ว token ของระบบอ่านแชทเพจที่ Productize ทำใช้เอง หมดอายุไปเมื่อ 5 ก.ค. 2026 ระบบหยุดอ่านจนกว่าจะออก token ใบใหม่ ในเอกสารของ Meta อาการนี้คือรหัสข้อผิดพลาด 190 (โทเค็นการเข้าถึงหมดอายุ) และทางแก้คือสร้าง token ใหม่ ให้วางแผนตั้งแต่วันแรกว่าใครจะต่ออายุ และใครจะรู้ตัวเมื่อมันหมด ตอนออก token ให้จดไว้เลยว่าหมดอายุเมื่อไหร่

ครบ 4 อย่างนี้แล้ว บอทยังคุยได้แค่คนในทีมก่อน ส่วนลูกค้าจริงต้องรอขั้นที่ 5

ขั้นที่ 3กริ่งที่ Meta กด เมื่อลูกค้าทัก

ขั้นนี้คนลงมือคือนักพัฒนา แต่เจ้าของเพจควรเข้าใจภาพ จะได้ถามได้ว่าทำครบหรือยัง ตัวที่ทำให้บอทรู้ว่าลูกค้าทักคือ webhook ลองนึกถึงกริ่งหน้าร้าน แทนที่บอทจะเดินไปเปิดกล่องข้อความดูทุก 5 นาที Meta จะกดกริ่งเรียกทันทีที่ลูกค้าพิมพ์มา บอทจึงตอบได้ในไม่กี่วินาที ไม่ต้องรอรอบถัดไป

ตัวอย่างเดิม ลูกค้าพิมพ์ "ทำเล็บเจลราคาเท่าไหร่คะ" เมื่อสามทุ่ม สิ่งที่เกิดขึ้นตามลำดับคือ

  1. Meta ส่งข้อความนั้นมาที่ webhook ของคุณ พร้อมเลขประจำตัวของลูกค้าคนนี้ที่ใช้ได้เฉพาะกับเพจคุณ (Meta เรียกว่า PSID) บอทใช้เลขนี้ตอบกลับให้ถูกคน
  2. เซิร์ฟเวอร์ตรวจ "ลายเซ็น" ที่ Meta แนบมากับทุกข้อความ (X-Hub-Signature-256) เพื่อยืนยันว่ามาจาก Meta จริง ขั้นนี้ควรทำเสมอ ถ้าไม่ตรวจ ใครรู้ที่อยู่ webhook ก็ส่งข้อความปลอมเข้ามาได้
  3. เซิร์ฟเวอร์ตอบ Meta ว่า "ได้รับแล้ว" (200 OK) ภายใน 5 วินาที ไม่งั้น Meta จะถือว่าส่งไม่ถึง
  4. บอทคิดคำตอบ แล้วส่งกลับหาลูกค้าผ่าน Send API โดยระบุเลขประจำตัวลูกค้าคนเดิม

มีจุดหนึ่งที่มองข้ามง่าย ถ้าเซิร์ฟเวอร์ไม่ยืนยันว่าได้รับ Meta จะส่งซ้ำทันที แล้วลองอีกหลายครั้งห่างขึ้นเรื่อยๆ ได้นานถึง 36 ชั่วโมง เอกสารของ Meta จึงบอกให้ฝั่งผู้รับกันข้อความซ้ำเอง ไม่งั้น ลูกค้าถามครั้งเดียว อาจได้คำตอบเดิมสองสามรอบ

ถ้านักพัฒนาตอบได้ว่าทำ 3 อย่างนี้แล้ว คือตรวจลายเซ็น ตอบรับภายใน 5 วินาที และกันข้อความซ้ำ บอทจะรู้ทันทีว่ามีคนทัก รู้ว่าเป็นใคร และตอบกลับถูกคน

ขั้นที่ 4กฎหน้าต่าง 24 ชั่วโมง คืออะไร?

หลังลูกค้าทักเพจ เพจตอบได้อิสระภายใน 24 ชั่วโมง พ้นจากนั้น ทางที่เหลือคือ human agent tag ซึ่งให้เจ้าหน้าที่ของร้านพิมพ์ตอบเองได้ภายใน 7 วันนับจากข้อความล่าสุดของลูกค้า และห้ามมีเนื้อหาโปรโมต กติกานี้กำหนดว่าบอทของคุณพูดอะไรได้ตอนไหน

รายละเอียดที่ควรรู้ จากเอกสาร Send API ของ Meta

แล้วนอกหน้าต่างส่งได้แค่ไหน? สรุปสั้นๆ ให้ถือว่าบอทส่งเองไม่ได้ คนของร้านตอบเองได้ด้วย human agent tag ส่วนโปรโมชันต้องไปทางโฆษณาเสียเงิน หรือให้ลูกค้ากดยอมรับก่อน คำถามที่ควรถามจึงไม่ใช่ "ส่งได้กี่ข้อความ" แต่คือ "ส่งอะไร และใครเป็นคนส่ง"

กติกาข้อนี้เปลี่ยนมาแล้วจริง ร่างออกแบบบอทที่ทีม Productize เขียนไว้ก่อนลงมือสร้าง เคยวางไว้ว่าจะใช้ tag ส่งเตือนนัดนอกหน้าต่าง แต่ตอนตรวจข้อเท็จจริงสำหรับบทความนี้ เราพบว่า Meta เลิกรับ tag ชุดนั้นไปตั้งแต่ 27 เม.ย. 2026 ถ้าสร้างตามร่างเดิม ข้อความเตือนนัดจะส่งไม่ออกเลย

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

ขั้นที่ 5ทำไมบอทตอบคนในทีมได้ แต่ไม่ตอบลูกค้า?

เพราะแอปยังไม่ผ่าน App Review ตรงนี้ต้องรู้ก่อนว่า Meta แบ่งสิทธิ์ของแอปเป็น 2 ระดับ ระดับมาตรฐาน (Standard Access) รับข้อความได้เฉพาะคนที่เจ้าของแอปเพิ่มชื่อไว้ในแอป ในฐานะผู้ดูแล ผู้พัฒนา หรือผู้ทดสอบ ส่วนระดับสูง (Advanced Access) รับข้อความจากลูกค้าทั่วไปได้ และต้องผ่าน App Review ก่อน

อาการหน้าตาแบบนี้ เจ้าของเพจทักบอทเองแล้วบอทตอบดีมาก ให้น้องในทีมลองก็ตอบดี พอเปิดให้ลูกค้าจริง ลูกค้าทักมาแล้วเงียบ เพราะลูกค้าไม่มีบทบาทในแอป ข้อความของเขาจึงไม่เคยมาถึงบอทเลย บอทไม่ได้พัง

เอกสาร webhook ของ Meta เขียนเงื่อนไขไว้ 2 ข้อที่ต้องครบคู่กัน ข้อแรก แอปต้องอยู่ในสถานะ Live คือเปิดใช้งานจริง ไม่ใช่โหมดพัฒนา ข้อสอง ต้องได้ Advanced Access ของสิทธิ์ pages_messaging ซึ่งได้มาจากการผ่าน App Review ขาดข้อใดข้อหนึ่ง ลูกค้าทั่วไปก็ทักไม่ถึงบอท Meta กั้นไว้แบบนี้เพราะบอทส่งข้อความหาคนจำนวนมากได้ในพริบตา ถ้าไม่ตรวจก่อนก็กลายเป็นเครื่องยิงสแปมได้ง่าย ส่วนว่า App Review ต้องส่งอะไรบ้างและรอนานแค่ไหน เอกสารที่เราตรวจไม่ได้บอกไว้ ให้เปิดหน้า App Review ในเว็บนักพัฒนาของ Meta ดูตอนจะยื่น และเผื่อเวลาไว้ในแผน ตกลงกับนักพัฒนาให้ชัดว่าใครเป็นคนกดยื่น ส่วนเรื่องร้านของคุณและเหตุผลที่ใช้บอท ต้องมาจากคุณ ขั้นนี้เขียนโค้ดเพิ่มเท่าไหร่ก็เร่งไม่ได้

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

ขั้นที่ 6AI อยู่ตรงไหน ของบอท

ทุกขั้นที่ผ่านมาคือระบบรับส่งข้อความ ยังไม่มี AI เลย AI อยู่ตรงกลาง ระหว่างข้อความที่เข้ามากับคำตอบที่จะส่งออก มีหน้าที่อ่านบทสนทนา เข้าใจว่าลูกค้าต้องการอะไร แล้วร่างคำตอบ

คำถามที่ต้องตัดสินใจคือ จะให้ AI ส่งเองแค่ไหน มี 2 แบบหลัก

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

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

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

ขั้นที่ 7ข้อมูลลูกค้า และ PDPA

ถ้าทำบอทเป็นบริการในไทย ข้อความที่ลูกค้าพิมพ์มาเป็นข้อมูลส่วนบุคคล ทั้งชื่อ เบอร์โทร วันนัด บางร้านอาจมีข้อมูลสุขภาพด้วย จึงอยู่ภายใต้ พ.ร.บ.คุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 (PDPA) สิ่งที่เราถือเป็นหลักเวลาออกแบบมี 4 ข้อ

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

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

ที่เขียนมานี้เป็นแนวทางออกแบบ ไม่ใช่คำปรึกษากฎหมาย ก่อนเปิดใช้ ให้ดูแนวปฏิบัติของสำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล (สคส.) และปรึกษาที่ปรึกษาด้าน PDPA ยิ่งถ้ามีข้อมูลอ่อนไหวอย่างข้อมูลสุขภาพ เรื่องที่ควรถามให้ชัด เช่น ใช้ฐานทางกฎหมายข้อไหนในการเก็บข้อความลูกค้า (คือเหตุผลที่กฎหมายยอมให้เก็บ) ต้องขอความยินยอมไหม และถ้าผู้ให้บริการ AI อยู่ต่างประเทศต้องทำอะไรเพิ่ม

ขั้นที่ 8เริ่มจากตรงไหนดี

ถ้าวันนี้อยากเริ่ม เรียงแบบนี้

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

ที่มาและอ้างอิง

อ่านต่อ: AI data privacy: ใช้ AI ยังไงให้ความเป็นส่วนตัวอยู่กับที่

ดูเพิ่ม: ต่อ AI เข้า Discord ให้คุยได้ทุกที่ โดยไม่ให้ใครสั่งบอตแทน · ดูบทความทั้งหมด

ติดตาม

รับบทความใหม่และของฟรีก่อนใคร

ทิ้งอีเมลไว้ บทความใหม่และของฟรีเป็นครั้งคราวจะส่งไปให้ ไม่สแปม

ใช้อีเมลเพื่อส่งอัปเดตเท่านั้น

ความคิดเห็น

ร่วมพูดคุย

แบ่งปันความคิดเห็นได้เลย

ชื่อจะแสดงต่อสาธารณะ อีเมลเก็บเป็นความลับ ไม่แสดงที่ไหน

กำลังโหลดความคิดเห็น…