Şablonlar ve Liquid
Sürümlü mesaj şablonları — oluşturma, sürümler ve geri alma, render önizlemesi, başka app'e kopyalama, şablon galerisi, istatistikler ve Liquid kişiselleştirme sözdizimi.
Şablon (tpl_…), bildirim/kampanya/journey içeriğini tek yerde tutan sürümlü bir kayıttır: her kaydetme yeni sürüm oluşturur, önceki sürüme dönülebilir. İçerik alanları POST /v1/notifications ile aynıdır (headings, contents, kanal alanları, email_mjml…). Dashboard Mesajlar → Şablonlar; e-posta için sürükle-bırak e-posta editörü ve hazır galeri.
API
| İşlem | Uç | Kapsam |
|---|---|---|
| Liste / oluştur | GET, POST /v1/apps/{app_id}/templates { name, channel?, tags?, content } | analytics:read / admin |
| Oku / güncelle / sil | GET, PATCH (content verilirse yeni sürüm), DELETE …/templates/{id} | |
| Sürümler | GET …/templates/{id}/versions; geri alma dashboard'dan (önceki sürüm yeni sürüm olarak kaydedilir) | |
| Render önizlemesi | POST …/templates/{id}/render { channel, language?, user?: { external_id, tags, properties }, custom_data?, content?, version? } → kanal bazlı çıktı (push: başlık/gövde; e-posta: subject, preheader, html, text; SMS: body, encoding, segments) | analytics:read |
| Başka app'e kopyala | POST …/templates/{id}/copy_to_app { target_app_id, name? } | admin |
| İstatistik | GET …/templates/{id}/stats — şablonla gönderilen mesajların toplam/oran özetleri | analytics:read |
Örnekler: API → Şablonlar. Gönderimde template_id verilir; gövdedeki alanlar şablonu ezer.
Liquid
Pushizo, LiquidJS ile sandbox'lı kişiselleştirme sunar (dosya/ağ erişimi yok, zaman ve çıktı sınırı). Değişkenler:
| Değişken | İçerik |
|---|---|
user.id, user.external_id, user.language | Kullanıcı kimliği |
user.tags.*, user.properties.* | Tag ve özellikler |
subscription.channel, subscription.language, subscription.timezone, subscription.device.* | Alıcı aboneliği |
event.name, event.properties.* | Journey tetikleyen olay |
feed.<ad>.* | Data Feeds (dış kaynaktan çekilen JSON) |
| İçerik tablosu satırı | Dynamic Content etiketiyle seçilen satır |
unsubscribe_url | Teslimata özgü abonelikten çıkma bağlantısı (e-posta) |
Merhaba {{ user.tags.first_name | default: "orada" }},
{% if user.properties.ltv > 500 %}VIP indiriminiz hazır{% else %}bugüne özel %10{% endif %}.
{% if feed.profil %}{{ feed.profil.puan }} puanın var!{% else %}Puanlarını keşfet!{% endif %}- E-posta HTML gövdelerinde çıktı HTML kaçışlıdır; bilinçli ham HTML için
{{ değer | raw }}. - LiquidJS standart etiket ve filtreleri (
if,for,assign,date,upcase,truncate,default,json…) kullanılabilir. - Sözdizimi hatası
422 HS_CONTENT_INVALID(details.issuessatır/sütun verir); dashboard editörü canlı önizler. - Dinamik içerik yanıt süresi: Data Feed çağrıları önbellekli ve zaman aşımlı; başarısızsa
defaultfiltresiyle geri düşün.
Galeri ve yapay zekâ
Şablon galerisi sektör bazlı hazır e-posta/push şablonları sunar; AI içerik asistanı başlık/gövde önerileri, ton ve dil çevirisi üretir (AI asistanı). Üretilen metin şablona kaydedilmeden önce düzenlenebilir.
Kampanyalar
Kampanya yaşam döngüsü — türler (tek seferlik, zamanlanmış, tekrarlı), durum makinesi, kitle ve içerik, teslimat ayarları, onay akışı, A/B varyantları, istatistikler ve public API.
Dynamic Content (içerik tabloları ve `{% lookup %}`)
İçerik tabloları, CSV ile yüklenen satırlardan anahtar sütununa göre seçim yaparak kişiselleştirme sağlar: şehir, mağaza veya ürün bazlı kampanya metinleri gibi. Karar kaydı:…