Bildirim kutusu (inbox)
Uygulama içi bildirim kutusu — add_to_inbox ile mesaj ekleme, geçerlilik süresi, SDK ve public API uçları, okundu/arşiv durumları.
Bildirim kutusu, push ulaşmasa da kullanıcının uygulama içinde görebileceği kalıcı bir mesaj listesidir. POST /v1/notifications, kampanya ya da journey gönderiminde add_to_inbox: true verildiğinde hedeflenen (bastırılmamış) her kullanıcı için bir öğe oluşur: kullanıcının dilinde başlık/gövde, app_url ya da url, big_picture ve data. Aynı mesaj aynı kullanıcıya bir kez eklenir; inbox_ttl (saniye) dolunca öğe görünmez olur ve günlük bakımda silinir.
{
"target": { "include_external_ids": ["user_42"] },
"headings": { "tr": "Kampanya başladı" },
"contents": { "tr": "Seçili ürünlerde %20 indirim" },
"app_url": "myapp://campaigns/spring",
"add_to_inbox": true,
"inbox_ttl": 604800
}Push kanalı olmayan (ör. yalnızca target.channels: ["email"]) mesajlarda da kutuya eklenir; push izni olmayan kullanıcılar için tek görünür kanal olabilir.
SDK uçları
Abonelik kullanıcıya ait olmalı; app identity verification istiyorsa identity_hash (ya da JWT) zorunludur.
| Uç | Yanıt |
|---|---|
GET /sdk/v1/apps/{app_id}/users/{user_id}/inbox?subscription_id=&identity_hash=&limit=&cursor= | { data: [{ id, message_id, title, body, url, image_url, data, read, read_at, archived_at, expires_at, created_at }], unread_count, next_cursor, has_more } (yeniden eskiye) |
POST …/inbox/{item_id}/read { subscription_id, identity_hash? } | öğe |
POST …/inbox/read-all { subscription_id, identity_hash? } | { updated, unread_count } |
DELETE …/inbox/{item_id}?subscription_id=&identity_hash= | arşivler |
SDK yüzeyi (tüm istemcilerde aynı): Pushizo.Inbox.list({ cursor }), markRead(id), markAllRead(), archive(id), unreadCount ve değişim gözlemcisi; Web'de hazır bileşen (Web SDK → bildirim kutusu), çatı sarmalayıcılarında <PushizoInbox /> (React).
Public API
Kullanıcı alias ile seçilir; okuma users:read, değiştirme users:write:
GET /v1/apps/{app_id}/users/by/{label}/{value}/inbox?include_archived=&limit=&cursor=POST …/inbox/{item_id}/read,POST …/inbox/read-all,DELETE …/inbox/{item_id}
Tüm alanlar ve dil örnekleri: API → Bildirim kutusu. Dashboard'da kullanıcı detayında Bildirim kutusu sekmesi öğeleri ve durumlarını gösterir.
Davranış notları
- Okunmamış sayısı
unread_counther listede döner; SDK rozet/sayac için kullanır. - A/B kampanyalarda öğe, kullanıcıya atanan varyantın içeriğiyle oluşturulur.
- Kullanıcı silindiğinde öğeler silinir; "Verileri temizle" kutuyu boşaltır.
HTML in-app mesajları, şablon galerisi ve carousel
Karar kaydı: ADR-0027. In-app mesaj editöründe içerik türü HTML seçilir veya Şablondan başla ile galeriden (24 hazır şablon, tr/en) bir görünüm kopyalanır.
Kullanıcılar, alias'lar ve abonelikler
Pushizo kimlik modeli — end user, external_id ve özel alias'lar, abonelikler (cihaz, e-posta, telefon), tag/özellik/deltas, anonim → kimlikli birleştirme, olaylar ve public API uçları.