ระบบจองคิวออนไลน์นี้ถูกใช้ร่วมกันโดยธุรกิจสองประเภท คือ service และ clinic ทั้งคู่รันโค้ดชุดเดียวกัน ทั้งบริการ นัดหมาย การมอบหมายพนักงาน และแพ็กเกจ โดยประเภทคลินิกจะเปลี่ยนคำเรียกในหน้าจอเป็นนัดหมาย คนไข้ และคอร์สรักษา เพราะคลินิกทำฟันกับร้านทำเล็บมีปัญหาเรื่องการจองแบบเดียวกัน แค่ใช้คนละคำ การเลือกประเภทเปลี่ยนแค่คำศัพท์ ไม่เปลี่ยนโครงสร้าง ถ้าแยกทำสินค้าคลินิกต่างหาก มันจะเริ่มไม่ตรงกับฝั่งบริการภายในสองรอบอัปเดต
ระบบจองคิวออนไลน์ ตั้งบริการ ระยะเวลา และราคา
แคตตาล็อกคือรายการบริการ แต่ละอย่างมีระยะเวลาและราคา ระยะเวลาไม่ใช่ของประดับ มันคือสิ่งที่ทำให้ตารางนัดมีความหมาย เพราะทรีตเมนต์เก้าสิบนาทีกับการเล็มผมสิบห้านาที กินเวลาในวันเดียวกันไม่เท่ากัน ลูกค้าเข้าดูหน้าเพจสาธารณะของร้าน เลือกบริการ แล้วจองได้เลย ส่วนของหน้าเพจนั้นมาจากโมดูลบริการเอง สร้างจากชุด UI กลางเดียวกับทุกโมดูล มันจึงดูเป็นเนื้อเดียวกับแอป ไม่ใช่ของที่เอามาแปะ
ระบบจองคิวออนไลน์ ลูกค้าจองเอง ร้านกดยืนยัน
คำขอนัดหมายหนึ่งพกชื่อ เบอร์โทร วันที่ เวลา และโน้ต มันเข้ามาในสถานะรอ แล้วร้านเป็นคนกดยืนยัน จำนวนที่รออยู่เป็นหนึ่งในป้ายตัวเลขสดบนแดชบอร์ดคอนโซล ที่รีเฟรชทุกไม่กี่วินาทีพร้อมกับออเดอร์ที่กำลังทำ โต๊ะที่กดเรียกพนักงาน และใบลาที่รออนุมัติ ธุรกิจที่เปิดใช้หลายโมดูลจึงมีที่เดียวที่นับทุกอย่างที่รอคนตอบอยู่
ขั้นยืนยันไม่ได้ใส่มาเพื่อให้ช้าเฉย ๆ ระบบจองที่รับอัตโนมัติทุกช่องที่ปฏิทินยังว่าง จะรับนัดที่ช่างคนนั้นไม่เข้าวันนั้น และรับคิวสิบเอ็ดโมงที่จะทันก็ต่อเมื่อคิวสิบโมงจบเร็ว การทำให้การรับนัดเป็นการกระทำของคน คือการเก็บความรู้ที่มีอยู่ในหัวคนของร้านไว้ในวงจร และให้คำตอบที่แน่นอนกับลูกค้า แทนที่จะให้ช่องเวลาที่ค่อย ๆ ขยับเงียบ ๆ
ร้านที่ลูกค้าเดินเข้ามาเลยโดยไม่ได้จองล่วงหน้า ใช้บัตรคิวหน้าร้านคู่กันได้ เป็นคนละกลไกกับนัดหมายและไม่ได้แทนกัน — คิวออกบัตรเมื่ออยู่ที่ร้านแล้วเท่านั้น ส่วนนัดหมายจองเวลาล่วงหน้าได้
นัดหมายแต่ละรายการมอบหมายให้พนักงานคนหนึ่งได้ ฟิลด์เดียวนี้เปลี่ยนรายการจองให้กลายเป็นวันทำงานจริง มันตอบว่าใครเป็นคนทำ ทำให้ลูกค้าเก่าได้กลับไปเจอคนเดิม และป้อนข้อมูลเข้าประวัติลูกค้า ร้านจึงรู้ว่าลูกค้าประจำกลับมาหาใครในทีม
ขายคอร์สจ่ายล่วงหน้า ตัดครั้งให้อัตโนมัติ
งานที่จ่ายล่วงหน้ามีโมเดลของตัวเอง ไม่ใช่การขายธรรมดา แพ็กเกจหนึ่งเป็นได้สองแบบ คือคอร์ส N ครั้งที่ใช้ได้ N วัน หรือสมาชิกที่ใช้ได้ N วัน ลูกค้าซื้อไว้แล้วตัดใช้ทีละครั้ง และแท็บ "แพ็กเกจของฉัน" แสดงว่าถือไว้อะไรบ้างและเหลือเท่าไหร่ จำนวนที่เหลือนั้นคือหลักฐาน เก็บอยู่บนหลังบ้านเดียวกับนัดหมายที่ตัดมันไป ไม่ใช่บนบัตรแข็งที่ปั๊มตราไว้ในกระเป๋าสตางค์
การซื้อแพ็กเกจยังเป็นหนึ่งในธุรกรรมที่นับในวิวสิทธิ์รีวิวด้วย ลูกค้าที่ซื้อคอร์สจึงรีวิวร้านได้ตั้งแต่ยังไม่ได้ตัดครั้งแรก
ไม่มีการเตือนนัดทาง SMS เพราะไม่มี SMS การยืนยันเบอร์โทรและการส่ง SMS ยังไม่ได้ทำ ปลายทางตอบกลับมาเป็น 501 และบอกตรง ๆ แบบนั้น การแจ้งเตือนไปถึงลูกค้าในแอป ส่วนอีเมลส่งไปเฉพาะที่อยู่ที่ยืนยันแล้วเท่านั้น
ประเภทคลินิกคือการเปลี่ยนคำเรียก ไม่ใช่ระบบเวชระเบียน มันเปลี่ยนคำว่านัดหมายเป็นคนไข้และคอร์สรักษา มันไม่ได้เก็บบันทึกทางคลินิก ใบสั่งยา หรืออะไรก็ตามที่ควรอยู่ใน EMR และไม่ได้ถูกสร้างมาเพื่อสิ่งนั้น
รายงานยอดขาย ข้อมูลลูกค้า และระบบจัดการพนักงาน
ธุรกิจบริการหรือคลินิกได้ไทล์ของโมดูลสามอัน คือนัดหมาย บริการ และแพ็กเกจ บวกกับทุกอย่างที่ธุรกิจทุกประเภทได้ รายงานครอบยอดขาย จำนวนออเดอร์ ยอดเฉลี่ยต่อบิล การแยกตามเงินสด PromptPay และอื่น ๆ ห้าอันดับขายดี กราฟยอดขายเจ็ดวัน และช่วงเวลาวันนี้ เจ็ดวัน สามสิบวัน หรือทั้งหมด พร้อมพิมพ์ใบเสร็จซ้ำและสร้างข้อความใบเสร็จสำหรับส่งต่อ ส่วนใบกำกับภาษียังออกไม่ได้ เพราะออกได้เฉพาะผู้จดทะเบียน VAT และระบบยังไม่ได้บันทึกการจดทะเบียนของร้านไหน สำหรับร้านบริการ รายการขายดีอ่านได้ว่าทรีตเมนต์ไหนทำเงินจริง ซึ่งมักไม่ใช่อันที่ติดโปสเตอร์อยู่หน้าร้าน
CRM สร้างรายชื่อลูกค้าจากบัญชีการขาย พร้อมโน้ตและแท็ก ประวัติการซื้อ แต้มสะสมตามอัตราที่ร้านตั้งเอง เทียบกับของรางวัลที่ตั้งเองได้ ฝั่ง HR ดูแลเรื่องพนักงาน ทั้งลงเวลาเข้าออกพร้อม GPS และโน้ต การขอลา กะและเงินเดือนที่คิดจากนาทีที่ทำงานและโอทีหลังจากแปดชั่วโมงต่อวัน บนค่าจ้างรายชั่วโมงหรือรายเดือน ประกาศ และงานที่มอบหมายได้ เงินเดือนถูกจำกัดสิทธิ์การมองเห็น สมาชิกทั่วไปเห็นเฉพาะของตัวเอง เจ้าของกับผู้จัดการเห็นทุกคน
การเข้าถึงวิ่งบนตารางสิทธิ์ คือความสามารถหลักสิบสามอย่าง บวกกับที่โมดูลที่ติดตั้งประกาศเพิ่ม ชุดบทบาทสำเร็จรูปสำหรับเจ้าของ ผู้จัดการ พนักงานเสิร์ฟ ครัว และพนักงานทั่วไป พร้อมการปรับรายคน ไทล์จะหายไปเมื่อสมาชิกไม่มีสิทธิ์นั้น และสมาชิกที่ยังไม่มีสิทธิ์อะไรเลยจะเห็นหน้าจอที่บอกแบบนั้นตรง ๆ แทนที่จะเป็นรายการว่างที่อ่านแล้วเหมือนบั๊ก ในแอปแอนดรอยด์ การตรวจสิทธิ์เหล่านี้ทำงานฝั่งไคลเอนต์ ตารางเดียวกันมีอยู่ในฐานข้อมูลในชื่อ has_capability(business_id, capability) ที่ถูกกางออกฝั่งเซิร์ฟเวอร์ให้นโยบาย row-level security ใช้
ติดตั้งโมดูลเสริมเพิ่มเองได้
บริการเป็นหนึ่งในสี่โมดูลหลัก เคียงข้างกับร้านอาหาร ที่พัก และค้าปลีก คือประเภทธุรกิจนั่นแหละคือโมดูล โมดูลหนึ่งประกาศไอดี ประเภทธุรกิจที่มันรับผิดชอบ ป้ายชื่อ ชื่อแคตตาล็อก ปุ่มหลักที่ให้ลูกค้ากด หน้าแคตตาล็อก และถ้ามีก็ประกาศความสามารถ ไทล์ในคอนโซล หน้าจอในคอนโซล และส่วนหนึ่งของหน้าเพจที่ลูกค้าเห็น สัญญาข้อตกลงนี้คือเหตุผลที่ตัวแก้ไขสิทธิ์ถูกสร้างขึ้นมาเองอัตโนมัติจากความสามารถทั้งหมดที่โมดูลที่ติดตั้งประกาศไว้
บนนั้นมีส่วนเสริมที่ติดตั้งได้อีกเจ็ดตัว ซึ่งใช้ได้กับธุรกิจทุกประเภท ติดตั้งจาก Plugin Store ในคอนโซล ได้แก่ สิทธิ์ของทีม ช่องทางชำระเงิน สมาชิกและการสมัครสมาชิกรายรอบ การเตือนต่ออายุ โปรเจกต์และงาน คลังวัตถุดิบและการผลิต และระบบอัตโนมัติ สองตัวที่เข้าคู่กับธุรกิจบริการอย่างชัดเจนคือสมาชิกกับการเตือนต่ออายุ คือแพ็กที่ลูกค้าซื้อจากหน้าเพจของร้าน และการเตือนก่อนมันหมดอายุ การถอนการติดตั้งอยู่หลังหน้ายืนยันที่บอกตรง ๆ ว่าข้อมูลไม่ได้ถูกลบ และส่วนเสริมที่ถอนแล้วจะไม่ส่งไทล์ ไม่ส่งสิทธิ์ และไม่ส่งส่วนที่ลูกค้าเห็นเข้ามาอีก ปลั๊กอินจากภายนอกยังไม่เปิด และตัวสโตร์เองก็บอกไว้แบบนั้น สิ่งที่มีอยู่วันนี้คือสถาปัตยกรรมแบบโมดูลพร้อมส่วนเสริมที่เราทำเอง ส่วนการเปิดรับจากภายนอกคือขั้นถัดไป
รีวิว เขียนได้หลังนัดหมายจบแล้ว
การใช้บริการเป็นหนึ่งในประเภทที่นับในวิวสิทธิ์รีวิว ลูกค้าที่เข้ารับบริการจริงจึงเขียนรีวิวได้ ส่วนคนอื่นเห็นการ์ดล็อกที่อธิบายว่าทำไมปุ่มนั้นไม่อยู่ตรงนั้น คะแนนดาวถูกคำนวณใหม่ด้วยทริกเกอร์ในฐานข้อมูลจากแถวรีวิว ไม่เคยพิมพ์ใส่ รีวิวแนบรูปได้ มีสรุปการกระจายคะแนนห้าถึงหนึ่ง แก้หรือลบรีวิวล่าสุดของตัวเองได้ เขียนรีวิวใหม่ตอนกลับมาใช้ซ้ำโดยที่อันเก่ายังอยู่ และเจ้าของร้านตอบกลับแบบสาธารณะได้