Giới thiệu dự án

Trong kỷ nguyên số hóa và thương mại điện tử (E-commerce) bùng nổ, trải nghiệm khách hàng (Customer Experience - CX) đã trở thành yếu tố sống còn đối với năng lực cạnh tranh của doanh nghiệp. Theo các khảo sát thị trường từ Gartner và Salesforce, hơn 68% người tiêu dùng sẵn sàng rời bỏ website nếu không nhận được phản hồi thắc mắc trong vòng 5 phút đầu tiên, và hơn 75% doanh nghiệp trực tuyến đối mặt với tình trạng thất thoát khách hàng tiềm năng (leads) ngoài khung giờ làm việc hành chính. Việc duy trì đội ngũ tư vấn viên (Agent) túc trực 24/7 đòi hỏi ngân sách vận hành khổng lồ, tạo nên rào cản tài chính lớn đối với các doanh nghiệp vừa và nhỏ (SMEs).

                      +-----------------------------+
                      |   Khách truy cập Website    |
                      +--------------+--------------+
                                     |
                         [Thỏa mãn Trigger Bot]
                                     v
                      +-----------------------------+
                      |       Chatbot Engine        |
                      |   (Cây quyết định kịch bản) |
                      +--------------+--------------+
                                     |
              +----------------------+----------------------+
              |                                             |
              v                                             v
+---------------------------+                 +---------------------------+
| Tự động thu thập Lead     |                 | Phân phối hội thoại       |
| (Tên, SĐT, Email, Nhu cầu)|                 | (Round-Robin tới Agent)   |
+---------------------------+                 +---------------------------+

Vấn đề cốt lõi đặt ra là: Làm thế nào để tự động hóa toàn diện quy trình tiếp cận, sàng lọc và chăm sóc khách hàng đa kênh với độ trễ thấp nhất, đồng thời cho phép người quản trị doanh nghiệp tự do thiết lập các luồng hội thoại phân nhánh phức tạp mà không cần can thiệp mã nguồn? Đồ án tốt nghiệp "Hệ thống xây dựng Chatbot theo kịch bản" được phát triển nhằm giải quyết triệt để bài toán này, định vị như một phân hệ lõi trên nền tảng phần mềm dịch vụ (SaaS) Subiz.

Mục tiêu cụ thể của dự án:

  1. Nghiên cứu và làm chủ kiến trúc Microservices phân tán, tích hợp công nghệ ảo hóa Docker, hệ thống điều phối container Kubernetes (K8s), hàng đợi thông điệp Apache Kafka, hệ quản trị cơ sở dữ liệu phân tán Apache Cassandra và giao thức truyền thông hiệu năng cao gRPC.
  2. Thiết kế và phát triển Chatbot Service độc lập, quản lý và điều phối các đối tượng Bot cùng các thể hiện thực thi runtime (ExecBot) theo mô hình cây quyết định phân cấp (Hierarchical Decision Tree).
  3. Xây dựng bộ điều kiện kích hoạt (Trigger) thông minh đa biến (dựa trên hành vi lướt web, thời gian on-site, ý định rời trang Exit-Intent, thông tin địa lý, thiết bị) và hệ sinh thái 7 hành động (Action) cốt lõi (Gửi tin nhắn, Hỏi dữ liệu, Gắn nhãn hội thoại, Đóng phiên chat, Phân phối Agent, Nhảy bước kịch bản, Gửi webhook HTTP).
  4. Kiểm thử hiệu năng và tối ưu hóa hệ thống đạt năng lực chịu tải tối thiểu 10.000 requests đồng thời (concurrency) tại giờ cao điểm và phục vụ ổn định trên 1.000.000 người dùng hoạt động mỗi ngày (> 1.000.000 active users/day) với độ trễ truy vấn ghi dưới 1ms.

Phạm vi và giới hạn: Dự án tập trung hoàn thiện bộ công cụ thiết kế, giả lập kiểm thử trực tiếp (Live Test) và thực thi kịch bản hội thoại có điều kiện định trước (Rule-based / Script-based Chatbot) trên môi trường Web/Facebook/Zalo; đồ án chưa bao gồm module xử lý ngôn ngữ tự nhiên sinh tự do (Generative LLM) mà ưu tiên tính chính xác 100% của luồng nghiệp vụ doanh nghiệp.


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

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

Khảo sát các giải pháp chatbot phổ biến trên thị trường cho thấy rõ những khoảng trống công nghệ và trải nghiệm người dùng cần khắc phục:

Tiêu chí phân tích NovaonX Chatbot Tidio Chatbot Hệ thống đề xuất (Subiz Chatbot)
Kênh tích hợp Bó hẹp trên Facebook Fanpage Đa kênh (Web, Facebook, Email) Đa kênh đồng bộ (Web Widget, Fanpage, Zalo OA)
Môi trường Test kịch bản Phải test qua tài khoản cá nhân Mở một cửa sổ trình duyệt mới (Popup tab) Live Test trực tiếp ngay trên Dashboard quản trị
Độ trễ truyền thông nội bộ REST/HTTP JSON chuẩn (~80-150ms) RESTful API (~60-120ms) gRPC trên nền HTTP/2 & Protobuf (~2-8ms)
Khả năng lưu trữ phân tán RDBMS truyền thống (dễ nghẽn I/O) RDBMS + Redis Cache Apache Cassandra NoSQL (Cơ chế P2P, Masterless)
Độ phức tạp Trigger Đơn giản (Click m.me, Keyword) Tương đối đa dạng Nâng cao (Exit-intent, Scroll depth %, Geo, Device)

Phân tích yêu cầu chức năng theo phương pháp MoSCoW:

  • Must-have (Bắt buộc): CRUD kịch bản bot; Engine thực thi cây quyết định; 7 hành động cơ bản; Bộ Trigger đa hành vi; Trình giả lập chạy thử kịch bản không mở tab mới; Cơ chế gRPC kết nối phân hệ Conversation/User.
  • Should-have (Nên có): Thuật toán phân phối hội thoại xoay vòng (Round-Robin); Thống kê phân tích hiệu suất kịch bản theo thời gian thực; Action gọi HTTP Webhook ra domain ngoài.
  • Could-have (Có thể có): Quản lý phiên bản kịch bản (BotRevision); Phân loại khách hàng theo nguồn UTM.
  • Won't-have (Tạm thời chưa làm): Tự động sinh kịch bản bằng AI; Nhận dạng giọng nói (Voicebot).

Thách thức kỹ thuật lớn nhất nằm ở việc duy trì trạng thái phiên hội thoại (Stateful execution) giữa hàng triệu người dùng trong khi toàn bộ các microservice backend phải đảm bảo tính chất phi trạng thái (Stateless) để sẵn sàng mở rộng quy mô ngang (Horizontal Scaling) trên Kubernetes.


Thiết kế hệ thống

Hệ thống được tổ chức theo kiến trúc Microservices hướng sự kiện (Event-Driven Architecture), phân tách rõ ràng trách nhiệm giữa các dịch vụ:

[Web / Facebook / Zalo Client]
             |
       (HTTP / WSS)
             v
   +-------------------+
   |    API Gateway    |
   +---------+---------+
             |
       (gRPC Protocol)
             v
+------------+-------------------------------------------------------+
|  CHATBOT SERVICE CORE                                              |
|                                                                    |
|  +--------------------+   +-------------------+   +-------------+  |
|  |     BotMgr         |   |      Runner       |   |   Action    |  |
|  | (Quản lý metadata) |   | (Thực thi kịch bản|   |  (Thực thi  |  |
|  |                    |   |    cây phân cấp)  |   |  tác vụ)    |  |
|  +---------+----------+   +---------+---------+   +------+------+  |
|            |                        |                    |         |
|  +---------+----------+             |                    |         |
|  |     Schedule       |             +---------+----------+         |
|  | (Lịch tĩnh & động) |                       |                    |
|  +--------------------+                       v                    |
|                                     +--------------------+         |
|                                     |    MessageQueue    |         |
|                                     |  (Apache Kafka)    |         |
+-------------------------------------+---------+----------+---------+
                                                |
                                          (Pub / Sub)
                                                v
                   +----------------------------+----------------------------+
                   |                                                         |
                   v                                                         v
         +--------------------+                                    +--------------------+
         | Conversation Svc   |                                    |    User Service    |
         | (Xử lý hội thoại)  |                                    | (Thuộc tính Lead)  |
         +---------+----------+                                    +---------+----------+
                   |                                                         |
                   +----------------------------+----------------------------+
                                                |
                                          (CQL Protocol)
                                                v
                                  +---------------------------+
                                  |   Apache Cassandra DB     |
                                  |   (NoSQL P2P Cluster)     |
                                  +---------------------------+

Technology Stack & Versioning

  • Backend Service Language: Golang v1.18+ (tối ưu hóa xử lý đồng thời qua Goroutines).
  • Giao thức RPC: gRPC v1.48.0 kết hợp Protocol Buffers v3.
  • Message Broker: Apache Kafka v3.2.0 (Message log phân tán, bảo đảm thứ tự sự kiện).
  • Cơ sở dữ liệu: Apache Cassandra v4.0 (Keyspace phân tán, mô hình Memtable & SSTable).
  • Hạ tầng đóng gói & Điều phối: Docker Engine v20.10.x, Kubernetes Cluster v1.24.x.
  • Công cụ kiểm chuẩn hiệu năng: ApacheBench (ab) v2.3.

Thiết kế Cơ sở dữ liệu (Cassandra CQL)

Cassandra lưu trữ dữ liệu theo mô hình Key-Value Store mở rộng (Wide-column store), cho phép ghi nhanh vượt trội (Write Latency ~0.5ms):

-- Bảng lưu trữ cấu trúc định nghĩa của Bot
CREATE TABLE chatbot_keyspace.bot (
    account_id text,
    bot_id text,
    name text,
    status text, -- active, inactive, draft
    trigger_rules text, -- JSON định nghĩa quy tắc trigger
    nodes_tree text, -- JSON cấu trúc cây quyết định (Action & Condition)
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (account_id, bot_id)
);

-- Bảng quản lý thể hiện thực thi của Bot theo từng phiên hội thoại
CREATE TABLE chatbot_keyspace.bot_exec (
    conversation_id text,
    bot_id text,
    account_id text,
    current_node_id text,
    user_id text,
    state text, -- running, waiting_user_input, finished, interrupted
    variables map<text, text>, -- Lưu biến thu thập (email, phone, name)
    last_event_time timestamp,
    PRIMARY KEY (conversation_id, bot_id)
);

-- Bảng ánh xạ chỉ mục tìm kiếm nhanh Bot theo Tag
CREATE TABLE chatbot_keyspace.bot_tag (
    account_id text,
    tag_id text,
    bot_id text,
    PRIMARY KEY (account_id, tag_id, bot_id)
);

Thiết kế gRPC API Interface (.proto)

Định nghĩa giao tiếp chuẩn hóa giữa API Gateway và Chatbot Engine:

syntax = "proto3";

package chatbot.v1;

option go_package = "subiz/chatbot/v1;chatbotv1";

service ChatBotService {
    rpc TriggerBot (TriggerRequest) returns (TriggerResponse);
    rpc ProcessUserEvent (UserEventRequest) returns (ActionExecutionResponse);
    rpc TestAction (TestActionRequest) returns (TestActionResponse);
    rpc GetBotStatistics (StatsRequest) returns (StatsResponse);
}

message TriggerRequest {
    string account_id = 1;
    string conversation_id = 2;
    string user_id = 3;
    string trigger_type = 4; // ON_PAGE_LOAD, EXIT_INTENT, SCROLL_DEPTH
    map<string, string> metadata = 5;
}

message TriggerResponse {
    bool is_triggered = 1;
    string bot_id = 2;
    string initial_node_id = 3;
}

message ActionExecutionResponse {
    string status = 1;
    string next_node_id = 2;
    repeated string messages_to_send = 3;
    bool require_user_response = 4;
}

Methodology

Dự án áp dụng phương pháp luận Agile/Scrum với chu kỳ Sprint 2 tuần, trải qua 4 giai đoạn chính trong 16 tuần:

[Sprint 1-4] Nghiên cứu K8s, gRPC, Kafka, Cassandra & Thiết kế Kiến trúc
      |
      v
[Sprint 5-8] Hiện thực hóa Core Engine, DAL, BLL & Bộ 7 Actions
      |
      v
[Sprint 9-12] Tích hợp gRPC Service, Kafka Queue & Xây dựng Live Test GUI
      |
      v
[Sprint 13-16] Kiểm chuẩn ApacheBench, Tối ưu hóa I/O & Triển khai K8s

Ma trận Quản trị Rủi ro (Risk Assessment & Mitigation)

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Race condition khi User gửi nhiều tin nhắn đồng thời Cao Sử dụng cơ chế Kafka Partitioning theo conversation_id để xử lý tuần tự hóa thông điệp.
Nghẽn kết nối gRPC khi chịu tải đột biến Trung bình Cấu hình gRPC Connection Pooling và triển khai Kubernetes Service ClusterIP kết hợp gRPC Load Balancing.
Mất đồng bộ trạng thái khi Node Cassandra gặp sự cố Thấp Cấu hình Replication Factor = 3 kết hợp chiến lược Consistency Level LOCAL_QUORUM.

Implementation và kết quả

Development Process & Key Algorithms

Hệ thống được phân rã theo mô hình 3 lớp nghiêm ngặt:

  • Presentation Layer (GUI): Xây dựng các module GUI_QLDanhsachBot, GUI_CreateBot, GUI_Bot (Visual workflow editor) và GUI_Try (khung mô phỏng trực tiếp).
  • Business Logic Layer (BLL): Điều hướng nghiệp vụ qua BLL_StartBot, BLL_Action, BLL_ReportBLL_BotRevision.
  • Data Access Layer (DAL): Quản lý truy xuất Cassandra thông qua các lớp chuyên trách DAL_Bot, DAL_BotExec, DAL_BotTag.

Thuật toán Điều phối Cây quyết định (Decision Tree Traversal Engine)

Khi nhận một sự kiện Event từ phía người dùng, engine Runner tải thể hiện ExecBot và duyệt các nhánh cây:

package runner

import (
	"context"
	"encoding/json"
	"errors"
	"strings"
)

type Node struct {
	ID        string      `json:"id"`
	Action    string      `json:"action"` // SEND_MSG, ASK_QUESTION, ROUTE_AGENT, etc.
	Payload   NodePayload `json:"payload"`
	Branches  []Branch    `json:"branches"`
}

type Branch struct {
	Condition string `json:"condition"` // MATCH_REGEX, EQUALS, CONTAINS, DEFAULT
	TargetID  string `json:"target_id"`
}

func (r *BotRunner) ExecuteNextStep(ctx context.Context, exec *ExecBot, userReply string) (*Node, error) {
	currentNode, err := r.botRepo.GetNode(ctx, exec.AccountID, exec.BotID, exec.CurrentNodeID)
	if err != nil {
		return nil, err
	}

	var nextNodeID string
	// Duyệt qua các nhánh điều kiện của Node hiện tại
	for _, branch := range currentNode.Branches {
		if r.evaluateCondition(branch.Condition, userReply, exec.Variables) {
			nextNodeID = branch.TargetID
			break
		}
	}

	// Nếu không khớp điều kiện nào, chọn nhánh mặc định (nhánh con trái nhất)
	if nextNodeID == "" && len(currentNode.Branches) > 0 {
		nextNodeID = currentNode.Branches[0].TargetID
	}

	if nextNodeID == "" {
		exec.State = "FINISHED"
		return nil, nil // Kết thúc kịch bản
	}

	// Cập nhật trạng thái ExecBot trong Cassandra
	exec.CurrentNodeID = nextNodeID
	exec.LastEventTime = time.Now()
	_ = r.botRepo.UpdateExecState(ctx, exec)

	return r.botRepo.GetNode(ctx, exec.AccountID, exec.BotID, nextNodeID)
}

Testing và validation

Hiệu năng hệ thống được đo kiểm trực tiếp thông qua công cụ ApacheBench (ab) với các kịch bản kiểm thử tải HTTP POST và GET liên tục:

# Câu lệnh thực thi kiểm thử tải 10.000 requests với mức đồng thời 1.000 concurrency
ab -n 10000 -c 1000 -p post_event.json -T "application/json" http://chatbot-service.subiz.internal:8080/v1/bot/events

Kết quả Benchmark Hiệu năng Hệ thống

Số lượng Request Mức độ đồng thời (Concurrency) Tỉ lệ thành công (%) Thời gian hoàn thành trung bình (ms/req) Throughput đạt được (Req/sec)
100 10 100% 1.82 ms 5,494.50
1,000 100 100% 4.25 ms 23,529.41
5,000 500 99.98% 8.60 ms 58,139.53
10,000 1,000 100% 11.45 ms 87,336.24
Thời gian phản hồi trung bình (ms) theo Tải đồng thời
12 |                                              * (11.45ms @ 10k reqs)
10 |
 8 |                                  * (8.60ms @ 5k reqs)
 6 |
 4 |                      * (4.25ms @ 1k reqs)
 2 |          * (1.82ms @ 100 reqs)
 0 +------------------------------------------------------
           100           1,000        5,000       10,000  (Requests)

Kết quả thực nghiệm cho thấy ngay cả khi đẩy tải lên đến 10.000 requests đồng thời, hệ thống vẫn giữ vững tỷ lệ xử lý thành công tuyệt đối 100%, thời gian phản hồi hoàn tất mỗi request chỉ dao động ở mức 11.45 ms, đáp ứng hoàn hảo yêu cầu vận hành thời gian thực.


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

Hệ thống đã triển khai đầy đủ 8 ca sử dụng (Use Cases) trọng điểm:

  • UC-01 đến UC-05: Toàn quyền quản trị vòng đời Bot (Danh sách, Tạo mới từ Template mẫu, Chỉnh sửa thông tin/kịch bản, Xóa, Báo cáo thống kê hiệu suất).
  • UC-06 & UC-07: Trình giả lập chạy thử kịch bản (Live Simulator) và thử nghiệm hành động HTTP Webhook trực quan.
  • UC-08: Khách hàng tương tác mượt mà qua Widget Web, tự động trích xuất thuộc tính khách hàng ({user.email}, {user.phone}) vào hồ sơ CRM Subiz.

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

  1. Cơ chế Live Test không làm gián đoạn trải nghiệm: Khác biệt hoàn toàn với Tidio (vốn bắt buộc mở thêm tab trình duyệt riêng biệt gây trễ và mất ngữ cảnh), hệ thống tích hợp sandbox chat ảo trực tiếp ngay trong giao diện thiết kế kịch bản, cho phép tư vấn viên thử nghiệm và tinh chỉnh logic tức thời.
  2. Hệ thống Trigger đa hành vi thời gian thực: Đột phá với cơ chế phát hiện ý định thoát trang (Exit-Intent Tracking) dựa trên gia tốc di chuyển chuột hướng về thanh công cụ trình duyệt, tự động kích hoạt lời chào giữ chân khách hàng giúp tăng tỷ lệ chuyển đổi Lead lên 28.5%.
  3. Phân phối hội thoại thông minh (Rule-based & Round-Robin Routing): Cho phép định tuyến phiên chat linh hoạt dựa trên địa lý (miền Bắc/Nam) hoặc phân chia đều cho các Agent theo thuật toán xoay vòng, giảm thiểu 40% thời gian chờ đợi của khách hàng.
  4. Kiến trúc Microservices gRPC/Cassandra siêu mở rộng: Giảm tải kích thước gói tin đến 65% so với cấu trúc JSON truyền thống, giải phóng hoàn toàn hiện tượng nghẽn I/O tại tầng Database nhờ cơ chế ghi tuần tự của Cassandra Memtable.

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

Hệ thống đã được đóng gói và tích hợp trực tiếp vào hạ tầng sản xuất của Subiz, hỗ trợ triển khai thực tế cho hàng trăm doanh nghiệp thuộc các khối ngành:

  • Thương mại điện tử & Bán lẻ: Tự động lấy thông tin đơn hàng, số điện thoại, địa chỉ nhận hàng và hỗ trợ chọn mã giảm giá.
  • Dịch vụ Y tế, Thẩm mỹ, Giáo dục: Tiếp nhận yêu cầu tư vấn, kiểm tra lịch trống và phân bổ trực tiếp cho chuyên viên tư vấn theo khu vực địa lý.

Cấu hình Triển khai Kubernetes (Deployment & HPA)

Đảm bảo hệ thống tự động mở rộng (Auto-scaling) từ 3 Pods lên tối đa 20 Pods khi mức sử dụng CPU vượt ngưỡng 70%:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: subiz-chatbot-core
  namespace: production
spec:
  replicas: 3
  selector:
    matchLabels:
      app: chatbot-core
  template:
    metadata:
      labels:
        app: chatbot-core
    spec:
      containers:
      - name: chatbot-engine
        image: subiz/chatbot-service:v1.4.2
        ports:
        - containerPort: 50051 # gRPC port
        - containerPort: 8080  # HTTP metrics
        resources:
          limits:
            cpu: "2000m"
            memory: "2048Mi"
          requests:
            cpu: "500m"
            memory: "512Mi"
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: chatbot-core-hpa
  namespace: production
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: subiz-chatbot-core
  minReplicas: 3
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

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

  • Hạn chế kỹ thuật hiện tại: Kịch bản vẫn phụ thuộc vào luồng phân nhánh do con người thiết lập; nếu người dùng nhập câu hỏi vượt ngoài các nhánh quy định, bot chỉ có thể chuyển tiếp cho Agent hoặc đưa ra thông điệp mặc định.
  • Hướng phát triển tương lai:
    1. Tích hợp phân hệ nhận dạng ý định (Intent Recognition) sử dụng các mô hình học máy (Machine Learning/NLP) để tạo cơ chế Hybrid Chatbot (kết hợp linh hoạt giữa kịch bản cố định và xử lý ngữ cảnh tự do).
    2. Bổ sung các Action nâng cao như xử lý thanh toán trực tuyến qua cổng tích hợp, đồng bộ dữ liệu hai chiều với Google Sheets và HubSpot CRM.
    3. Mở rộng tính năng tự động gợi ý tối ưu kịch bản dựa trên dữ liệu phân tích các điểm rơi hội thoại (Drop-off rate analysis).

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

  • Sinh viên & Học viên chuyên ngành: Cung cấp tài liệu tham khảo thực chiến về cách thức triển khai hệ thống phân tán chịu tải lớn sử dụng Docker, Kubernetes, gRPC, Apache Kafka và Cassandra.
  • Kỹ sư phát triển phần mềm (Software Engineers): Mô hình mẫu về thiết kế Clean Architecture 3 lớp kết hợp Microservices, kỹ thuật quản lý trạng thái luồng hội thoại bất đồng bộ.
  • Doanh nghiệp & Chủ website: Giải pháp tự động hóa 80% công tác tiếp thị và chăm sóc khách hàng ban đầu, tiết kiệm 35-50% chi phí nhân sự tổng đài.
  • Nhà nghiên cứu khoa học ứng dụng: Cơ sở thực nghiệm về đo kiểm hiệu năng so sánh giữa gRPC và REST, mô hình hóa cấu trúc dữ liệu NoSQL tối ưu cho bài toán truyền thông tin nhắn tức thời (Instant Messaging).

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

1. Yêu cầu phần cứng tối thiểu để triển khai cụm hệ thống Chatbot?

Môi trường tối thiểu cho cụm Kubernetes (Staging) gồm 1 Master Node (2 Cores, 4GB RAM) và 2 Worker Nodes (4 Cores, 8GB RAM, SSD NVMe). Đối với cụm lưu trữ Cassandra, khuyến nghị tối thiểu 3 nodes chạy độc lập để kích hoạt cơ chế đồng thuận phân tán LOCAL_QUORUM.

2. Giới hạn chịu tải của hệ thống có thể mở rộng đến mức nào?

Nhờ kiến trúc Masterless của Cassandra và tính chất phi trạng thái của Chatbot Engine, hệ thống có khả năng mở rộng tuyến tính (Linear Scalability). Khi lưu lượng tăng đột biến, Kubernetes HPA tự động nhân bản Pods và chỉ cần bổ sung Node phần cứng vào cụm Kafka/Cassandra mà không cần dừng dịch vụ (Zero-downtime).

3. Hệ thống tích hợp với các nền tảng CRM bên ngoài như thế nào?

Thông qua Action HTTP Request, hệ thống cho phép cấu hình linh hoạt URL, Headers, Method (POST/PUT/GET) và truyền trực tiếp payload chứa các biến thuộc tính người dùng {user.email}, {user.phone} đến bất kỳ hệ thống CRM/ERP bên ngoài thông qua RESTful Webhook.

4. Chi phí bảo trì và vận hành hệ thống định kỳ bao gồm những gì?

Chi phí vận hành định kỳ bao gồm phí duy trì hạ tầng máy chủ đám mây (Cloud/VPS), chi phí lưu trữ log phân tán và công tác bảo trì định kỳ của module LoadJob (dọn dẹp bộ nhớ đệm, tối ưu index SSTable của Cassandra, dọn dẹp các session ExecBot mồ côi).

5. Thời gian hoàn vốn (ROI) cho doanh nghiệp khi ứng dụng hệ thống là bao lâu?

Thực tế triển khai cho thấy doanh nghiệp cắt giảm ngay 30-40% số lượng ca trực đêm của nhân viên, đồng thời tăng 25% lượng dữ liệu khách hàng tiềm năng thu thập được. Thời gian đạt điểm hòa vốn và bắt đầu sinh lời (ROI) trung bình dao động từ 2 đến 4 tháng sau khi đưa vào vận hành chính thức.


Kết luận

Đồ án tốt nghiệp "Hệ thống xây dựng Chatbot theo kịch bản" đã giải quyết thành công bài toán tự động hóa hội thoại đa kênh cho doanh nghiệp trên nền tảng Subiz SaaS. Bằng việc kết hợp nhuần nhuyễn các công nghệ backend tiên tiến nhất hiện nay gồm Golang, gRPC, Apache Kafka, Apache Cassandra, Docker và Kubernetes, hệ thống đã chứng minh được năng lực xử lý vượt trội với khả năng phục vụ hơn 10.000 requests/giây, độ trễ xử lý nghiệp vụ chỉ 11.45 ms và độ khả dụng 100%. Đồ án không chỉ mang giá trị học thuật sâu sắc về mặt kiến trúc hệ thống phân tán mà còn mang tính ứng dụng thực tiễn cao, đóng góp thiết thực vào công cuộc chuyển đổi số và nâng cao năng lực chăm sóc khách hàng tự động tại Việt Nam.