KadanslarAdım Türleri

Adım Türleri

Bir kadans adımı sadece “ne zaman çalışır”ı değil, “hangi kanaldan gider”, “hangi koşulda atlanır” ve gerekirse “kime aktarılır”ı da taşır. Bu ayarları yanlış kurarsan iki yönlü risk oluşur: kontak zaten yanıt verdiği halde adım yine de çalışır (rahatsız edici tekrar) ya da sıcak bir lead insan temsilciye zamanında aktarılmaz. Cadence Oluşturma sayfası adım eklemenin temel akışını gösterir; bu sayfa her adımın taşıyabileceği tüm alanları tek tek açar.

4 kanal türü

Her adımın bir channel değeri ve kanala özel bir actionConfig nesnesi vardır.

KanalactionConfig alanlarıGönderim yolu
Arama (call)message (opsiyonel arama notu/bağlam), assistantId (opsiyonel — boşsa kadansın atanmış asistanı, o da yoksa hesaptaki en güncel aktif asistan), maxRetries (varsayılan 1), campaignPrompt (opsiyonel ek talimat)Adım tetiklendiğinde arka planda tek kontaklık bir mini kampanya oluşturulur ve mevcut outbound arama motoruyla arama başlatılır.
SMS (sms)message (zorunlu, değişken destekli)Kullanıcının bağlı SMS sağlayıcısı (NetGSM veya Twilio, sıralı fallback’li) üzerinden gönderilir.
WhatsApp (whatsapp)message (zorunlu, değişken destekli)Serbest metin olarak WhatsApp Business hattından gönderilir.
E-posta (email)subject + body (ikisi de değişken destekli)Bağlı Gmail/SMTP hesabından gönderilir. Kontağın e-posta adresi yoksa adım hatayla düşer.

Mesaj/konu/içerik alanlarında şu değişkenler otomatik doldurulur:

{{first_name}}  {{last_name}}  {{full_name}}  {{phone}}  {{email}}  {{company}}

Adım editöründeki “Şablon Seç” kısayolu, Aksiyonlar → Mesaj Şablonları’nda kayıtlı bir metni doğrudan adımın message (veya subject+body) alanına kopyalar.

WhatsApp adımı, Meta’nın resmi onaylı şablon (template) mesajlarından farklıdır — actionConfig yalnızca serbest bir metin tutar ve bu metin doğrudan gönderilir. Serbest metin gönderimleri WhatsApp Business Platformu’nun 24 saatlik müşteri hizmeti penceresi kuralına tabidir: kontak son 24 saat içinde sana mesaj göndermediyse teslimat reddedilebilir. Onaylı şablon akışı için WhatsApp Business sayfasına bak.

Kadansı etkinleştirmeden önce: kanal doğrulama

Kadansta kullanılan her kanal için sistem gerekli entegrasyonu otomatik kontrol eder (GET /api/cadences/[id]/validate):

KanalKontrol edilen
AramaKadansa atanmış aktif bir asistan + aktif bir telefon numarası.
SMSBağlı NetGSM veya Twilio entegrasyonu (kullanıcı bazlı) ya da ortam düzeyinde Twilio anahtarları.
WhatsAppBağlı WhatsApp entegrasyonu ya da ortam düzeyinde WhatsApp token’ı.
E-postaBağlı Gmail/SMTP entegrasyonu ya da ortam düzeyinde SMTP ayarları.

Eksik kanallar missingChannels listesinde döner; kadans o durumda geçersiz sayılır ve panelde uyarı gösterilir.

📸 [Ekran görüntüsü: Kadans doğrulama uyarısı — eksik kanal listesi]

Zamanlama ayarları

Bir adımın çalışıp çalışmayacağı, sırasıyla şu kontrollerden geçer (Europe/Istanbul saat dilimi baz alınır):

  1. Kadans durumu active değilse enrollment tamamen durur.
  2. Sıradaki adım yoksa kadans tamamlanmış sayılır.
  3. Kontağın genel aşaması (universalStage) committed, closed veya lost ise tüm kadans durur — adım ayarlarından bağımsız (bkz. aşağıda).
  4. Adımın skipIfStage listesi kontağın aşamasıyla eşleşiyorsa sadece bu adım atlanır, kadans devam eder.
  5. skipIfContacted açıksa ve kontak son temastan sonra tekrar iletişime geçtiyse (lastContactedAt, enrollment’ın lastTouchAt alanından sonraysa) bu adım atlanır.
  6. Kadansın goldenHoursOnly ayarı açıksa ve şu an “altın saatler” (08:00-11:00 ve 16:00-18:00) dışındaysa adım bir sonraki altın saat penceresine ertelenir.
  7. Adımın kendi preferredTimeStart/preferredTimeEnd penceresi varsa ve şu an dışındaysa adım o pencereye ertelenir.
  8. Adımın preferredDays listesi varsa (0=Pazar … 6=Cumartesi) ve bugün listede değilse adım uygun bir sonraki güne ertelenir.
  9. Mesai saatleri — Pazartesi-Cumartesi 09:00-19:00 — her zaman zorunludur; bu pencere dışında kalan her adım ertelenir (Pazar günü hiç adım çalışmaz).
  10. Tüm kontroller geçerse adım çalıştırılır ve sonucu loglanır.
AlanFormatNot
preferredTimeStart / preferredTimeEnd"09:00" gibi SS:DDSadece bu adım için geçerli pencere.
preferredDays[1,2,3] gibi gün dizisiJS gün numarası: 0=Pazar, 1=Pazartesi … 6=Cumartesi.
goldenHoursOnly (kadans geneli)booleanAçıksa kadanstaki tüm adımlar altın saat pencereleriyle sınırlanır — adım bazlı pencereden önce kontrol edilir.
⚠️

Mesai penceresi (Pazartesi-Cumartesi 09:00-19:00) kod düzeyinde her zaman zorunludur — kadans veya adım ayarlarından kapatılamaz. Bir adımın hiç çalışmadığını görürsen önce bunu, sonra preferredDays/preferredTimeStart daralmasını kontrol et.

Atlama koşulları

İki farklı seviye var — birbirine karıştırma:

  • Otomatik durdurma (tüm kadans, sabit kural): Kontağın universalStage alanı committed, closed veya lost olduğunda enrollment tamamen durur (cadence_stopped aktivitesi loglanır) — bu, adımdaki hiçbir ayara bakılmaksızın her zaman çalışır.
  • skipIfStage (adım bazlı, konfigüre edilebilir): Sadece o adımı atlar, kadans bir sonraki adıma geçer. Yeni bir adım eklediğinde panel varsayılan olarak ["committed", "closed", "lost"] ile doldurur — yukarıdaki otomatik durdurmayla örtüşen bir güvenlik ağı. Asıl gücünü farklı ara aşamaları (örn. sadece ["evaluating"]) atlamak istediğinde gösterir.
  • skipIfContacted (varsayılan açık): Kontak, kadansın bu adımdaki son temasından sonra tekrar iletişime geçtiyse (örn. geri aradı, cevap yazdı) bu adım atlanır — aynı mesajı/aramayı tekrar göndermez.

Koşullu transfer

transferOnCondition yalnızca arama adımlarında değerlendirilir — arama başlamadan hemen önce kontrol edilir.

condition değeriKoşul
heat_hotKontağın heat alanı "hot".
bant_completeBANT verisinin dört alanı da (budget, authority, need, timeline) dolu (filled: true).
lead_score_aboveKontağın leadScore değeri, threshold alanına (yoksa 70) eşit veya üstünde.
stage_evaluatingKontağın universalStage alanı "evaluating".
stage_committedKontağın universalStage alanı "committed".

Koşul sağlanırsa targetNumber alanındaki numara aktarım hedefi olur — bu, aramadan önce asistanın talimatına şu satır eklenerek iletilir:

ÖNEMLİ: Bu görüşmede müşteri hazır olduğunda {targetNumber} numarasına yönlendir.
⚠️

Hazır şablon kadanslarındaki (ör. “Sağlık Turizmi 21 Gün”) transfer adımlarında targetType ("expert", "manager" gibi) etiketi görebilirsin — bu sadece görünür bir etiket, sistem tarafından okunmaz. Transferin gerçekten çalışması için adımı düzenleyip targetNumber alanına gerçek bir telefon numarası girmen gerekir.

Örnek kadans

Zamanlama, atlama ve transferin bir arada nasıl çalıştığını gösteren 7 günlük bir örnek:

Gün 0   [ARAMA]      09:00-11:00 penceresi          "İlk temas araması"

Gün 0   [SMS]        anında                          "Teşekkür + bilgilendirme"

Gün 1   [WHATSAPP]   anında                          skipIfContacted: true
   │                                                  → kontak yanıt verdiyse bu adım atlanır
Gün 3   [ARAMA]      16:00-18:00 penceresi            transferOnCondition: heat_hot
   │                                                  → targetNumber'a aktar
Gün 5   [E-POSTA]    anında (subject + body)          skipIfStage: [committed, closed, lost]
   │                                                  → kontak hedefe ulaştıysa atla
Gün 7   [ARAMA]      preferredDays: Sal, Çar, Per     "Son deneme — açık kapı bırak"

Bu akışta kontak herhangi bir noktada committed/closed/lost aşamasına geçerse — adımların skipIfStage ayarından bağımsız olarak — enrollment tamamen durur.

📸 [Ekran görüntüsü: Adım editörü — genişletilmiş bir adımın tüm alanları]

Sorun giderme

BelirtiOlası neden / çözüm
WhatsApp adımı sessizce gitmediKontak son 24 saat içinde mesaj göndermediyse serbest metin reddedilebilir → WhatsApp Business kurulumunu ve WABA izinlerini kontrol et.
Şablon kadanstaki transfer adımı hiç yönlendirmiyortargetType sadece etiket — gerçek yönlendirme targetNumber alanını okur. Adımı düzenleyip targetNumber gir.
Kontak yanıt verdiği halde adım yine çalıştıskipIfContacted kapalı ayarlanmış veya kontağın son iletişim tarihi güncellenmemiş → adım ayarını ve kontak kaydını kontrol et.
Kontak “committed” oldu ama kadans durmadıOtomatik durdurma her adımdan önce çalışır — enrollment durumu hâlâ active görünüyorsa (nadir bir yarış durumu) destek ile paylaş.
Arama adımı “Asistan bulunamadı” hatası verdiKadansa asistan atanmamış ve hesapta aktif asistan yok → kadans ayarlarından bir asistan seç.
Adım hep ertelendi, hiç çalışmadıgoldenHoursOnly açık ama saat dışı, ya da preferredDays/zaman penceresi çok dar, ya da mesai saatleri (Pzt-Cmt 09:00-19:00) dışında → pencereleri gevşet.

İlgili