i Giới thiệu
Task (Nhiệm vụ) là việc cụ thể cần làm — có người được giao, có hạn, có tiến độ. Một task có thể độc lập, hoặc gắn vào Ticket / Project / Đơn hàng.
Task khác Ticket thế nào?
Ticket là yêu cầu / vấn đề cần giải quyết. Task là hành động cụ thể để giải quyết. 1 ticket có thể tạo ra nhiều task.
1 task — nhiều người được giao
Khác với Ticket (1 phụ trách chính), task hỗ trợ
assigneeIds = mảng → giao cho nhiều nhân viên cùng lúc.
→ Luồng trạng thái
Pending
→
InProgress
→
Completed
↘ Có thể chuyển sang Cancelled nếu task bị huỷ.
| Trạng thái | Mô tả |
|---|---|
| Pending | Chờ thực hiện — vừa được giao. |
| InProgress | Đang thực hiện. Cập nhật tiến độ % thường xuyên. |
| Completed | Hoàn tất. Server tự set completedAt + completionPercentage=100. |
| Cancelled | Huỷ vì lý do nào đó. |
1 Giao việc mới
Vào /tasks → bấm Giao việc. Hoặc từ Ticket detail / Project detail → bấm Tạo task để gắn sẵn.
Tiêu đề rõ ràng
Bắt đầu bằng động từ: "Kiểm tra...", "Cập nhật...", "Liên hệ khách...". Tối đa 200 ký tự.
Độ ưu tiên + Hạn hoàn thành
Urgent · High · Medium (mặc định) · Low.
Đặt
dueDate rõ ràng — task không có hạn dễ bị quên.
Giao cho (1 hoặc nhiều người)
Chọn Phòng ban để lọc danh sách → tick nhiều nhân viên. Mỗi người được giao sẽ nhận notification
TaskAssigned.Mô tả + đính kèm
Dùng rich editor (B/I/U, list, table). Đính kèm ảnh / file để người làm có ngữ cảnh đầy đủ. Tối đa 10MB/file.
(Tuỳ chọn) Phase + Estimated Hours
Phase: tên giai đoạn (Sprint 1, MVP, Phase 2...) — dùng cho project lớn.
Estimated: số giờ dự kiến (giúp tính tổng workload).
Bấm "Giao việc"
Hệ thống tạo task ở trạng thái Pending + push notification cho assignees.
F Các trường thông tin
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Tiêu đề | ✓ | Tối đa 200 ký tự. |
| Độ ưu tiên | — | Mặc định Medium. |
| Hạn (dueDate) | — | Ngày hết hạn. Task quá hạn được flag QUÁ HẠN. |
| Ngày bắt đầu (startDate) | — | Có thể đặt task tương lai. |
| Giao cho (assigneeIds) | ✓ | Mảng nhân viên. Truyền [] để gỡ hết khi update. |
| Mô tả | ✓ | HTML rich text, tối đa 2000 ký tự. |
| Phase | — | Tên giai đoạn / sprint. |
| Estimated Hours | — | Giờ dự kiến (0–9999). |
| Actual Hours | — | Giờ thực tế đã làm (assignee tự khai báo). |
| Completion % | — | 0–100. Tự = 100 khi Completed. |
| Labels | — | Tags phân loại, cách nhau bởi dấu phẩy. |
| ticketId / projectId / orderId / parentTaskId | — | Liên kết với entity khác (optional). |
2 Thực hiện task
Nhận task — đổi sang InProgress
Mở task detail → chọn trạng thái InProgress ở góc phải. Đồng nghiệp biết bạn đang xử lý.
Cập nhật tiến độ % thường xuyên
Kéo thanh progress hoặc gõ % vào ô. Người giao thấy được tiến độ realtime.
Khai báo Actual Hours
Sau mỗi buổi làm, cập nhật số giờ đã bỏ ra. Tổng giờ giúp đánh giá workload cá nhân.
Tạo Subtask khi việc lớn
Chia task lớn thành các checklist nhỏ trong khối "Việc con". Subtask tự tính progress %.
Hoàn tất → Completed
Đổi trạng thái Completed. Server set
completedAt = now, completionPercentage = 100, push notification TaskCompleted cho người giao.
Không "âm thầm" hoàn thành
Comment ngắn báo cáo kết quả khi đánh Completed (link sản phẩm, screenshot, ghi chú đặc biệt...).
📈 Tiến độ & giờ làm
- Completion %: 0–100. Khi đánh Completed sẽ tự = 100. Khi In Progress, cập nhật theo buổi (vd: 25 / 50 / 75).
- Estimated Hours: do người giao đặt khi tạo task.
- Actual Hours: do người thực hiện cập nhật trong quá trình làm.
- Báo cáo: trang Project → khối "Báo cáo tiến độ" tổng hợp tất cả task của project (completion %, tổng giờ ước tính / thực tế, breakdown theo phase).
🌳 Việc con (Subtask)
Khối "Việc con" trong task detail hỗ trợ checklist nhanh:
- Gõ tên việc + Enter để thêm.
- Tick để đánh dấu hoàn thành. Progress bar tự cập nhật theo tỉ lệ tick.
- Subtask là checklist nhẹ — không cần người giao riêng. Nếu cần task độc lập với assignee riêng, dùng
parentTaskIdđể tạo task con đầy đủ.
💬 Trao đổi
Tương tự Ticket: comment hỗ trợ reply, like, đính kèm ảnh, mention người khác.
- Tác giả: sửa/xoá được comment của mình.
- Realtime: comment mới hiển thị tức thì cho mọi người đang mở task.
- Notification: tất cả assignees (trừ tác giả comment) nhận notify event
TaskComment. - Rating (1–5): có thể chấm điểm comment khi cần đánh giá chất lượng phản hồi.
📊 Chế độ xem: List / Kanban
- List: bảng dòng, đầy đủ thông tin.
- Board (Kanban): 4 cột Pending / InProgress / Completed / Cancelled. Kéo card đổi trạng thái.
🔍 Lọc & tìm kiếm
- Thời gian: preset Hôm nay / Tuần này / Tháng này / Tùy chọn. "Ngày đang chọn" hiển thị thứ + ngày tương ứng.
- Trạng thái / Độ ưu tiên / Phòng ban / Người nhận
- Tìm kiếm: theo tiêu đề + mã NV
id. - Click stat card đầu trang → filter nhanh trạng thái tương ứng.
? Câu hỏi thường gặp
1 task có thể giao cho nhiều người không?
Có. Field
assigneeIds là mảng. Tất cả thấy task này trong /tasks và nhận notification chung. Sửa danh sách người được giao sau khi tạo?
Có. Vào task detail → khối "Giao cho" → Sửa. Khi update,
assigneeIds mới sẽ thay thế toàn bộ (truyền [] để gỡ hết). Task quá hạn được tính thế nào?
Khi
dueDate < hôm nay nhưng status chưa Completed / Cancelled. Tôi quên cập nhật progress %, chuyện gì xảy ra?
Khi đánh Completed, server tự set 100%. Tuy nhiên cập nhật giữa kỳ giúp người giao biết bạn đang ở đâu, tránh đốc thúc không cần thiết.
Liên kết task với ticket / project?
Khi tạo task từ Ticket detail hoặc Project detail, ID tự gán. Hoặc khi tạo từ /tasks, dùng query string
?ticketId=5 / ?projectId=2.