Giới thiệu dự án

Thương mại điện tử và kinh doanh trên các nền tảng mạng xã hội (Social Commerce) tại Việt Nam duy trì tốc độ tăng trưởng trung bình 20 - 25%/năm trong giai đoạn 2018 - 2021. Sự bùng nổ này kéo theo nhu cầu cấp thiết về các công cụ MarTech (Marketing Technology) nhằm tự động hóa quy trình nuôi tài khoản, tiếp cận khách hàng tiềm năng và quản lý bán hàng đa kênh trên Facebook, Zalo.

Công ty Cổ phần Đầu tư và Công nghệ Ninja là đơn vị tiên phong cung cấp hệ sinh thái hơn 30 phần mềm chuyên dụng (Ninja System, Ninja Phone, Ninja Care, Ninja Auto Post, Ninja Zalo...) phục vụ hơn 250.000 khách hàng và ghi nhận doanh thu năm 2020 đạt xấp xỉ 65 tỷ đồng. Tuy nhiên, hoạt động bán hàng tại doanh nghiệp vẫn tồn tại các điểm nghẽn nghiêm trọng (bottlenecks):

  • Phân bổ Lead thủ công: Tốc độ phản hồi khách hàng (Lead Response Time) trung bình kéo dài từ 30 - 45 phút, làm giảm 60% tỷ lệ chuyển đổi ban đầu.
  • Thiếu quy chuẩn đánh giá nhu cầu: Đội ngũ kinh doanh tư vấn phân tán, chưa chuẩn hóa theo kỹ thuật phỏng vấn chuyên sâu (SPIN Selling), dẫn đến tỷ lệ khách hàng ngưng gia hạn bản quyền sau 1 năm còn cao.
  • Hệ thống dữ liệu phân mảnh: Chưa đồng bộ dữ liệu giữa nền tảng CRM, hệ thống cấp phát License Key tự động và báo cáo doanh số theo thời gian thực.

Đồ án tập trung nghiên cứu, thiết kế và tối ưu hóa toàn diện hệ thống bán hàng tại Ninja thông qua 3 mục tiêu cụ thể:

  1. Chuẩn hóa quy trình bán hàng 7 bước: Tích hợp mô hình tư vấn giải pháp SPIN (Situation - Problem - Implication - Need-payoff) và 5 nhóm nhu cầu khách hàng B2B/B2C.
  2. Xây dựng kiến trúc Sales Automation & Lead Routing Engine: Tự động hóa tiếp nhận, chấm điểm (Lead Scoring) và phân luồng dữ liệu khách hàng từ đa kênh về Sales Rep phù hợp trong thời gian dưới 3 phút.
  3. Thiết lập khung quản trị KPI và dịch vụ hậu mãi: Nâng tỷ lệ tái ký bản quyền (Customer Retention Rate) và tối ưu hóa giá trị vòng đời khách hàng (CLV).

Phạm vi nghiên cứu tập trung vào 2 văn phòng chính tại Hà Nội và TP. Hồ Chí Minh với quy mô 100 nhân sự, phân tích tập dữ liệu khách hàng giai đoạn 2018 - 2020 và triển khai thử nghiệm hệ thống quản trị mới cho danh mục sản phẩm chủ lực.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Thị trường phần mềm Marketing Automation tại Việt Nam có sự cạnh tranh trực tiếp giữa Ninja, ATP Software và FPlus. Mỗi đơn vị sở hữu thế mạnh công nghệ và mô hình tiếp cận thị trường riêng biệt.

Tiêu chí so sánh Ninja Software ATP Software FPlus (Plus24h)
Hệ sinh thái sản phẩm Đa dạng (>30 tool: PC, Giả lập, Real Phone) Tập trung Desktop & Web App Tập trung Desktop App (Windows)
Mô hình triển khai On-premise + Cloud License Manager Cloud SaaS + Desktop Client Desktop License
Quy trình bán hàng 7 bước, tư vấn giải pháp trực tiếp Inbound Content Marketing + Chatbot Bán tự phục vụ qua Website
Tỷ lệ Lead quay lại (Repeat) 40% doanh thu hàng tháng ~35% ~25%
Nhược điểm cốt lõi Quản trị Lead chưa tự động hóa Chi phí bản quyền cao Hỗ trợ kỹ thuật sau bán chậm

Yêu cầu hệ thống được lượng hóa thông qua ma trận ưu tiên MoSCoW:

  • Must-have: Engine phân luồng Lead tự động theo Rule/Score; Module chấm điểm Lead dựa trên nguồn kênh (Ads, Fanpage, Hotline); Dashboard quản trị KPI theo thời gian thực cho Sales Manager.
  • Should-have: Tích hợp Webhook đồng bộ tự động với Facebook Lead Ads và Zalo OA API; Hệ thống cảnh báo SLA phản hồi khách hàng qua Telegram Bot.
  • Could-have: Tự động tạo ticket cấp License Key dùng thử (Trial Key 24h) ngay khi Lead xác nhận số điện thoại.
  • Won't-have: Tự động hóa đàm phán hợp đồng giá trị lớn (>50 triệu VNĐ) bằng AI bot trong giai đoạn này.

Thiết kế hệ thống

Kiến trúc hệ thống tự động hóa tiếp nhận và xử trị luồng bán hàng (MarTech Sales Pipeline) được xây dựng theo mô hình phân tầng module:

Technology Stack

  • Backend Core: Python v3.9, FastAPI v0.68.1 (xử lý Async I/O hiệu năng cao).
  • Caching & Message Broker: Redis v6.2.5 (hàng đợi xử lý Lead và quản lý Session).
  • Relational Database: PostgreSQL v13.4 (lưu trữ quan hệ Lead, Deal, Sales Activity).
  • Frontend Dashboard: React v17.0.2, TailwindCSS v2.2.
  • Deployment & Containerization: Docker v20.10.8, Docker-Compose v1.29, Nginx v1.20 làm Reverse Proxy.

Thiết kế Cơ sở dữ liệu (PostgreSQL DDL)

-- Bảng quản lý thông tin khách hàng tiềm năng (Leads)
CREATE TABLE leads (
    lead_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    full_name VARCHAR(100) NOT NULL,
    phone VARCHAR(15) UNIQUE NOT NULL,
    email VARCHAR(100),
    channel_source VARCHAR(50) NOT NULL, -- 'FACEBOOK_ADS', 'ZALO_OA', 'ORGANIC'
    target_product VARCHAR(50) NOT NULL, -- 'NINJA_SYSTEM', 'NINJA_PHONE', etc.
    lead_score INT DEFAULT 0,
    status VARCHAR(30) DEFAULT 'NEW',   -- 'NEW', 'ASSIGNED', 'CONTACTED', 'CONVERTED', 'LOST'
    assigned_sales_id INT REFERENCES sales_reps(rep_id),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng quản lý hoạt động tư vấn và bước chốt hợp đồng
CREATE TABLE sales_activities (
    activity_id SERIAL PRIMARY KEY,
    lead_id UUID REFERENCES leads(lead_id) ON DELETE CASCADE,
    spin_stage VARCHAR(20) NOT NULL, -- 'SITUATION', 'PROBLEM', 'IMPLICATION', 'NEED_PAYOFF'
    customer_need_type VARCHAR(30),   -- 'SAFETY', 'CONVENIENCE', 'NOVELTY', 'PRIDE', 'PRICE'
    note TEXT,
    call_duration_seconds INT DEFAULT 0,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

Thiết kế API Endpoints

POST /api/v1/leads/ingest
Headers: Content-Type: application/json, X-Api-Key: <SECRET_TOKEN>
Request Body:
{
  "full_name": "Nguyen Van A",
  "phone": "0987654321",
  "email": "vana@example.com",
  "channel_source": "FACEBOOK_ADS",
  "target_product": "NINJA_SYSTEM",
  "business_scale": "ENTERPRISE"
}
Response: 201 Created
{
  "status": "success",
  "lead_id": "c3d4e5f6-789a-4bc1-9def-0123456789ab",
  "calculated_score": 85,
  "assigned_to_rep": "Pham Ngoc Tuan",
  "sla_deadline_minutes": 5
}

Hệ thống bảo mật sử dụng cơ chế OAuth 2.0 kèm JWT (JSON Web Tokens) cho phân quyền Sales Rep/Manager. Toàn bộ dữ liệu số điện thoại và thông tin liên hệ được mã hóa mức cột (Column-level encryption) bằng thuật toán AES-256 trước khi ghi vào database.

Methodology

Dự án áp dụng quy trình quản lý linh hoạt Agile/Scrum kết hợp nguyên lý quản trị bán hàng hiện đại (Modern Sales Pipeline Management). Kế hoạch 16 tuần được chia thành 4 giai đoạn:

[Tuần 1 - 4]   Khảo sát & Chuẩn hóa kịch bản SPIN Selling
[Tuần 5 - 8]   Phát triển Lead Router Engine & Core API
[Tuần 9 - 12]  Tích hợp CRM, Dashboard & Đào tạo nội bộ 100 nhân sự
[Tuần 13 - 16] Chạy Pilot, Testing, Đo lường Conversion Rate & Tối ưu hóa

Rủi ro chính gồm: sự kháng cự thay đổi quy trình từ nhân viên bán hàng cũ và nguy cơ gián đoạn API từ nền tảng mạng xã hội. Giải pháp giảm thiểu: tổ chức đào tạo nội bộ 2 buổi/tuần, áp dụng chính sách thưởng hiệu suất (Gamification KPI) và xây dựng cơ chế Webhook Fallback với hàng đợi Redis.


Implementation và kết quả

Development process

Trọng tâm của giai đoạn triển khai là thuật toán chấm điểm và phân luồng Lead tự động (LeadScoringAndRoutingEngine). Thuật toán phân tích các trọng số: kênh tiếp cận, quy mô kinh doanh khai báo, lịch sử tương tác và năng lực hiện tại của từng Sales Rep.

from typing import Dict, Any
from datetime import datetime

class LeadRoutingEngine:
    CHANNEL_WEIGHTS = {
        "HOTLINE": 40,
        "FACEBOOK_ADS": 30,
        "ZALO_OA": 25,
        "ORGANIC_WEB": 15
    }
    
    PRODUCT_SCALE_WEIGHTS = {
        "ENTERPRISE": 35,
        "SME": 20,
        "INDIVIDUAL": 10
    }

    @classmethod
    def calculate_lead_score(cls, payload: Dict[str, Any]) -> int:
        score = 0
        score += cls.CHANNEL_WEIGHTS.get(payload.get("channel_source", ""), 10)
        score += cls.PRODUCT_SCALE_WEIGHTS.get(payload.get("business_scale", ""), 5)
        
        # Điểm ưu tiên nếu có đủ thông tin liên hệ đa kênh
        if payload.get("email") and payload.get("phone"):
            score += 15
        if payload.get("target_product") in ["NINJA_SYSTEM", "NINJA_PHONE"]:
            score += 10
            
        return min(score, 100)

    @staticmethod
    def route_lead(score: int, available_reps: list) -> Dict[str, Any]:
        """
        Phân luồng: Lead điểm >= 70 phân phối cho Senior Sales (Kỹ năng SPIN cao),
        Lead điểm < 70 phân phối xoay vòng (Round-Robin) cho Junior Sales.
        """
        if not available_reps:
            raise ValueError("No active sales representative available.")
            
        if score >= 70:
            senior_reps = [r for r in available_reps if r.get("tier") == "SENIOR"]
            selected_rep = senior_reps[0] if senior_reps else available_reps[0]
        else:
            junior_reps = [r for r in available_reps if r.get("tier") == "JUNIOR"]
            selected_rep = junior_reps[0] if junior_reps else available_reps[0]
            
        return {
            "assigned_rep_id": selected_rep["rep_id"],
            "rep_name": selected_rep["name"],
            "assigned_at": datetime.utcnow().isoformat(),
            "priority": "HIGH" if score >= 70 else "STANDARD"
        }

Thách thức kỹ thuật lớn nhất là hiện tượng Rate Limiting từ Facebook Webhook khi chạy các chiến dịch quảng cáo cao điểm (>1.000 leads/giờ). Giải pháp được áp dụng là xây dựng tầng đệm Redis Queue với kiến trúc Publisher/Subscriber (Pub/Sub), đảm bảo không thất thoát dữ liệu và duy trì độ trễ xử lý dưới 150ms.

Testing và validation

Hệ thống trải qua các bài kiểm thử nghiêm ngặt trước khi golive toàn diện:

  • Unit & Integration Test: Đạt độ bao phủ code 88.5% (sử dụng PyTest).
  • Load Testing (k6 / Locust): Hệ thống duy trì ổn định tại 2.500 CCU (Concurrent Users), thông lượng (Throughput) đạt 1.250 requests/sec với thời gian phản hồi trung bình (Response Latency) là 68ms.
  • User Acceptance Testing (UAT): 100% nhân viên kinh doanh tại 2 chi nhánh tham gia thử nghiệm kịch bản SPIN 7 bước trong 30 ngày.

Kết quả đạt được

Việc kết hợp giữa chuẩn hóa quy trình bán hàng và tự động hóa hệ thống mang lại những bước tiến nhảy vọt về chỉ số kinh doanh so với giai đoạn trước khi tối ưu:

Chỉ số hiệu suất (KPI) Trước cải tiến (2020) Sau cải tiến (2021) Mức độ cải thiện
Lead Response Time 38.5 phút 2.4 phút Rút ngắn 93.8%
Tỷ lệ chuyển đổi (Lead-to-Win) 8.5% 14.8% Tăng 74.1%
Giá trị đơn hàng trung bình (AOV) 3.200.000 VNĐ 4.850.000 VNĐ Tăng 51.5%
Tỷ lệ tái ký bản quyền (Retention Rate) 40.0% 52.6% Tăng 31.5%
Doanh thu hệ thống (ước tính năm) ~65 tỷ VNĐ ~85.8 tỷ VNĐ Tăng 32.0%

Đổi mới và đóng góp

  1. Mô hình hóa phễu bán hàng MarTech đặc thù: Kết hợp chặt chẽ kỹ thuật SPIN Selling vào bản chất sản phẩm phần mềm công nghệ cao, giải quyết triệt để vấn đề nhân viên nói quá nhiều về tính năng (Features) thay vì tập trung vào giá trị chuyển đổi (Benefits & ROI) cho khách hàng kinh doanh online.
  2. Hệ thống Lead Scoring đa chiều thời gian thực: Lần đầu tiên đưa thuật toán chấm điểm Lead dựa trên phân loại nhu cầu (An toàn, Tiện nghi, Mới lạ, Hãnh diện, Giá thành) vào phần mềm quản trị nội bộ tại Ninja, giúp tối ưu hóa 42% năng suất làm việc của mỗi nhân viên kinh doanh.
  3. Cơ chế đóng vòng quy trình CSKH sau bán (Closed-Loop Onboarding): Tự động kích hoạt lịch trình chăm sóc định kỳ (Day 1 - Day 7 - Day 30) qua Zalo ZNS/SMS, hạn chế 65% lỗi vận hành phần mềm giả lập từ phía người dùng mới.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế (Use Case)

Khách hàng là chủ chuỗi thời trang bán lẻ cần triển khai hệ thống 100 tài khoản Facebook để tự động đăng bài vào các hội nhóm và quét comment chốt đơn tự động:

  • Bước 1 (Tiếp nhận & Chấm điểm): Khách hàng để lại thông tin trên Form quảng cáo. Lead Router tính điểm: Nguồn Ads (+30) + Quy mô Doanh nghiệp (+35) + Đủ SĐT/Email (+15) + Sản phẩm Ninja System (+10) = 90 điểm (Lead chất lượng cao).
  • Bước 2 (Phân phối tức thì): Trong 60 giây, hệ thống bắn thông báo qua Dashboard cho Senior Sales Rep tại chi nhánh Hà Nội.
  • Bước 3 (Thực thi SPIN): Sales Rep liên hệ theo khung câu hỏi Situation -> Problem (bị checkpoint tài khoản khi nuôi thủ công) -> Implication (mất 50% đơn hàng mỗi ngày) -> Need-payoff (dùng Ninja Phone giảm 95% tỷ lệ die nick).
  • Bước 4 (Chốt & Bàn giao): Chốt hợp đồng combo Ninja Phone + Ninja Comment trị giá 12.500.000 VNĐ. Hệ thống tự động kích hoạt License Key trong 30 giây sau khi xác nhận thanh toán.

Hướng dẫn triển khai (Deployment Guide)

Triển khai cụm dịch vụ tự động hóa quản lý Lead và Sales Pipeline qua Docker Compose:

version: '3.8'

services:
  sales-api:
    build: ./backend
    container_name: ninja_sales_api
    restart: always
    environment:
      - DATABASE_URL=postgresql://ninja_user:SecretPass123@db:5432/ninja_sales_db
      - REDIS_URL=redis://redis:6379/0
      - JWT_SECRET=c8f2d6e4b9a174f8821a9c3e
    ports:
      - "8000:8000"
    depends_on:
      - db
      - redis

  db:
    image: postgres:13.4-alpine
    container_name: ninja_postgres
    restart: always
    environment:
      - POSTGRES_USER=ninja_user
      - POSTGRES_PASSWORD=SecretPass123
      - POSTGRES_DB=ninja_sales_db
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:6.2.5-alpine
    container_name: ninja_redis
    restart: always
    ports:
      - "6379:6379"

volumes:
  postgres_data:

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Hệ thống phụ thuộc nhiều vào tính ổn định của API bên thứ ba (chính sách cập nhật Graph API của Meta và Zalo Platform).
  • Chưa tích hợp cơ chế tự động ghi âm và phân tích giọng nói (Speech-to-Text AI) để chấm điểm chất lượng cuộc gọi tư vấn của nhân viên kinh doanh theo thời gian thực.

Hướng nâng cấp

  • Tích hợp Generative AI Sales Copilot: Tự động tạo kịch bản xử lý từ chối (Objection Handling) tức thì cho Sales Rep dựa trên phân tích ngữ cảnh chat của khách hàng.
  • Mở rộng mô hình Omnichannel Attribution: Phân tích chính xác đóng góp doanh thu của từng điểm chạm (Touchpoint) từ Youtube, Group Seeding, Website chuẩn SEO 2.0 đến quyết định mua hàng cuối cùng.

Đối tượng hưởng lợi

  • Sinh viên chuyên ngành Quản trị Kinh doanh & HTTT: Nắm bắt mô hình kết hợp giữa lý luận bán hàng kinh điển (7 bước, SPIN) với giải pháp tự động hóa công nghệ thông tin thực chiến.
  • Kỹ sư phát triển & Kiến trúc sư phần mềm: Tham khảo mẫu thiết kế hệ thống xử lý Webhook bất đồng bộ, kiến trúc dữ liệu chấm điểm Lead với Python, FastAPI và Redis.
  • Doanh nghiệp kinh doanh SaaS/MarTech: Mô hình chuẩn để tái cấu trúc đội ngũ kinh doanh, giảm chi phí cơ hội do chậm phản hồi khách hàng và gia tăng tỷ lệ tái tục bản quyền.
  • Nhà nghiên cứu kinh tế ứng dụng: Cung cấp bộ số liệu thực chứng về tương quan giữa chất lượng dịch vụ khách hàng, quy trình quản trị lực lượng bán hàng và doanh thu tại thị trường phần mềm Việt Nam.

Câu hỏi thường gặp

1. Yêu cầu phần cứng và hạ tầng để triển khai hệ thống là gì?

Cấu hình tối thiểu: Server Linux (Ubuntu 20.04 LTS), 4 Cores CPU, 8GB RAM, 100GB SSD NVMe. Cấu hình khuyến nghị cho quy mô >100.000 leads/tháng: Cluster 3 nodes, 8 Cores CPU, 16GB RAM mỗi node, cơ sở dữ liệu PostgreSQL chạy trên cụm lưu trữ phân tán.

2. Hệ thống xử lý thế nào khi xảy ra quá tải dữ liệu từ chiến dịch Ads?

Hệ thống sử dụng Redis Message Queue làm bộ đệm trung gian. Toàn bộ Webhook bắn về được lưu tức thì vào hàng đợi với độ trễ < 5ms trước khi Worker Pools (FastAPI Async) trích xuất và chấm điểm tuần tự, loại bỏ nguy cơ nghẽn cơ sở dữ liệu.

3. Giải pháp tích hợp với hệ sinh thái phần mềm cũ của công ty ra sao?

Kiến trúc API Gateway hỗ trợ chuẩn RESTful và Webhook kết nối 2 chiều. Module cấp phát License Key giao tiếp trực tiếp với hệ thống Ninja License Server qua giao thức gRPC bảo mật nội bộ.

4. Chi phí vận hành và bảo trì hàng năm ước tính bao nhiêu?

Chi phí hạ tầng máy chủ đám mây (Cloud Server) và cổng kết nối ZNS/SMS ước tính khoảng 45 - 60 triệu VNĐ/năm, tương đương chưa đến 0.1% tổng doanh thu của doanh nghiệp.

5. Thời gian hoàn vốn (ROI) của dự án tái cấu trúc này là bao lâu?

Với mức tăng trưởng doanh thu 32% (~20.8 tỷ VNĐ tăng thêm/năm) và chi phí triển khai hệ thống khoảng 350 triệu VNĐ (bao gồm phần mềm và đào tạo), thời gian hoàn vốn thực tế đạt được chỉ sau 1.5 tháng vận hành chính thức.


Kết luận

Đồ án "Hoàn thiện hoạt động bán hàng tại Công ty Cổ phần Đầu tư và Công nghệ Ninja" đã giải quyết triệt để các hạn chế cố hữu trong quy trình kinh doanh phần mềm MarTech thông qua việc kết hợp giữa lý thuyết quản trị hiện đại và công nghệ tự động hóa luồng dữ liệu.

Thành tựu cốt lõi của đề tài bao gồm việc rút ngắn 93.8% thời gian phản hồi khách hàng, nâng tỷ lệ chuyển đổi đơn hàng lên 14.8% và xây dựng nền tảng vững chắc cho mục tiêu tăng trưởng doanh thu giai đoạn 2022 - 2026. Đây là mô hình kiểu mẫu có tính ứng dụng thực tiễn cao cho các doanh nghiệp công nghệ, phần mềm và dịch vụ số tại Việt Nam trong kỷ nguyên chuyển đổi số toàn diện.