> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Journey eylemleri

> Bekleme dönemlerini tanımlayın, kullanıcı davranışına göre yolculukları dallandırın ve yolculuk adımlarını kullanarak kullanıcıları etiketleyin.

Kullanıcıların Journey'nizde nasıl ve ne zaman hareket edeceğini kontrol etmek, deneyimleri kişiselleştirmek ve sonuçları test etmek için **Journey eylemleri**'ni kullanın.

## Bekle

Kullanıcının Journey ilerlemesini belirli bir süre—dakika, saat, gün veya hafta—geciktirin.

Şunlar için kullanın:

* Mesajları ve adımları aralıklı hale getirin
* Dallanmadan önce kullanıcıların bir mesajla etkileşime girmesi için zaman tanıyın

<Frame caption="Journey'de ilerlemeyi bekleyen kullanıcılarla birlikte bir bekleme düğümü">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/docs/wait-node.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=13178c10c8f9d0e439c47e601ad00978" width="644" height="391" data-path="images/docs/wait-node.png" />
</Frame>

***

## Kadar bekle

Belirli koşulları karşılayana kadar bir kullanıcıyı bu adımda tutun:

* Bir segmente girme
* Bir mesaj olayını tetikleme (ör. belirli mesaj teslim edildi, açıldı veya tıklandı)
  * Şu anda **kadar bekle adımı başına yalnızca bir mesaj olayı** desteklenmektedir.
* Özel bir olay tetikleme (ör. onboarding tamamlandı, satın alma yapıldı)

**Birden fazla koşul ekleyebilir** ve kullanıcıları *karşıladıkları ilk koşula* göre dallandırabilirsiniz. Bu koşullar belirli bir süre içinde karşılanmazsa, kullanıcıları Journey boyunca devam ettirmek veya tamamen çıkarmak için bir **son kullanma dalı** ayarlayabilirsiniz.

<Note>
  Bir kullanıcı bu adıma ulaştığında bir koşulu zaten karşılıyorsa, beklemeden doğrudan o dala geçer. Koşullar sırayla (yukarıdan aşağıya / A–Z) değerlendirilir.
</Note>

Özel Olaylar giriş kuralını kullanarak, kullanıcıları birden çok kez giriyorsanız, kullanıcının hangi örneğinin Journey boyunca ilerleyeceğini kontrol etmek için [Olay Eşleştirme](#event-matching) de ekleyebilirsiniz.

<Frame caption="Kullanıcı bir segmentte olana veya özel bir olay tetikleyene kadar bekle">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/journeys/journeys-wait-until-action.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=1a27c7d1bb9e26bc68a9980d9662b400" width="952" height="1462" data-path="images/journeys/journeys-wait-until-action.png" />
</Frame>

Özel bir olay bir koşulla eşleştiğinde, bu olay kullanıcı adına saklanır ve Journey mesajları gönderilirken [Liquid söz diziminde referans alınabilir](./custom-events#liquid-syntax-for-custom-events).

### Olay Eşleştirme

Özel Olaylar giriş kuralını kullanarak, kullanıcıların bir Journey'ye birden çok kez girmesini sağlayabilirsiniz. Kadar Bekle adımının **Olay Eşleştirme** ayarı ile, kullanıcının hangi örneğinin Journey boyunca ilerleyeceğini kontrol edebilirsiniz.

Gereksinimler:

* Journey Giriş Kurallarını özel bir olay kullanacak şekilde ayarlayın.
* Kullanıcıları Journey'ye girerken bir olay özelliği ekleyin.

Örneğin, bir "Anket Hatırlatıcısı" Journey'niz var. Birden fazla anketiniz var, bu da kullanıcıların Journey'ye birden çok kez girebileceği anlamına gelir (her anket için bir kez). Anketi tamamlamadılarsa bir hatırlatma mesajı göndermek veya tamamladılarsa onları kaldırmak istiyorsunuz.

Kullanıcının hangi örneğinin Journey boyunca ilerleyeceğini kontrol etmek için **Olay Eşleştirme** ayarını kullanabilirsiniz.

**Örnek**:

<Steps>
  <Step title="Journey Giriş Kurallarını ve özel olay özelliklerini ayarlayın">
    Journey Giriş Kurallarını özel bir olay kullanacak şekilde ayarlayın. **Örnek**: `survey_start`

    <Frame caption="Özel bir olay kullanan Journey Giriş Kuralları">
      <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/journeys/survey_start.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=146924d7b2a759c1894496745a078c4f" width="469" height="298" data-path="images/journeys/survey_start.png" />
    </Frame>

    Kullanıcılar [Özel Olay API'si](/reference/create-custom-events) aracılığıyla Journey'ye girecektir.

    Özel olay, `name` özelliği `survey_start` olarak ayarlanmış ve yaptıkları anketin bir değerine (ör. `survey_1`) sahip bir `payload` özelliği `survey_id` içerecektir.

    ```json Entrance Trigger Event Example theme={null}
    {
      "events": [
        {
          "external_id": "UserA",
          "name": "survey_start",
          "properties": {
              "survey_id": "survey_1"
          }
        }
      ]
    }
    ```
  </Step>

  <Step title="Bir Kadar Bekle adımı ve özel olay özellikleri oluşturun">
    Kadar Bekle koşulunu özel bir olay kullanacak şekilde ayarlayın. **Örnek**: `survey_complete`

    Kullanıcının hangi örneğinin Kadar Bekle adımından ilerleyeceğini şunları eşleştirerek belirtmek için **Olay Eşleştirme** seçeneğini ayarlayın:

    * **Tetikleyici Olay Özelliği**: Journey giriş tetikleyici olayında ayarlanır (ör. `survey_id`)
    * **Bekleme Olayı Özelliği**: Kadar Bekle olayında ayarlanır (ör. `survey_type`)

    ```json Wait Until Event Example theme={null}
    {
      "events": [
        {
          "external_id": "UserA",
          "name": "survey_complete",
          "properties": {
              "survey_type": "survey_1"
          }
        }
      ]
    }
    ```

    `survey_id` değeri `survey_type` değeriyle eşleştiğinde, kullanıcının bu örneği Journey boyunca ilerleyecektir.

    <Warning>
      Hem **Tetikleyici Olay Özelliği** hem de **Bekleme Olayı Özelliği**'nde aynı özellikleri (ör. `survey_id`) kullanabilirsiniz. Örnek, kavramı göstermek için farklı özellikler (ör. `survey_id` ve `survey_type`) kullanır.

      Özellikler büyük/küçük harfe duyarlıdır! `survey_1`, `Survey_1`'e eşit değildir.
    </Warning>

    **Son kullanma dalı**:

    Kadar Bekle olayı son kullanma süresi içinde gerçekleşmezse, kullanıcı Journey boyunca ilerleyecektir. Bu örnek, kullanıcıya anketi tamamlamak için 1 hafta verir.

    <Frame caption="Özel bir olay kullanan Kadar Bekle adımı">
      <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/journeys/survey_complete.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=59ad63e1af649a09f5c3a18a32a979b8" width="488" height="648" data-path="images/journeys/survey_complete.png" />
    </Frame>
  </Step>

  <Step title="Bir mesaj adımı ekleyin">
    Örneği tamamlamak için, hatırlatmayı göndermek üzere Son Kullanma dalı içinde bir mesaj adımı ekleyin.

    <Frame caption="Son Kullanma dalı içinde mesaj adımı">
      <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/journeys/survey_reminder.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=1a367c270dec75e70a6409b3c66be36e" width="955" height="572" data-path="images/journeys/survey_reminder.png" />
    </Frame>
  </Step>

  <Step title="Test edin!">
    Yukarıdaki adımları takip ettikten sonra test edebilirsiniz:

    * [Özel Olay API'sinde](/reference/create-custom-events) `external_id`'yi kendi harici kimliğinizle değiştirin
    * `survey_1` `survey_id`'si ile `survey_start` olayını tetikleyin
      * Kullanıcınızın Journey'ye girdiğini ve Kadar Bekle adımına aktığını göreceksiniz

    <Warning>
      Olaylar anında değil ama çok hızlıdır! Olay işlenmeden önce birkaç dakika beklemeniz gerekebilir.

      Olayın işlenip işlenmediğini görmek için Özel Olaylar listesini kontrol edin.
    </Warning>

    * `survey_2` `survey_id`'si ile başka bir `survey_start` olayı tetikleyin
      * Journey'ye ve Kadar Bekle adımına 2 kullanıcının girdiğini göreceksiniz
    * `survey_1` `survey_type`'ı ile `survey_complete` olayını tetikleyin
      * Kullanıcınızın Journey boyunca ilerlediğini göreceksiniz
    * `survey_2` `survey_type`'ı ile başka bir `survey_complete` olayı tetikleyin
      * Kullanıcınızın her iki örneğinin de Journey boyunca ilerlediğini ve çıktığını göreceksiniz

    <Check>
      Olay Eşleştirme ile Journey özel olay örneğini tamamladınız!
    </Check>
  </Step>
</Steps>

***

## Zaman Penceresi

Kullanıcıların **belirli günlere ve saatlere** göre Journey'deki bir sonraki adıma ne zaman geçebileceğini kısıtlayın.

**Örnek**: Kullanıcıların yalnızca hafta sonları akşam mesaj almasına izin verin.

<Frame caption="Bir zaman penceresi düğümü örneğini gösteren ekran görüntüsü">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/31f4664-Screenshot_2024-03-21_at_15.56.12.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=07267995ec158e725ecd0c6afb28af20" width="540" height="448" data-path="images/docs/31f4664-Screenshot_2024-03-21_at_15.56.12.png" />
</Frame>

### Zaman penceresi davranışı nasıl çalışır

Bir kullanıcı izin verilen saat dışında bu düğüme girerse:

* OneSignal, kullanıcıyı **sonraki kullanılabilir pencereye** kadar geciktirmek için bir zamanlayıcı ayarlar
* **Pencereye giriş zamanı rastgeledir**

Zaman penceresi, zaman dilimi verisi mevcut olduğunda **kullanıcının zaman dilimini** kullanabilir. Bir kullanıcının zaman dilimi verisi yoksa, uygulamanın varsayılan zaman dilimi kullanılır.

**Örnek**:
Zaman pencereniz Salı günleri saat 13:00 ile 18:00 PST arasındaysa ve bir kullanıcı Pazartesi günü düğüme ulaşırsa, Salı günü 17:45 gibi rastgele bir zamanda devam edebilir.

### Tekrarlayan gönderimlerde zaman pencerelerini kullanma

Bir programa göre (günlük, haftalık, vb.) tekrarlayan mesajlar göndermek için zaman penceresi düğümünü [yeniden giriş kurallarıyla](./journeys-settings#re-entry-rules) birleştirin. Kullanıcıların mesajı almadan önce doğru gün ve saati beklemesi için zaman penceresini Journey'deki **ilk adım** olarak yerleştirin.

Yeniden giriş süresi seçerken, bunu **zaman penceresi süresinden uzun** ancak gönderim aralığından kısa olarak ayarlayın. Bu, aynı pencere içinde çift gönderimi önlerken kullanıcıların bir sonraki pencereyi yakalamak için yeterince erken yeniden girmesini sağlar.

**Örnek — günlük gönderim:**

* Zaman penceresi: her gün, sabah 10:00 - akşam 18:00 (8 saatlik pencere)
* Yeniden giriş: 12 saat (8 saatlik pencereden uzun, 24 saatten kısa)
* Sonuç: kullanıcılar çıkıştan yaklaşık 12 saat sonra yeniden girer, her zaman bir sonraki günün penceresi kapanmadan önce ulaşır ve günde bir mesaj alır

Tam örnekler için [Belirli günler için tekrarlayan Journey'ler](./journeys-examples#recurring-journeys-for-specific-days) ve [Her gün mesaj gönderecek şekilde planlayabilir miyim?](./journeys-examples#can-i-schedule-a-message-to-send-every-day) sayfalarına bakın.

***

## Evet/Hayır dalı

Kullanıcıları **segment üyeliğine** veya **mesaj davranışına** göre dallandırın.

### Segment üyeliği

Bir kullanıcının hangi segmentte olduğuna göre dallar oluşturun.

**Örnek**:
Kullanıcılar plan türüne göre etiketlenmişse:

* "Ücretsiz" dalı = yükseltmeyi teşvik edin
* "Ücretli" dalı = premium özellikleri vurgulayın

### Mesaj davranışı

Journey'deki önceki mesajlarla etkileşime göre dallandırın:

* **Push**: Tıklandı, Teslim Edildi
* **E-posta**: Tıklandı, Açıldı, Teslim Edildi

**Not**: Safari, Onaylanmış Teslimi desteklemez.

***

## Dal Bölme

Mesajlaşmayı, kanalları veya Journey akışlarını test etmek için kullanıcıları farklı yollara rastgele dağıtın.

<Frame caption="3 yönlü dal bölme örneği">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b7a62545ad25878949fe7b0fffc1b64ddee30730dbe351cd51eaea5ed8e9964f-Screenshot_2024-12-23_at_1.37.49_PM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=b9f67d64e3721cba629798663860be3f" width="1916" height="1430" data-path="images/docs/b7a62545ad25878949fe7b0fffc1b64ddee30730dbe351cd51eaea5ed8e9964f-Screenshot_2024-12-23_at_1.37.49_PM.png" />
</Frame>

<Warning>
  Bir Journey canlı olduğunda, bir Dal Bölme'yi **düzenleyemezsiniz**. Dal sayısını değiştirmek için yeni bir Journey oluşturun.
</Warning>

### Nasıl çalışır

* 20'ye kadar dal
* Eşit veya özel yüzde bölmeleri ayarlayın
* Yüzdeler tam sayılara yuvarlanır (ör. 3 yönlü bölme 34/33/33 olur)
* Dağılım, küçük örnek boyutlarında biraz değişebilir

<Frame caption="Dal bölme ayarları">
  <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/517165a9f4f78a584ce252ae7581c6fc48f05e040a0ba921d759392577218988-Screenshot_2024-12-23_at_11.28.53_AM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=57308fa43c451864c80af0c97a4a9cfa" width="460" height="456" data-path="images/docs/517165a9f4f78a584ce252ae7581c6fc48f05e040a0ba921d759392577218988-Screenshot_2024-12-23_at_11.28.53_AM.png" />
</Frame>

Varsayılan olarak, kullanıcılar bir Journey'ye her yeniden girdiklerinde yeniden rastgeleleştirilir.
Onları aynı dalda tutmak için **Yeniden girişte rastgeleleştir**'i kapatın.

Bir kullanıcının hangi dalı takip ettiğini izlemek için **Kullanıcıyı Etiketle** eylemini kullanın.

### A/B/N Testleri

İkiden fazla varyantı aynı anda test etmek için iç içe Dal Bölme'leri kullanın.

**Örnek**:
Kullanıcıları 3 varyant arasında eşit olarak bölmek için:

1. İlk dal: %33'e karşı %67
2. %67 dalının altında, başka bir 50/50 Dal Bölme ekleyin

Bu, her yolda \~%33 verir.

### Kontrol Grupları

Bir dalı boş bırakarak (mesaj düğümü yok) mesajlaşmanın etkisini test edin. Bu, hiç mesaj almayan kullanıcılarla karşılaştırma yapmanızı sağlar.

### Kazanan seçme

Kazanan bir varyant belirlendikten sonra, trafiğin **%100**'ünü bu yola göndermek için dalı güncelleyin.

Etkiyi zaman içinde ölçmeye devam etmek için küçük bir **bekletme grubu**—kazanan mesajı almayan kullanıcıların bir yüzdesi—tutmayı düşünün.

***

## Kullanıcıyı Etiketle

Bu eylemi bir Journey sırasında etiket uygulamak veya kaldırmak için kullanın.

**Yaygın kullanım durumları**:

* Journey ilerlemesini izleyin (ör. `journeyStep: welcome`)
* Anahtar anlarda kullanıcıları etiketleyerek uygulama içi mesajları güçlendirin
* Aktif etiketleri kullanarak kullanıcıları diğer Journey'lerden hariç tutun

<Frame caption="Basit bir onboarding/karşılama akışı">
  <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/99f568ee808ea29f528fd83830bf9a7ebed7e590e95d34047e6495fc810015f2-image.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=cb4cbbbe43b252f44f22f08379b9b709" width="237" height="485" data-path="images/docs/99f568ee808ea29f528fd83830bf9a7ebed7e590e95d34047e6495fc810015f2-image.png" />
</Frame>

### Örnek: onboarding akış kontrolü

1. İlk adım: Bir etiket ekleyin (ör. `onboardingJourney: active`)
2. Diğer Journey'lerden hariç tutmak için bir segment oluşturmak üzere bu etiketi kullanın
3. Son adım: Değeri boş olarak ayarlayarak etiketi kaldırın

<Frame caption="Kullanıcıdan etiketi kaldırmak için bir etiket düğümü ayarları">
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d4199348801030819f94a56976af9b180a77434be6f8b76fd24c7c5a283fc0ba-image.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=004b49369e6eb2a13a55dfa1b93855bf" width="651" height="193" data-path="images/docs/d4199348801030819f94a56976af9b180a77434be6f8b76fd24c7c5a283fc0ba-image.png" />
</Frame>

***

### En iyi uygulama: Etiketleri webhook'lar veya kişiselleştirme ile kullanma

Bir Journey'de etiket eklediğinizde veya kaldırdığınızda, bu değişikliklerin bir sonraki adımda kullanıma hazır olması kısa bir süre alabilir. Her şeyin sorunsuz çalıştığından emin olmak için:

* **Webhook'lar için**: Bir webhook ile veri göndermeden önce bir etiket ayarladıktan sonra kısa bir bekleme ekleyin.
* **Kişiselleştirme için**: İçeriği kişiselleştirmek için bir e-postada kullanmadan önce bir etiket ayarladıktan veya kaldırdıktan sonra kısa bir bekleme ekleyin.

<Tip>
  Etiket eyleminin ve bir sonraki adımın arasına **15 dakikalık bir Bekleme düğümü** eklemenizi öneririz. Bu, etiketin tam olarak hazır olmasını sağlar, böylece webhook'unuz veya e-postanız her zaman doğru verileri içerir.
</Tip>

***

## Sıkça Sorulan Sorular

### Hangi push eylem düğmesine tıklandığına göre Journey'i dallandırabilir miyim?

Yalnızca yerleşik Evet/Hayır dallanmasıyla mümkün değil — mesaj davranışı koşulları yalnızca "Tıklandı" veya "İletildi"yi algılar, hangi belirli düğmenin tıklandığını değil. Düğmeye göre dallandırmak için SDK'nızdaki tıklama olayını dinleyin, Action ID'yi okuyun ve bir [Özel Etkinlik](./custom-events) gönderin. Ardından hangi özel etkinliğin önce tetiklendiğine göre dallandırmak için bir [Wait Until](#wait-until) adımı kullanın.

Kod örnekleriyle eksiksiz bir kılavuz için [Eylem düğmesi tıklamasına göre Journey dallandırma](./journeys-examples#branch-a-journey-by-action-button-clicked) bölümüne bakın.

### Journey'de Özel Etkinlikler kullanmak için kod yazmam gerekiyor mu?

Evet. Özel Etkinlikler, [SDK](./mobile-sdk-reference#custom-events) kullanılarak uygulamanızdan veya web sitenizden ya da [REST API](/reference/create-custom-events) kullanılarak arka ucunuzdan OneSignal'a gönderilir. Özel Etkinlikleri yalnızca pano üzerinden tetiklemenin bir yolu yoktur. Etkinlikler OneSignal'a akmaya başladığında, ek kod olmadan pano üzerinden Journey'ler ve Segmentlerde kullanabilirsiniz.
