R11 — Phân Tích Chuỗi Phụ Thuộc: ERPNext → Gọi điện bán hàng (Telesale) → Doanh Thu

Người lập: Claude Code (Systems Analyst) Ngày: 22/05/2026 Nguồn: CSKH-DA-TINH-SYSTEM.md, 13_sync_new_accounts.py, sync_auto.py, R2-telesale-kh-cu.md, F6-cac-ltv-showroom.md Mức độ: Nội bộ — GĐPT & BGĐ

1. Chuỗi Phụ Thuộc Đầy Đủ

GetflyCRM (nguồn gốc)
    ↓ [Script 13 — delta sync]
sync_auto.py daemon (Mac Minh) @ 8h / 13h / 20h
    ↓ [13_sync_new_accounts.py chạy ~10 phút]
ERPNext erp.noithatgiakhanh.com (VPS 147.135.114.67)
    ↓ [Customer records + cskh_* fields + province/gk_sales_person]
WF04 n8n crm004 (VPS 103.199.16.244) @ 8h T2-T7
    ↓ [Query pool province=HÀ NỘI, cskh_status NULL hoặc No Answer quá hạn]
Phân bổ 15 KH / KD → Telegram @hotrobhgk_bot
    ↓ [4 KD nhận tin → bấm nút callback hncs1→hncs5]
Gọi điện KH → ghi outcome (hncs_note: tóm tắt + hài lòng + vấn đề + referral)
    ↓ [PUT ERPNext Customer/{erp_name} với cskh_* fields]
cskh_status = Called / No Answer → cskh_next_call_date
    ↓ [Ngày tiếp theo: No Answer hết hạn → vào pool lại / Called → CTV +30d / Video +75d]
Đơn hàng mới / Referral / Cross-sell → DT KH cũ

Điểm neo quan trọng:


2. Critical Path — Chuỗi Phụ Thuộc Chính

2.1 Luồng hàng ngày (happy path)

BướcThời điểmHệ thốngPhụ thuộc
18h / 13h / 20hsync_auto.py trên Mac MinhMac phải BẬT
2Script 13 chạy ~10 phútERPNext API + GetFly APICả 2 server UP
38h sáng T2-T7WF04 morning noden8n VPS UP + ERPNext UP
4WF04 query poolERPNext REST APIToken auth còn hạn
5WF04 gửi TelegramBot @hotrobhgk_botBot token hợp lệ
6KD bấm nútTelegram → n8n webhookKD mở máy đúng giờ
7PUT ERPNextERPNext APIServer UP + auth

Nút thắt nghiêm trọng nhất: Bước 1 và Bước 3 — nếu fail, toàn bộ chain sau bị block.


3. Single Points of Failure (SPOF)

SPOF-1: sync_auto.py daemon trên Mac Minh

Mức độ nguy hiểm: CAO

Ảnh hưởng: KH mới từ GetFly không vào ERPNext → WF04 sáng hôm sau không phân bổ KH mới. Với tốc độ 15 KH/KD/ngày × 4 KD = 60 KH/ngày bị xử lý, delay 1 ngày sync = không ảnh hưởng pool hiện tại (pool HN còn 4,083 KH). Nhưng sau khi off-board GetFly: không có cơ chế fallback nào khác.

Fix đề xuất: Deploy daemon lên VPS .244 hoặc .67 + thêm Telegram alert khi sync fail/timeout.


SPOF-2: Bot Telegram token @hotrobhgk_bot

Mức độ nguy hiểm: TRUNG BÌNH-CAO

Fix đề xuất: Thêm node health-check bot đầu morning flow → nếu fail gửi SMS/email Minh trước khi toàn bộ flow chạy.


SPOF-3: ERPNext VPS 147.135.114.67 down

Mức độ nguy hiểm: CAO

Fix đề xuất: Bật daily backup VPS (snapshot hoặc mysqldump auto). Document recovery procedure. Thêm retry queue cho PUT ERPNext trong WF04 callback.


SPOF-4: NocoDB Lịch Nghỉ KD (ql.minhdigital.com)

Mức độ nguy hiểm: THẤP-TRUNG BÌNH


SPOF-5: GetFly off-board cuối T6/2026

Mức độ nguy hiểm: RẤT CAO (ngắn hạn)


4. Danh sách kiểm tra (Checklist) Off-board GetFly Cuối T6/2026

4.1 Data cần migrate xong trước 30/06

Hạng mụcTrạng tháiGhi chú
6,767 Customer✅ DoneScript 04 + 13
8,730 Sales Order✅ DoneScript sync SO
38,815 Khách tiềm năng (Lead)✅ DoneScript 04
province / district / gk_address✅ DoneScript 16 (6,077 KH)
mobile_no / email_id✅ DoneScript 17
cskh_* fields (19 fields)✅ DoneScript 15 + 18
5,222 KH khách bị bỏ quên (orphan) — gk_sales_personCHƯA LÀMCần bulk update ERPNext
Invoice / Payment data❓ Chưa rõXác nhận với BGĐ
Attachment / note history❓ Chưa rõCó cần migrate không?

4.2 Timeline test trước off-board

Thời điểmViệc cần làm
Tuần 22-26/06Test luồng KD tạo Customer mới trực tiếp trên ERPNext (không qua GetFly)
25/06Chạy sync lần cuối từ GetFly → ERPNext, verify số lượng
26-28/06Freeze GetFly, chỉ dùng ERPNext
29-30/06Monitor 48h xem WF04 vẫn chạy đúng, không có data gap
01/07Off-board hoàn toàn

4.3 Rủi ro khi off-board

Rủi roMức độPhương án giảm thiểu
KD quen GetFly, chưa biết ERPNextCAOTraining 1 buổi trước 25/06
Mobile phone duplicates (GetFly vs ERP)TRUNG BÌNHScript 17 đã xử lý; cần verify thêm
Quy trình tự động (Workflow) 02/03 (morning/evening reminder) vẫn dùng GetFly APICAOCần rewrite hoặc disable
Mất tracking lịch sử gọi trong GetFlyTRUNG BÌNHXuất CSV GetFly trước khi off

5. GAPS Để 5,222 KH Khách bị bỏ quên (Orphan) Vào Hệ Thống Tự Động

Gap 1 — CRITICAL: 5,222 KH chưa có account_manager trong ERPNext

Trạng thái: ERPNext có gk_sales_person (tên SP) nhưng nhiều KH khách bị bỏ quên (orphan) vẫn có gk_sales_person là người đã nghỉ (tranthimo, 9 managers khác). WF04 xử lý khách bị bỏ quên (orphan) bằng round-robin — nhưng chỉ khi KH được query vào pool.

Vấn đề thực tế:

Việc cần làm: Verify danh sách USERNAME_TO_SP của người đã nghỉ trong WF04 code → đảm bảo round-robin chạy đúng.


Gap 2: Phân bổ VIP tranthimo (419 KH) chưa update account_manager


Gap 3: 1,650 KH khách bị bỏ quên (orphan) từ 9 managers khác — chưa có mapping


Gap 4: Alert khi sync_auto.py fail


Gap 5: Retry queue cho PUT ERPNext trong WF04


6. Bảng Tổng Hợp Risk

RiskXác suấtTác độngƯu tiên fix
sync_auto.py fail im lặngTRUNG BÌNH (Mac tắt)THẤP ngắn hạn / CAO sau off-board GetFlyT6/2026
Bot token resetTHẤPCAO — stop toàn bộ gọi điện bán hàng (telesale)T6/2026
ERPNext VPS downTHẤP-TRUNGRẤT CAO — mất data KDNgay
5,222 khách bị bỏ quên (orphan) chưa phân VIP ưu tiênCAO (đã xảy ra)CAO — mất revenue VIPTuần này
KD không ghi outcomeCAO (hành vi)CAO — loop brokenQuản lý chặt T5-T6
Off-board GetFly thiếu trainingTRUNG BÌNHCAO — data gap tháng 7Trước 25/06
Invoice/payment chưa migrateTRUNG BÌNHTRUNG BÌNHVerify trước T6

7. Action Items Theo Thứ Tự Ưu Tiên

#ViệcNgười làmDeadlineEffort
1Bulk update account_manager cho 419 VIP tranthimoMinhHôm nay3h dev
2Bật daily backup ERPNext VPS .67 (mysqldump + S3/cloud)MinhTuần này2h
3Thêm Telegram alert khi sync_auto.py fail > 24hMinh + ThépTuần này2h
4Verify 10 managers nghỉ trong WF04 _isFormerStaff checkMinhTuần này1h
5Script phân bổ 3,153 KH tranthimo non-VIP + 1,650 khách bị bỏ quên (orphan) khácMinhT6/20264h
6Training KD tạo Customer trực tiếp ERPNext (thay GetFly)Minh + Trung AnhTrước 25/061 buổi
7Thêm retry/alert cho PUT ERPNext fail trong WF04MinhT6/20263h
8Xuất CSV backup GetFly toàn bộ trước khi off-boardMinh28/062h

8. Tóm Tắt Cho BGĐ

Hệ thống đã live và hoạt động tốt (19/05/2026). WF04 + ERPNext đang xử lý 60 KH/ngày. Pool HN 4,083 KH = ~68 ngày làm việc.

3 vấn đề cần xử lý ngay:

  1. 5,222 KH khách bị bỏ quên (orphan) chưa được ưu tiên VIP — 419 VIP tranthimo cần bulk assign ngay hôm nay để WF04 phân bổ đúng thứ tự từ sáng mai.
  1. sync_auto.py chạy trên Mac cá nhân — sau khi off-board GetFly, nếu Mac tắt = không có KH mới vào ERPNext. Cần chuyển lên VPS hoặc có alert.
  1. Off-board GetFly cuối T6/2026 — cần training KD + test luồng ERPNext trực tiếp trước 25/06. Nếu bỏ qua, tháng 7 sẽ có data gap.

DT stake: 15-25 tỷ/năm từ KH cũ (R2+F6). Hệ thống infrastructure đã sẵn sàng — rủi ro còn lại là operational (người vận hành + monitoring), không phải technical.


File tạo bởi Claude Code | Nguồn: 5 files hệ thống | Lưu hành nội bộ — GĐPT & BGĐ Cập nhật lần sau: sau khi off-board GetFly (01/07/2026)

read.minhdigital.com  ·  27/05/2026 21:15