Ana içeriğe atla
Custom Events, olay ozelliklerini (urun adlari, fiyatlar, URL’ler, diziler vb.) kullanarak Journey mesajlarini kisisellestirmenizi saglar. Olay ozellikleri sablonlarda yalnizca olay asagidaki kosullari karsiladiginda kullanilabilir:
  • Journey girisini tetiklediginde veya
  • Journey icindeki bir Wait Until kosuluyla eslesmediginde
Depolanan olay ozelliklerine Liquid sozdizimi kullanilarak erisilebilir.

Custom Event kisisellestirmesi nasil calisir

Bu adimlari izleyerek Journey mesajlariniza olay ozellikleri ekleyin:
1

Ozelliklerle birlikte bir Custom Event gonderin

Ornek Custom Events veri yapisi:
JSON
{
  "name": "purchase",
  "properties": {
    "item": "Blue Sweater",
    "price": "29.99",
    "order status": "pending",
    "details": [
      {
        "manufacturer": "Company A",
        "model": "1234567890"
      },
      {
        "manufacturer": "Company B",
        "model": "9876543210"
      }
    ]
  },
  "external_id": "user_12345",
  "timestamp": "2025-10-21T19:09:32.263Z",
}
2

Journey mesaj sablonlarinda olay ozelliklerine basvurun

Olay ozelliklerine erismek icin Liquid sozdizimi kullanin.

Yaygin Liquid erisim kaliplari

Ne istiyorsunuzLiquidCikti
Olay adi{{ journey.first_event.name }}purchase
Ozellik{{ journey.first_event.properties.item }}Blue Sweater
Ic ice ozellikler{{ journey.first_event.properties.details.first.manufacturer }}Company A
Ozel karakterli ozellik{{ journey.last_event.properties["order status"] }}pending
Zaman damgasi{{ journey.last_event.timestamp | date: "%B %d, %Y at %I:%M %p" }}October 21, 2025 at 07:09 PM

Ic ice Liquid erisim kaliplari

Ic ice ozelliklere nokta ve koseli parantez gosterimi kullanarak da erisebilirsiniz:
Liquid
{{ journey.first_event.properties.details.first.manufacturer }} = Company A
{{ journey.first_event.properties.details.last.manufacturer }} = Company B
{{ journey.first_event.properties.details[0].manufacturer }} = Company A
{{ journey.first_event.properties.details[1].manufacturer }} = Company B
Gecersiz Liquid veya eksik ozellikler bos dize olarak islenir. Mesajlar yine de gonderilir. Bir yedek deger belirlemek icin varsayilan filtreler kullanin.
3

Bir Journey olusturun

Journey’yi giris kurali ve/veya Wait Until kosulu olarak Custom Event’i kullanacak sekilde ayarlayin.Sablonlarla mesaj dugumlerini ekleyin.

Olay ozelligi depolama kurallari

  • Giris kurallari ve Wait Until adimlarini birlestirerek Journey’nizde birden fazla olay kullanabilirsiniz.
  • Maksimum: Kullanici basina Journey ornegi basina 100 depolanmis olay ozelligi (en eskiler kaldirilir).
  • Olay ozellikleri kullanici basina, Journey ornegi basina depolanir.
  • Giristen once gonderilen olaylara erisilemez.
  • Kullanici Journey’den ciktiginda olay ozellikleri temizlenir.
Bir Journey’de depolanan olaylara baska bir Journey’den erisilemez.

Custom Event Liquid referansi

Journey icindeki depolanmis olaylara erismek icin bu nesneleri kullanin.
journey.first_event
Bu Journey ornegi icin depolanan ilk olay.
  • Bir Custom Event Giris Kurali kullaniyorsaniz, bu Journey girisine neden olan olaydir.
  • Custom Event Giris Kurali kullanmiyorsaniz, bu bir Wait Until kosuluyla eslesen ilk depolanan olaydir.
Liquid
Thanks for purchasing {{ journey.first_event.properties.item | default: "your item" }}!
journey.last_event
Bu Journey ornegi icin en son depolanan olay.
  • Yalnizca bir olay depolanmissa, first_event ve last_event ayni seyi dondurur.
Liquid
Your most recent purchase was {{ journey.last_event.properties.item | default: "made" }}!
journey.event.EVENT_NAME
Belirli bir ada sahip en son depolanan olay.
  • EVENT_NAME yerine olay adinizi yazin (ornegin purchase).
  • Ayni olay adi birden fazla kez kullanilmissa, en son ornegi dondurur.
Liquid
{% assign event = journey.event.purchase %}
Olay adiniz bosluk veya ozel karakterler iceriyorsa, koseli parantez gosterimi kullanin.Ornek Olay: "name": "order status"
Liquid
{% assign event = journey.event["order status"] %}
journey.all_events
array
Bu Journey ornegi icin depolanmis tum olaylar, depolanma sirasina gore.
Liquid
{% for event in journey.all_events %}
{{ event.properties.item | default: "Item" }} — ${{ event.properties.price | default: "0.00" }}
{% endfor %}
  • journey.first_event, journey.all_events[0] ifadesinin kisaltmasidir.
  • journey.last_event, dizideki en son olayin kisaltmasidir.

Ornek: Custom Events kullanarak terk edilmis sepet sablonlari

Bu ornek, Custom Events kullanarak terk edilmis sepet mesajlarinin nasil kisisellestirilecegini gostermektedir. Terk Edilmis Sepet rehberi uzerine insa edilmistir. Ornek Custom Event seti:
JSON
{
  "events": [
    {
      "name": "cart_abandoned",
      "properties": {
        "cart_url": "https://yourdomain.com/username/cart",
        "cart": [
          {
            "product_name": "24 Pack of Acorns",
            "product_image": "https://i.imgur.com/ssPCfbC.png",
            "product_price": "$12.99",
            "product_quantity": "1"
          },
          {
            "product_name": "Fancy Sweater",
            "product_image": "https://i.imgur.com/8QWTfV4.png",
            "product_price": "$9.99",
            "product_quantity": "1"
          }
        ]
      },
      "external_id": "ID_OF_THE_USER"
    }
  ]
}

E-posta sablonu

Bu ornek, asagidakileri goruntuleyen bir e-posta sablonunun nasil olusturulacagini gostermektedir:
  • Sepetteki urun sayisi
  • For dongusu kullanarak her urunun gorseli, adi, miktari ve fiyati
  • Musterinin benzersiz sepet URL’sine baglanti veren bir buton
1

E-posta sablonunu olusturun

Messages > Templates > New Email Template sayfasina gidin ve Surukle & Birak Duzenleyiciyi acin.
2

Yapi duzenini ekleyin

Bes satir olusturun:
  • Satir 1, 2 ve 4: bir Paragraf blogu iceren tek sutun
  • Satir 3: HTML | Paragraf | Paragraf | Paragraf iceren dort sutun
  • Satir 5: bir Buton blogu iceren tek sutun
3

Urun sayisini goruntuleyin

Satir 1’de ekleyin:
Liquid
We're holding onto {{journey.first_event.properties.cart.size}} items in your cart, but don't wait too long!
Daha dogru dilbilgisi icin “1 urun” ile “2 urun” arasinda ayrım yapmak uzere bir kosullu ifade kullanabilirsiniz, ancak terk edilmis sepet e-postalari icin cogul ifade genellikle kabul edilebilir.
Liquid
{% assign cart = message.custom_data.cart %}
{% assign item_count = cart.size | plus: 0 %}
{% if item_count == 1 %}
We're holding onto {{item_count}} item in your cart, but don't wait too long, other squirrels are getting ahead!
{% endif %}
{% if item_count > 1 %}
We're holding onto {{item_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!
{% endif %}
4

For dongusunu baslattin

Her sepet urunu icin urun gosterim satirini tekrarlamak uzere bir for dongusu kullanin.Satir 2’de (dongu baslangici), ekleyin:
Liquid
{% for product in journey.first_event.properties.cart %}
Bu ne yapar:
  • cart dizisindeki her nesne uzerinde yinelenen bir dongu baslatir
  • Mevcut ogesi temsil eden gecici bir product degiskeni olusturur
  • {% for %} ile {% endfor %} arasindaki her sey, her sepet urunu icin bir kez tekrarlanir
  • product yerine istediginiz ismi verebilirsiniz (ornegin item, cartItem) — yeter ki tutarli olun
For dongusu yerlesimi: {% for %} sozdiziminin kendi Metin blogu satirinda oldugundan emin olun. Bunu diger iceriklerle birlikte cok sutunlu bir satira yerlestirmeyin, cunku bu bazi e-posta istemcilerinde e-posta gorunumunu bozabilir.
5

Urun detaylarini goruntuleyin

Bu 4 sutunlu satir gorsel, ad, miktar ve fiyati gosterir. Dongunun icinde oldugu icin her sepet urunu icin tekrarlanir.Satir 3’te (urun detaylari), yapilandirin:Sutun 1 - HTML blogu (urun gorseli):
<img src="{{product.product_image}}" alt="Product image" style="max-width:100%;" />
Sutun 2-4 - Metin bloklari (urun adi, miktar, fiyat):
  • Sutun 2: {{product.product_name}}
  • Sutun 3: {{product.product_quantity}}
  • Sutun 4: {{product.product_price}}
Dongu nasil calisir:
  • Ilk yinelemede, product = sepet dizisindeki ilk nesne
  • {{product.product_image}} ilk urunun gorselini alir
  • Ikinci yinelemede, product = ikinci nesne
  • Satir tum sepet urunleri icin otomatik olarak tekrarlanir
Alan adi eslesmesi: product_image gibi anahtarlar, olay veri yapisindaki ile tam olarak eslesmelidir (buyuk/kucuk harf duyarli). Uyumsuzluklar bos dize olarak islenir.
6

For dongusunu sonlandirin

Tekrarlamanin nerede duracagini belirlemek icin donguyu kapatin.Satir 4’te (dongu sonu), ekleyin:
Liquid
{% endfor %}
Her {% for %} ifadesinin eslesenmis bir {% endfor %} ifadesi olmalidir. Bunu atlamak e-posta islemesini bozar.
7

Sepet URL butonunu ekleyin

Satir 5’teki Buton blogunda, Eylem URL’sini su sekilde ayarlayin:
Liquid
{{journey.first_event.properties.cart_url}}
8

Sablonu test edin

  • Sablonu bos bir Journey’ye ekleyin ve giris kuralini Custom Event olarak ayarlayin.
  • Journey’yi etkinlestirin ve Custom Event API araciligiyla kendinizi giris yapin.
  • Verilerin dogru goruntulendigini dogrulayin.
Basarili! Artik sablonunuza kendi stilinizi uygulayabilirsiniz. Bkz. Surukle ve birak ile e-posta tasarlama.

Push sablonu

Push bildirimlerinde sinirli alan vardir, bu nedenle bir urun gosterin ve toplam sayiyi belirtin. Mesaj alani: Kosullu ifadeler kullanarak urun ve sayiyi dogru dilbilgisiyle goruntuleyin.
Liquid
{% assign cart = journey.first_event.properties.cart %}
{% assign item_count = cart.size | plus: 0 %}
{% if item_count == 1 %}
You left {{cart.first.product_name}} in your cart.
{% endif %}
{% if item_count == 2 %}
You left {{cart.first.product_name}} and {{item_count | minus: 1}} more item in your cart.
{% endif %}
{% if item_count > 2 %}
You left {{cart.first.product_name}} and {{item_count | minus: 1}} more items in your cart.
{% endif %}
Gorsel alani:
Liquid
{{journey.first_event.properties.cart.first.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
Acilis URL alani:
Liquid
{{journey.first_event.properties.cart_url | default: "https://yourdomain.com/cart"}}
Test Journey’sine ekleyerek ve baska bir Custom Event API cagrisi araciligiyla kendinizi giris yaparak kendinize bir test push bildirimi gonderin. Buna benzer bir bildirim gormeniz gerekir:
Basarili! Artik daha fazla sablon olusturabilir ve bunlari Terk Edilmis Sepet Journey’sinde kullanabilirsiniz.

Sorun giderme ve en iyi uygulamalar

Yaygin hatalar:
HataNeden basarisiz olurDogru sozdizimi
{{ journey.first_event.item }}.properties eksik{{ journey.first_event.properties.item }}
{{ journey.event.purchase.item }}.properties eksik{{ journey.event.purchase.properties.item }}
{{ journey.first_event.properties.Item }}Yanlis buyuk/kucuk harf (item olmali){{ journey.first_event.properties.item }}
{{ event.properties.item }}journey. on eki eksik{{ journey.first_event.properties.item }}
En iyi uygulamalar:
  • Sablonlari yayina almadan once her zaman test edin
  • Istege bagli ozellikler icin varsayilan filtreler kullanin
  • Olay semasinin sablon beklentileriyle eslestigini dogrulayin

Ilgili sayfalar

Yardıma mı ihtiyacınız var?Destek ekibimizle sohbet edin veya support@onesignal.com adresine e-posta gönderinLütfen şunları ekleyin:
  • Yaşadığınız sorunun ayrıntıları ve varsa yeniden üretme adımları
  • OneSignal Uygulama Kimliğiniz
  • Varsa Harici ID veya Abonelik ID
  • Varsa OneSignal Panosunda test ettiğiniz mesajın URL’si
  • İlgili günlükler veya hata mesajları
Size yardımcı olmaktan mutluluk duyarız!