URD: Hỗ trợ khách hàng
| Module | CORE-13 | Phiên bản | v0.3 |
|---|---|---|---|
| Trạng thái | In-progress | Ngày | 2026-06-04 |
Tài liệu nghiệp vụ. URD này là danh sách tính năng của Hỗ trợ khách hàng - mỗi tính năng bên dưới là một Mảng chức năng (
<AREA>). Cùng key<AREA>này dùng cho các PRD của tính năng (PRD-<AREA>-NNN) và test (TC-<AREA>-NNN), và mỗi tính năng được liệt kê trong danh mục tính năng Bàn giao. Xem quy ước Feature Spine.
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 đề của khách hàng trong mức dịch vụ đã cam kết.
Trạng thái build: backend đã có nhưng hiện không biên dịch được, 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, chưa yêu cầu nào nên được coi là đã kiểm chứng và phát hành. 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 dựa trên AI (tương lai) |
| Tin nhắn theo luồng (khách hàng / agent / ghi chú nội bộ) | Dự đoán vi phạm SLA (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ẻ cho ticket | Cổng tự phục vụ cho khách hàng (tương lai) |
| Chính sách SLA + theo dõi từng ticket + leo thang nhiều 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ủa cơ sở tri thức | |
| Khảo sát CSAT / NPS / CES; bình chọn 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, có trạng thái vòng đời |
| Agent | Một người dùng của merchant chuyên xử lý ticket, có trạng thái sẵn sàng, kỹ năng và giới hạn khối lượng |
| SLA | Service Level Agreement - thời gian phản hồi đầu tiên và thời gian giải quyết đã cam kết theo từng mức ưu tiên |
| SLA tracker | Bản ghi theo 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ờ hiển thị cho 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 của nhà phát triển.
5. Danh mục tính năng
Danh sách tính năng của module này. Mỗi hàng là một tính năng (một Mảng chức năng). Chi tiết ở §6. Phản chiếu trong danh mục tính năng Bàn giao.
| Feature ID | Tính năng | Phase | Trạng thái | Ưu tiên |
|---|---|---|---|---|
TKT | Quản lý ticket | P1 | In-progress | High |
MSG | Tin nhắn ticket | P1 | In-progress | High |
CAT | Danh mục, Thẻ & Ưu tiên | P1 | In-progress | High |
SLA | Quản lý SLA | P1 | In-progress | High |
AGT | Quản lý agent | P1 | In-progress | High |
KB | Cơ sở tri thức | P2 | In-progress | Medium |
SRV | Khảo sát & Phản hồi | P2 | In-progress | Medium |
FR | Yêu cầu tính năng | P2 | In-progress | Medium |
CMP | Đền bù | P1 | In-progress | Medium |
NTF | Thông báo | P1 | In-progress | High |
Trạng thái: live từ Plane nếu có map, còn lại do registry khai báo. Vocabulary đồng nhất với Plane (state-group / phase).
6. Tính năng
Một mục con cho mỗi tính năng, theo thứ tự danh mục. Mỗi tính năng gói gọn mô tả, yêu cầu và tiêu chí chấp nhận cùng nhau. Ưu tiên = MoSCoW (Must / Should / Could / Won't).
TKT - Quản lý ticket In-progress
Feature ID: helpdesk/TKT · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: khách hàng tạo ticket hỗ trợ và agent xử lý chúng qua một vòng đời 8 trạng thái, với phân công, giải quyết và đóng được theo dõi cùng một dấu vết kiểm toán đầy đủ.
Yêu cầu
| 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 nằm trong scope một merchant duy nhất |
| URD-TKT-003 | M | Loại người báo: do khách hàng tạo hoặc do agent tạo thay mặt khách hàng |
| URD-TKT-004 | M | Ticket đi 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 service 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à thao tác |
| 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 nếu không có phản hồi |
| URD-TKT-011 | S | Tự động chú thích một ticket với ngữ cảnh merchant/đơn hàng để làm giàu |
| URD-TKT-012 | S | Ticket chỉ được xóa mềm |
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 các trường bắt buộc | Ticket được lưu là OPEN; SLA tracker khởi tạo cùng các 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 vòng 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; ghi nhận thời gian phản hồi đầu tiên |
| Ticket IN_PROGRESS | Agent chờ thông tin từ 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; ghi nhận chi tiết giải quyết |
| 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) |
MSG - Tin nhắn ticket In-progress
Feature ID: helpdesk/MSG · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: mỗi ticket mang một luồng tin nhắn có phân loại - trả lời của khách hàng và agent, ghi chú nội bộ chỉ agent thấy, và tin nhắn hệ thống - mỗi tin nhắn có đính kèm và một tác giả được theo dõi.
Yêu cầu
| 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 nhắn hệ thống hoặc trả lời tự động |
| URD-MSG-002 | M | Ghi chú nội bộ chỉ agent thấy được, không bao giờ hiển thị cho 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 nhắn hệ thống vào mỗi lần chuyển đổi trạng thái |
Chấp nhận
AC-MSG-01: Khả năng hiển thị ghi chú nội bộ
| Cho | Khi | Thì |
|---|---|---|
| Agent thêm một ghi chú nội bộ trên một ticket | Một consumer không phải agent đọc luồng | Ghi chú nội bộ không bao giờ được trả về |
| Bất kỳ lần chuyển đổi trạng thái nào xảy ra | - | Một tin nhắn hệ thống được tự thêm |
CAT - Danh mục, Thẻ & Ưu tiên In-progress
Feature ID: helpdesk/CAT · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: ticket được phân loại theo danh mục phân cấp mang theo các mặc định định tuyến (ưu tiên, kỹ năng, nhóm, SLA), được gắn nhãn bằng thẻ và xếp hạng theo bốn mức ưu tiên.
Yêu cầu
| 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 mức ưu tiên: Low, Medium, High, Critical |
Chấp nhận
AC-CAT-01: Mặc định của danh mục
| Cho | Khi | Thì |
|---|---|---|
| Một danh mục có ưu tiên mặc định, kỹ năng, nhóm và chính sách SLA | Một ticket được phân loại vào đó | Các mặc định đó áp dụng cho ticket mới |
SLA - Quản lý SLA In-progress
Feature ID: helpdesk/SLA · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: mục tiêu phản hồi và giải quyết được định nghĩa theo từng mức ưu tiên và theo dõi theo từng ticket; một monitor theo lịch cảnh báo trước và gắn cờ sau khi vi phạm, leo thang qua ba cấp.
Yêu cầu
| 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 từng mức ư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 tự động đánh dấu trạng thái cảnh báo và vi phạm |
| URD-SLA-006 | M | Ghi nhận thời gian phản hồi đầu tiên và thời gian tới khi 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, khách hàng yêu cầu, 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 |
Chấp nhận
AC-SLA-01: Thực thi SLA
| Cho | Khi | Thì |
|---|---|---|
| Chính sách SLA được áp dụng | Ticket được tạo | Thời hạn phản hồi đầu tiên = bây giờ + thời gian phản hồi |
| 75% thời hạn đã trôi qua | 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 qua | Monitor chạy | Trạng thái SLA = vi phạm; leo thang L1 được tạo |
| Agent phản hồi đúng hạn | Trước thời hạn | Trạng thái phản hồi đầu tiên = OK; ghi nhận thời gian tới phản hồi đầu tiên |
AGT - Quản lý agent In-progress
Feature ID: helpdesk/AGT · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: nhân viên hỗ trợ được mô hình hóa thành agent với trạng thái sẵn sàng, kỹ năng, ngôn ngữ, nhóm và giới hạn khối lượng, và ticket mới được tự định tuyến tới agent rảnh phù hợp nhất qua các quy tắc có thể cấu hình.
Yêu cầu
| 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 sẵn sàng của agent: online, away, offline, busy |
| URD-AGT-003 | M | Agent khai báo kỹ năng, ngôn ngữ và giới hạn số ticket xử lý đồ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 có sắp xếp ưu tiên 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 phù hợp 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, mức tuân thủ SLA, điểm hài lòng |
| URD-AGT-009 | S | Lịch làm việc của agent để xác định khả năng sẵn sàng theo giờ làm việc |
| URD-AGT-010 | M | Bỏ qua một agent đã đạt giới hạn số ticket xử lý đồng thời tối đa của mình |
Chấp nhận
AC-AGT-01: Phân công
| Cho | Khi | Thì |
|---|---|---|
| Quy tắc = round robin | Ticket đến | Agent kế tiếp 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 đã đạt số ticket đồng thời tối đa | Tự phân công chạy | Agent bị bỏ qua; agent đủ điều kiện kế tiếp được chọn |
| Không có agent rảnh | Tự phân công chạy | Leo thang lên quản lý |
KB - Cơ sở tri thức In-progress
Feature ID: helpdesk/KB · Phase: P2 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: merchant xuất bản bài viết trợ giúp đa ngôn ngữ, sắp xếp trong danh mục phân cấp, để khách hàng có thể đọc, đánh giá hữu ích hay không, và lượt xem được theo dõi.
Yêu cầu
| 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, đoạn trích) |
| 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, số đánh giá 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 |
Chấp nhận
AC-KB-01: Xuất bản bài viết
| Cho | Khi | Thì |
|---|---|---|
| Một bài viết nháp với slug duy nhất toàn cục | Được xuất bản | Nó trở nên đọc được; lượt xem và số đánh giá hữu ích/không hữu ích được theo dõi |
SRV - Khảo sát & Phản hồi In-progress
Feature ID: helpdesk/SRV · Phase: P2 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: merchant chạy khảo sát CSAT, NPS hoặc CES, tự gửi sau khi một ticket được giải quyết, mà phản hồi của nó cấp nguồn cho điểm hài lòng của mỗi agent.
Yêu cầu
| 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 khi giải quyết, sau khi đó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 khi giải quyết |
| URD-SRV-005 | S | Thu thập 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 |
Chấp nhận
AC-SRV-01: Khảo sát sau khi giải quyết
| Cho | Khi | Thì |
|---|---|---|
| Một khảo sát kích hoạt sau khi giải quyết | Một ticket được giải quyết | Worker tự gửi khảo sát; phản hồi được lưu và cấp nguồn cho điểm hài lòng của agent |
FR - Yêu cầu tính năng In-progress
Feature ID: helpdesk/FR · Phase: P2 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: khách hàng gửi và bình chọn cho yêu cầu tính năng, các yêu cầu này đi qua một vòng đời theo dõi sản phẩm và có thể liên kết ngược tới ticket đã làm phát sinh chúng.
Yêu cầu
| 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ỗ trợ hủy phiếu |
| 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à ghi chú giải quyết cho đội sản phẩm |
Chấp nhận
AC-FR-01: Một phiếu cho mỗi khách hàng
| Cho | Khi | Thì |
|---|---|---|
| Một khách hàng đã bình chọn cho một yêu cầu | Bình chọn lại | Số phiếu không đổi; hỗ trợ hủy phiếu |
CMP - Đền bù In-progress
Feature ID: helpdesk/CMP · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: agent cấp đền bù thiện chí - tín dụng cửa hàng, voucher, hoàn tiền, chiết khấu hoặc miễn phí vận chuyển - trên một ticket bị vi phạm hoặc khó xử lý, được theo dõi qua vòng đời riêng của nó.
Yêu cầu
| 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 lần leo thang |
Chấp nhận
AC-CMP-01: Cấp đền bù
| Cho | Khi | Thì |
|---|---|---|
| Một lần vi phạm SLA hoặc quyết định của agent | Đền bù được cấp | Nó được liên kết tới ticket và đi qua pending → processing → completed |
NTF - Thông báo In-progress
Feature ID: helpdesk/NTF · Phase: P1 · PRDs: - · Dev: @nx/helpdesk
Phục vụ người dùng thế nào: agent và khách hàng nhận cảnh báo thời gian thực và email về sự kiện ticket, được điều phối bởi tùy chọn theo từng người dùng và mẫu có thể tùy chỉnh.
Yêu cầu
| 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 (đăng ký nhận theo từng loại sự kiện) |
| URD-NTF-004 | S | Mẫu thông báo có thể tùy chỉnh theo từng sự kiện |
| URD-NTF-005 | S | Gửi theo lô kèm một nhật ký gửi theo từng người nhận |
Chấp nhận
AC-NTF-01: Thông báo sự kiện
| Cho | Khi | Thì |
|---|---|---|
| Một sự kiện ticket xảy ra (tạo, phân công, trả lời, giải quyết) | - | Agent và khách hàng đã đăng ký nhận thông báo thời gian thực theo tùy chọn của họ |
7. Ràng buộc & Phi mục tiêu
Ràng buộc
| ID | Ràng buộc |
|---|---|
| C-01 | Ticket luôn nằm trong scope 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 consumer 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 bình chọn yêu cầu tính năng cho mỗi khách hàng trên 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 sẽ tự đóng 48h sau khi giải quyết nếu không được xác nhận |
Phi mục tiêu
- Gợi ý trả lời bằng AI
- Cảnh báo dự đoán vi phạm SLA
- Tiếp nhận đa kênh (email, Zalo OA, Facebook Messenger)
- Cổng ticket tự phục vụ cho 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 tiên từ việc khảo sát 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; đặt trạng thái thành In-progress (build lỗi); căn mã mảng chức năng theo test case | v0.2 |
| 2026-06-04 | Claude (AI pair) | Tổ chức lại theo tính năng (Feature Spine) | v0.3 |