Ana içeriğe geç

Flow State

Flow state, akışınızın gerçekler için belleğidir — bir çalışma boyunca ilerleyen ve istediğinizde tüm sohbet boyunca varlığını sürdüren adlandırılmış değerler. Bir botun, müşteri size söyledikten sonra adını hatırlaması ve sonraki bir adımın ona adıyla hitap edebilmesi bu sayede olur.

{{$flow.state.name}}
{{$flow.state.orderId}}

State tanımlama

State anahtarlarını Başlangıç node'unda Akış Değişkenleri altında ayarlarsınız — basit bir Key / Value çiftleri listesi. Anahtar, daha sonra okuyacağınız addır; değer ise isteğe bağlı bir başlangıç değeridir.

Başlangıç node'unda anahtar ve değerlerle tanımlanmış flow değişkenleri

Her anahtarı önceden tanımlamak zorunda değilsiniz — node'lar akış çalışırken state anahtarları oluşturabilir ve güncelleyebilir — ancak beklediğiniz anahtarları Başlangıç node'unda listelemek onları keşfetmeyi kolaylaştırır ve onlara başlangıç değerleri verir.

Çalışma sırasında state güncelleme

Bir tur çalışırken, node'lar state'e yazabilir. Tipik yol, bir node üzerindeki bir Update State adımıdır: bir anahtar adlandırır ve ona genellikle başka bir değişkenden çekilen bir değer verirsiniz. Örneğin, bir AI node'u müşterinin adını çıkardıktan sonra onu kaydedersiniz:

Key: name
Value: {{ Extract Info.name }}

Bu noktadan itibaren, sonraki herhangi bir node {{$flow.state.name}} değerini okuyabilir.

State okuma

Bir alanın değişken kabul ettiği her yerde, bir state değerini {{$flow.state.<key>}} ile okuyun:

Thanks, {{$flow.state.name}}! I've pulled up order {{$flow.state.orderId}}.

Persist ile Ephemeral — state bir sonraki mesaja aktarılır mı?

İki Başlangıç node ayarı, işlerin ne kadar süreceğini kontrol eder:

  • Akış Değişkenlerini Kalıcı Yap (varsayılan olarak açık) — flow state aynı sohbet içinde bir turdan diğerine taşınır. Müşterinin adını bu mesajda kaydedin, bir sonraki mesajda hâlâ oradadır. Bunu kapatın, state her turdan sonra silinir.
  • Geçici Bellek — bu, flow state'i değil, sohbet geçmişini kontrol eder. Açıkken, her çalışma geçmiş sohbet olmadan taze başlar. Bu, AI'ın diyaloğu ne kadar "hatırladığıyla" ilgilidir; kaydedilmiş state değerlerinizden ayrıdır.

İkisi bağımsızdır. Çoğu lead toplayan ve çok adımlı akış, değerlerin sohbet boyunca birikmesi için Akış Değişkenlerini Kalıcı Yap'ın açık olmasını ister. Bu iki ayarın nasıl birlikte çalıştığını görmek için Bellek sayfasına bakın.

ipucu

Flow state, global olarak değil, sohbet (oturum) başına kalıcıdır. Her müşterinin sohbetinin kendi state'i vardır — bir müşterinin kaydedilmiş name değeri asla başka birininkine sızmaz.

State otomatik olarak bir Lead olur

İşte anlaşılmaya değer güçlü bir davranış: akışınızın state'i her güncellendiğinde, Flowera bunu bir Lead olarak kaydeder. Hiçbir şey bağlamanıza gerek yok — state anahtarlarınızı iyi adlandırmanız yeterli.

Her sohbet bir Lead alır (oturuma göre eşleştirilir). State değiştikçe, o Lead güncel tutulur. Her değerin nereye ulaşacağının kuralları:

  • name, email ve phone (büyük/küçük harfe duyarsız eşleşir — Name, EMAIL, Phone hepsi sayılır) Lead'in kendi Name, Email ve Phone sütunlarına eşlenir.
  • Tanımladığınız diğer her state anahtarı Lead'in özel alanlarına gider ve Lead'leri Görüntüle sayfasında standart sütunların yanında gösterilir.

Yani akışınız name, email ve interest değerlerini kaydederse, Name ve Email sütunları doldurulmuş ve interest bir özel alan olarak eklenmiş bir Lead elde edersiniz.

Bu, bir node tarafından yazılmak yerine tetikleyiciyle gelen değerleri de kapsar — bir webhook'un payload eşlemesi (örneğin bir CRM'in name, phone ve campaign değerlerini $flow.state'e göndermesi), bir Akış Çalıştır node'unun Override Config alanı ya da API üzerinden gönderilen flowState. Bunlar koşu başlar başlamaz Lead'e kaydedilir; yani müşteri hiç cevap vermese bile Lead dolu olur. İki kural geçerlidir: anahtar Start node'unun Flow State listesinde ilan edilmiş olmalıdır (name, email ve phone ilan edilmese de her zaman sayılır) ve boş değerler atlanır, böylece bir tetikleyici önceki bir koşunun kaydettiği bir değeri silemez. Flowera'nın kendi eklediği kanal bilgileri (platform ya da reklam kaynağı gibi) siz o anahtarı ilan etmedikçe kaydedilmez. Değer nereden gelirse gelsin — webhook, Akış Çalıştır çağrısı ya da herkese açık API — Lead'i temiz tutan şey bu iki kuraldır. Kampanya gönderimleri de aynı şekilde çalışır: alıcı listesi yüklediğiniz bir CSV'den geliyorsa eşlediğiniz her şey o alıcının Lead'ine kaydedilir; kayıtlı bir Lead filtresinden geliyorsa eşlediğiniz özel alanlar kaydedilir ama ad, e-posta ve telefona dokunulmaz — böylece saatler önce hazırlanmış bir liste, o arada değişmiş bir iletişim bilgisini ezemez.

Asla özel alan olarak kaydedilmeyen anahtarlar

Flowera bir dizi dahili/sistem anahtarını atlar — state'te görünseler bile asla özel alan olarak yazılmazlar:

question, source, webhook, whatsappEventType, instagramEventType, facebookEventType, schedule, persistState, ephemeralMemory, form, chatHistory, uploads, sessionId, chatId, chatflowId, workspaceId, executionId, apiMessageId, overrideConfig, sessionLabels

Bunlar Flowera'nın kendi kullanımına ayrılmıştır; bu yüzden kendi state anahtarlarınızı bunların adlarıyla adlandırmaktan kaçının — bu adlardan biri altında saklanan bir değer Lead'inize ulaşmaz.

Anahtarlarınızı Lead sütunlarıyla eşleşecek şekilde adlandırın

İletişim ayrıntıları mı topluyorsunuz? State anahtarlarınızı tam olarak name, email ve phone olarak adlandırın. Özel alanlar olarak kalmak yerine doğrudan Lead'in standart sütunlarına düşerler. Bu, Lead toplayıcı bot eğitiminin kalbidir.

İlgili