Quản lý Subscription (Gói đăng ký)
Module Subscription quản lý toàn bộ vòng đời gói đăng ký sản phẩm/dịch vụ của khách hàng — từ khi kích hoạt đến gia hạn, tạm ngưng hay hủy bỏ.
Truy cập
Vào menu CRM > Subscriptions trên thanh sidebar.
Tổng quan giao diện
Trang Subscriptions có 3 tab:
| Tab | Mô tả |
|---|---|
| Danh sách | Xem tất cả subscription, lọc theo trạng thái, chu kỳ |
| Cần gia hạn | Subscription sắp hết hạn, gom theo công ty — tạo Deal + Task gia hạn |
| Đã huỷ gia hạn | Subscription đã huỷ gia hạn — có thể khôi phục |
Tab: Danh sách
Các cột hiển thị
| Cột | Mô tả |
|---|---|
| Tên | Tên gói đăng ký |
| Trạng thái | Trạng thái hiện tại |
| Khách hàng | Tên công ty |
| Sản phẩm | Sản phẩm/dịch vụ |
| Số tiền | Giá trị mỗi kỳ thanh toán |
| Chu kỳ | Hàng tháng / Hàng quý / 6 tháng / Hàng năm |
| Bắt đầu | Ngày bắt đầu sử dụng |
| Hết hạn | Ngày hết hạn (tô đỏ nếu đã qua) |
| Gia hạn tiếp | Ngày thanh toán tiếp theo |
| Tự gia hạn | Có / Không |
Tìm kiếm và lọc
- Tìm kiếm: Nhập tên subscription, tên công ty, tên sản phẩm
- Lọc trạng thái: Hoạt động / Chờ gia hạn / Quá hạn / Dùng thử / Tạm dừng / Tạm ngưng / Đã hủy
- Lọc chu kỳ: Hàng tháng / Hàng quý / 6 tháng / Hàng năm
Thao tác nhanh
Đưa chuột vào dòng subscription để hiện các nút thao tác:
| Thao tác | Trạng thái áp dụng | Mô tả |
|---|---|---|
| Tạm dừng | Hoạt động | Tạm ngừng dịch vụ |
| Hủy | Hoạt động | Hủy vĩnh viễn (yêu cầu nhập lý do) |
| Tạo đơn bán hàng | Hoạt động | Tạo đơn bán hàng thanh toán kỳ tiếp |
| Tiếp tục | Tạm dừng / Tạm ngưng | Kích hoạt lại dịch vụ |
| Kích hoạt | Dùng thử | Chuyển sang trạng thái hoạt động |
Tab: Cần gia hạn
Hiển thị tất cả subscription sắp hết hạn, gom theo công ty để tiện xử lý.
Giao diện
Mỗi công ty hiển thị dạng thẻ (card) có thể mở rộng/thu gọn:
┌──────────────────────────────────────────────────────────┐
│ 🏢 Công ty ABC 20,000,000 đ │
│ 3 sản phẩm · Hết hạn sớm nhất: 15/05/2026 · Còn 31 ngày│
├──────────────────────────────────────────────────────────┤
│ ☑ Chọn tất cả (3) Đã chọn 3 · 20 triệu│
│ ────────────────────────────────────────────────────── │
│ ☑ ByteDATA Pro Hàng năm · Hết hạn 15/05 [12,000,000]│
│ ☑ ByteHRM Basic Hàng năm · Hết hạn 15/05 [5,000,000]│
│ ☑ ByteChat Hàng năm · Hết hạn 20/05 [3,000,000]│
│ ────────────────────────────────────────────────────── │
│ Xem công ty · Huỷ gia hạn toàn bộ [Tạo deal gia hạn]│
└──────────────────────────────────────────────────────────┘Quy trình gia hạn
Bước 1: Chọn sản phẩm và giá
- Vào tab Cần gia hạn
- Đánh dấu (checkbox) các sản phẩm khách muốn gia hạn
- Sửa giá trực tiếp nếu cần thương lượng (nhấn vào ô giá bên phải)
Mẹo
Giá gia hạn mặc định lấy từ giá sản phẩm hoặc giá subscription hiện tại. Sản phẩm hiện giá 0 (miễn phí/tặng kèm) sẽ hiện ô viền đỏ nhắc nhập giá nếu cần.
Bước 2: Tạo Deal + Task gia hạn
- Nhấn nút Tạo deal gia hạn ở cuối thẻ công ty
- Popup hiện lên với 2 tùy chọn:
┌──────────────────────────────────────┐
│ Tạo gia hạn │
│ Công ty ABC — 3 sản phẩm │
│ │
│ ☑ Tạo Deal gia hạn │
│ Deal trong pipeline "Gia hạn" │
│ → theo dõi trên Kanban │
│ │
│ ☑ Tạo Task theo dõi │
│ Task + 6 subtasks cho AM │
│ → checklist từng bước │
│ │
│ [Huỷ] [Tạo gia hạn] │
└──────────────────────────────────────┘- Chọn tạo Deal, Task, hoặc cả hai, nhấn Tạo gia hạn
- Hệ thống tự động mở chi tiết Deal vừa tạo
Giải thích 2 tùy chọn
- Deal gia hạn: Tạo deal trong pipeline "Gia hạn Subscription" — AM kéo deal qua các giai đoạn (Liên hệ KH → Xác nhận → Gửi HĐ → Chờ TT → Won/Lost). Khi deal Won → tự tạo đơn bán hàng gia hạn.
- Task theo dõi: Tạo task + 6 subtasks chi tiết (liên hệ KH, xác nhận SP, thương lượng, gửi HĐ, theo dõi TT, hoàn tất). Giúp AM không bỏ sót bước nào.
- Khuyến khích chọn cả hai để vừa track trên pipeline vừa có checklist.
Bước 3: Xử lý Deal trong pipeline
Sau khi tạo, deal hiện trong pipeline Gia hạn Subscription (xem tại CRM > Deals > chọn pipeline "Gia hạn"):
| Giai đoạn | Mô tả |
|---|---|
| Liên hệ khách hàng | AM liên hệ khách hỏi nhu cầu gia hạn |
| Xác nhận nhu cầu | Khách xác nhận SP muốn gia hạn |
| Gửi đơn bán hàng | Tạo và gửi đơn bán hàng cho khách |
| Chờ thanh toán | Đợi khách chuyển khoản |
| Đã gia hạn (Won) | Đã thanh toán → tự tạo Invoice + auto extend |
| Không gia hạn (Lost) | Khách từ chối → đánh dấu not_renewed |
Bước 4: Thanh toán → tự động gia hạn
Khi deal chuyển Won:
- Hệ thống tự tạo đơn bán hàng gia hạn (invoice_type = renewal)
- Khi đơn bán hàng được thanh toán → hệ thống tự động:
- Cộng thêm 1 chu kỳ vào ngày hết hạn
- Chuyển subscription về Hoạt động
- Ghi nhận lịch sử gia hạn
Nút thay đổi sau khi tạo
| Trạng thái | Nút | Màu |
|---|---|---|
| Chưa tạo deal | "Tạo deal gia hạn (N SP · X đ)" | Xanh dương |
| Đã tạo deal | "Xem deal gia hạn" | Xanh lá |
Ví dụ minh họa
Công ty ABC có 3 subscription hết hạn ngày 15/05:
- ByteDATA Pro: 12 triệu/năm
- ByteHRM: 5 triệu/năm
- ByteChat: 3 triệu/năm
Khách quyết định gia hạn ByteDATA + ByteHRM, không gia hạn ByteChat.
- AM chọn 2 sản phẩm, bỏ chọn ByteChat
- Nhấn "Tạo deal gia hạn" → popup → tích cả Deal + Task → Tạo gia hạn
- Mở deal detail → AM kéo deal qua pipeline
- ByteChat → nhấn nút ✕ huỷ gia hạn (có popup xác nhận)
- Deal Won → auto tạo Invoice 17 triệu
- Khách thanh toán → ByteDATA + ByteHRM tự gia hạn đến 15/05/2027
Huỷ gia hạn
Hai cách huỷ gia hạn:
| Cách | Mô tả |
|---|---|
| Huỷ từng sản phẩm | Nhấn nút ✕ bên cạnh sản phẩm → popup xác nhận |
| Huỷ toàn bộ | Nhấn nút "Huỷ gia hạn toàn bộ" ở footer → popup xác nhận → huỷ tất cả SP của công ty |
Lưu ý
- Khi công ty chỉ còn 1 sản phẩm chưa huỷ mà bấm huỷ → hệ thống tự huỷ hết (vì là SP cuối cùng)
- Tất cả huỷ gia hạn đều có popup xác nhận trước khi thực hiện
- Đã huỷ vẫn có thể khôi phục ở tab "Đã huỷ gia hạn"
Tab: Đã huỷ gia hạn
Danh sách tất cả subscription đã bị huỷ gia hạn — có thể khôi phục.
Tính năng
| Tính năng | Mô tả |
|---|---|
| Tìm kiếm | Tìm theo tên subscription hoặc tên công ty |
| Khôi phục 1 | Nút "Khôi phục" trên từng dòng → popup xác nhận → quay lại tab "Cần gia hạn" |
| Khôi phục hàng loạt | Checkbox chọn nhiều → nút "Khôi phục N đã chọn" → popup xác nhận |
| Thông tin | Hiện tên, công ty, sản phẩm, số tiền, lý do huỷ, ngày huỷ |
| Phân trang | 20 dòng/trang |
Vòng đời Subscription
Sơ đồ trạng thái
┌──────────┐
│ Dùng thử │
└────┬─────┘
│ Kích hoạt
▼
┌───────────┐
┌──────│ Hoạt động │◄─────────────────────┐
│ └─────┬─────┘ │
│ │ │
│ Sắp hết hạn (T-45 ngày) │
│ Cron tạo Deal + Task │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Chờ gia hạn │ │
│ │ (pending_renew)│ │
│ └────────┬────────┘ │
│ │ │
│ Hết hạn chưa TT │
│ │ │
│ ▼ │
│ ┌─────────────────┐ Deal Won → │
│ │ Quá hạn │ Invoice paid │
│ │ (past_due) │──────────────────►│
│ │ Ân hạn 30 ngày │ │
│ └────────┬────────┘ │
│ │ │
Tạm dừng │ Hết thời gian ân hạn │
▼ │ │ │
┌──────────┐ │ ▼ │
│ Tạm dừng │ │ ┌─────────────────┐ Thanh toán │
│ (paused) │◄┘ │ Tạm ngưng │──────────────────►│
└──────────┘ │ (suspended) │
└────────┬────────┘
│
+30 ngày không TT
│
▼
┌─────────────────┐
│ Đã hủy │
│ (cancelled) │
└─────────────────┘Bảng trạng thái chi tiết
| Trạng thái | Mô tả | Màu | Hành động tiếp |
|---|---|---|---|
| Dùng thử | Đang trong thời gian dùng thử miễn phí | Tím | Kích hoạt |
| Hoạt động | Đang sử dụng bình thường | Xanh lá | Tạm dừng / Hủy / Tạo HĐ |
| Chờ gia hạn | Sắp hết hạn, đã tạo deal/task | Xanh dương | Xử lý deal trong pipeline |
| Quá hạn | Đã hết hạn, đang trong thời gian ân hạn | Đỏ | Thanh toán / Chờ |
| Tạm dừng | Khách yêu cầu tạm ngừng | Vàng | Tiếp tục / Hủy |
| Tạm ngưng | Hệ thống ngưng do quá ân hạn | Cam | Thanh toán / Chờ |
| Đã hủy | Đã hủy vĩnh viễn | Đỏ | — |
Trạng thái gia hạn
| Trạng thái | Mô tả |
|---|---|
| Chờ xử lý | Đang chờ AM xử lý |
| Đang thương lượng | Đã tạo deal, đang đàm phán |
| Đã gia hạn | Đã thanh toán thành công |
| Không gia hạn | Khách từ chối — có thể khôi phục |
Tự động hóa
Cron jobs (chạy hàng ngày)
| Thời gian | Tác vụ | Mô tả |
|---|---|---|
| 8:00 sáng | Tạo Deal + Task | Tìm subscription sắp hết hạn → tạo Deal trong pipeline "Gia hạn" + Task giao cho AM, gom theo công ty |
| 8:30 sáng | Đánh dấu quá hạn | Subscription hết hạn chưa gia hạn → chuyển sang Quá hạn |
| 9:00 sáng | Nhắc thanh toán | Gửi tin nhắn Mattermost nhắc AM theo lịch nhắc |
| 10:00 sáng | Tạm ngưng + Hủy | Quá ân hạn → Tạm ngưng. Quá 30 ngày tạm ngưng → Đã hủy |
Task tự động
Khi subscription sắp hết hạn (mặc định 45 ngày trước), cron tạo:
📋 Task: "Gia hạn 3 sản phẩm — Công ty ABC"
├── Giao cho: AM triển khai
├── Liên kết: Deal gia hạn
│
├── Subtask 1: Liên hệ khách hàng xác nhận nhu cầu
├── Subtask 2: Xác nhận sản phẩm & số lượng
├── Subtask 3: Thương lượng giá (nếu cần)
├── Subtask 4: Tạo & gửi đơn bán hàng
├── Subtask 5: Theo dõi thanh toán
└── Subtask 6: Xác nhận hoàn tấtGom theo công ty
1 công ty có nhiều subscription sắp hết hạn → hệ thống gom thành 1 deal + 1 task. AM chỉ cần gọi 1 cuộc là xử lý tất cả.
Nhắc thanh toán (Dunning)
| Ngày | Nội dung |
|---|---|
| Ngày hết hạn | "Subscription Công ty ABC đã hết hạn hôm nay" |
| +7 ngày | "Nhắc gia hạn — quá hạn 7 ngày" |
| +14 ngày | "Nhắc gia hạn — quá hạn 14 ngày" |
| +21 ngày | "Nhắc gia hạn — quá hạn 21 ngày" |
| +30 ngày | "Nhắc gia hạn — quá hạn 30 ngày" (escalate) |
Pipeline gia hạn
Deal gia hạn nằm trong pipeline riêng "Gia hạn Subscription". Xem tại CRM > Deals → chọn pipeline trong dropdown.
| Giai đoạn | Mô tả |
|---|---|
| Liên hệ khách hàng | AM gọi/email khách hỏi nhu cầu |
| Xác nhận nhu cầu | Khách xác nhận SP gia hạn |
| Gửi đơn bán hàng | Tạo & gửi HĐ |
| Chờ thanh toán | Đợi chuyển khoản |
| Đã gia hạn (Won) | Auto tạo Invoice + extend khi paid |
| Không gia hạn (Lost) | Đánh dấu not_renewed |
Phân quyền pipeline
Admin có thể giới hạn pipeline cho team cụ thể tại Cài đặt > Pipelines → nút 👥 → chọn team. VD: chỉ team CS dùng pipeline "Gia hạn", team Sales dùng "Sales Pipeline".
Cài đặt gia hạn
Nhấn biểu tượng ⚙ ở góc phải tab "Cần gia hạn".
| Cài đặt | Mặc định | Mô tả |
|---|---|---|
| Tạo task trước (ngày) | 45 | Số ngày trước hạn để cron tạo deal/task |
| Thời gian ân hạn (ngày) | 30 | Sau hết hạn, cho thêm N ngày trước khi tạm ngưng |
| Hủy sau khi tạm ngưng (ngày) | 30 | Tự động hủy nếu tạm ngưng quá N ngày |
| Tự động tạo deal | Bật | Bật/tắt cron tạo deal khi subscription sắp hết hạn |
| Tự động tạo task | Bật | Bật/tắt cron tạo task kèm theo |
| Tạm ngưng khi quá ân hạn | Bật | Tự chuyển sang tạm ngưng khi hết ân hạn |
| Lịch nhắc thanh toán | 0, 7, 14, 21, 30 | Ngày nhắc sau hết hạn (phân cách bằng dấu phẩy) |
Tạo Subscription mới
- Tại tab Danh sách, nhấn Tạo subscription
- Panel bên phải mở ra, điền thông tin:
| Trường | Mô tả | Bắt buộc |
|---|---|---|
| Tên | Tên mô tả (VD: "ByteDATA Pro - FPT 2026") | Có |
| Công ty | Chọn công ty khách hàng | Có |
| Liên hệ | Người liên hệ tại công ty | Không |
| Sản phẩm | Chọn sản phẩm/dịch vụ (auto điền giá) | Có |
| Chu kỳ | Hàng tháng / Hàng quý / 6 tháng / Hàng năm | Có |
| Số tiền/kỳ | Giá trị thanh toán mỗi chu kỳ | Có |
| Ngày bắt đầu | Ngày bắt đầu sử dụng | Có |
| Ngày kết thúc | Ngày hết hạn | Không |
| Tự gia hạn | Bật = cron tự tạo deal khi sắp hết hạn | Có |
Hủy Subscription
- Đưa chuột vào subscription cần hủy → nhấn ✕
- Nhập lý do hủy tại popup xác nhận
- Nhấn Xác nhận hủy
Lưu ý
Hủy subscription là không thể hoàn tác. Nếu chỉ muốn tạm ngừng, dùng Tạm dừng.
Liên kết với các module khác
| Module | Liên kết |
|---|---|
| Deals | Deal gia hạn trong pipeline "Gia hạn Subscription" — Won → auto tạo Invoice |
| đơn bán hàng | Invoice renewal tự tạo khi deal Won — paid → auto extend subscription |
| Thanh toán | Ghi nhận TT cho invoice renewal → trigger auto extend |
| Công việc | Task + 6 subtasks cho AM follow up |
| Triển khai | AM/CS tự động lấy từ FulfillmentOrder (cron) |
| Sản phẩm | Giá gia hạn lấy từ renewal_price hoặc unit_price |
| Báo cáo | NRR, MRR movement, churn analysis, renewal pipeline conversion |
Câu hỏi thường gặp
Subscription tự động gia hạn khi nào?
Khi deal gia hạn chuyển Won → auto tạo Invoice → Invoice được thanh toán → hệ thống cộng thêm 1 chu kỳ vào ngày hết hạn.
Khách chỉ gia hạn 1 phần sản phẩm thì sao?
Tại tab "Cần gia hạn", chọn checkbox sản phẩm muốn gia hạn → tạo deal. Sản phẩm không gia hạn → nhấn ✕ huỷ gia hạn. Đã huỷ vẫn có thể khôi phục ở tab "Đã huỷ gia hạn".
Có thể sửa giá khi gia hạn không?
Có. Nhấn vào ô giá bên phải mỗi sản phẩm để nhập giá tùy chỉnh trước khi tạo deal.
Đã huỷ gia hạn có khôi phục được không?
Có. Vào tab Đã huỷ gia hạn → nhấn "Khôi phục" trên từng dòng hoặc chọn nhiều → "Khôi phục N đã chọn". Subscription sẽ quay lại tab "Cần gia hạn".
Task gia hạn giao cho ai?
- Tạo thủ công (nút trên trang): giao cho user hiện tại
- Cron tự động (8h sáng): giao cho AM triển khai (lấy từ FulfillmentOrder → account_manager → assigned_lead → company owner)
Pipeline "Gia hạn" ở đâu?
Tại CRM > Deals → dropdown chọn pipeline → "Gia hạn Subscription". Hoặc xem dạng Kanban tại CRM > Pipeline → chọn pipeline.