Hệ thống ngoài
Mỗi hệ thống bên ngoài nền tảng minigame: dùng để làm gì, trao đổi dữ liệu gì, lúc nào, lỗi thì sao, ai là đầu mối. Mức nghiệp vụ — đặc tả API do kỹ thuật hai bên viết sau khi chốt trang này.
Tổng quan
| Hệ thống | Dùng cho | Chiều | Kênh / module | Đợt | Trạng thái |
| Zalo Mini App platform | Chạy game trong Zalo, lấy định danh, SĐT, chia sẻ | Hai chiều | zalo | MVP | Cần đăng ký app |
| Zalo OA | Nhiệm vụ "Quan tâm OA" nhận lượt | Minigame → Zalo | zalo · Campaign | Đợt 2 | OA FPT Telecom đã có |
| Zalo ZNS | OTP, gửi mã quà, nhắc nhận quà | Minigame → Zalo | Mọi kênh · Kho quà | MVP | Cần đàm phán template |
| SMS brandname | OTP, gửi mã quà (dự phòng ZNS), PIN nhân viên booth | Minigame → nhà mạng | web · kiosk · Tài khoản | MVP | FTEL đã có brandname |
| FPT ID · Hi FPT · FPT Play | Đăng nhập web bằng FPT ID; nhận phiên từ app qua token bridge | Hai chiều | web · app | MVP | Cần đàm phán |
| CRM / hệ thống lead FTEL | Đẩy lead cho bán hàng; nhận trạng thái lead | Hai chiều | Khách hàng · Báo cáo | MVP (đẩy) · Đợt 2 (nhận) | Cần đàm phán |
| Nhà cung cấp voucher / mã nạp | Lấy mã digital khi trúng | Hai chiều | Kho quà | Could | Chưa chọn nhà cung cấp |
| Hệ thống khách hàng FTEL | Tra SĐT có phải khách đang dùng dịch vụ | Minigame → FTEL | Campaign · Khách hàng | Đợt 2 | Cần đàm phán |
| Analytics (GA4, Zalo, app) | Đo truy cập, hành vi màn hình | Minigame → analytics | web · app · zalo · Báo cáo | MVP | Dùng tài khoản GA4 của FTEL |
| SSO nội bộ · danh mục chi nhánh | Đăng nhập quản trị; cây vùng/chi nhánh cho phạm vi dữ liệu | FTEL → minigame | Tài khoản | Đợt 2 | Cần đàm phán |
Luồng màn hình, quyền, trải nghiệm từng kênh nằm ở trang kênh; trang này chỉ nói phần trao đổi với hệ thống ngoài.
Zalo Mini App platform
| Hạng mục | Nội dung |
| Mục đích | Chạy game trong Zalo; định danh người chơi bằng Zalo ID; lấy SĐT khi người chơi đồng ý; chia sẻ nhận thêm lượt |
| Chiều dữ liệu | Zalo → minigame: Zalo ID (theo app), tên, ảnh đại diện, SĐT (khi cấp quyền). Minigame → Zalo: nội dung chia sẻ (tiêu đề, ảnh, link) |
| Thời điểm gọi | Mở mini app (định danh); ngay trước bước nhận quà (xin SĐT); bấm chia sẻ |
| Xử lý khi lỗi | Không lấy được SĐT → cho nhập SĐT + OTP (ZNS/SMS); từ chối cấp quyền → vẫn chơi được, không nhận quà cần SĐT |
| Ràng buộc | Kiểm duyệt khi publish mỗi phiên bản (1–3 ngày làm việc); giới hạn dung lượng gói; thể lệ, chính sách dữ liệu phải có link |
| Đầu mối | Chủ tài khoản Zalo for Developers của FTEL; liên hệ Zalo phía đối tác |
| Trạng thái | Cần đăng ký mini app dưới pháp nhân FTEL. Chi tiết trải nghiệm: Zalo Mini App |
Zalo OA
| Hạng mục | Nội dung |
| Mục đích | Nhiệm vụ "Quan tâm OA FPT Telecom" để nhận thêm lượt; gom người chơi vào tệp OA cho chăm sóc sau |
| Chiều dữ liệu | Minigame hỏi Zalo: Zalo ID này đã quan tâm OA chưa. Zalo trả: có / không |
| Thời điểm gọi | Khi người chơi quay lại từ màn quan tâm OA |
| Xử lý khi lỗi | Không kiểm tra được → không cấp lượt, cho thử lại; không cấp lượt "tin tưởng" |
| Ràng buộc | Mini app và OA phải cùng chủ sở hữu / liên kết . Nguồn lượt "nhiệm vụ": Khung game |
| Đầu mối | Người quản lý OA FPT Telecom (FCM / CSKH) |
| Trạng thái | Cần xác nhận OA dùng chung hay OA riêng cho minigame |
Zalo ZNS
| Hạng mục | Nội dung |
| Mục đích | Gửi OTP xác thực SĐT; gửi mã quà digital; nhắc hạn nhận quà; gửi PIN nhân viên booth |
| Chiều dữ liệu | Minigame → Zalo: SĐT, mã template, tham số (OTP, tên quà, mã, hạn). Zalo → minigame: kết quả gửi (thành công / lỗi / SĐT không dùng Zalo) |
| Thời điểm gọi | Khi người chơi yêu cầu OTP; ngay sau khi cấp phát Đã cấp (Kho quà); 24 giờ trước hạn nhận |
| Xử lý khi lỗi | SĐT không dùng Zalo hoặc gửi lỗi → chuyển SMS trong ≤ 10 giây. Mã quà không mất: vẫn có ở "Quà của tôi" |
| Ràng buộc | Mỗi template phải được Zalo duyệt trước (1–3 ngày làm việc); tính phí theo tin; chỉ gửi tin giao dịch, không quảng cáo |
| Đầu mối | Đầu mối hợp đồng ZNS của FTEL (nếu đã có) hoặc nhà cung cấp trung gian |
| Trạng thái | Cần đàm phán: số template, đơn giá, hạn mức gửi/ngày |
SMS brandname
| Hạng mục | Nội dung |
| Mục đích | OTP cho kênh web; dự phòng khi ZNS lỗi; PIN nhân viên booth |
| Chiều dữ liệu | Minigame → nhà cung cấp SMS: SĐT, nội dung theo mẫu đã đăng ký. Trả về: kết quả gửi |
| Thời điểm gọi | Như ZNS, hoặc khi ZNS thất bại |
| Xử lý khi lỗi | Thử lại 1 lần sau 30 giây; vẫn lỗi → báo người chơi thử lại sau, ghi lỗi cho vận hành. Giới hạn gửi OTP theo SĐT/thiết bị: Chống gian lận |
| Ràng buộc | Brandname "FPT Telecom" , tin chăm sóc khách hàng (không quảng cáo); mẫu tin đăng ký trước với nhà mạng; phí theo tin |
| Đầu mối | Bộ phận quản lý brandname SMS của FTEL |
| Trạng thái | Cần xác nhận dùng chung brandname hiện có và đăng ký mẫu tin mới |
FPT ID · Hi FPT · FPT Play
| Hạng mục | Nội dung |
| Mục đích | Web: đăng nhập bằng FPT ID thay OTP. App (Hi FPT, FPT Play): mở game trong webview, người chơi không đăng nhập lại |
| Chiều dữ liệu | App → minigame: token phiên một lần qua bridge webview. Minigame → FPT ID: xác minh token. FPT ID → minigame: FPT ID, SĐT, tên |
| Thời điểm gọi | Mở game trong app; bấm "Đăng nhập FPT ID" trên web |
| Xử lý khi lỗi | Token hết hạn / không xác minh được → chuyển đăng nhập SĐT + OTP trong webview; không chặn chơi |
| Ràng buộc | Token chỉ dùng 1 lần, sống ≤ 5 phút; minigame không lưu token FPT ID dài hạn. Mỗi app cần bản phát hành có cấu hình webview + bridge |
| Đầu mối | Đội FPT ID; đội app Hi FPT; đội app FPT Play |
| Trạng thái | Cần đàm phán: lịch phát hành app, phạm vi dữ liệu được chia sẻ. Trải nghiệm: Website & mobile |
CRM / hệ thống lead FTEL
| Hạng mục | Nội dung |
| Mục đích | Chuyển lead cho bán hàng chi nhánh liên hệ; nhận lại trạng thái để đo chuyển đổi |
| Chiều dữ liệu | Minigame → CRM: tên, SĐT, khu vực, dịch vụ quan tâm, campaign, điểm activation/kênh, thời điểm đồng ý, nội dung đồng ý. CRM → minigame Đợt 2: mã lead CRM, trạng thái (đã liên hệ, hẹn, ký hợp đồng, huỷ) |
| Thời điểm gọi | Đẩy trong ≤ 5 phút sau khi người chơi đồng ý; kiosk offline: sau đồng bộ. Nhận trạng thái: mỗi ngày 1 lần |
| Xử lý khi lỗi | Đưa vào hàng đợi, thử lại tăng dần trong 24 giờ; quá hạn → đánh dấu "Đẩy lỗi", hiện ở Khách hàng để đẩy lại hoặc xuất tay. Không đẩy trùng: CRM nhận khoá chống trùng (SĐT + campaign) |
| Ràng buộc | Chỉ đẩy người đã đồng ý nhận tư vấn (Dữ liệu cá nhân); quy tắc chọn chi nhánh nhận lead theo khu vực bán hàng xác nhận |
| Đầu mối | Chủ hệ thống CRM / lead bán hàng FTEL |
| Trạng thái | Cần đàm phán: định dạng lead, nguồn lead mới "Minigame", cách phân lead về chi nhánh |
Nhà cung cấp voucher / mã nạp
| Hạng mục | Nội dung |
| Mục đích | Lấy mã digital (e-voucher đối tác, mã nạp data, mã FPT Play) đúng lúc trúng, không phải nhập file trước |
| Chiều dữ liệu | Minigame → nhà cung cấp: loại/mệnh giá, mã giao dịch. Nhà cung cấp → minigame: mã, hạn dùng; trạng thái đã dùng (nếu có) |
| Thời điểm gọi | Khi cấp phát chuyển Đang giữ → Đã cấp; đối soát cuối tháng |
| Xử lý khi lỗi | Theo Kho quà — Ngoại lệ. Mã giao dịch chống tạo trùng mã khi thử lại |
| Ràng buộc | Hạn mức ngân sách/ngày phía nhà cung cấp; mã FPT Play lấy từ hệ thống FPT Play |
| Đầu mối | Mua sắm FTEL; đội FPT Play cho mã nội bộ |
| Trạng thái | Chưa chọn — MVP nhập file mã (Q-QUA-01) |
Hệ thống khách hàng FTEL
| Hạng mục | Nội dung |
| Mục đích | Biết người chơi là khách đang dùng dịch vụ (Internet, FPT Play, camera) hay khách mới: cơ cấu giải riêng, chỉ đẩy lead khách mới, báo cáo theo nhóm |
| Chiều dữ liệu | Minigame → FTEL: SĐT. FTEL → minigame: chỉ cờ khách hiện hữu (có/không), nhóm dịch vụ, chi nhánh quản lý . Không nhận địa chỉ, hợp đồng, cước |
| Thời điểm gọi | Sau khi định danh SĐT, trước phiên chơi đầu tiên trong campaign; lưu kết quả 30 ngày |
| Xử lý khi lỗi | Quá 2 giây hoặc lỗi → coi "Chưa xác định", dùng cơ cấu giải chung, không chặn chơi |
| Ràng buộc | Mục đích tra cứu phải nằm trong nội dung đồng ý của người chơi (Dữ liệu cá nhân) |
| Đầu mối | Chủ hệ thống quản lý khách hàng / hợp đồng FTEL |
| Trạng thái | Cần đàm phán; cần pháp chế xác nhận cơ sở pháp lý |
Analytics
| Hạng mục | Nội dung |
| Mục đích | Đo truy cập, nguồn (UTM), thời gian ở mỗi màn, rơi rụng giữa các màn — bổ sung cho Báo cáo |
| Chiều dữ liệu | Minigame → GA4 (web, webview) / analytics Zalo Mini App: sự kiện màn hình, mã campaign, kênh, game mẫu. Không gửi SĐT, tên, Zalo ID, FPT ID |
| Thời điểm gọi | Phía trình duyệt/app, theo từng sự kiện |
| Xử lý khi lỗi | Bỏ qua, không ảnh hưởng game. Số chính thức lấy từ Báo cáo, không từ GA4 |
| Ràng buộc | Kiosk không gắn GA4 (offline, máy dùng chung). Đồng ý cookie theo Dữ liệu cá nhân |
| Đầu mối | Người quản lý tài khoản GA4 / Digital marketing FTEL |
| Trạng thái | Cần xác nhận dùng property chung hay riêng |
SSO nội bộ & danh mục chi nhánh
| Hạng mục | Nội dung |
| Mục đích | Nhân viên FTEL đăng nhập trang quản trị bằng tài khoản nội bộ; lấy cây vùng → chi nhánh làm phạm vi dữ liệu |
| Chiều dữ liệu | SSO → minigame: email, họ tên, phòng ban. Danh mục → minigame: mã, tên vùng/chi nhánh, quan hệ cha–con |
| Thời điểm gọi | Mỗi lần đăng nhập; danh mục đồng bộ mỗi ngày 1 lần |
| Xử lý khi lỗi | SSO lỗi: theo Tài khoản — Ngoại lệ. Danh mục lỗi: giữ bản cũ, báo quản trị hệ thống |
| Ràng buộc | Vai trò, phạm vi vẫn gán trong minigame, không lấy từ SSO |
| Đầu mối | IT FTEL (SSO); đơn vị quản lý danh mục tổ chức |
| Trạng thái | MVP: tài khoản mật khẩu + 2FA, danh mục nhập tay; SSO đợt sau nếu IT đồng ý (Q-TK-02) |
Quy tắc chung
| Mã | Quy tắc | Ví dụ |
| BR-TH-01 | Lỗi hệ thống ngoài không làm hỏng phiên chơi đang diễn ra; mỗi hệ thống có cách xử lý thay thế ghi ở mục của nó | CRM chết → lead vào hàng đợi, người chơi không biết |
| BR-TH-02 | Mỗi lời gọi ra ngoài có thời gian chờ tối đa và mã giao dịch chống trùng khi thử lại | |
| BR-TH-03 | Chỉ gửi trường dữ liệu cá nhân cần cho mục đích của hệ thống đó | Analytics không nhận SĐT |
| BR-TH-04 | Ghi lại mỗi lời gọi: hệ thống, thời điểm, kết quả, thời gian phản hồi — không ghi OTP, mã quà, token. Lưu 90 ngày | |
| BR-TH-05 | Tỉ lệ lỗi một hệ thống > 5% trong 5 phút → cảnh báo vận hành (Hiệu năng & vận hành) | |
| BR-TH-06 | Mỗi tích hợp có môi trường thử (sandbox) trước khi lên thật; khoá truy cập do quản trị hệ thống cấu hình, không nằm trong mã nguồn | |
Tiêu chí nghiệm thu
AC-TH-01Cho CRM không phản hồi 2 giờ, khi 300 người chơi đồng ý tư vấn, thì sau khi CRM hoạt động lại cả 300 lead được đẩy, không trùng.
AC-TH-02Cho SĐT không dùng Zalo, khi người chơi trúng quà digital, thì mã tới qua SMS trong ≤ 60 giây.
AC-TH-03Cho token app hết hạn, khi mở game trong Hi FPT, thì người chơi thấy màn đăng nhập SĐT + OTP, không thấy lỗi kỹ thuật.
AC-TH-04Cho tra cứu khách hàng FTEL quá 2 giây, thì phiên chơi vẫn bắt đầu với cơ cấu giải chung.
AC-TH-05Cho toàn bộ sự kiện gửi GA4 trong một phiên kiểm thử, thì không có SĐT, tên, Zalo ID, FPT ID.
Câu hỏi mở
| # | Câu hỏi | Hỏi ai | Hạn | Trả lời |
| Q-TH-01 | FTEL đã có hợp đồng ZNS và brandname SMS dùng chung được chưa? Ngân sách tin nhắn cho minigame? | FCM / CSKH | | |
| Q-TH-02 | Hi FPT, FPT Play có lịch phát hành nào để thêm webview + token bridge? FPT ID chia sẻ được SĐT không? | Đội app / FPT ID | | |
| Q-TH-03 | CRM nào nhận lead (hệ thống hiện hành của bán hàng)? Lead phân về chi nhánh theo quy tắc nào? | Bán hàng / IT FTEL | | |
| Q-TH-04 | Có được tra cứu khách hiện hữu bằng SĐT không — cơ sở pháp lý và nội dung đồng ý? | Pháp chế | | |
| Q-TH-05 | Mini app đăng ký dưới OA/pháp nhân nào? Ai giữ tài khoản Zalo for Developers? | FCM | | |
| Q-TH-06 | Có kho dữ liệu/BI chung của FTEL cần nhận dữ liệu minigame không? | Data FTEL | | |
Lịch sử thay đổi
| Bản | Ngày | Người sửa | Nội dung |
| 0.1 | 2026-11-11 | PM | Nháp khởi tạo |