Zenvoy — แพลตฟอร์ม SaaS สำหรับบริหารทีม Remote
โจทย์ที่เราได้รับ
Zenvoy ต้องการแทนที่ระบบ spreadsheet + Line group ที่ใช้บริหารทีม Remote อยู่เดิม ด้วย web app ที่ HR และผู้จัดการสามารถเห็นภาพรวมทีมได้แบบ real-time รองรับพนักงานทั้งในไทยและต่างประเทศ และเชื่อมกับ payroll provider ที่ใช้อยู่แล้วได้
ความท้าทายคือต้องรองรับ timezone หลายโซน, สกุลเงินหลายสกุล และ permission matrix ที่ซับซ้อน (Employee / Team Lead / HR / Admin / Super Admin)
วิธีที่เราแก้ปัญหา
เราเลือก Nuxt 3 เป็น frontend และ Supabase เป็น backend เพราะ Supabase RLS (Row-Level Security) ทำให้ implement permission matrix ได้ตรงไปตรงมา โดยไม่ต้องเขียน middleware จำนวนมาก
สำหรับ real-time features เช่น attendance tracking และ notification เราใช้ Supabase Realtime Channels ซึ่งลด complexity ได้มากเมื่อเทียบกับ WebSocket server แยก
Billing ใช้ Stripe Billing แบบ per-seat subscription พร้อม grace period และ dunning management
สิ่งที่ทำให้ Project นี้น่าสนใจ
ส่วนที่ท้าทายที่สุดคือ timezone-aware time tracking พนักงานในกรุงเทพ, ลอนดอน และโตเกียวต้องเห็นเวลาในโซนของตัวเองเสมอ แต่ database ต้องเก็บ UTC ทั้งหมด เราออกแบบ composable useWorkHours ที่จัดการ conversion อย่างโปร่งใส และเขียน unit test ครอบ edge case ต่างๆ เช่น DST transition และ midnight shift
นอกจากนี้เราทำ export pipeline ที่สร้าง CSV/Excel ตาม format ที่ payroll provider แต่ละรายต้องการ ซึ่งลด manual work ของ HR ลงได้มากที่สุด
ผลลัพธ์
| Metric | ก่อน | หลัง 3 เดือน |
|---|---|---|
| เวลา HR ต่อเดือน (ชั่วโมง) | 38 ชั่วโมง | 15 ชั่วโมง |
| ข้อผิดพลาดของ payroll | 4–6 ครั้ง/เดือน | 0 ครั้ง |
| Onboarding พนักงานใหม่ | 2 วัน | 30 นาที |
| NPS Score จากทีม HR | — | 78 |
"ก่อนหน้านี้ปิด payroll แต่ละเดือนใช้เวลาทั้งสัปดาห์ ตอนนี้แค่กดปุ่มเดียว Venoct ช่วยเราได้จริงๆ"
— คุณนภา ชุมพูทอง, Head of People, Zenvoy Technologies
Lessons Learned
โปรเจกต์นี้ทำให้เรามั่นใจมากขึ้นว่า Supabase RLS เป็น pattern ที่ scale ได้ดีสำหรับ multi-tenant SaaS เพียงแต่ต้องออกแบบ policy ให้รัดกุมตั้งแต่ต้น เพราะการแก้ไข policy ย้อนหลังบน production table ที่มีข้อมูลเยอะนั้น risky มาก เราเลยพัฒนา checklist สำหรับ RLS design ที่ใช้ในทุกโปรเจกต์ SaaS ตั้งแต่นั้นมา
