İçindekiler
- Görsel oluşturucu neden kodu ve karar ağaçlarını geride bırakır
- Tek bir akışın çalıştığı kanallar
- Bir akışın anatomisi
- Mesaj düğümü
- Butonlar düğümü
- Giriş düğümü (doğrulama ile)
- Koşul düğümü
- Eylem düğümü (devretme, değişkenler)
- Gecikme düğümü
- Webhook düğümü (herhangi bir API'ye HTTP)
- Değişkenler ve şablon söz dizimi
- Kopyalayabileceğiniz üç gerçek dünya akışı
- İnsan devri ve oturum kontrolü
- Fiyatlandırma ve sınırlar
- SSS
Çoğu chatbot platformu sizi iki kötü seçenek arasında seçim yapmaya zorlar. Ya kutuları bir tuval üzerinde sürüklersiniz ve sistemlerinizle konuşamayan, abartılmış bir karar ağacıyla baş başa kalırsınız ya da bir kod editörü açar, başka bir YAML lehçesi öğrenir ve ekipteki kimsenin düzenleyemeyeceği bir şeyi bağlamak için bir hafta harcarsınız. Svyazio'nun akış oluşturucusu görseldir, ancak ciddi her gereksinim için bir kaçış kapısı vardır: doğrulanmış girişler, dallanma koşulları, yanıt eşleme ile gerçek HTTP webhook'ları, tüm oturum boyunca akan değişkenler ve bot sınırına ulaştığı anda gerçek bir insana devretme.
Aynı akış Svyazio'nun desteklediği her kanalda çalışır — web sitesi widget'ı, Telegram botları, VK toplulukları ve MAX. Satır içi klavyeler her platformda yerel olarak işlenir. Klavye desteği olmayan kanallarda butonlar numaralandırılmış metin seçeneklerine düşer, böylece ziyaretçi hâlâ "1" veya "2" ile yanıt verebilir. Akışı bir kez oluşturursunuz; motor her kanalın dilini nasıl konuşacağını çözer.
Görsel oluşturucu neden kodu ve karar ağaçlarını geride bırakır
Görsel bir akış oluşturucunun gerekçesi yalnızca "geliştirici olmayanlar onu düzenleyebilir" değildir. Asıl kazançlar daha incedir:
Akışlar diyagram olarak okunabilir. Ekibinizdeki herhangi biri — destek lideri, ürün yöneticisi, pazarlama müdürü — editörü açıp botun ne yaptığını otuz saniye içinde anlayabilir. Kod tabanlı bot tanımları okumayı gerektirir. Görsel akışlar şekiller olarak algılanır. Tek başına bu, inceleme döngülerini günlerden dakikalara indirir.
Uç durumların bir yeri vardır. Klasik bir karar ağacı gerçek trafik altında çöker çünkü her ilginç akışta döngüler, yeniden denemeler, zaman aşımları ve devirler vardır. Svyazio bunları açıkça bağlamanıza olanak tanır — başarısız bir webhook bir error dalına yönlendirilir, eksik bir giriş yeniden deneme istemini tetikler, oturum zaman aşımı bir insan için gelen kutusunu açar. Hepsi görünür, hepsi belirli düğümlere bağlıdır.
Değişkenler botu durum bilgili yapar. Her input düğümü bir değişkene yazar. Her webhook yanıtının parçalarını değişkenlere eşleyebilir. Sonraki her düğüm bunları mesajlara enterpole edebilir — Merhaba {{name}}, {{order_id}} numaralı siparişiniz yarın yola çıkıyor. Bot her adımda sıfırdan başlamak yerine şeyleri hatırlar.
Tek bir akışın çalıştığı kanallar
Web sitesi widget'ı Socket.IO konuşur. Telegram ve MAX satır içi klavyeleri kabul eder. VK'nın kendi klavye formatı vardır. Chatbot motoru her düğümü doğru taşıma katmanına çevirir: buttons düğümü Telegram'da inline_keyboard, VK'da bir keyboard yükü, widget'ta Socket.IO etkinlikleri olur. Editörde aynı akışı, fark etmeksizin görürsünüz.
Bir akışın anatomisi
Her akış tek bir start düğümüyle başlar. Buradan, aralarına bağlantılar sürükleyerek düğümleri zincirlersiniz. Her düğümün 0 veya 1 gelen kenarı ve 1 veya daha fazla giden kenarı vardır. Düğümler geri döngüye girebilir, dallanabilir ve birleşebilir — motor kenarları her seferinde bir adım takip eder.
Düzenlenen bir butonlar düğümünü gösteren oluşturucu. Sol panel: düğüm paleti. Tuval: akış. Sağ panel: seçili düğümün özellikleri.
Sol panel mevcut her düğüm türünü listeler. Tuval, akışın yaşadığı yerdir. Sağ panel, seçili olan düğümün özelliklerini gösterir. Değişiklikler Kaydet'e tıkladığınızda kaydedilir; Yayınla'ya tıkladığınızda yayına alınır. Taslaklar ve yayınlanan sürümler ayrıdır, böylece üretimde olan botu bozmadan yineleme yapabilirsiniz.
1. Mesaj düğümü
message
Bottan düz metin gönderir. {{variable_name}} söz dizimiyle değişken enterpolasyonunu destekler. Milisaniye cinsinden isteğe bağlı bir göndermeden önce gecikme vardır — bunu, botları robotik hissettiren "anında metin duvarı" etkisinden kaçınmak için kullanın.
Tipik bir kullanım: ziyaretçinin adının widget ziyaretçi profilinden çekildiği bir karşılama mesajı, ardından sonraki sorudan önce kısa bir duraklama. Gecikme kazaları önlemek için sınırlandırılmıştır: 0 ile 10 saniye arası, sunucu tarafında zorunlu kılınır.
2. Butonlar düğümü
buttons
Bir mesaj + satır içi klavye. Her butonun bir etiketi ve kendi giden kenarı vardır. Ziyaretçi bir butona dokunduğunda motor eşleşen kenarı takip eder. Oturum, butonların gönderilmesi ile tıklamanın alınması arasında duraklar.
Dallanma mantığınızın çoğu aslında butonların yaşadığı yerdir. Üç butonlu bir menü ("Siparişler / Destek / Sorular") üç farklı giden yol oluşturur — her biri tamamen farklı mantığa sahip kendi alt akışına yol açabilir. Motor tıklamayı bekler, hız sınırlarına uyar (oturum başına dakikada 30 olay) ve Telegram/MAX'ta tıklamadan sonra satır içi klavyeyi siler, böylece ziyaretçi iki kez dokunamaz.
3. Giriş düğümü (doğrulama ile)
input
Serbest metin ister ve bir değişkende saklar. text, email ve phone için yerleşik doğrulama. Geçersiz girişte bot ilerlemeden tekrar sorar. Geçerli girişte cevap session.variables[name] altında kaydedilir ve akış ilerler.
Bir e-posta yakalamak için ayarlanmış giriş düğümü. Değişken adı email, doğrulama türü Email ve yer tutucu beklenen formatı ima eder.
Doğrulama katı ama yardımcıdır: e-posta kontrolü açıkça hatalı biçimlendirilmiş adresleri reddeder, telefon kontrolü uluslararası formatları kabul eder ve bunları normalleştirir, metin kontrolü ise yalnızca boş olmayan bir yanıtı zorunlu kılar. Düğüm, ziyaretçi geçen bir şey gönderene kadar oturumu tutar. Oturum zaman aşımı içinde hiçbir şey gelmezse bot sonsuza kadar döngüye girmek yerine bir insana devreder.
Burada yakalanan değişkenler sonraki her düğüm için kullanılabilir hale gelir. Sonraki bir mesaj ziyaretçiyi adıyla karşılayabilir, sonraki bir webhook e-postasını yüke dahil edebilir ve son eylem düğümü profil alanını ayarlayabilir, böylece cevapları bu konuşmanın ötesinde kalıcı olur.
4. Koşul düğümü
condition
Değişkenlere veya ziyaretçi alanlarına göre dallanır. Her dal, bir AND koşulları kümesidir. Motor bunları yukarıdan aşağıya değerlendirir; ilk eşleşme kazanır. Hiçbir şey eşleşmezse akış varsayılan dala düşer.
Koşullar, veriyi akış kontrolüne dönüştürme şeklinizdir. Ziyaretçi giriş adımında "iptal" yazdı mı? Onu iptal akışına yönlendirin. Ziyaretçi profili geri dönen müşteri olarak işaretlenmiş mi? Tanıtımı atlayın. Webhook status = "vip" ile yanıt verdi mi? Öncelik kuyruğuna atlayın. Beklediğiniz her karşılaştırma operatörü oradadır: eşittir, eşit değildir, içerir, ile başlar, sayısal büyüktür/küçüktür, boole doğru/yanlış ve başka hiçbir şey uymadığı durumlar için regex.
5. Eylem düğümü (devretme, değişkenler, profil)
action
Kullanıcı etkileşimi olmadan yan etkiler. Beş alt tür: assign_department, assign_agent, close, set_variable ve set_visitor_field. İlk üçü bot oturumunu sonlandırır — bunlar devretme hikayesidir.
Toplanan e-postayı ziyaretçinin profiline yazan eylem düğümü, böylece ajanlar tekrar sormadan görür.
Devretme eylemleri kritiktir. Bir botun işi genellikle nitelendirmek, toplamak ve yönlendirmektir — ajanın yerini almak değil. assign_department konuşmayı doğru kuyruğa (Satış, Destek, Faturalama) bırakır, assign_agent belirli bir kişiye sabitler ve close bot kendi başına bitirdiğinde (teslimat durumu sorgulaması, SSS sorusu yanıtlandı vb.) konuşmayı çözüldü olarak işaretler. Ziyaretçi bunları asla ayrı etkinlikler olarak görmez — konuşma sorunsuz bir şekilde bir insanla devam eder.
set_visitor_field daha sessizdir ama eşit derecede kullanışlıdır. Ziyaretçinin kalıcı profiline yazar. Botun topladığı e-posta onların profil e-postası olur. Telefon, telefonları olur. Bir dahaki sefere geri geldiklerinde — herhangi bir kanaldan — veriler zaten oradadır.
6. Gecikme düğümü
delay
Akışı sabit bir süre boyunca duraklatır. "Bot 200ms'de üç paragraf yazdı" ipucundan kaçınmak için arka arkaya mesajlar arasında kullanışlıdır. 0 ile 10 saniye arasında sınırlandırılmıştır.
Gecikmeler, bir klavye kısayolu gibi hissettiren bir bot ile bir konuşma gibi hissettiren bir bot arasındaki farktır. Kısa mesajlar arasında 300–800 ms genellikle yeterlidir. Daha uzun gecikmeler (2–3 saniye) iş yapıldığını kabul eden bir mesajdan önce iyi çalışır — "bir dakika, siparişiniz kontrol ediliyor" — özellikle de devam eden bir webhook çağrısıyla eşleştirildiğinde.
7. Webhook düğümü (herhangi bir API'ye HTTP)
webhook
Ciddi mantık için kaçış kapısı. Bir yöntem, isteğe bağlı başlıklar, isteğe bağlı gövde ve zaman aşımı ile herhangi bir HTTPS URL'sini çağırır. Yanıt, oturum değişkenlerine eşlenebilir; akış daha sonra başarı veya hatada dallanır.
Bu, Svyazio'yu bir chatbot oyuncağından bir entegrasyon platformuna dönüştüren düğümdür. Arka uçunuzda bir sipariş arayın, CRM'inizi sorgulayın, bir sadakat puanı hizmetini ping'leyin, bir GPT tamamlama uç noktasını çağırın — HTTP'nin yapabileceği her şeyi webhook düğümü yapabilir. Hem URL, hem başlıklar hem de gövde değişken enterpolasyonunu destekler, böylece her çağrı mevcut oturuma özeldir.
Tipik bir yapılandırma:
Bu düğüm çalıştıktan sonra {{customer_name}}, {{customer_tier}} ve {{order_count}} her aşağı akış düğümü için kullanılabilir. Bir sonraki adım genellikle customer_tier == "vip" üzerinde dallanan bir condition düğümüdür.
error dalı alınır). Maksimum zaman aşımı 15 saniyedir, ardından istek iptal edilir. Bunların hiçbirini düşünmek zorunda değilsiniz; varsayılan olarak açıktır.
Webhook düğümünün iki giden kenarı vardır: success (HTTP 2xx) ve error (4xx/5xx, zaman aşımı, SSRF engeli, hatalı biçimlendirilmiş yanıt). Yalnızca başarı dalını bağlarsanız hatalar varsayılan kenara düşer — böylece hiçbir şey sessizce takılıp kalmaz.
Değişkenler ve şablon söz dizimi
Değişkenler tutkaldır. Her input düğümü, her webhook yanıt eşlemesi, her set_variable eylemi session.variables içine yazar. Her message, buttons ve webhook URL/gövdesi {{variable}} enterpolasyonu ile bundan okuyabilir. Nokta gösterimi de işe yarar: bir webhook order'ı tüm yanıt nesnesine eşlerse daha sonra {{order.tracking_number}}'a başvurabilirsiniz.
Oturumları sağlıklı tutmak için kesin sınırlar:
- Oturum başına en fazla 100 değişken
- Değişken değeri başına en fazla 2.000 karakter
- Oturum yol günlüğü (analitik tarafından kullanılır) 500 düğüm geçişi ile sınırlandırılmıştır
Normal bir akışla bu sınırlara ulaşmazsınız. Bunlar, bellek tükenene kadar değişkenlere yazan kontrolden çıkmış bir döngünün patolojik durumundan sizi korumak için vardır.
Kopyalayabileceğiniz üç gerçek dünya akışı
Örnek 1: Bir SaaS için lider nitelendirme botu
Hedef: üç soru sor, lideri puanla, sıcak liderleri Satış'a, soğuk liderleri kullanıma alma akışına yönlendir.
- Başlangıç → Mesaj ("Merhaba! Hızlı bir soru: bugün sizi buraya getiren ne?")
- Butonlar (Fiyatlandırma / Entegrasyonlar / Sadece bakıyorum) → seçimi
intent'e kaydeder - Giriş (e-posta, tür = email) →
email'e kaydeder - Giriş (şirket büyüklüğü: tek / 2-10 / 11-50 / 50+) →
size'a kaydeder - Koşul:
intent == "Pricing"ANDsize != "solo"→ "sıcak lider" dalına git - Sıcak lider dalında Eylem: assign_department(Satış)
- Soğuk dalda Mesaj ("Teşekkürler! Beğenebileceğiniz bir tanıtım: [bağlantı]")
- Soğuk dal mesajından sonra Eylem: close
Toplam oluşturma süresi: ~10 dakika. Kod yok. Web sitesi widget'ında ve Telegram'da aynı şekilde çalışır.
Örnek 2: E-ticaret için sipariş durumu sorgulama
Hedef: ziyaretçi bir sipariş durumu sorar, bot bunu mağaza arka ucunda arar, takip bilgilerini döndürür, bir şey ters giderse devretme önerir.
- Giriş (sipariş numarası, tür = text) →
order_id - Giriş (siparişteki e-posta, tür = email) →
email - Gecikme (1500 ms) + Mesaj ("Bunu arıyoruz...")
- Webhook →
GET https://shop-api.example/orders/{{order_id}}?email={{email}},statusvetracking_url'yi eşle - success durumunda: Mesaj ("Siparişiniz {{status}}. Takip: {{tracking_url}}") → Butonlar ("Her şey yolunda, teşekkürler" / "Bir şeyler ters")
- "Her şey yolunda" durumunda: Eylem: close
- "Bir şeyler ters" VEYA webhook error durumunda: Eylem: assign_department(Destek)
Örnek 3: Operatörler çevrimiçi olduğunda devreden gece botu
Hedef: yalnızca tüm ajanlar çevrimdışıyken çalış, temel bilgileri topla, sabah vardiyası için Telegram'a bir bilet bırak.
Widget tetikleyicisindeki operators_offline = offline koşulu tarafından tetiklenir (bir akış düğümü değil — bu, botun ne zaman çalışacağı ayarlarında yapılandırılır). Botun kendisi basit bir akıştır:
- Başlangıç → Mesaj ("Şu anda çevrimdışıyız ama sabah size geri döneceğiz.")
- Giriş (e-posta) → Giriş (sorunuz nedir?)
- Eylem: set_visitor_field(email) + set_visitor_field(telefon toplandıysa)
- Webhook → özetle birlikte bir Telegram kanal webhook'una POST, böylece sabah vardiyası bunu ilk iş olarak görür
- Eylem: close
İnsan devri ve oturum kontrolü
Son söz her zaman ajanlarındır. Panonun herhangi bir yerinde, bir konuşmada bir chatbot oturumu aktifken bir banner görünür: "Bot X bu konuşmayı yönetiyor", yanında bir Botu durdur düğmesi. Tek tıklama ve bot işini bitirir — oturum HANDED_OFF'a geçer, bekleyen tüm satır içi klavyeler Telegram/MAX'tan kaldırılır ve konuşma dikkat gerektirecek şekilde işaretlenir. Ajan oradan devralır.
Bu sadece bir panik düğmesi değil. Botlar ve insanlar arasındaki ana entegrasyon noktasıdır. Botlar rutin işleri halleder; ajanlar işler ilginç hale geldiğinde devreye girer. Botun topladığı değişkenler ajan için görünürdür, böylece sıfırdan başlamazlar.
Motor tarafında, arka planda birkaç güvenlik ağı çalışır:
- Redis destekli bir kilit eşzamanlı tıklamaları sıralı hale getirir — ziyaretçi bir butona iki kez dokunup iki yolu tetikleyemez.
- Bir hız sınırlayıcı her oturumu dakikada 30 olayla sınırlar, böylece bir betik bir botu sonsuz döngüye sokamaz.
- Bir cron taraması her dakika çalışır ve sınırlarının ötesinde giriş bekleyen oturumları zaman aşımına uğratır — konuşma insanlar için yeniden açılır, hiçbir şey takılı kalmaz.
Fiyatlandırma ve sınırlar
Chatbot'lar bir Pro plan özelliğidir. Plan ayrıca AI yazma asistanını, tetikleyicileri ve otomatik mesajları, departmanları, analitiği, sınırsız ajanı, beyaz etiketi ve 10 Telegram botunu paketler. Her iki ücretli plan da kredi kartı gerekmeden 7 günlük ücretsiz deneme içerir.
Tam fiyatlandırma sayfasına bakın veya doğrudan hesap oluşturmaya atlayın.
SSS
TIMED_OUT'a geçer, konuşma dikkat gerektirecek şekilde işaretlenir ve ajanlar onu panodan alabilir. Hiçbir şey sessizce terk edilmez.