Chiến dịch
Gửi một mẫu tin tới cả phân khúc, mỗi người một tin có dữ liệu riêng. Địa chỉ gốc: https://app.zapro.vn/v1.
Như Broadcasts của Resend. Vòng đời: draft → scheduled → sending → sent, hoặc canceled. Hủy khi đang hẹn giờ thì quay về nháp; hủy khi đang gửi thì tin chưa đi bị hủy.
Cách điền tham số
mapping cho biết mỗi tham số của mẫu lấy từ đâu: {"from":"name"}, {"from":"phone"}, {"from":"property","key":"dich_vu"} hoặc {"from":"text","value":"15:30"}; thêm fallback cho người thiếu dữ liệu. Bỏ trống thì ZaPro tự gợi ý theo tên tham số. Người thiếu dữ liệu bắt buộc bị bỏ qua và được đếm riêng.
POST/v1/broadcasts Body { "name": "Nhắc lịch", "oa": "hoa-sen-spa", "template": "xac-nhan-lich-hen", "segment": "Khách VIP", "mapping": { … }, "send": true, "scheduled_at": "2026-11-08T09:00:00+07:00" }. Bỏ send để tạo nháp.
GET/v1/broadcasts/{id}/review Kiểm tra trước khi gửi: lỗi phải sửa, cảnh báo, số người nhận thật sự, chi phí Zalo ước tính, giờ tin bắt đầu đi.
POST/v1/broadcasts/{id}/test Body { "to": "0901234567" }: gửi một tin thử.
POST/v1/broadcasts/{id}/send Body { "scheduled_at": "…" } tùy chọn, trong vòng 30 ngày.
POST/v1/broadcasts/{id}/cancel
GET/v1/broadcasts
GET/v1/broadcasts/{id} Có stats: total, pending, sent, delivered, failed, canceled, cost; và skipped theo lý do.
PATCH/v1/broadcasts/{id}
DELETE/v1/broadcasts/{id}
Số liệu
GET/v1/metrics?days=7|15|30&oa= Tổng, tỉ lệ tới máy, tỉ lệ thất bại, theo ngày, theo mẫu, theo chiến dịch, lý do thất bại. Không tính tin sandbox.