Vấn đề khách hàng gặp phải
Doanh nghiệp tour đảo tại tỉnh Trang, hoạt động 9 năm, có fleet speedboat + tàu lớn tổng capacity cấp trăm ghế/ngày, chạy tuyến 4 islands tour, private charter, và Hin Daeng/Hin Muang dive trips (điểm lặn cấp thế giới cách bờ 2 tiếng tàu). Giá package day-tour 1.200-2.800 baht/người, dive trip 3.800-6.500 baht/người. Vấn đề mà chủ là người gốc tỉnh Trang + cưới dive master người Đức chia sẻ lúc discovery call là revenue 72% đến từ OTA (Klook 38%, GetYourGuide 22%, Viator 12%) trừ hoa hồng 22-28%/booking.
Cơ cấu khách rất thú vị — Malaysia 28%, Singapore 18%, Trung 16%, Thái 22%, Úc/Âu 16%. Nhóm MY/SG/CN phần lớn tìm thông tin qua search engine ngôn ngữ của mình (Google MY/SG, Baidu, Xiaohongshu) nhưng website cũ là Wix chỉ hỗ trợ tiếng Anh + LCP 5,8s trên mobile → conversion rate rất thấp (< 0,8%). Khách vì vậy chọn qua Klook có Mandarin interface thay.
Vấn đề “nhức đầu” hơn là Hin Daeng/Hin Muang là dive site cấp “world top 10” (theo xếp hạng PADI + Scuba Diving Magazine), là product margin cao nhất của khách (margin 45% so với day-tour 18-22%), nhưng web cũ không có dive booking flow nào. Khách phải email + gửi chứng chỉ PADI manual → mất 2-3 ngày confirm, làm người ta hủy đi đặt dive operator đối thủ có instant booking.
Mục tiêu đặt với chúng tôi lúc kickoff là direct booking +350% trong 6 tháng + giảm OTA dependency từ 72% còn không quá 45% + integrate dive booking flow verify PADI cert instant.
Tại sao solution cũ không work
Wix hỗ trợ multilingual qua Wix Multilingual app khách thử năm 2024 rồi gặp 3 vấn đề — translated URL không optimize cho Google country-specific search (Singapore, Malaysia, Trung), checkout flow hỏng khi đổi ngôn ngữ giữa session, và phí license app + Wix Business VIP plan tổng 18.000 baht/năm nhưng performance không tốt hơn.
Đã trao đổi với FareHarbor + Rezdy + Bokun. Mọi SaaS hỗ trợ tour booking tốt nhưng không có cái nào hỗ trợ 3 business logic chính của khách.
Điểm 1 — Dive cert verification: Khách đặt Hin Daeng dive phải có PADI Advanced Open Water + 25 logged dives tối thiểu. SaaS thông thường không có cert verification flow check lên PADI Pro Chek hoặc SSI database.
Điểm 2 — Multi-boat shuffle: Khi tàu A nhỏ có booking không đủ capacity (15/30 seats) hệ thống phải suggest auto-merge với tàu B trên cùng tuyến để optimize fuel cost. SaaS thông thường bắt buộc 1 trip = 1 tàu, không flexible.
Điểm 3 — Multi-currency real-time: Khách MY/SG/CN cần thấy giá trong tiền của mình (MYR, SGD, CNY) + lock rate lúc checkout. Phần lớn SaaS kéo rate từ fixer.io update theo giờ làm rate không khớp bank rate khách thấy trong online banking → trust issue.
Quan trọng hơn — Hin Daeng dive operator đối thủ trong khu vực lân cận đã có Mandarin website + dive booking instant 3 năm nay, kéo market share từ khách Trung rất nhanh. Nếu không làm bây giờ thì 2 năm nữa sẽ tụt chuyến.
Phương án của Southern Whale
Sau discovery call 2 lần + on-site visit 1 ngày để ride trip thật và trao đổi với boat captain, chúng tôi đặt 4 pillars.
1) Astro migration + Performance baseline chọn Astro thay Wix để LCP < 1,5s + i18n routing native (TH/EN/ZH/MS) mà Wix khó làm + zero plugin attack surface (Wix từng breach năm 2024), deploy trên Cloudflare Pages + R2 cho 280+ ảnh underwater từ dive master người Đức.
2) Custom booking engine + dive cert verification Xây booking platform trên Supabase hỗ trợ day-tour + dive trip + private charter trong một hệ thống. PADI cert verification qua PADI Pro Chek API + SSI Diver Verification + manual upload cho cert agency khác (NAUI, BSAC, CMAS). Cho phép khách đặt dive trip instant nếu cert verify qua.
3) Multilingual SEO + Mandarin presence Viết content hub 22 bài bằng TH/EN/ZH/MS (8 ZH + 4 MS thêm) phủ Emerald Cave guide, island beach guide, dugong watching tại tỉnh Trang, Hin Daeng dive site profile, southern Thai food in Trang. Với Mandarin SEO đăng ký account Xiaohongshu (Little Red Book) + WeChat official cho khách PRC.
4) Day-tour + dive package bundle Thiết kế booking flow để khách chọn day-tour + Hin Daeng dive add-on (ngày kế) + accommodation package trong cùng giao dịch → tăng average order value + reduce checkout friction.
Quy trình triển khai (Week-by-Week)
Week 1-2: Discovery + Architecture Phỏng vấn team gồm owner + dive master + boat captains + admin, ride 4-island trip 1 ngày + Hin Daeng dive trip 1 ngày để hiểu operational reality, design Supabase schema 24 tables phủ boat, trip, dive cert, customer, payment, refund, audit log.
Week 3-5: Backend + Booking Engine Booking API kèm seat-lock 5 phút, real-time fleet sync via Supabase Realtime, payment processors Stripe (multi-currency MYR/SGD/CNY/USD/EUR/THB) + PromptPay QR + bank transfer, dive cert verification integration với PADI Pro Chek + SSI API, multi-boat shuffle logic suggest merge khi tàu có seat không đầy.
Week 6-7: Customer Frontend + Multilingual Migrate Wix → Astro 22 trang, build mobile-first booking UI (75% traffic đến từ mobile), implement i18n routing 4 ngôn ngữ lazy-load locale bundle (initial bundle 42KB), checkout flow hỗ trợ multi-currency lock rate lúc checkout.
Week 8-9: Content + SEO + GBP Viết 22 bài TH/EN/ZH/MS (native writer cả 4 ngôn ngữ), implement Schema markup Trip + TouristAttraction + DiveSpot + FAQPage, optimize Google Business Profile 4 ngôn ngữ + submit local citations 30 directories (TripAdvisor, Klook, Padi Travel, Scuba Diving Magazine, etc.).
Week 10: QA + Launch End-to-end testing booking flow mọi payment + mọi ngôn ngữ, dive cert verification test với test account PADI + SSI, accessibility audit WCAG AA, soft launch 5 ngày gradual rollout.
Sau launch tiếp tục 6-month retainer làm content 3 bài/tháng + Xiaohongshu post weekly + monthly performance review.
Obstacles + Pivots
Vấn đề 1: PADI Pro Chek API rate limit — PADI API giới hạn 1.000 requests/ngày cho tier free + phải trả USD 500/tháng cho tier hỗ trợ 10.000 requests. Fix bằng cache verified cert result trong Supabase 90 ngày + check lại chỉ trường hợp cert expiry gần → dùng tier free đủ.
Vấn đề 2: Mandarin content lên Baidu chậm — tháng đầu sau launch Mandarin traffic thấp hơn dự kiến vì Baidu crawler có IP block list cho TH hosting. Fix bằng submit sitemap trực tiếp qua Baidu Webmaster + thêm Xiaohongshu content + nhờ KOL Hong Kong/Singapore (2 người qua dive community network) viết review trip của operator → 5 tuần sau Mandarin traffic tăng 4 lần.
Vấn đề 3: Tháng 2 sau launch dive booking tụt 18% — trùng giai đoạn PADI ra policy mới một số nước (Singapore) phải có dive insurance trong phạm vi Đông Nam Á trước — thêm dive insurance partner (DAN Asia-Pacific) vào checkout flow dạng optional add-on (450 baht/ngày). 3 tuần dive booking quay lại và vượt cũ + tăng margin từ insurance commission.
Post-launch + Ongoing
Trong 4 tháng sau launch organic traffic tăng từ 180 lên 3.960 sessions/tháng (+2.100%). Direct booking +380%. OTA dependency giảm từ 72% còn 42%. Dive package attach rate (khách đặt day-tour + Hin Daeng dive add-on trong cùng giao dịch) ở mức 28% — là channel revenue mới mà trước launch không có.
Lessons learned Dive booking cần technical depth mà general tour booking không làm được — cert verification + insurance integration + dive site condition feed (weather + tide + visibility) là moat giúp kéo dive customer. Khách MY/SG/CN phản hồi rất tốt với multi-currency + native language content — đầu tư vào 4-language stack ROI cao hơn dự kiến.
Hiện khách vẫn là retainer client tháng thứ 6 và bắt đầu phase 2 — thêm liveaboard 3-day Hin Daeng trip + mở dive certification course (Open Water tại tỉnh Trang) đặt được qua cùng web. Xem hệ thống đặt tour Krabi dùng pattern tương tự, hoặc software development service cho custom build khác.