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ı:…
İç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ı: docs/adr/0028-data-feeds-dynamic-content-ai.md.
CSV hazırlama
- UTF-8 (BOM olabilir), ilk satır başlık, virgülle ayrılmış; tırnaklı alanlar desteklenir.
- Sütun adları harf veya alt çizgiyle başlar, yalnızca harf/rakam/alt çizgi içerir (
kampanya_metni). - Anahtar sütunu değerleri boş olamaz ve benzersiz olmalıdır.
- Sınırlar: 100.000 satır, 50 sütun, hücre başına 2000 karakter, dosya 20 MB.
sehir,kampanya_metni,indirim
İzmir,"Kordon'da %20 indirim",20
Ankara,Kızılay şubesi açıldı,10
```text
## Yükleme
Dashboard → **Mesajlar → Dinamik İçerik → İçerik tabloları → CSV yükle** veya public API (multipart; alanlar
dosyadan önce):
```bash
curl -X POST https://api.pushizo.example/v1/apps/$APP_ID/content-tables \
-H "Authorization: Bearer $API_KEY" \
-F name=sehirler -F key_column=sehir -F file=@sehirler.csv
```text
Yeniden yükleme (`PUT …/content-tables/{tableId}/rows`) tablonun tüm satırlarını değiştirir ve sürümü artırır;
gönderimdeki satır önbelleği sürüme bağlı olduğundan yeni satırlar hemen kullanılır. Önizleme:
`GET …/content-tables/{tableId}/rows?q=<anahtar öneki>&limit=50&offset=0`.
## Şablonda kullanım
```liquid
{% lookup 'sehirler' key: user.tags.sehir as satir %}
{% if satir %}{{ satir.kampanya_metni }}{% else %}Tüm şehirlerde kampanya!{% endif %}
```text
- Anahtar ifadesi `user.*`, `subscription.*`, `custom_data.*` ve `feed.*` değerlerini kullanabilir.
- Anahtar karşılaştırması metin üzerindendir (sayılar metne çevrilir, baş/son boşluk yok sayılır).
- Eşleşme yoksa `satir` boştur; her zaman `{% if %}` ile yedek verin.
- Sınırlama: `{% for %}` döngüsündeki yerel değişkene bağlı anahtarlar gönderimden önce toplu yüklenemediği için
boş döner.
Gönderimde kullanılan anahtarlar teslimat grubunun her alıcısı için hesaplanır ve tablo başına tek sorguyla yüklenir.Ş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.
Data Feeds
Data Feeds, mesaj gönderilirken her alıcı için harici bir JSON uç noktasından veri çeker ve şablonda {{ feed.<ad>.alan }} olarak kullanılmasını sağlar (sadakat puanı, stok, sepet, hava durumu…). Karar kaydı:…