# Adım Türleri

Başlangıç, bekleme, dallanma, aksiyon
Kaynak: https://selwise.com/docs/scenarios/steps

Bir senaryo, kanvasta birbirine bağlanan **adımlardan** oluşur. İki düzine adım türü vardır; hepsi dört sınıftan birine girer ve her biri sağdaki panelde kendi ayarlarını açar. Bu sayfa akışı nasıl kuracağınızı ve hangi adımın nerede anlatıldığını gösterir.

## Panelde nerede

Sol menüde **Otomasyon → Senaryolar** (Automation → Scenarios), ardından bir senaryoya tıklayın. Üstteki sekmeler **Flow** (Akış) ve **Settings** (Ayarlar) sekmesidir. Akış sekmesinde kanvas, sağda seçili adımın paneli bulunur.

## Dört sınıf

| Sınıf | Rol | Kaç tane | Sayfa |
|---|---|---|---|
| **Starter** (Başlangıç) | Alışverişçiyi senaryoya kim, ne zaman alır | Tam olarak bir | [Başlangıç adımları](/docs/scenarios/starters) |
| **Wait** (Bekleme) | Alışverişçiyi bir adımda tutar | İstediğiniz kadar | [Bekleme adımları](/docs/scenarios/waits) |
| **Branch** (Dallanma) | Gelenleri yollara ayırır | İstediğiniz kadar | [Dallanma adımları](/docs/scenarios/branches) |
| **Action** (Aksiyon) | Bir şey yapar veya teslim eder | İstediğiniz kadar | [Aksiyon adımları](/docs/scenarios/actions) |

## Tüm adımlar

| Adım (panel etiketi) | Sınıf | Ne yapar |
|---|---|---|
| **On event** (Olayla) | Başlangıç | Alışverişçi bir olayı yaptığı anda alır |
| **On segment** (Segmentle) | Başlangıç | Bir segmente girenleri ya da üyeleri her gün alır |
| **When a trait changes** (Bir özellik değişince) | Başlangıç | Profildeki bir özellik değiştiğinde alır |
| **On a date they carry** (Taşıdığı bir tarihte) | Başlangıç | Profildeki bir tarihten belirli gün önce ya da sonra alır |
| **On price drop** (Fiyat düşünce) | Başlangıç | Baktığı ürün ucuzlayınca alır |
| **Back in stock** (Stoğa girince) | Başlangıç | Baktığı ürün yeniden bulunur olunca alır |
| **Nearly out of stock** (Stoğu azaldı) | Başlangıç | Baktığı ürünün stoğu eşiğe düşünce alır |
| **What they did before** (Daha önce ne yaptıysa) | Başlangıç | Geçmiş davranış örüntüsüne uyanları alır |
| **Your system reports an event** (Kendi sisteminiz bir olay bildirir) | Başlangıç | Sizin sisteminiz bir olay bildirince alır |
| **Wait** (Bekle) | Bekleme | Sabit süre tutar |
| **Wait for a time of day** (Saat aralığını bekle) | Bekleme | Gün içi teslimat aralığı açılana kadar tutar |
| **Wait until they act** (Harekete geçene kadar bekle) | Bekleme | Bir olay olana ya da süre dolana kadar tutar |
| **Wait for a trait to change** (Bir özellik değişene kadar bekle) | Bekleme | Bir özellik istenen değere gelene ya da süre dolana kadar tutar |
| **Wait until their own date** (Kendi tarihine kadar bekle) | Bekleme | Profildeki bir tarihe kadar tutar |
| **Check conditions** (Koşulları denetle) | Dallanma | Kurallara göre yönlendirir, ilk uyan kazanır |
| **Check reachability** (Ulaşılabilirliği denetle) | Dallanma | Hangi kanaldan ulaşılabildiğine göre yönlendirir |
| **Check interaction** (Etkileşimi kontrol et) | Dallanma | Gönderilen e-postayla ne yapıldığına göre yönlendirir |
| **Ask your system** (Sisteminize sor) | Dallanma | Kendi uç noktanıza sorar, cevaba göre yönlendirir |
| **A/B split** (A/B ayrımı) | Dallanma | Paylara göre böler |
| **Show on site** (Sitede göster) | Aksiyon | Bir kampanyayı alışverişçiyi bekleyecek şekilde bırakır |
| **Send email** (E-posta gönder) | Aksiyon | Yayınlanmış bir e-postayı kendi sağlayıcınızdan gönderir |
| **Send an SMS** (SMS gönder) | Aksiyon | Yayınlanmış bir SMS'i kendi sağlayıcınızdan gönderir |
| **Send a notification** (Bildirim gönder) | Aksiyon | Tarayıcı bildirimi gönderir |
| **Hand to your provider** (Sağlayıcınıza devret) | Aksiyon | Kendi uç noktanıza bir istek atar |
| **Update segment** (Segmenti güncelle) | Aksiyon | Statik bir segmente ekler ya da çıkarır |
| **Update trait** (Özelliği güncelle) | Aksiyon | Profile bir değer yazar |

## Akışı kurmak

Şablonla başlasanız da akışın şekli sizindir.

- **Adım eklemek:** iki kutu arasındaki ve her yolun ucundaki **+** düğmesine basın. Açılan listede adımlar sınıflarına göre gruplanır, üstteki kutuyla aranabilir. Yeni adım, o yolun gittiği yere bağlanır; yani araya adım eklemek alttaki adımları yeniden bağlamanızı gerektirmez. Bir adım için önkoşul eksikse (doğrulanmış e-posta sağlayıcısı, tarayıcı bildirimi anahtarı, webhook uç noktası, etkin statik segment) listede bunu söyleyen bir not görürsünüz.
- **Adım kaldırmak:** kutunun üstüne gelin, sağ üst köşedeki çöp kutusuna basın ya da adımı seçip **Delete** tuşuna basın. Kaldırılan adıma gelen yollar, onun gittiği yere bağlanır; akış kopmaz. Yolları farklı adımlara giden bir dallanmayı kaldırırken panel hangi yolun devam edeceğini sorar ve her seçenekte, yalnızca öbür yollara ait olup onunla birlikte silinecek adımları adıyla gösterir. Başlangıç adımı kaldırılamaz; yalnızca **Change the starter** (Başlangıcı değiştir) ile başka bir türle değiştirilir.
- **Dallanmaya yol eklemek:** koşul, ulaşılabilirlik, etkileşim ve A/B adımlarının sağ panelinde **Add a path** (Yol ekle) düğmesi vardır. Bir dalda en çok 12 yol olabilir (yedek yol dahil). Son yol kaldırılamaz; kalanları ayıracak bir soru olmayınca dallanma dallanma olmaktan çıkar.
- **Geri almak:** üst çubuktaki geri/ileri okları ya da ⌘Z ve ⇧⌘Z. Bir adımı silmek ya da araya eklemek dokunmadığınız yolları da yeniden bağlar; geri alma bunun içindir.
- **Kanvasta gezinmek:** boş alanı sürükleyerek kaydırın, Ctrl/⌘ ile tekerlek yakınlaştırır, **Fit** (Sığdır) tüm akışı gösterir.

## Eksik adım ve sorun listesi

Yeni eklenen adım **kasıtlı olarak eksiktir**: hangi kampanyayı göstereceğine ya da hangi koşula bakacağına siz karar verirsiniz. Panel bunu kanvasta kırmızı bir kenarlıkla ve üstteki **Problems** (Sorunlar) listesinde adım adım söyler. Hata varsa **Publish** (Yayına al) kapalıdır. **Worth a look** (Bakmakta fayda var) başlığındaki uyarılar yayını engellemez; örneğin başlangıçtan hiçbir yolun ulaşmadığı bir adım ya da herkese açık bir kampanya seçilmesi uyarıdır.

Listedeki her satır sorunun ne olduğunu ve nasıl çözüleceğini söyler. En sık görülenler ve sebepleri [Yayınlama ve sürümler](/docs/scenarios/publishing#yayın-engellerinin-listesi) sayfasındadır.

## Sınırlar

| Sınır | Değer |
|---|---|
| Bir senaryodaki adım sayısı | En çok 120 |
| Bir dalın yolu | En çok 12 (yedek yol dahil) |
| Tek bir bekleme | En çok 90 gün |
| En uzun yolun toplam bekleme süresi | En çok 180 gün |
| Bir kişinin toplamda atabileceği adım | 500 (döngü koruması; aşılırsa kişi **düşer**, sebep `max_attempts`) |
| Çıkış kuralı ve hedef sayısı | Her biri en çok 10 |

Akıştaki **döngüler** serbesttir ("alana kadar hatırlat"), ama döngünün içinde bir bekleme adımı bulunmalıdır; beklemesiz döngü yayına alınamaz, çünkü kişi bütün adım bütçesini tek turda harcar. **Wait until their own date** (Kendi tarihine kadar bekle) döngüyü kırmaz sayılır: tarihi geçmiş biri hemen çıkar.

## Deneme çalıştırma

Üst çubuktaki **Dry run** (Deneme çalıştırma), senaryoyu tek bir alışverişçi olarak baştan sona yürür ve hangi yoldan gittiğini adım adım gösterir. Hiçbir şey teslim edilmez, hiçbir şey kaydedilmez: teslimat adımları "şunu gösterirdi" diye yazılır, beklemeler "şu tarihe kadar beklerdi" diye; yani üç günlük bir hatırlatmayı bir saniyede inceleyebilirsiniz.

- **Shopper** (Alışverişçi): kişiyi üç yoldan biriyle bulursunuz. **Email address** (E-posta adresi), `identify` ile gönderdiğiniz **Member ID** (Üye ID) ya da **Visitor ID** (Ziyaretçi ID, `selwise_vid` değeri). Boş bırakırsanız anonim bir ziyaretçi olarak yürür; profil okuyan koşullar bu durumda hiçbir şey bulamaz. Bu kanalda hiç görülmemiş bir adres ya da kimlik yazarsanız yürüyüş başlamaz ve ekran bunu söyler.
- **Trigger product** (Tetikleyen ürün): senaryo bir ürünle başlıyorsa (örneğin sepete ekleme) bir ürün kodu yazın; yürüyüş o ürünle tetiklenmiş gibi davranır.
- Kaydedilmemiş değişiklik varsa deneme çalıştırma önce taslağı kaydeder.
- **Giriş kapıları** ayrı ayrı gösterilir: tarih aralığı, test modu, tetikleyen olay, olay filtreleri, ek segment. Her biri **checked** (ölçüldü), **refused** (reddetti), **assumed** (varsayıldı) ya da **not measured** (ölçülmedi) olarak işaretlenir; kişi giremeyecekse hangi kapının durdurduğunu görürsünüz.
- **Her koşul** için hangi kuralın eşleştiği ve neden eşleştiği yazılır. Boş bir kural herkesle eşleşir; ekran bunu ayrıca uyarır.
- **Sisteminize sor** adımı deneme çalıştırmada uç noktanızı **çağırmaz**; adım yedek yoldan geçer. **Etkileşimi kontrol et** adımı da hiçbir mesaj gönderilmediği için yedek yoldan geçer.
- **E-posta ya da SMS adımında** ekran iki şey söyler: bu kişiye gönderilir mi, gönderilmez mi ve neden (izin yok, adres engelli, doğrulanmış sağlayıcı yok…); ve **Show the email this person would get** (Bu kişiye gidecek e-postayı göster) ile tam olarak ne gideceği: kişinin adıyla, kendi sepetindeki ya da kendisi için seçilen ürünlerle, yayındaki metinle. Önizlemede adres maskeli gösterilir.
- Bir akış kendi üzerine dönüyorsa yürüyüş 40 adımda durur ve ekran bunu söyler.

Yol kararlarının hepsi motorun kendi adım çalıştırıcılarından gelir; yani deneme çalıştırmanın çizdiği yol, yayına aldığınızda izlenecek yoldur. Mesaj önizlemesi ayrıntıları: [Mesajlar ve ürün bloğu](/docs/scenarios/messages).

## Gerekli yetki ve modül

Senaryo ekranları hesabınızda **Orchestration** modülü açıksa görünür; modül yoksa menüde bu ekran yoktur. Rolünüzün `scenario:view`, düzenlemek için `scenario:update`, yayına almak, duraklatmak ve arşivlemek için `scenario:publish`, oluşturmak ve kopyalamak için `scenario:create`, silmek için `scenario:delete` yetkisi gerekir. Tek tek kişileri gösteren **Shoppers** (Alışverişçiler) sayfası ayrı bir `scenario:view_runs` yetkisine bağlıdır. **Messages** ve **Messaging Providers** ekranları ayrıca **Messaging Delivery** modülüne bağlıdır (o modül de Orchestration'ı şart koşar); e-posta, SMS ve bildirim göndermek için gerekir. Modül yoksa o ekranlar menüde yoktur.
