# 5. Hướng mở rộng & Cá nhân hóa

Lead Agent được thiết kế modular — có thể mở rộng nhiều hướng mà không cần viết lại core.

## 5.1. Cá nhân hóa theo lịch sử mua hàng

**Hiện tại:** InsightJSON chỉ lưu thông tin phiên chat hiện tại (TTL 24h). Khách quay lại ngày hôm sau là bắt đầu từ đầu.

**Mở rộng:** Kết nối InsightJSON với **CRM** (thông qua SĐT/Email đã thu thập ở Mode 4):

| Trường mở rộng | Nguồn | Mục đích |
|---|---|---|
| `PURCHASE_HISTORY` | CRM Canifa | Biết khách đã mua gì trước đó → không gợi ý lại |
| `PREFERRED_SIZE` | CRM / Lịch sử | Tự động lọc đúng size, không cần hỏi lại |
| `VIP_TIER` | CRM | VIP được ưu tiên tư vấn Premium, giảm Upsell áp lực |
| `LAST_VISIT_DATE` | Redis + CRM | "Lần trước anh xem áo khoác dạ, hôm nay có size L rồi ạ!" |

```python
# Ví dụ mở rộng InsightJSON
class InsightJSON(BaseModel):
    # ... 12 trường hiện tại ...
    PURCHASE_HISTORY: list[str] = []  # ["SKU123 - Áo polo", "SKU456 - Quần jean"]
    PREFERRED_SIZE: str = ""           # "L" hoặc "XL"
    VIP_TIER: str = "Standard"         # "Standard" | "Silver" | "Gold" | "Platinum"
```

## 5.2. Mở rộng Multi-channel

**Hiện tại:** Chỉ hoạt động qua Chat Widget (web/Facebook Messenger).

**Mở rộng:**

| Kênh | Thay đổi cần thiết |
|---|---|
| **Zalo OA** | Thêm adapter Zalo API → Controller. InsightJSON vẫn dùng chung |
| **Instagram DM** | Thêm adapter Instagram Graph API. Cho phép khách gửi ảnh → kích hoạt AI Image Search |
| **Telesale Script** | Xuất InsightJSON thành script cho nhân viên Telesale gọi điện: "Chào anh Minh, hôm qua anh xem áo khoác dạ..." |

## 5.3. A/B Testing chiến thuật AI

**Hiện tại:** Mỗi Mode có 1 chiến thuật cố định.

**Mở rộng:** Cho phép cấu hình nhiều phiên bản prompt cho cùng 1 Mode, rồi A/B test:

```python
# Ví dụ A/B Testing config
MODE_3_VARIANTS = {
    "A": "Tư vấn chi tiết chất liệu + so sánh giá trị",
    "B": "Tư vấn ngắn gọn + push combo ngay",
    "C": "Hỏi khách muốn xem thêm bao nhiêu SP"
}
# Random chọn variant → Track conversion rate qua Langfuse
```

## 5.4. Tự động hoá Post-Lead

Khi khách để lại SĐT (Mode 4 → 5 thành công), hiện tại chỉ lưu DB. Mở rộng:

| Bước | Công cụ | Hành động |
|---|---|---|
| 1. Lưu Lead | PostgreSQL | Lưu SĐT + InsightJSON + sản phẩm quan tâm |
| 2. Notify Telesale | n8n Webhook | Gửi notification cho nhân viên qua Slack/Zalo |
| 3. Auto Email | n8n + Mailgun | Gửi email "Cảm ơn" kèm link sản phẩm đã tư vấn |
| 4. Follow-up 24h | n8n Scheduler | Nếu chưa mua, gửi reminder kèm voucher 10% |
| 5. Analytics | Langfuse + Metabase | Track tỷ lệ chuyển đổi Lead → Sale |

## 5.5. Voice Agent

**Tương lai:** Chuyển Lead Agent thành Voice Agent cho cửa hàng offline:
- Khách bước vào → Mic thu voice → Speech-to-Text → Lead Agent → Text-to-Speech
- Giữ nguyên 5 Mode, thay Chat Widget bằng Speaker
