
Günümüzün hızla değişen iş ortamında, süreçleri otomatikleştirmek artık bir lüks değil, bir zorunluluk haline geldi. Salesforce ekosisteminde ise bu otomatikleştirme ihtiyacının en güçlü yanıtı Flow teknolojisidir. Workflow Rules ve Process Builder’ın yerini almaya hazırlanan Salesforce Flow, düşük kod gerektiren (low-code) yaklaşımıyla hem geliştiricilere hem de admin’lere süreç otomasyonu için güçlü bir araç sunuyor. Bu makalede, Salesforce Flow’un ne olduğunu, farklı türlerini, nasıl etkili bir şekilde kullanılacağını ve en iyi uygulamaları detaylı bir şekilde inceleyeceğiz. İster Salesforce yolculuğunuza yeni başlıyor olun, ister deneyimli bir profesyonel olun, bu içerik size Flow’un potansiyelini en iyi şekilde kullanmanız için gereken bilgileri sağlayacak.
Salesforce Flow Nedir?
Salesforce Flow, karmaşık iş süreçlerini otomatikleştirmek için tasarlanmış, görsel ve kullanıcı dostu bir araçtır. En basit tanımıyla Flow, belirli koşullar veya tetikleyiciler oluştuğunda otomatik olarak çalışan ve önceden tanımlanmış bir dizi işlemi gerçekleştiren otomatik iş akışlarıdır. Salesforce’un bir parçası olarak Flow Builder aracılığıyla oluşturulur ve yönetilir.
Flow, Salesforce’un process automation araçları spektrumunda önemli bir yer tutar. Bu spektrumun bir ucunda basit ve sınırlı özelliklere sahip Workflow Rules, diğer ucunda ise tam programlama yeteneği sunan Apex kodu bulunur. Flow ise bu spektrumun tam ortasında yer alır; Process Builder’dan daha güçlü ancak Apex kadar karmaşık olmayan bir çözüm sunar.
Flow’u diğer otomasyon araçlarından ayıran en önemli özelliklerinden biri, kullanıcı etkileşimini desteklemesidir. Yani bir Flow, tamamen arka planda çalışabileceği gibi, kullanıcılardan veri toplayan, seçimler sunarak ilerleyen interaktif ekranlar da içerebilir.
Flow Builder arayüzü, sürükle-bırak işlevselliği ve görsel akış tasarımı ile kod yazmadan karmaşık otomasyon senaryoları oluşturmanıza olanak tanır. Bu sayede, geleneksel programlama bilgisi olmayan Salesforce yöneticileri de güçlü otomasyonlar geliştirebilir. Ancak, Flow’un gerçek gücü, hem basit hem de ileri düzey geliştirme senaryolarına uyum sağlayabilmesinde yatmaktadır.
Salesforce’un son yıllardaki stratejisinde, Flow’a verilen önem giderek artmaktadır. Workflow Rules ve Process Builder gibi eski otomasyon araçları artık yavaş yavaş kullanımdan kaldırılırken, Flow bu araçların tüm işlevlerini tek bir platformda birleştiren geleceğin çözümü olarak konumlandırılmıştır.
Salesforce Flow Türleri
Salesforce ekosisteminde farklı ihtiyaçlara cevap veren çeşitli Flow türleri bulunmaktadır. Her bir tür, belirli senaryolar için optimize edilmiş olup, doğru Flow türünü seçmek projenizin başarısı için kritik öneme sahiptir. İşte Salesforce’ta kullanabileceğiniz temel Flow türleri:
Screen Flow
Screen Flow, adından da anlaşılacağı gibi kullanıcı etkileşimi içeren Flow türüdür. Kullanıcıdan veri toplamak, seçenekler sunmak veya adım adım bir süreci yönlendirmek için kullanılır. Bu Flow türü Lightning sayfalarına, Community’lere, Flow sayfalarına veya Lightning uygulamalarına eklenebilir. Örneğin, müşteri onboarding süreci, sipariş oluşturma veya adım adım sorun giderme süreçleri Screen Flow için ideal kullanım senaryolarıdır.
Örnek Kullanım: Müşteri hizmetleri temsilcileri için adım adım vaka çözüm süreci oluşturmak.
Record-Triggered Flow
Record-Triggered Flow, bir kayıt oluşturulduğunda, güncellendiğinde veya silindiğinde otomatik olarak tetiklenen Flow türüdür. Bu tür, Workflow Rules ve Process Builder’ın işlevselliğini karşılar ve hatta aşar. Bir kaydın oluşturulması, güncellenmesi veya silinmesi öncesinde veya sonrasında tetiklenecek şekilde yapılandırılabilir.
Örnek Kullanım: Bir Opportunity "Closed Won" aşamasına geçtiğinde otomatik olarak bir proje kaydı oluşturmak.
Scheduled Flow
Scheduled Flow, belirli bir zamanda veya periyodik olarak çalışacak şekilde programlanabilen Flow türüdür. Bu Flow türü, düzenli raporlar göndermek, veri temizliği yapmak veya belirli bir tarihte hatırlatıcılar göndermek gibi görevler için idealdir.
Örnek Kullanım: Her ayın son gününde, o ay içinde kapatılmayan tüm vakaları listeleyip yöneticilere özet e-posta göndermek.
Platform Event-Triggered Flow
Platform Event-Triggered Flow, Salesforce Platform Event’leri tarafından tetiklenen Flow türüdür. Salesforce içinde veya dışında gerçekleşen olayları dinleyip buna göre hareket edebilirsiniz. Sistemler arası entegrasyonlar ve gerçek zamanlı olay işleme için idealdir.
Örnek Kullanım: Harici bir sipariş sisteminden gelen sipariş onay event'i sonrasında Salesforce'ta ilgili opportunity'yi otomatik olarak güncellemek.
Autolaunched Flow
Autolaunched Flow, kullanıcı etkileşimi olmadan otomatik olarak çalıştırılan Flow türüdür. Apex, Process Builder, REST API veya diğer Flow’lar tarafından çağrılabilir. Karmaşık iş mantığını modüler bir şekilde uygulamak için idealdir.
Örnek Kullanım: Bir Lead'i Convert etme işlemi sırasında özel veri doğrulama ve zenginleştirme süreçlerini otomatikleştirmek.
Her Flow türü farklı senaryolara uygun olduğundan, ihtiyaçlarınıza en iyi şekilde hizmet edecek türü seçmek önemlidir. Çoğu durumda, karmaşık bir otomasyon senaryosu birden fazla Flow türünün bir arada kullanılmasını gerektirebilir.
Salesforce Flow Builder’ı Kullanmak
Flow Builder, Salesforce’un görsel Flow geliştirme arayüzüdür ve karmaşık iş süreçlerini kod yazmadan oluşturmanıza olanak tanır. Setup menüsünden “Flows” bölümüne giderek erişebileceğiniz bu araç, sezgisel bir tasarım deneyimi sunar.
Flow Builder Arayüzü
Flow Builder arayüzü temel olarak dört ana bölümden oluşur:
- Tuval (Canvas): Flow’unuzu görsel olarak tasarladığınız ana çalışma alanıdır.
- Araç Çubuğu (Toolbar): Flow elementlerini ve kaynaklarını içeren menüdür.
- Özellikler Paneli (Properties Panel): Seçilen element veya kaynağın özelliklerini düzenlemenizi sağlar.
- Explorer Panel: Flow’unuzdaki tüm elementleri ve kaynakları hiyerarşik olarak görüntülemenizi sağlar.
Temel Flow Elementleri
Flow oluştururken kullanabileceğiniz çeşitli elementler bulunur:
- Ekranlar (Screens): Kullanıcılardan veri toplamak ve bilgi görüntülemek için kullanılır. Text girişi, checkbox, radio button, dropdown, display text gibi çeşitli komponentler içerebilir.
- Kararlar (Decisions): Koşullara bağlı olarak Flow’un farklı yollar izlemesini sağlar. “IF-THEN-ELSE” mantığıyla çalışır.
- Atamalar (Assignments): Flow değişkenlerinde değer ataması yapmak için kullanılır.
- Kayıt Oluşturma/Güncelleme (Create/Update Records): Salesforce veritabanında kayıt işlemleri gerçekleştirmek için kullanılır.
- Döngüler (Loops): Bir koleksiyon içindeki her öğe için belirli işlemleri tekrarlamak için kullanılır.
- Apex Aksiyon (Apex Action): Özel Apex kod bloklarını çağırmak için kullanılır.
- Submitler (Submits): Kullanıcı formlarındaki bilgileri işleme almak için kullanılır.
- Sorgular (Get Records): Salesforce veritabanından veri çekmek için SOQL benzeri bir arayüz sunar.
Değişkenler ve Koleksiyonlar
Flow’lar içinde bilgi saklamak ve taşımak için değişkenler ve koleksiyonlar kullanılır:
- Değişkenler: Tek bir değeri saklayan veri birimleridir. Text, Number, Boolean, Date gibi veri türlerinde olabilir.
- Koleksiyonlar: Aynı türdeki değerlerin listesini saklayan veri yapılarıdır.
- Kayıt Değişkenleri: Tek bir Salesforce kaydını temsil eden değişkenlerdir.
- Kayıt Koleksiyonları: Birden fazla Salesforce kaydını içeren koleksiyonlardır.
Örnek: Bir Account'a bağlı tüm Contact'ları çekmek için önce bir "Get Records" elementi kullanıp, sonuçları bir "Contact Koleksiyonu" değişkeninde saklayabilirsiniz.
Kaynaklar ve Connector’lar
- Kaynaklar (Resources): Flow içinde kullanılan değişkenler, formüller, sabitler ve diğer veri birimleridir.
- Connector’lar: Flow elementleri arasındaki ilişkiyi ve akışı belirleyen bağlantılardır. Oklar şeklinde gösterilir ve Flow’un hangi yolu izleyeceğini belirler.
Flow Builder’da başarılı olmak için, öncelikle otomasyon yapmak istediğiniz süreci iyi anlamalı ve sonra bunu mantıksal adımlara bölmelisiniz. Flow’unuzu oluştururken, karmaşık süreçleri modüler parçalara ayırmak, hata yönetimi eklemek ve performans optimizasyonlarını göz önünde bulundurmak önemlidir.
Salesforce Flow Kuralları ve En İyi Uygulamalar
Etkili ve verimli Flow’lar oluşturmak, sadece temel işlevselliği bilmekten daha fazlasını gerektirir. İşte Salesforce Flow’larınızı tasarlarken ve geliştirirken dikkat etmeniz gereken en önemli kurallar ve en iyi uygulamalar:
Flow Tasarım Kuralları
- Plan Yapın, Sonra Kodlayın: Flow’unuzu oluşturmaya başlamadan önce, otomatikleştirmek istediğiniz süreci tamamen anlayın ve akış şeması olarak çizin. Bu, gereksiz karmaşıklıktan kaçınmanıza yardımcı olacaktır.
- Modüler Tasarım Benimseyin: Karmaşık süreçleri daha küçük, yönetilebilir modüllere bölün. Bir ana Flow içerisinde Sub-Flow’lar çağırmayı düşünün. Bu yaklaşım, bakımı kolaylaştırır ve kod tekrarını azaltır.
- İsimlendirme Standartları Kullanın: Flow’larınıza ve Flow içindeki elemanlara (değişkenler, kararlar, ekranlar vb.) anlamlı ve tutarlı isimler verin. Örneğin, “UpdateAccountDetails_Flow” veya “ContactSearchScreen” gibi açıklayıcı isimler kullanın.
- Tutarlı Görsel Düzen: Flow elementlerini mantıksal gruplara ayırarak düzenleyin. Karmaşık Flow’larda, farklı işlev alanlarını görsel olarak ayırmak için elemanları yeniden konumlandırın.
- Dokümantasyon Yapın: Flow’un amacını, tetikleyicilerini ve ana işlevlerini açıklayan açıklamalar ekleyin. Karmaşık adımlar için açıklayıcı metinler kullanın.
Performans Optimizasyonu
- SOQL Sorgularını Minimize Edin: Her “Get Records” elementi bir SOQL sorgusu çalıştırır. Mümkün olduğunca az sayıda Get Records kullanın ve ihtiyacınız olan tüm alanları tek bir sorguda alın.
- DML İşlemlerini Gruplandırın: Veritabanı işlemlerini (Create Records, Update Records, Delete Records) mümkün olduğunca gruplandırın. Her DML işlemi, governor limitlerinize karşı sayılır.
- Döngüleri Dikkatli Kullanın: Loop içinde DML işlemleri yapmak, Salesforce governor limitlerini aşmanıza neden olabilir. Bunun yerine, koleksiyonları doldurun ve döngü dışında toplu olarak işleyin.
- Gereksiz Adımlardan Kaçının: Flow’unuzdaki her adımın gerçekten gerekli olup olmadığını değerlendirin. Gereksiz kontroller ve işlemler performansı düşürür.
Bulk İşlemler İçin Tasarım
- Bulk Kodlama Yapın: Flow’unuzu tek bir kayıt için değil, 200 kayıt birden işleyebilecek şekilde tasarlayın. Bu özellikle trigger-based Flow’lar için önemlidir.
- Collection Değişkenlerini Kullanın: Toplu işlemlerde, tekil kayıt değişkenleri yerine koleksiyon değişkenlerini tercih edin.
- İç İçe Döngülerden Kaçının: İç içe döngüler (loop içinde loop) performans sorunlarına ve governor limit aşımlarına neden olabilir.
Hata Yönetimi
- Hata Yolları Ekleyin: Flow’unuza hata yönetimi ekleyin ve beklenmeyen durumları ele alan alternatif yollar oluşturun.
- Fault Path’ler Kullanın: DML işlemleri, kayıt sorgulama ve Apex eylemleri gibi başarısız olabilecek operasyonlar için fault path’ler (hata yolları) ekleyin.
- Hatalarınızı Kaydedin: Hata oluştuğunda, hata mesajını bir Log veya Custom Object’e kaydederek daha sonra incelenmesini sağlayın.
- Hata Mesajlarını Kullanıcı Dostu Yapın: Kullanıcılara gösterilen hata mesajlarının anlaşılır ve eylem yönelimli olmasını sağlayın.
Bakımı Kolay Flow Oluşturma
- Versiyonlama Stratejisi: Flow’larınızda düzenli versiyonlama yapın ve değişiklikleri dokümante edin.
- Test Edin: Flow’unuzu farklı senaryolarla test edin, özellikle sınır koşullarını ve hata durumlarını kontrol edin.
- Güvenlik Kontrolü: Flow’un erişim izinlerini ve kimliğini (kimle çalıştığını) düzenli olarak gözden geçirin.
- Tekrar Kullanımı Düşünün: Ortak işlevler için Sub-Flow’lar oluşturun, böylece aynı mantığı birden fazla Flow’da tekrar kullanabilirsiniz.
Bu kuralları ve en iyi uygulamaları takip ederek, daha güvenilir, performanslı ve bakımı kolay Flow’lar oluşturabilirsiniz. Unutmayın, iyi bir Flow sadece çalışan bir Flow değil, aynı zamanda sürdürülebilir ve ölçeklenebilir bir çözümdür.
Gerçek Dünya Örnekleri
Salesforce Flow’un gerçek dünyada nasıl değer yarattığını anlamak için, bazı başarılı uygulama örneklerini inceleyelim. İşte farklı sektörlerde Flow kullanılarak çözülmüş üç vaka çalışması:
Vaka Çalışması 1: Müşteri Onboarding Otomasyonu
Senaryo: Bir finans hizmetleri şirketi, yeni müşteri onboarding sürecinin manuel olması nedeniyle zaman kaybı ve veri tutarsızlığı sorunları yaşıyordu. Süreç ortalama 2 hafta sürüyor ve 7 farklı departmandan onay gerektiriyordu.
Çözüm: Screen Flow ve Record-Triggered Flow’ların kombinasyonu kullanılarak kapsamlı bir onboarding otomasyonu oluşturuldu:
- Screen Flow ile müşteri servisi temsilcilerinin tüm gerekli bilgileri toplaması sağlandı.
- Record-Triggered Flow ile müşteri verilerinin otomatik doğrulaması yapıldı.
- Approval Process entegrasyonu ile farklı departmanların onay süreçleri otomatikleştirildi.
- Scheduled Flow ile bekleyen onaylar için otomatik hatırlatıcılar gönderildi.
- Screen Flow ile müşteriye özel portal hesaplarının oluşturulması otomatikleştirildi.
Vaka Çalışması 2: Onay Süreçlerinin Otomatikleştirilmesi
Senaryo: Bir üretim şirketi, karmaşık fiyatlandırma onay süreçleri nedeniyle satış döngüsünde gecikmeler yaşıyordu. Özel fiyat teklifleri, indirimler ve promosyonlar için çok katmanlı onay gerektiren manuel bir sistem kullanılıyordu.
Çözüm: Autolaunched Flow ve Record-Triggered Flow kombinasyonu kullanılarak dinamik onay otomasyonu geliştirildi:
- Record-Triggered Flow ile indirim oranına bağlı olarak otomatik onay yönlendirmesi yapıldı.
- Ürün kategorisi, hesap büyüklüğü ve indirim miktarına göre dinamik olarak onay seviyelerini belirleyen bir karar matrisi oluşturuldu.
- Scheduled Flow ile belirli sürede yanıt alınamayan onay talepleri için otomatik eskalasyon süreci kuruldu.
- Onay verildiğinde otomatik fiyat güncellemesi ve bildirim gönderimi sağlandı.
Vaka Çalışması 3: Çok Adımlı Veri Validasyonu
Senaryo: Bir sağlık hizmetleri şirketi, hasta kayıt sürecinde veri kalitesi sorunları yaşıyordu. Eksik bilgiler, yanlış formatlanmış veriler ve tutarsız kayıtlar nedeniyle fatura işlemlerinde gecikmeler yaşanıyordu.
Çözüm: Screen Flow ve Apex eylemlerini birleştiren kapsamlı bir validasyon sistemi geliştirildi:
- Akıllı form validasyonu içeren bir Screen Flow, veri girişi sırasında hataları önledi.
- Adres doğrulama için harici API’lerle entegrasyon sağlandı.
- Sigorta bilgilerini gerçek zamanlı doğrulayan Apex eylemleri entegre edildi.
- Hatalı veya şüpheli girişler için otomatik iş akışları oluşturuldu.
- Data stewardship ekibine yönlendirilen, temizlenmesi gereken verileri görselleştiren özel raporlar oluşturuldu.
Bu vaka çalışmaları, Salesforce Flow’un farklı sektörlerde ve farklı iş süreçlerinde nasıl değer yaratabildiğini göstermektedir. En başarılı Flow uygulamaları genellikle iş süreçlerini derinlemesine anlayarak, süreçleri adım adım otomatikleştiren ve kullanıcı deneyimini ön planda tutan çözümlerdir.
Flow Debugging ve Sorun Giderme
Flow geliştirme sürecinin en kritik aşamalarından biri de debug ve sorun giderme işlemleridir. Etkili debugging, Flow’larınızın beklenen şekilde çalışmasını sağlar ve canlı ortama geçmeden önce potansiyel hataları tespit etmenize yardımcı olur. İşte Flow debugging konusunda bilmeniz gerekenler:
Debug İşlemi Nasıl Yapılır
- Flow Builder’da Debug Başlatma: Flow Builder’da “Debug” butonu ile Flow’unuzu test edebilirsiniz. Bu seçenek, Flow’unuzu çalıştırır ve adım adım izlemenize olanak tanır.
- Test Verisi Oluşturma: Debug oturumu başlatırken, Flow’unuzun ihtiyaç duyduğu test verilerini manuel olarak girebilir veya otomatik olarak oluşturabilirsiniz. Record-triggered Flow’lar için, sistem tarafından tetiklenen kaydı temsil eden test verileri oluşturabilirsiniz.
- Adım Adım İzleme: Debug modunda, Flow’unuzun izlediği yolu ve her adımda değişkenlerin değerlerini görebilirsiniz. Bu, mantık hatalarını veya beklenmeyen davranışları tespit etmenize yardımcı olur.
- Kesme Noktaları (Pause Points): Karmaşık Flow’larda, belirli noktalarda duraksatmak için Pause Point’ler ekleyebilirsiniz. Bu, özellikle büyük döngüler veya karmaşık karar ağaçları gibi durumlarda faydalıdır.
Yaygın Hatalar ve Çözümleri
- Boş Değer Hataları: Null değerlerle ilgili hataları önlemek için Default Value’lar kullanın ve Decision elementlerinde null kontrolleri ekleyin.
Çözüm: {!myVariable} != null && {!myVariable} != '' şeklinde kontroller ekleyin.
- Kayıt Kilitleme Sorunları: Aynı kayıt üzerinde birden fazla Flow çalıştığında ortaya çıkabilir.
Çözüm: Flow'larınızı eşzamanlı çalışması gereken durumlar için optimize edin ve Process Builder yerine Record-Triggered Flow kullanmayı tercih edin.
- Governor Limit Aşımları: Büyük veri setleriyle çalışırken, özellikle döngüler içinde DML işlemleri yapıyorsanız governor limitleri aşabilirsiniz.
Çözüm: Toplu işlem yapmak için Collection'lar kullanın ve döngü içinde değil, döngü dışında DML işlemi yapın.
- Hatalı Data Tipi Dönüşümleri: Değişkenler arasında veri aktarırken yanlış veri tipi dönüşümleri sorunlara neden olabilir.
Çözüm: Assignment elementlerinde doğru data tiplerini kullanın ve gerekirse Get Records sorgularınızda alanları doğru tipte alın.
- Flow Versiyonu Sorunları: Bir Flow’un eski bir versiyonu hala aktif olabilir veya yeni bir versiyon aktivasyonu sonrası eski Flow örneğiniz hala çalışıyor olabilir.
Çözüm: Flow versiyonlarını düzenli olarak kontrol edin ve kullanılmayan eski versiyonları deaktive edin.
Debug Günlüklerini Anlama
- Debug Günlükleri Ayarlama: Setup > Debug Logs altından, Flow’larınızın ayrıntılı debug günlüklerini görüntülemek için log seviyeleri ayarlayabilirsiniz.
- Günlükleri Analiz Etme: Debug günlüklerinde şu bilgileri arayın:
- Flow başlangıç ve bitiş noktaları
- Çalıştırılan her Flow elementi
- Değişken değerleri ve değişiklikleri
- DML işlemleri ve sonuçları
- Hata mesajları
- Kritik Anahtar Kelimeler: Günlüklerde “FLOW_ELEMENT_ERROR”, “FLOW_BULK_ELEMENT_ERROR” veya “LIMIT_USAGE” gibi anahtar kelimeleri arayarak hızlıca sorunları tespit edebilirsiniz.
Flow Performansını Ölçme
- Debug Günlükleri Zamanlama: Debug günlüklerinde, her Flow elementi için harcanan zaman görüntülenebilir, böylece performans darboğazlarını tespit edebilirsiniz.
- Governor Limit Kullanımını İzleme: Debug günlüklerinde, Flow’unuzun ne kadar DML işlemi, SOQL sorgusu veya CPU zamanı kullandığını görebilirsiniz.
- Yük Testi: Önemli Flow’lar için, gerçek iş yükünü simüle eden test senaryoları oluşturun ve performansı ölçün.
- Optimizasyon İpuçları:
- Gereksiz Get Records sorgularını azaltın
- Formül değişkenleri yerine atama değişkenleri kullanmayı değerlendirin
- Büyük veri setleri için Apex alternatifleri düşünün
- Karmaşık hesaplamalar için Formula Resources kullanın
Etkili debugging ve sorun giderme becerileri, Flow geliştirme sürecinin vazgeçilmez bir parçasıdır. Bu becerileri geliştirerek, daha sağlam, hatasız ve performanslı Flow’lar oluşturabilirsiniz. Sistemli bir debugging yaklaşımı benimsemek, uzun vadede zaman kazandırır ve sorunları kaynağında çözmenize yardımcı olur.