Skip to main content

กำลังโหลด...

Southern Whale
Audit SEO Miễn Phí
Du lịch / Travel Krabi Dự án phần mềm tùy chỉnh — Booking & Automation Suite

Case Study: Hệ thống Automation toàn diện cho công ty tour tại tỉnh Krabi

Công ty tour tại tỉnh Krabi (tên doanh nghiệp giữ kín vì lý do bảo mật)

Đ
Đội ngũ Southern Whale · Software Consultant
·
-67%
Admin Time
Từ 6 giờ/ngày còn 1.5 giờ
0 lần
Double-booking
Sau khi launch không còn overbooking
8 phút
LINE Response Time
Từ 4 giờ, chatbot xử lý 60% queries
Tháng thứ 8
ROI Break-even
So với SaaS hàng tháng $800/tháng

1. Tình hình của khách hàng

Công ty tour cỡ trung tại tỉnh Krabi, đón 50-80 khách mỗi ngày, cung cấp dịch vụ tour snorkeling, sunset cruise và island hopping (4 islands, Hong islands, Phi Phi). Team gồm 1 owner, 3 admin, hướng dẫn viên và thuyền trưởng đối tác khoảng 15 người.

Các vấn đề phát hiện lúc discovery:

  • LINE booking quá tải: Nhận inquiry và booking qua LINE OA 100+ tin/ngày, 3 admin luân phiên trả lời không kịp vào khung giờ 9:00-11:00.
  • Excel scheduling: Lịch tàu làm trong Google Sheets chia sẻ giữa team, không có locking mechanism — gặp double-book khoảng 2-3 lần/tuần vào high season.
  • Không có real-time inventory: Tour snorkeling và island hopping dùng cùng một tàu vào một số ngày, nhưng Excel không liên kết quan hệ, admin phải nhớ.
  • Bank transfer + slip: Khách chuyển vào SCB rồi gửi slip qua LINE, admin phải mở app ngân hàng kiểm tra từng giao dịch 5-10 phút/slip.
  • Cancellation chaos: Hủy/dời ngày ghi trong sổ note, không sync vào Excel, nhiều lần bị complain.
  • Tax/báo cáo rối: Tổng hợp số gửi kế toán cuối tháng mất 2 ngày trọn vẹn.

Khách từng thử 2 solution có sẵn:

  • TourCMS: UX kiểu admin-heavy của phương Tây, team Thái không quen dùng và không hỗ trợ PromptPay.
  • Bokun: Giá ~800 USD/tháng + commission per booking vượt budget, vẫn phải workaround cho multi-tour inventory.

Mục tiêu rõ ràng: Giảm admin time từ 6 giờ/ngày → 1.5 giờ và lockdown over-booking về 0.

2. Tại sao solution thông thường không work

  • PromptPay là dealbreaker: Off-the-shelf SaaS như TourCMS, Rezdy chỉ hỗ trợ thẻ credit và Stripe. Khách Thái 80% chuyển qua PromptPay/tài khoản ngân hàng. Hệ thống phải generate QR dynamic per booking và verify slip tự động.
  • Multi-tour inventory chồng chéo: Nhiều tour share resource (cùng tàu, cùng guide, cùng chỗ ngồi trên tàu lớn) — generic system nhìn tour như standalone product không mô phỏng được. Cần schema tách “resource” và “tour product” ra riêng biệt.
  • UI tiếng Thái mà admin hiểu: Team admin 35-50 tuổi dùng LINE là chính, chưa từng dùng CRM/SaaS dashboard tiếng Anh — cần UI “giống LINE” tức thread-based, tiếng Thái mọi chỗ, không có jargon.

3. Cách tiếp cận của chúng tôi

Tech stack được chọn:

  • Next.js 14 (App Router) — admin dashboard + customer booking page chung trong cùng codebase
  • tRPC + Prisma + PostgreSQL — type-safe end-to-end, schema migration dễ
  • Cloudflare Workers — edge functions cho webhook LINE + slip verification queue
  • PromptPay QR library (promptpay-qr) — generate dynamic QR theo booking
  • Google Cloud Vision API — OCR slip ngân hàng Thái
  • LINE Messaging API + Webhook — chatbot và confirmation push

ROI trình bày cho chủ:

Lựa chọnNăm 1Năm 2Năm 3
SaaS (Bokun ~$800/mo)~$9,600~$9,600~$9,600
Custom (one-time ~$9,500 + hosting $200/mo)~$11,900~$2,400~$2,400

Break-even ở tháng thứ 8 — sau đó custom rẻ hơn ~75%/năm và là tài sản của công ty.

4 Pillars của solution:

  1. Real-time inventory engine — WebSocket broadcast khi có booking mới, mọi browser session thấy seat count update tức thì + DB-level locking ngăn race condition
  2. PromptPay automation — generate QR per booking, slip verification bằng OCR (Google Vision đọc số tài khoản + amount + timestamp)
  3. LINE webhook chatbot — trả lời FAQ có pattern rõ ràng (giá, giờ ra tàu, điểm hẹn), để booking phức tạp cho admin
  4. Mobile-first admin dashboard — admin dùng mobile 70% thời gian, UI design start từ mobile breakpoint

Discovery process: Trước khi bắt đầu code, team chúng tôi xin shadow-day 1 ngày trọn vẹn (8:00-18:00) ngồi cạnh từng admin, ghi pain point mọi điểm. Kết quả phát hiện admin mất 40% thời gian để “tìm booking cũ” — nên thêm search-first design vào dashboard.

4. Tuần qua tuần

Week 1-2: Discovery & Architecture

  • Shadow-day 1 ngày với admin team
  • Stakeholder interview với owner + admin lead
  • Database schema design — 15 tables (bookings, tours, resources, schedule_slots, customers, payments, slip_verifications, line_messages, v.v.)
  • User journey mapping 4 personas: walk-in customer, repeat customer, agency, owner

Week 3-5: Backend Core

  • Next.js + tRPC scaffold + Prisma migrations
  • Authentication (admin + agency tier)
  • Booking domain logic + inventory lock
  • Payment integration: SCB Easy Net API + PromptPay QR generator
  • Unit test quan trọng: race condition booking, inventory overflow

Week 6-8: Frontend & Realtime

  • Admin dashboard UI (Thai-first, mobile breakpoint trước)
  • Customer-facing booking flow (3-step: chọn tour → nhập thông tin → thanh toán)
  • Real-time inventory via WebSocket (Cloudflare Durable Objects)
  • Calendar view + drag-to-reschedule

Week 9-10: LINE & OCR

  • LINE webhook setup + intent classification (rule-based + GPT fallback)
  • FAQ chatbot cho 12 câu hỏi phổ biến
  • Booking confirmation push message kèm QR code
  • OCR slip verification pipeline + manual review queue

Week 11: Migration & UAT

  • Excel import tool (nhận legacy booking 6 tháng gần nhất ~2,400 record)
  • UAT với 3 admin — tìm 8 critical bug (3 high, 5 medium) fix hết trong 4 ngày
  • Penetration test cơ bản (SQL injection, auth bypass)

Week 12: Launch

  • Soft launch: 50% traffic qua feature flag 3 ngày
  • Training admin team 4 sessions (1 giờ/session) hoàn toàn tiếng Thái
  • Full launch + monitoring dashboard 24 giờ đầu
  • Knowledge transfer doc + runbook

5. Vấn đề gặp phải

  • OCR accuracy chỉ 87%: Slip SCB/Krungthai format chuẩn đọc tốt nhưng slip mobile banking screenshot (đặc biệt Kbank app phiên bản cũ) confidence thấp — khắc phục bằng manual review queue cho slip confidence <90%, admin kiểm 1-click confirm trung bình 15 giây/slip (giảm từ 5-10 phút cũ).

  • Scope creep xuất hiện giữa project: Week 7 owner xin thêm agency tier pricing (commission chia cho travel agency gửi khách đến) — không nằm trong scope ban đầu. Team chúng tôi estimate mất +1 tuần, làm contract amendment rõ ràng (+25,000 baht, timeline dời 5 ngày), owner accept trước khi bắt đầu code — quan trọng là không làm free vì sẽ mở cửa cho scope creep tiếp theo.

  • Admin team adoption chậm: 2 tuần đầu 1 admin vẫn gọi hotline 3-4 lần/ngày — khắc phục bằng video tutorial tiếng Thái 8 clip (mỗi clip 2-3 phút) + hand-holding 1 tháng trọn vẹn (response SLA 4 giờ). Tuần thứ 4 giảm còn 0-1 lần/tuần.

6. Kết quả sau launch + ongoing

Kết quả trong tháng 1:

  • Admin time: 6 giờ/ngày → 2 giờ/ngày (-67%)
  • Double-booking: 2-3 lần/tuần → 0
  • LINE response time: 4 giờ → 8 phút (chatbot xử lý 60% queries, để admin focus booking)
  • Slip verification: 5-10 phút/slip → 15 giây/slip (OCR auto-confirm 87%)
  • Báo cáo cuối tháng: 2 ngày → 30 phút (export từ dashboard)

Bài học rút ra:

  • Tour operator Thái cần tool “cảm giác giống LINE” — ban đầu chúng tôi thiết kế UI sạch sẽ kiểu Notion, admin nói “trông đơn giản quá, không biết cái nào quan trọng”. Chúng tôi điều chỉnh thành card-heavy + emoji quen thuộc, adoption tăng ngay lập tức.
  • Shadow-day đáng giá nhất — 1 ngày xuống ngồi với admin cho insight nhiều hơn 5 buổi meeting requirement gathering.
  • Manual review queue không phải failure — người dùng còn thích vì cảm thấy “kiểm soát được” — dạy ta automation 100% không phải lúc nào cũng là mục tiêu.

Ongoing engagement: Chúng tôi tiếp tục dưới dạng retainer 8 giờ/tháng bao gồm bug fix, small features (quý vừa rồi thêm voucher system + multilingual booking page EN/CN), security patch và monitoring. Tháng thứ 6 sau launch bắt đầu discussion phase 2 — thêm supplier portal cho thuyền trưởng check-in khách qua mobile.

Đ

Về tác giả

Đội ngũ Southern Whale

Software Consultant

Dự án tương tự?

Tư vấn miễn phí · giới hạn 3–5 dự án mỗi tháng