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:

TabMô tả
Danh sáchXem tất cả subscription, lọc theo trạng thái, chu kỳ
Cần gia hạnSubscription sắp hết hạn, gom theo công ty — tạo Deal + Task gia hạn
Đã huỷ gia hạnSubscription đã huỷ gia hạn — có thể khôi phục

Tab: Danh sách

Các cột hiển thị

CộtMô tả
TênTên gói đăng ký
Trạng tháiTrạng thái hiện tại
Khách hàngTên công ty
Sản phẩmSản phẩm/dịch vụ
Số tiềnGiá 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 đầuNgày bắt đầu sử dụng
Hết hạnNgày hết hạn (tô đỏ nếu đã qua)
Gia hạn tiếpNgày thanh toán tiếp theo
Tự gia hạnCó / 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ácTrạng thái áp dụngMô tả
Tạm dừngHoạt độngTạm ngừng dịch vụ
HủyHoạt độngHủy vĩnh viễn (yêu cầu nhập lý do)
Tạo đơn bán hàngHoạt độngTạo đơn bán hàng thanh toán kỳ tiếp
Tiếp tụcTạm dừng / Tạm ngưngKích hoạt lại dịch vụ
Kích hoạtDù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á

  1. Vào tab Cần gia hạn
  2. Đánh dấu (checkbox) các sản phẩm khách muốn gia hạn
  3. 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

  1. Nhấn nút Tạo deal gia hạn ở cuối thẻ công ty
  2. 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]   │
└──────────────────────────────────────┘
  1. Chọn tạo Deal, Task, hoặc cả hai, nhấn Tạo gia hạn
  2. 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ạnMô tả
Liên hệ khách hàngAM liên hệ khách hỏi nhu cầu gia hạn
Xác nhận nhu cầuKhách xác nhận SP muốn gia hạn
Gửi đơn bán hàngTạ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:

  1. Hệ thống tự tạo đơn bán hàng gia hạn (invoice_type = renewal)
  2. 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áiNútMà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.

  1. AM chọn 2 sản phẩm, bỏ chọn ByteChat
  2. Nhấn "Tạo deal gia hạn" → popup → tích cả Deal + Task → Tạo gia hạn
  3. Mở deal detail → AM kéo deal qua pipeline
  4. ByteChat → nhấn nút ✕ huỷ gia hạn (có popup xác nhận)
  5. Deal Won → auto tạo Invoice 17 triệu
  6. 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áchMô tả
Huỷ từng sản phẩmNhấ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ăngMô tả
Tìm kiếmTìm theo tên subscription hoặc tên công ty
Khôi phục 1Nú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ạtCheckbox chọn nhiều → nút "Khôi phục N đã chọn" → popup xác nhận
Thông tinHiện tên, công ty, sản phẩm, số tiền, lý do huỷ, ngày huỷ
Phân trang20 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áiMô tảMàuHành động tiếp
Dùng thửĐang trong thời gian dùng thử miễn phíTímKích hoạt
Hoạt độngĐang sử dụng bình thườngXanh láTạm dừng / Hủy / Tạo HĐ
Chờ gia hạnSắp hết hạn, đã tạo deal/taskXanh dươngXử 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ừngKhách yêu cầu tạm ngừngVàngTiếp tục / Hủy
Tạm ngưngHệ thống ngưng do quá ân hạnCamThanh toán / Chờ
Đã hủyĐã hủy vĩnh viễnĐỏ

Trạng thái gia hạn

Trạng tháiMô 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ạnKhách từ chối — có thể khôi phục

Tự động hóa

Cron jobs (chạy hàng ngày)

Thời gianTác vụMô tả
8:00 sángTạo Deal + TaskTì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ạnSubscription hết hạn chưa gia hạn → chuyển sang Quá hạn
9:00 sángNhắc thanh toánGửi tin nhắn Mattermost nhắc AM theo lịch nhắc
10:00 sángTạm ngưng + HủyQuá â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ất

Gom 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àyNộ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ạnMô tả
Liên hệ khách hàngAM gọi/email khách hỏi nhu cầu
Xác nhận nhu cầuKhách xác nhận SP gia hạn
Gửi đơn bán hàngTạ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 đặtMặc địnhMô tả
Tạo task trước (ngày)45Số ngày trước hạn để cron tạo deal/task
Thời gian ân hạn (ngày)30Sau 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)30Tự động hủy nếu tạm ngưng quá N ngày
Tự động tạo dealBậtBật/tắt cron tạo deal khi subscription sắp hết hạn
Tự động tạo taskBậtBật/tắt cron tạo task kèm theo
Tạm ngưng khi quá ân hạnBậtTự chuyển sang tạm ngưng khi hết ân hạn
Lịch nhắc thanh toán0, 7, 14, 21, 30Ngày nhắc sau hết hạn (phân cách bằng dấu phẩy)

Tạo Subscription mới

  1. Tại tab Danh sách, nhấn Tạo subscription
  2. Panel bên phải mở ra, điền thông tin:
TrườngMô tảBắt buộc
TênTên mô tả (VD: "ByteDATA Pro - FPT 2026")
Công tyChọn công ty khách hàng
Liên hệNgười liên hệ tại công tyKhông
Sản phẩmChọn sản phẩm/dịch vụ (auto điền giá)
Chu kỳHàng tháng / Hàng quý / 6 tháng / Hàng năm
Số tiền/kỳGiá trị thanh toán mỗi chu kỳ
Ngày bắt đầuNgày bắt đầu sử dụng
Ngày kết thúcNgày hết hạnKhông
Tự gia hạnBật = cron tự tạo deal khi sắp hết hạn

Hủy Subscription

  1. Đưa chuột vào subscription cần hủy → nhấn
  2. Nhập lý do hủy tại popup xác nhận
  3. 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

ModuleLiên kết
DealsDeal gia hạn trong pipeline "Gia hạn Subscription" — Won → auto tạo Invoice
đơn bán hàngInvoice renewal tự tạo khi deal Won — paid → auto extend subscription
Thanh toánGhi nhận TT cho invoice renewal → trigger auto extend
Công việcTask + 6 subtasks cho AM follow up
Triển khaiAM/CS tự động lấy từ FulfillmentOrder (cron)
Sản phẩmGiá gia hạn lấy từ renewal_price hoặc unit_price
Báo cáoNRR, 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.