Gửi thông báo (Push Notification)#
Mục tiêu: Admin soạn notification, chọn target audience, hẹn giờ gửi, và workflow approve.
Mục tiêu#
- Soạn notification với title/message/action.
- Target: ALL_USERS / USER_SEGMENT / SPECIFIC_USERS.
- Hẹn giờ gửi hoặc gửi ngay.
- Workflow approve trước khi gửi.
Điều kiện tiên quyết#
- Quyền Notification.
- Để target segment: đã có Segment.
Các bước thực hiện#
1. Tạo notification#
- Vào
/notification. - Bấm Tạo mới.
- Điền form:
- Tiêu đề (bắt buộc) — heading hiển thị
- Tin nhắn (bắt buộc) — body
- Mã code — unique identifier
- Danh mục —
SYSTEM/CAMPAIGN/USER_ACTION - Ảnh (tùy chọn) — thumbnail
- Hẹn giờ?:
- Bỏ tick: duyệt xong gửi ngay.
- Tick: nhập Hẹn giờ vào lúc (ngày/giờ).
- Đối tượng (targetUsers):
ALL_USERS— mọi Influencer activeUSER_SEGMENT— user trong segment → chọn segmentSPECIFIC_USERS— chọn user cụ thể (search)
- Action khi click:
NONE— không làm gìURL— mở URL externalDEEP_LINK— mở deep link trong app
- Lưu → notification có status PENDING (Đợi duyệt).
2. Duyệt (Approve)#
- Xem bảng, find notification ở PENDING.
- Action Approve trên row.
- Nếu
isAutomaticTimer = false→ gửi ngay. - Nếu true → chờ đến
startAt→ tự gửi.
3. Huỷ (Reject)#
Nếu notification chưa phù hợp:
- Action Reject.
- Status → REJECTED.
4. Clone#
Copy 1 notification cũ để tạo mới nhanh:
- Action Clone trên row.
- Mở form pre-filled với data cũ.
- Edit + save.
5. Gửi ngay (Send Now)#
Notification TIMER đang chờ giờ, muốn gửi ngay:
- Action Send now (hoặc
POST /notifications/{id}/send-now). - Bỏ qua schedule, gửi liền.
6. Xem người nhận#
Action View users → drawer mở ra, hiển thị:
- Tổng users
- List user kèm name/email/phone/avatar (pagination)
- Export CSV
Chi tiết từng bước#
4 Status notification#
| Status | Ý nghĩa |
|---|---|
| PENDING | Đang chờ duyệt |
| TIMER | Đã duyệt + đang chờ giờ gửi |
| COMPLETED | Đã gửi xong |
| REJECTED | Đã huỷ |
Cột bảng#
| Cột | Ý nghĩa |
|---|---|
| Tiêu đề | |
| Partner | |
| Tin nhắn | |
| Mã code | |
| Danh mục | SYSTEM / CAMPAIGN / USER_ACTION |
| Loại gửi | Timer / Gửi ngay |
| Trạng thái | 4 status trên |
| Người tạo | |
| Hẹn giờ | |
| Ngày tạo |
Limitation: chỉ edit khi PENDING#
Notification TIMER / COMPLETED không edit được. Nếu cần, Reject + Clone + tạo mới.
Channel của notification#
Notification hiện là in-app push. Các channel khác (email, SMS, Zalo) có thể được setup qua integration riêng, không trong UI này.
Best practice#
- Tiêu đề ngắn gọn — max 40 chars để không bị cut trên mobile.
- Tin nhắn — clear call-to-action.
- Ảnh — tăng CTR, nhưng tăng payload size.
- Action link — luôn có để user click vào đâu đó.
- Segment — target đúng tránh spam all users.
Lỗi thường gặp#
1. Notification không gửi sau khi duyệt#
- Cron job gửi notification lỗi.
- Check Audit log.
- Liên hệ DevOps.
2. User complain "không nhận được thông báo"#
- User đã tắt notification trong cài đặt app.
- Token push bị invalid (họ reset app).
- Check user đã active chưa.
3. Gửi nhầm cho user không nên nhận#
- Segment sai. Check lại condition segment.
- Target SPECIFIC_USERS nhưng chọn nhầm.
4. Edit notification không save#
- Status đã qua PENDING. Phải Clone + tạo mới.
5. View Users drawer trống#
- Segment không có user match.
- Target SPECIFIC_USERS chưa chọn ai.
Câu hỏi thường gặp (FAQ)#
Gửi cho bao nhiêu user/lần?
Không giới hạn cứng từ UI. Nhưng > 100k users cần thời gian xử lý. Chia batch nếu cần.
Notification có delivery report không?
Có (partial). View Users drawer hiển thị ai đã nhận. Nhưng không có delivery confirmation real-time.
Có retry khi user offline?
Push notification có TTL (thường 24h). User online trong thời gian đó sẽ nhận. Sau TTL → miss.
Có A/B test không?
Chưa có built-in. Workaround: tạo 2 notification với 2 version, target 2 segment khác nhau.
Notification có bị gộp không?
App OS có thể gộp nếu Influencer nhận nhiều notification cùng lúc (depends on iOS/Android behavior).
Gửi email thay vì push?
Feature khác. Liên hệ team Product nếu cần email campaigns.
Liên kết liên quan#
Tham khảo SRS: admin-portal/10-cms-notification