การซิงค์ข้อมูลสมาชิกสองทางกับ Smaregi / Square

เชื่อมต่อ POS Smaregi Square ซิงค์ข้อมูลสมาชิก ซิงค์สองทาง เลขสมาชิก CRM

ข้อมูลสมาชิกของ ReceiptRoller จะถูกซิงค์แบบสองทางกับ POS ที่เชื่อมต่อ เช่น Smaregi หรือ Square เมื่อลงทะเบียนสมาชิกที่ฝั่ง ReceiptRoller จะสะท้อนไปยังมาสเตอร์สมาชิกของ POS ด้วย และในทางกลับกัน ข้อมูลที่ลงทะเบียนสมาชิกที่ POS ก็จะถูกดึงเข้าสู่ CRM ของ ReceiptRoller เช่นกัน ไม่จำเป็นต้องจัดการข้อมูลสมาชิกซ้ำซ้อน

บทความนี้จะแนะนำกลไกการซิงค์สองทาง รายการที่ซิงค์ จังหวะเวลา ลำดับความสำคัญเมื่อเกิดความขัดแย้ง POS ที่รองรับ และวิธีตั้งค่า

การซิงค์สองทางคืออะไร

"สองทาง" หมายถึงข้อมูลไหลไปทั้งสองทิศทาง

  • ReceiptRoller → POS (ขาออก): ข้อมูลลูกค้าที่ลงทะเบียนสมาชิกผ่านแอปจะถูกลงทะเบียนในมาสเตอร์สมาชิกของ POS เมื่อลูกค้ามาใช้บริการครั้งแรก พนักงาน POS จะสามารถระบุตัวตนลูกค้าได้
  • POS → ReceiptRoller (ขาเข้า): ข้อมูลที่ลงทะเบียนสมาชิกที่ POS จะถูกดึงเข้าสู่ CRM ของ ReceiptRoller ด้วยวิธีนี้ ลูกค้าที่ลงทะเบียนสมาชิกที่หน้าร้านก็สามารถได้รับบัตรสมาชิก Wallet หรือการแจ้งเตือนแบบพุชได้เช่นกัน

รายการที่ซิงค์

  • เลขสมาชิก: เลขที่ออกจาก ReceiptRoller หรือเลขที่ออกจาก POS ไม่ว่าฝ่ายใดออกก่อนก็จะใช้เลขเดียวกันในการทำงาน
  • ชื่อ-นามสกุล: (รองรับทั้งตัวคันจิและคาตาคานะ)
  • ที่อยู่อีเมล
  • หมายเลขโทรศัพท์(ปรับให้เป็นรูปแบบมาตรฐาน E.164)
  • ระดับสมาชิก: ทั่วไป ซิลเวอร์ โกลด์ ฯลฯ
  • วันเกิด(ไม่บังคับ)
  • สถานะ: ใช้งานได้ ยกเลิกสมาชิกแล้ว ถูกบล็อกแล้ว ฯลฯ

ข้อมูลพฤติกรรม เช่น ประวัติการมาใช้บริการ ประวัติการซื้อ ยอดซื้อสะสม จะถูกรวบรวมโดยฝั่ง ReceiptRoller จากข้อมูลใบเสร็จของ POS อยู่แล้ว จึงไม่ต้องซิงค์แยกต่างหาก

จังหวะเวลาการซิงค์

ReceiptRoller → POS

  • ตอนลงทะเบียนใหม่: ทันทีที่ลูกค้าลงทะเบียนสมาชิกผ่านแอป งานลงทะเบียนไปยัง POS จะถูกเพิ่มเข้าคิว โดยปกติจะสะท้อนไปยังฝั่ง POS ภายในไม่กี่วินาทีถึงไม่กี่นาที
  • ตอนอัปเดตข้อมูล: เมื่อลูกค้าอัปเดตช่องทางติดต่อ ชื่อ วันเกิด ฯลฯ ผ่านแอป ก็จะสะท้อนไปยัง POS ด้วย
  • ตอนเปลี่ยนระดับ: เมื่อระดับสมาชิกเปลี่ยนไปตามหน้าจัดการร้านหรือประวัติการซื้อ ระดับสมาชิกของ POS ก็จะถูกอัปเดตด้วย

POS → ReceiptRoller

  • ผ่าน Webhook (ทันที): เมื่อ POS ทำการลงทะเบียนสมาชิกใหม่หรืออัปเดต จะแจ้งไปยัง ReceiptRoller ทันทีผ่าน Webhook และสะท้อนเข้า CRM ภายในไม่กี่วินาที
  • การซิงค์ตามรอบ (แบ็กอัป): เพื่อรองรับกรณีที่ Webhook มาไม่ถึง จะดึงมาสเตอร์สมาชิกทั้งหมดของ POS มาตามรอบเพื่อสะท้อนส่วนต่าง (ค่าเริ่มต้นทุก 1 ชั่วโมง)

ลำดับความสำคัญเมื่อเกิดความขัดแย้ง

เมื่อข้อมูลของลูกค้าคนเดียวกันถูกอัปเดตจากทั้งสองฝั่ง "ข้อมูลที่มีวันเวลาอัปเดตล่าสุด" จะถูกให้ความสำคัญก่อน ตัวอย่างเช่น

  • 10:00 น. ลูกค้าอัปเดตที่อยู่อีเมลผ่านแอป
  • 10:05 น. พนักงาน POS อัปเดตหมายเลขโทรศัพท์
  • → ที่อยู่อีเมลจะถูกกำหนดเป็นค่าจากแอปเวลา 10:00 น. ส่วนหมายเลขโทรศัพท์จะถูกกำหนดเป็นค่าจาก POS เวลา 10:05 น.

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

การจับคู่ลูกค้าใหม่

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

  1. เลขสมาชิก (ตรงกันทั้งหมด)
  2. ที่อยู่อีเมล (ตรงกันทั้งหมดหลังแปลงเป็นตัวพิมพ์เล็กและลบช่องว่างหน้า-หลัง)
  3. หมายเลขโทรศัพท์ (ตรงกันทั้งหมดหลังปรับเป็นรูปแบบ E.164)

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

POS ที่รองรับ

  • Smaregi: รองรับการซิงค์สองทางของมาสเตอร์สมาชิกและข้อมูลธุรกรรม ใช้ Smaregi Platform API
  • Square: รองรับการซิงค์สองทางกับ Customer Directory ใช้ Square Customers API

ขั้นตอนการเชื่อมต่อดูได้จากบทความ "ขั้นตอนการเชื่อมต่อ Square POS" และ "ขั้นตอนการเชื่อมต่อ Smaregi" แยกต่างหาก POS อื่นนอกเหนือจากนี้มีแผนรองรับตามลำดับต่อไป

การรองรับฟิลด์ตาม POS แต่ละราย

ฟิลด์สมาชิกของ POS แต่ละรายสอดคล้องกับฟิลด์ใดในข้อมูลลูกค้าของ ReceiptRoller (CrmCustomerDto) ถูกรวบรวมไว้ในเอกสารทางเทคนิคแยกตาม POS หากมีคำถามเช่น "ทำไม Smaregi ของเราลงทะเบียนวันเดือนปีเกิดไว้แล้วแต่ไม่สะท้อนไปยังฝั่ง RR" กรุณาดูที่นี่

ขั้นตอนการตั้งค่า

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

หากต้องการหยุดการซิงค์ชั่วคราว หรือต้องการจำกัดรายการที่ซิงค์ สามารถปรับได้จากหน้าจัดการร้าน → "เชื่อมต่อ POS" → "ตั้งค่าการซิงค์"

การตรวจสอบสถานะการซิงค์

จาก "เชื่อมต่อ POS" → "บันทึกการซิงค์" ในหน้าจัดการร้าน คุณสามารถตรวจสอบประวัติการซิงค์ในอดีตได้ แต่ละรายการจะบันทึกข้อมูลดังนี้

  • ทิศทาง (ReceiptRoller → POS / POS → ReceiptRoller)
  • เลขสมาชิกและชื่อของลูกค้าเป้าหมาย
  • รายการที่ซิงค์ (อีเมล โทรศัพท์ ระดับ ฯลฯ)
  • ผลลัพธ์ (สำเร็จ / ล้มเหลว / ข้าม)
  • เวลาประทับ

รายการที่ล้มเหลวจะถูกลองใหม่อัตโนมัติสูงสุด 3 ครั้ง หากยังล้มเหลวอยู่ สาเหตุ (เช่น ข้อผิดพลาดการยืนยันตัวตนของฝั่ง POS หรือข้อผิดพลาดรูปแบบข้อมูล) จะถูกบันทึกในล็อกและแสดงในศูนย์การแจ้งเตือนของหน้าจัดการร้าน

การแก้ไขปัญหา

  • ลูกค้าที่ลงทะเบียนที่ POS ไม่สะท้อนเข้า CRM: กรุณาตรวจสอบสถานะการซิงค์ของลูกค้าคนนั้นจาก "บันทึกการซิงค์" หาก Webhook ไม่มาถึง กรุณาตรวจสอบการตั้งค่า Webhook ของฝั่ง POS หรือรอรอบการซิงค์ตามกำหนด (ทุก 1 ชั่วโมง) รอบถัดไป
  • เลขสมาชิกไม่ตรงกันระหว่าง POS กับ CRM: อาจเกิดความขัดแย้งระหว่างการซิงค์สองทาง กรุณาตรวจสอบรายการความขัดแย้งใน "บันทึกการซิงค์" โดยหลักการแล้ว เลขที่ออกก่อนจะถูกเก็บรักษาไว้ทั้งสองฝั่ง
  • ระดับสมาชิกของ POS ไม่ถูกอัปเดต: อาจมีกรณีที่ชื่อรายการระดับสมาชิกฝั่ง POS แตกต่างจากที่ ReceiptRoller คาดไว้ กรุณาติดต่อทีมซัพพอร์ต
  • ลูกค้าคนเดียวกันถูกลงทะเบียนซ้ำใน CRM: หากไม่มีคีย์การจับคู่ (เลขสมาชิก อีเมล โทรศัพท์) ตรงกันเลยแม้แต่รายการเดียว จะถูกลงทะเบียนเป็นคนละคน กรุณารวมด้วยตนเองจาก "รายชื่อที่อาจซ้ำซ้อน" ในหน้าจอ CRM

ข้อควรระวัง

  • หากลบข้อมูลสมาชิกอย่างสมบูรณ์ (ลบทางกายภาพ) ที่ฝั่ง POS จะไม่สามารถจับคู่ได้ที่ฝั่ง ReceiptRoller แนะนำให้ใช้การลบเชิงตรรกะ (ปิดใช้งาน) ที่ฝั่ง POS
  • การซิงค์ครั้งแรกของข้อมูลจำนวนมาก (ข้อมูลสมาชิกที่มีอยู่หลายพันถึงหลายหมื่นรายการ) จะถูกประมวลผลตามลำดับผ่านการซิงค์ตามรอบ จึงอาจใช้เวลาหลายชั่วโมงถึงครึ่งวันกว่าจะเสร็จสมบูรณ์
  • เนื่องจากข้อจำกัดอัตราการเรียก API ของฝั่ง POS หากมีการอัปเดตจำนวนมากในช่วงเวลาสั้นๆ การซิงค์บางส่วนอาจล่าช้า

บทความที่เกี่ยวข้อง

เผยแพร่เมื่อ: 2569-05-25 อัปเดตเมื่อ: 2569-07-02
บทความที่เกี่ยวข้อง