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Đ
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:
gk_sales_person quyết định KH thuộc KD nào → khách bị bỏ quên (orphan) routing (round-robin)province quyết định tỉnh nào đang xử lý — rotate tự động khi pool = 0| Bước | Thời điểm | Hệ thống | Phụ thuộc |
|---|---|---|---|
| 1 | 8h / 13h / 20h | sync_auto.py trên Mac Minh | Mac phải BẬT |
| 2 | Script 13 chạy ~10 phút | ERPNext API + GetFly API | Cả 2 server UP |
| 3 | 8h sáng T2-T7 | WF04 morning node | n8n VPS UP + ERPNext UP |
| 4 | WF04 query pool | ERPNext REST API | Token auth còn hạn |
| 5 | WF04 gửi Telegram | Bot @hotrobhgk_bot | Bot token hợp lệ |
| 6 | KD bấm nút | Telegram → n8n webhook | KD mở máy đúng giờ |
| 7 | PUT ERPNext | ERPNext API | Server 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.
Mức độ nguy hiểm: CAO
~/Library/Logs/gk-erp-sync.logẢ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.
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.
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.
Mức độ nguy hiểm: THẤP-TRUNG BÌNH
Mức độ nguy hiểm: RẤT CAO (ngắn hạn)
| Hạng mục | Trạng thái | Ghi chú |
|---|---|---|
| 6,767 Customer | ✅ Done | Script 04 + 13 |
| 8,730 Sales Order | ✅ Done | Script sync SO |
| 38,815 Khách tiềm năng (Lead) | ✅ Done | Script 04 |
| province / district / gk_address | ✅ Done | Script 16 (6,077 KH) |
| mobile_no / email_id | ✅ Done | Script 17 |
| cskh_* fields (19 fields) | ✅ Done | Script 15 + 18 |
| 5,222 KH khách bị bỏ quên (orphan) — gk_sales_person | ❌ CHƯA LÀM | Cầ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? |
| Thời điểm | Việc cần làm |
|---|---|
| Tuần 22-26/06 | Test luồng KD tạo Customer mới trực tiếp trên ERPNext (không qua GetFly) |
| 25/06 | Chạy sync lần cuối từ GetFly → ERPNext, verify số lượng |
| 26-28/06 | Freeze GetFly, chỉ dùng ERPNext |
| 29-30/06 | Monitor 48h xem WF04 vẫn chạy đúng, không có data gap |
| 01/07 | Off-board hoàn toàn |
| Rủi ro | Mức độ | Phương án giảm thiểu |
|---|---|---|
| KD quen GetFly, chưa biết ERPNext | CAO | Training 1 buổi trước 25/06 |
| Mobile phone duplicates (GetFly vs ERP) | TRUNG BÌNH | Script 17 đã xử lý; cần verify thêm |
| Quy trình tự động (Workflow) 02/03 (morning/evening reminder) vẫn dùng GetFly API | CAO | Cần rewrite hoặc disable |
| Mất tracking lịch sử gọi trong GetFly | TRUNG BÌNH | Xuất CSV GetFly trước khi off |
account_manager trong ERPNextTrạ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ế:
province — chạy đúng cho cả khách bị bỏ quên (orphan) lẫn assigned, vì không filter gk_sales_persongk_sales_person = người đã nghỉ vĩnh viễn:** _isFormerStaff check trong WF04 chưa có danh sách đầy đủ 10 managers đã nghỉ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.
account_manageraccount_manager cho 419 VIP → chưa chạyaccount_manager + verify WF04 nhận diện đúng| Risk | Xác suất | Tác động | Ưu tiên fix |
|---|---|---|---|
| sync_auto.py fail im lặng | TRUNG BÌNH (Mac tắt) | THẤP ngắn hạn / CAO sau off-board GetFly | T6/2026 |
| Bot token reset | THẤP | CAO — stop toàn bộ gọi điện bán hàng (telesale) | T6/2026 |
| ERPNext VPS down | THẤP-TRUNG | RẤT CAO — mất data KD | Ngay |
| 5,222 khách bị bỏ quên (orphan) chưa phân VIP ưu tiên | CAO (đã xảy ra) | CAO — mất revenue VIP | Tuần này |
| KD không ghi outcome | CAO (hành vi) | CAO — loop broken | Quản lý chặt T5-T6 |
| Off-board GetFly thiếu training | TRUNG BÌNH | CAO — data gap tháng 7 | Trước 25/06 |
| Invoice/payment chưa migrate | TRUNG BÌNH | TRUNG BÌNH | Verify trước T6 |
| # | Việc | Người làm | Deadline | Effort |
|---|---|---|---|---|
| 1 | Bulk update account_manager cho 419 VIP tranthimo | Minh | Hôm nay | 3h dev |
| 2 | Bật daily backup ERPNext VPS .67 (mysqldump + S3/cloud) | Minh | Tuần này | 2h |
| 3 | Thêm Telegram alert khi sync_auto.py fail > 24h | Minh + Thép | Tuần này | 2h |
| 4 | Verify 10 managers nghỉ trong WF04 _isFormerStaff check | Minh | Tuần này | 1h |
| 5 | Script phân bổ 3,153 KH tranthimo non-VIP + 1,650 khách bị bỏ quên (orphan) khác | Minh | T6/2026 | 4h |
| 6 | Training KD tạo Customer trực tiếp ERPNext (thay GetFly) | Minh + Trung Anh | Trước 25/06 | 1 buổi |
| 7 | Thêm retry/alert cho PUT ERPNext fail trong WF04 | Minh | T6/2026 | 3h |
| 8 | Xuất CSV backup GetFly toàn bộ trước khi off-board | Minh | 28/06 | 2h |
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:
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)