Built-in module · WS runtime · 08/7/2026

crm — Tuyển sinh trên CRM (built-in — thay crm v1.5) BUILT-IN

Phễu tuyển sinh chạy trên CRM built-in: lead từ Zalo/FB/web, phân bổ tư vấn viên, convert lead → hồ sơ học viênhoa hồng CTV theo mốc thu tiền thật.

🎯 Thay module kế hoạch `crm` v1.5. Hiện trạng: phễu lead/opportunity/customer chuẩn nhưng thiếu convert→hồ sơ và hoa hồng CTV. Đích = crm built-in + 2 feature đặc thù, KHÔNG scaffold mới.
1

Feature / BO / Action

FeatureBO chínhAction
leadLead / tiềm năngviewcreateeditassign
activityHoạt động tương tác (gọi, hẹn, nhắn)viewcreate
convertChuyển lead → hồ sơ ★đặc thùviewconvert
commissionHoa hồng CTV ★đặc thùviewexportapprove
campaignNguồn / chiến dịch + báo cáoviewcreateeditreport
2

Manifest — khai báo permissions

Permission key theo convention crm.<group>.<feature>.<action>. fields/scopeVars theo plan data-scope (manifest v1.1).

{ "key": "crm", "name": "Tuyển sinh (CRM)", "version": "2.0.0 (đích — thay crm v1.5)", "permissions": [ { "group": "sales", "feature": "lead", "label": "Lead / Tiềm năng", "actions": [ "view", "create", "edit", "assign" ], "fields": [ "tu_van_vien_id", "trang_thai" ], "scopeVars": [ "current_employee_id" ] }, { "group": "sales", "feature": "activity", "label": "Hoạt động", "actions": [ "view", "create" ] }, { "group": "sales", "feature": "convert", "label": "Chuyển lead → hồ sơ", "actions": [ "view", "convert" ] }, { "group": "sales", "feature": "commission", "label": "Hoa hồng CTV", "actions": [ "view", "approve", "export" ], "scopeVars": [ "current_employee_id" ] }, { "group": "analytics", "feature": "campaign", "label": "Chiến dịch & báo cáo", "actions": [ "view", "create", "edit", "report" ] } ] }
3

Dữ liệu chính

▸ Lead

TrườngKiểuBắt buộcGhi chú
Họ têntext
SĐT / ZalotextChống trùng; trùng học viên cũ → gợi ý nâng hạng
Nguồn / chiến dịchrefĐo hiệu quả kênh
Hạng quan tâmref catalog
Tư vấn viênref hrmData scope: chỉ thấy lead mình phụ trách
Trạng tháienummới → đang tư vấn → hẹn nộp → đã ghi danh / mất (kèm lý do)

▸ Convert ★

TrườngKiểuBắt buộcGhi chú
Leadref
Hồ sơ sinh rama_dk (student)Liên kết 2 chiều lead ↔ hồ sơ — đo nguồn ra học viên thật
Người / thời điểm convertref·datetimeMột chiều — không sửa ngược

▸ Hoa hồng CTV ★

TrườngKiểuBắt buộcGhi chú
Cộng tác viênref hrm (CTV)Chức danh CTV — ngoài biên chế
Hồ sơma_dk
Công thức / mứcmoney hoặc %
Mốc ghi nhậnenum trạng thái hồ sơMặc định da_thu_dot1 — chống hoa hồng ảo
Kỳ chi trả / trạng thái duyệttext·enum

▸ Chiến dịch

TrườngKiểuBắt buộcGhi chú
Tên / kênh / thời giantext·enum·date
Chi phímoney
Số lead / tỷ lệ chuyển đổinumber (view)Theo từng bước phễu
4

Ma trận quyền — vai trò × feature

Vai trò theo WS0. R xem · W tạo/sửa · A duyệt · — không có quyền.

FeatureQTHTGIAM_DOCQL_DAO_TAOTUYEN_SINHGIAO_VUGIAO_VIENKE_TOANNHAN_SU
leadRRR
activityRR
convertRRW
commissionRAR
campaignRRRW

¹ chỉ bản ghi mình phụ trách · ² chỉ của chính mình · W·A = tạo/sửa + duyệt

5

Quy tắc nghiệp vụ & liên kết

Quy tắc

  • Chống trùng lead theo SĐT
  • convert tạo hồ sơ trạng thái tu_van/tiep_nhan bên student + điền sẵn thông tin — qua service API (P3), không ghi thẳng bảng
  • Hủy hồ sơ trước mốc ghi nhận → hủy hoa hồng
  • Nhắn lead qua notify (Zalo OA) — crm không tự gửi
  • Opportunity/Customer của CRM gốc ẩn được nếu không dùng (config)

Liên kết chéo

  • student — convert → application
  • tuition — mốc da_thu_dot1 tính hoa hồng
  • hrm — CTV là Employee
  • notify — nhắn Zalo lead
  • org — scope theo phòng

⚠ Câu hỏi mở

  • Vĩnh An có CTV không, công thức hoa hồng?
  • Kênh lead chính — cần connector nào (Zalo OA webhook)?