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

Mesaj kisisellestirme

Custom Events ve diger yontemler dahil olmak uzere OneSignal’daki tum kisisellestirme seceneklerine genel bakis.

Custom Events

SDK veya API araciligiyla Custom Events uygulama ve gonderme icin eksiksiz rehber.

Journey'lere genel bakis

Tetikleyiciler, kosullar ve eylemlerle otomatik mesajlasma is akislari olusturmayi ogrenin.

Journey ayarlari

Olay tetiklemeli giris kurallarini ve Journey davranisini yapilandirin.

Wait Until eylemleri

Journey ilerlemesi sirasinda ek olaylari depolamak icin Wait Until dugumlerini kullanin.

Liquid sozdizimini kullanma

Filtreler, kosullar, donguler ve dize manipulasyonu ile eksiksiz Liquid referansi.

Sablonlar

Journey’lerde kullanmak icin yeniden kullanilabilir mesaj sablonlari olusturun ve yonetin.
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!