Toả đi nhiều kênh
Một yêu cầu, nhiều người nhận và nhiều kênh; mỗi người nhận có một lượt gửi riêng để theo dõi.
Cổng thông báo · Go + PostgreSQL
Gửi một lần, tới người nhận ở nơi họ đang ở: email, Telegram, tin nhắn CalixOne — hoặc cuộc gọi PCall đọc to nội dung. PNotify xếp hàng từng lượt gửi, thử lại khi lỗi và báo cái gì đã tới.
{ "template": "order_confirmed", "data": {"name": "An", "order_id": "A1"}, "recipients": [ {"channel": "email", "to": "an@example.com"}, {"channel": "telegram", "to": "123456789"}, {"channel": "pcall_msg", "to": "calix1…"}, {"channel": "pcall_call","to": "calix1…"} ] } ← 202 Accepted (200 if the Idempotency-Key was seen)
Làm được gì
Có hàng đợi, thử lại và trạng thái theo từng người nhận — thay cho đoạn script gửi rồi quên.
Một yêu cầu, nhiều người nhận và nhiều kênh; mỗi người nhận có một lượt gửi riêng để theo dõi.
Mỗi lượt gửi được lưu vào PostgreSQL trước khi gửi, nên sập hay khởi động lại cũng không mất thông báo.
Lỗi tạm thời được thử lại với khoảng chờ tăng dần; lỗi vĩnh viễn dừng ngay thay vì gõ mãi vào nhà cung cấp.
Mẫu tin nằm trong binary. Thiếu khoá dữ liệu là báo lỗi, nên không bao giờ gửi đi tin điền dở.
Tới người dùng ngay trong CalixOne: tin nhắn chat, hoặc cuộc gọi đổ chuông trong app và đọc nội dung bằng giọng tiếng Việt tự nhiên.
Gửi kèm Idempotency-Key thì yêu cầu thử lại trả về kết quả ban đầu thay vì thông báo hai lần.
Cách hoạt động
Mỗi người nhận đi qua cùng những trạng thái nhìn thấy được.
Hệ thống của bạn gọi POST /v1/notifications kèm mẫu tin, dữ liệu và người nhận. Bạn nhận về 202.
Mỗi người nhận một lượt gửi được lưu ở trạng thái pending.
Một worker nhận lượt gửi và chuyển cho kênh: sending rồi sent.
Kênh có thể xác nhận — PCall — báo về qua webhook: delivered hoặc failed.
GET /v1/notifications/{id} liệt kê từng lượt gửi và trạng thái; dead nghĩa là PNotify đã bỏ cuộc.
FAQ
Giao ít nhất một lần nên hiếm khi có thể. Dùng Idempotency-Key để chống việc bạn thử lại; nhà cung cấp cũng nhận id lượt gửi.
Lớp thoại và chat của CalixOne. PNotify xuất hiện ở đó như một tài khoản bot nhắn tin cho mọi người và có thể gọi để đọc to thông báo.
Kênh không được đăng ký; lượt gửi cho nó kết thúc ở dead với lý do “channel not configured”.
PNotify được triển khai riêng cho từng khách hàng. Hãy liên hệ để cùng dựng môi trường thử.
Cho chúng tôi biết ai cần được báo, về việc gì và nhanh đến đâu.
Liên hệ