URD: Hỗ trợ khách hàng
| Module | CORE-13 | Phiên bản | v0.2 |
|---|---|---|---|
| Trạng thái | In-progress | Ngày | 2026-05-29 |
1. Mục đích
Định nghĩa các yêu cầu hướng người dùng cho module Hỗ trợ khách hàng — quản lý ticket hỗ trợ, định tuyến agent, thực thi SLA, cơ sở tri thức, khảo sát hài lòng, và theo dõi yêu cầu tính năng — để đội hỗ trợ của một merchant có thể giải quyết vấn đề khách hàng trong mức dịch vụ đã cam kết.
Trạng thái build: backend tồn tại nhưng hiện không biên dịch, nên các yêu cầu bên dưới mô tả hành vi dự kiến. Cho tới khi build được sửa, không yêu cầu nào nên được coi là đã-xác-minh-ship. Xem tổng quan module.
2. Phạm vi
| Bao gồm | Loại trừ |
|---|---|
| Vòng đời ticket hỗ trợ (CRUD + máy trạng thái) | Gợi ý trả lời hỗ-trợ-AI (tương lai) |
| Tin nhắn theo luồng (khách hàng / agent / ghi chú nội bộ) | Vi phạm SLA dự đoán (tương lai) |
| Đính kèm file trên tin nhắn | Tiếp nhận đa-kênh (email, Zalo, Messenger) |
| Danh mục, ưu tiên, thẻ ticket | Cổng tự-phục-vụ khách hàng (tương lai) |
| Chính sách SLA + theo dõi từng-ticket + leo thang đa-cấp | Dashboard báo cáo SLA (module Báo cáo) |
| Quản lý agent (hồ sơ, nhóm, quy tắc) và tự phân công | Cấp tài khoản người dùng (Quản lý người dùng) |
| Bài viết, danh mục, phản hồi, theo dõi lượt xem cơ sở tri thức | |
| Khảo sát CSAT / NPS / CES; bỏ phiếu yêu cầu tính năng | |
| Cấp đền bù (tín dụng, voucher, hoàn tiền, …) | |
| Thông báo thời gian thực + email và tùy chọn |
3. Định nghĩa
| Thuật ngữ | Định nghĩa |
|---|---|
| Ticket | Một yêu cầu hỗ trợ khách hàng được theo dõi với một trạng thái vòng đời |
| Agent | Một người dùng merchant xử lý ticket, với khả dụng, kỹ năng, và một giới hạn khối lượng |
| SLA | Service Level Agreement — thời gian phản-hồi-đầu và giải-quyết đã cam kết theo ưu tiên |
| SLA tracker | Bản ghi từng-ticket về thời hạn và thời gian đã trôi so với một chính sách SLA |
| Leo thang | Định tuyến một ticket bị vi phạm hoặc nghiêm trọng tới một cấp hỗ trợ cao hơn |
| Ghi chú nội bộ | Một tin nhắn chỉ agent thấy được, không bao giờ khách hàng |
| CSAT / NPS / CES | Các loại khảo sát Customer Satisfaction / Net Promoter / Customer Effort |
4. Mô hình khái niệm
Chỉ mang tính khái niệm — schema đầy đủ nằm trong mô hình miền nhà phát triển.
5. Yêu cầu chức năng
Một bảng cho mỗi khu vực chức năng. Mã
<AREA>khớp với ID của test case. Ưu tiên = MoSCoW (Must / Should / Could / Won't).
5.1 Quản lý ticket (TKT)
| ID | P | Yêu cầu |
|---|---|---|
| URD-TKT-001 | M | Tạo một ticket với tiêu đề, mô tả, danh mục, và ưu tiên |
| URD-TKT-002 | M | Một ticket luôn theo phạm vi một merchant duy nhất |
| URD-TKT-003 | M | Loại người báo: khách-hàng-tạo hoặc agent-tạo thay mặt một khách hàng |
| URD-TKT-004 | M | Ticket theo vòng đời 8-trạng-thái: OPEN → ASSIGNED → IN_PROGRESS → WAITING_USER / WAITING_INTERNAL → ESCALATED → RESOLVED → CLOSED |
| URD-TKT-005 | M | Phân công một ticket cho một agent, thủ công hoặc tự động |
| URD-TKT-006 | M | Ghi nhận chi tiết phân công, giải quyết, và đóng (ai, khi nào, ghi chú giải quyết) |
| URD-TKT-007 | M | Lưu ngữ cảnh ticket để làm giàu từ các dịch vụ liên quan |
| URD-TKT-008 | M | Duy trì một dấu vết kiểm toán đầy đủ về mọi thay đổi trạng thái và hành động |
| URD-TKT-009 | S | Mở lại một ticket nếu khách hàng trả lời sau khi nó được đánh dấu đã giải quyết |
| URD-TKT-010 | S | Khách hàng xác nhận giải quyết; ticket tự đóng sau 48h không có phản hồi |
| URD-TKT-011 | S | Làm giàu chú thích một ticket với ngữ cảnh merchant/đơn tự động |
| URD-TKT-012 | S | Ticket chỉ được xóa-mềm |
5.2 Tin nhắn ticket (MSG)
| ID | P | Yêu cầu |
|---|---|---|
| URD-MSG-001 | M | Thêm tin nhắn loại bình luận, trả lời khách hàng, trả lời agent, ghi chú nội bộ, tin hệ thống, hoặc tự-trả-lời |
| URD-MSG-002 | M | Ghi chú nội bộ chỉ agent thấy được, không bao giờ khách hàng |
| URD-MSG-003 | M | Tin nhắn hỗ trợ đính kèm file |
| URD-MSG-004 | M | Theo dõi tác giả và loại tác giả (khách hàng / agent) của mỗi tin nhắn |
| URD-MSG-005 | S | Hệ thống tự thêm một tin hệ thống vào mỗi chuyển đổi trạng thái |
5.3 Danh mục, Thẻ & Ưu tiên (CAT)
| ID | P | Yêu cầu |
|---|---|---|
| URD-CAT-001 | M | Danh mục ticket phân cấp (cha/con) với biểu tượng và màu |
| URD-CAT-002 | M | Một danh mục định nghĩa ưu tiên mặc định, kỹ năng yêu cầu, nhóm mặc định, và chính sách SLA |
| URD-CAT-003 | M | Quản lý thẻ ticket (tạo, sửa, gỡ) |
| URD-CAT-004 | S | Thêm và gỡ thẻ trên một ticket |
| URD-CAT-005 | M | Bốn cấp ưu tiên: Low, Medium, High, Critical |
5.4 Quản lý SLA (SLA)
| ID | P | Yêu cầu |
|---|---|---|
| URD-SLA-001 | M | Định nghĩa chính sách SLA với thời gian phản hồi và thời gian giải quyết theo ưu tiên |
| URD-SLA-002 | M | Cấu hình ngưỡng cảnh báo (mặc định 75%) và nghiêm trọng (mặc định 90%) |
| URD-SLA-003 | M | Tùy chọn giới hạn đồng hồ SLA chỉ trong giờ làm việc |
| URD-SLA-004 | M | Tạo một SLA tracker khi tạo ticket với thời hạn phản hồi và giải quyết |
| URD-SLA-005 | M | Một monitor theo lịch đánh dấu trạng thái cảnh báo và vi phạm tự động |
| URD-SLA-006 | M | Ghi nhận thời gian phản-hồi-đầu và thời gian-tới-giải-quyết |
| URD-SLA-007 | M | Hỗ trợ ba cấp leo thang (L1, L2, L3) |
| URD-SLA-008 | M | Loại leo thang: vi phạm SLA, thủ công, yêu cầu khách hàng, tác động cao, báo cáo sự cố |
| URD-SLA-009 | S | Quy tắc leo thang có thể cấu hình trong một chính sách SLA |
| URD-SLA-010 | S | Chính sách SLA của một danh mục ticket ghi đè mặc định toàn cục |
5.5 Quản lý agent (AGT)
| ID | P | Yêu cầu |
|---|---|---|
| URD-AGT-001 | M | Liên kết một tài khoản người dùng làm agent trong một merchant (một agent cho mỗi người dùng) |
| URD-AGT-002 | M | Trạng thái khả dụng của agent: online, away, offline, busy |
| URD-AGT-003 | M | Agent định nghĩa kỹ năng, ngôn ngữ, và một giới hạn ticket đồng thời tối đa |
| URD-AGT-004 | M | Nhóm agent và quản lý thành viên nhóm |
| URD-AGT-005 | M | Cấu hình quy tắc phân công ưu-tiên-hóa theo từng merchant |
| URD-AGT-006 | M | Chiến lược phân công: round robin, skill-based, skill-based round robin, load-balanced, manual, best experience, fastest resolution |
| URD-AGT-007 | M | Một worker tự-phân-công đánh giá quy tắc và chọn agent rảnh tốt nhất |
| URD-AGT-008 | S | Theo dõi hiệu suất agent: thời gian phản hồi/giải quyết trung bình, tuân thủ SLA, điểm hài lòng |
| URD-AGT-009 | S | Lịch agent cho khả dụng giờ-làm-việc |
| URD-AGT-010 | M | Bỏ qua một agent đã ở giới hạn ticket đồng thời tối đa của mình |
5.6 Cơ sở tri thức (KB)
| ID | P | Yêu cầu |
|---|---|---|
| URD-KB-001 | S | Tạo và quản lý bài viết đa-ngôn-ngữ (tiêu đề, nội dung, trích đoạn) |
| URD-KB-002 | S | Vòng đời bài viết: draft → published → archived |
| URD-KB-003 | S | Bài viết có danh mục, tác giả, ngôn ngữ, slug duy-nhất-toàn-cục, và thẻ |
| URD-KB-004 | S | Theo dõi số lượt xem, hữu ích, và không-hữu-ích cho mỗi bài viết |
| URD-KB-005 | S | Danh mục bài viết phân cấp |
| URD-KB-006 | C | Khách hàng gửi phản hồi hữu ích / không-hữu-ích |
| URD-KB-007 | C | Theo dõi lượt xem ghi nhận từng lượt xem bài viết |
5.7 Khảo sát & Phản hồi (SRV)
| ID | P | Yêu cầu |
|---|---|---|
| URD-SRV-001 | S | Tạo khảo sát loại CSAT, NPS, hoặc CES |
| URD-SRV-002 | S | Chế độ kích hoạt: sau-giải-quyết, sau-đóng, hoặc định kỳ |
| URD-SRV-003 | S | Thêm và sắp xếp lại câu hỏi khảo sát |
| URD-SRV-004 | S | Một worker tự gửi khảo sát cho khách hàng sau giải quyết |
| URD-SRV-005 | S | Thu và lưu phản hồi khảo sát |
| URD-SRV-006 | S | Dữ liệu phản hồi cấp nguồn cho điểm hài lòng của agent |
5.8 Yêu cầu tính năng (FR)
| ID | P | Yêu cầu |
|---|---|---|
| URD-FR-001 | S | Khách hàng gửi yêu cầu tính năng với tiêu đề, mô tả, danh mục, thẻ |
| URD-FR-002 | S | Vòng đời: submitted → under review → planned → in development → completed / declined / duplicate |
| URD-FR-003 | S | Một phiếu cho mỗi khách hàng; hủy phiếu được hỗ trợ |
| URD-FR-004 | S | Một yêu cầu tính năng có thể được liên kết tới một ticket nguồn |
| URD-FR-005 | C | Ghi chú nội bộ và giải quyết cho đội sản phẩm |
5.9 Đền bù (CMP)
| ID | P | Yêu cầu |
|---|---|---|
| URD-CMP-001 | S | Cấp đền bù khi vi phạm SLA hoặc theo quyết định của agent |
| URD-CMP-002 | S | Loại: tín dụng cửa hàng, voucher, hoàn tiền, chiết khấu, miễn phí vận chuyển |
| URD-CMP-003 | S | Vòng đời: pending → processing → completed / failed / cancelled / expired |
| URD-CMP-004 | S | Liên kết đền bù tới một ticket và, tùy chọn, một leo thang |
5.10 Thông báo (NTF)
| ID | P | Yêu cầu |
|---|---|---|
| URD-NTF-001 | M | Thông báo thời gian thực tới agent và khách hàng về sự kiện ticket |
| URD-NTF-002 | S | Thông báo email khi tạo, phân công, trả lời, và giải quyết |
| URD-NTF-003 | S | Tùy chọn thông báo theo từng người dùng (opt-in theo từng loại sự kiện) |
| URD-NTF-004 | S | Mẫu thông báo tùy chỉnh theo từng sự kiện |
| URD-NTF-005 | S | Giao theo lô với một nhật ký giao theo-từng-người-nhận |
6. Tiêu chí chấp nhận
AC-TKT-01: Tạo ticket
| Cho | Khi | Thì |
|---|---|---|
| Khách hàng đã xác thực | Tạo một ticket với trường bắt buộc | Ticket lưu là OPEN; SLA tracker khởi tạo với thời hạn |
| Quy tắc phân công đã cấu hình | Ticket được tạo | Tự phân công chạy trong 2 phút; trạng thái → ASSIGNED |
AC-TKT-02: Chuyển đổi trạng thái
| Cho | Khi | Thì |
|---|---|---|
| Ticket OPEN | Agent được phân công | Trạng thái → ASSIGNED |
| Ticket ASSIGNED | Agent gửi trả lời đầu tiên | Trạng thái → IN_PROGRESS; thời gian phản-hồi-đầu được ghi nhận |
| Ticket IN_PROGRESS | Agent chờ thông tin khách hàng | Trạng thái → WAITING_USER |
| Ticket WAITING_USER | Khách hàng trả lời | Trạng thái → IN_PROGRESS |
| Ticket IN_PROGRESS | Agent đánh dấu đã giải quyết | Trạng thái → RESOLVED; chi tiết giải quyết được ghi nhận |
| Ticket RESOLVED | Khách hàng xác nhận | Trạng thái → CLOSED |
| Ticket RESOLVED | Khách hàng trả lời | Trạng thái → IN_PROGRESS (mở lại) |
AC-SLA-01: Thực thi SLA
| Cho | Khi | Thì |
|---|---|---|
| Chính sách SLA được áp | Ticket được tạo | Thời hạn phản-hồi-đầu = bây giờ + thời gian phản hồi |
| 75% thời hạn đã trôi | Monitor chạy | Trạng thái SLA = cảnh báo; agent được thông báo |
| 100% thời hạn đã trôi | Monitor chạy | Trạng thái SLA = vi phạm; leo thang L1 được tạo |
| Agent phản hồi đúng giờ | Trước thời hạn | Trạng thái phản-hồi-đầu = OK; thời-gian-tới-phản-hồi-đầu được ghi nhận |
AC-AGT-01: Phân công
| Cho | Khi | Thì |
|---|---|---|
| Quy tắc = round robin | Ticket đến | Agent tiếp theo trong vòng xoay được phân công |
| Quy tắc = skill-based; danh mục cần "billing" | Tự phân công chạy | Agent có kỹ năng đó và tải thấp nhất được chọn |
| Agent ở ticket đồng thời tối đa | Tự phân công chạy | Agent bị bỏ qua; agent đủ điều kiện tiếp theo được chọn |
| Không có agent rảnh | Tự phân công chạy | Leo thang tới quản lý |
7. Ràng buộc & Phi mục tiêu
Ràng buộc
| ID | Ràng buộc |
|---|---|
| C-01 | Ticket luôn theo phạm vi một merchant |
| C-02 | Một SLA tracker cho mỗi ticket; bất biến sau khi vi phạm |
| C-03 | Ghi chú nội bộ không bao giờ được trả về cho người tiêu thụ không-phải-agent |
| C-04 | Slug bài viết là duy nhất toàn cục |
| C-05 | Một hồ sơ agent cho mỗi người dùng |
| C-06 | Một phiếu yêu-cầu-tính-năng cho mỗi khách hàng cho mỗi yêu cầu |
| C-07 | Mọi bản ghi dùng xóa-mềm |
| C-08 | Một ticket đã giải quyết tự đóng 48h sau giải quyết nếu không xác nhận |
Phi mục tiêu
- Gợi ý trả lời hỗ-trợ-AI
- Cảnh báo vi phạm SLA dự đoán
- Tiếp nhận đa-kênh (email, Zalo OA, Facebook Messenger)
- Cổng ticket tự-phục-vụ hướng-khách-hàng
- Dashboard báo cáo SLA (module Báo cáo)
8. Lịch sử phiên bản
| Ngày | Tác giả | Mô tả | Ver |
|---|---|---|---|
| 2026-05-07 | GitHub Copilot | Bản nháp đầu từ khám phá schema và thiết-kế-hệ-thống | v0.1 |
| 2026-05-29 | Di trú tài liệu | Tái cấu trúc theo quy ước module; trạng thái đặt thành In-progress (build hỏng); mã khu vực căn theo test case | v0.2 |