
Salesforce’ta süreç otomasyonu denince artık akla ilk gelen araçlardan biri Flow Builder. Kod yazmadan iş akışlarını düzenlemek isteyenler için tam anlamıyla bir kurtarıcı.
Özellikle record-triggered flow’larla işler hem hızlanıyor hem sadeleşiyor. Bu rehberde, sıkça karıştırılan before-save vs. after-save flow farklarını netleştiriyor ve hangisini ne zaman kullanmanız gerektiğini açıklıyoruz.
Record-Triggered Flow Nedir?
Record-triggered flow’lar, bir kayıt oluşturulduğunda, güncellendiğinde veya silindiğinde otomatik olarak çalışan akışlardır. Bu flow türleri manuel müdahale gerektiren işlemleri otomatikleştirerek organizasyonunuzda tutarlılık ve verimlilik sağlar.
Record-triggered flow’lar oluştururken karşılaştığınız en önemli karar noktalarından biri, flow’un ne zaman çalışacağını belirlemektir. Bu karar otomasyon performansını doğrudan etkiler.
Before-Save Flow: Hızlı ve Verimli Güncellemeler
Before-save flow daha hızlı ve verimli güncellemeler için tercih edilir. Before-save flow’un nasıl çalıştığını, avantajlarını, kullanım alanlarını ve sınırlamalarını adım adım inceleyelim.
Before-Save Flow Nasıl Çalışır?
Before save flow, kayıt veritabanına kaydedilmeden önce çalışan flow türüdür. Bu Salesforce flow’ları, kayıt henüz commit edilmeden, bellekte (in-memory) değişiklikler yapmanıza olanak tanır.
- Sadece Gerekli Alanları Güncelleyin: Gereksiz alan değişikliklerinden kaçının
- Karmaşık Mantıktan Kaçının: Basit hesaplamalar ve doğrulamalarla sınırlı kalın
- Koşullu Mantık Kullanın: Gereksiz çalışmaları önlemek için kriterleri iyi tanımlayın
Before-Save Flow’un Avantajları
- Performans Üstünlüğü: Before-save flow’lar, after-save flow’lara kıyasla 10 kata kadar daha hızlı çalışabilir. Bunun nedeni, ekstra bir kaydetme işlemine ihtiyaç duymamaları ve DML limitlerinden etkilenmemeleridir.
- DML Optimizasyonu: Tetikleyen kaydı güncellediğinizde ek DML işlemi gerektirmez, bu da governor limitlerinde önemli tasarruf sağlar.
- Bellekte İşlem: Tüm değişiklikler bellekte gerçekleştiğinden, veritabanı operasyonları minimize olur.
Before-Save Flow Kullanım Senaryoları
- Alan Normalizasyonu: Metin alanlarını büyük harfe çevirme veya standardizasyon
- Varsayılan Değer Atama: Boş alanları otomatik doldurma
- Basit Hesaplamalar: Lead score hesaplama veya değer hesaplamaları
- Veri Doğrulama: Girilen verileri kontrol etme ve düzeltme
Örnek Senaryo:
Yeni lead oluşturulduğunda veya güncellendiğinde
- E-posta adresini küçük harfe çevir
- Telefon numarasını standart formata getir
- Company name’i title case’e çevir
- Lead source’a göre priority skorunu hesapla
Bu işlemler sadece Lead kaydını etkilediği için before-save flow idealdir.
Before-Save Flow Sınırlamaları:
- Sadece tetikleyen kayıt güncellenebilir
- İlişkili kayıtlara erişim yok
- Kayıt ID’sine erişim yok
- E-posta gönderme özelliği yok
- Yeni kayıt oluşturma mümkün değil
Yaygın Before-Save Flow Sorunları:
- DML Hatası: İlişkili kayıt güncellemeye çalışma
- Performance Issues: Çok karmaşık logic kullanma
- Governor Limit: CPU time limitini aşma
After-Save Flow: Kapsamlı İş Süreçleri için İdeal
After-save flow’lar daha karmaşık iş süreçlerini yönetmek için geniş olanaklar sunar. Kayıt başarıyla kaydedildikten sonra devreye giren bu flow türü, kapsamlı otomasyonlar için tercih edilir.
After-Save Flow Nasıl Çalışır?
After save flow, kayıt veritabanına başarıyla kaydedildikten sonra çalışır. Bu sayede kaydın ID’sine ve tüm ilişkili verilerine tam erişim sağlar.
- Giriş Kriterlerini Optimize Edin: Flow’un gereksiz çalışmasını engelleyin
- Asenkron Yolları Kullanın: Uzun süren işlemleri asenkron olarak gerçekleştirin
- Toplu İşlemleri Destekleyin: Flow’unuzun toplu veri girişi/güncellemede sorunsuz çalışmasını sağlayın
- Hata Yönetimi Ekleyin: Hata durumlarını yönetmek için uygun istisna işleme (exception handling) kullanın
After-Save Flow’un Avantajları
- Tam Kayıt Bağlamı: Kaydın Salesforce ID’sine ve tüm ilişkili verilerine erişim
- Geniş Eylem Yelpazesi: E-posta gönderme, yeni kayıt oluşturma, Chatter’a post atma, Apex action çağırma gibi çeşitli aksiyonlar
- İlişkili Kayıtlarla Çalışma: Parent ve child kayıtları güncelleyebilme
- Asenkron İşlem Desteği: After-save flow’lar, asenkron yollarla zaman alıcı işlemleri arka planda çalıştırabilir. Bu da performansı koruyarak kapsamlı automation senaryoları oluşturmanıza imkan tanır.
- External System Entegrasyonu: REST API çağrıları, web service entegrasyonları ve platform event publishing gibi dış sistem bağlantıları için ideal ortam sağlar.
After-Save Flow Kullanım Senaryoları
- İlişkili Kayıt Oluşturma: Yeni opportunity için otomatik task oluşturma
- E-posta Bildirimleri: Müşterilere otomatik e-posta gönderme
- Cross-Object Güncellemeler: İlişkili kayıtlarda değişiklik yapma
- Entegrasyon İşlemleri: External sistemlerle veri paylaşımı
- Asenkron İşlemler: Zaman alıcı calculations ve external API çağrıları
- Platform Event Publishing: Real-time sistem bildirimleri
Örnek Senaryo:
Yeni bir Case oluşturulduğunda:
Senkron İşlemler (Hemen):
- Case owner’a follow-up task oluşturma
- Account’taki destek metriklerini güncelleme
Asenkron İşlemler (Arka Planda):
- Müşterilere hoş geldin e-postası gönderme
- External CRM sistemine case bilgisi gönderme
- Chatter’da bilgi paylaşımı yapma
- Knowledge base’de benzer case’leri arama
Örnek Senaryo:
Yeni opportunity oluşturulduğunda
- Sales rep’e bilgi e-postası gönder
- Account’ta opportunity sayısını güncelle
- İlk follow-up task’ı oluştur
- Slack’te sales kanalına bildirim gönder
Bu işlemler multiple object’i etkilediği için after-save flow gereklidir.
Yaygın After-Save Flow Sorunları:
- DML Limit Aşımı: Bulk operations’da sorun
- Recursive Flow: Kendini tekrar tetikleme
- Performance Degradation: Optimize edilmemiş sorgular
After-Save Flow ve Performans Hususları:
- DML Limitlerini Etkiler: Her güncelleme açık DML gerektirdiği için governor limitlerini etkiler
- Ek Save Döngüsü: Before-save’e kıyasla daha fazla veritabanı operasyonu
- Dikkatli Tasarım Gerekiyor: Entry criteria’ları iyi filtrelemek ve asynchronous path’leri kullanmak önemli
- Asenkron Optimizasyon: Uzun süren işlemler (external API, karmaşı hesaplamalar, toplu işlemler) asenkron path’lerde çalıştırılarak kullanıcı deneyimi korunur ve timeout riskinden kaçınılır
- Load Balancing: Asenkron işlemler sistem yükünü dağıtarak yoğun dönemlerde performans sorunlarını önler
Before Save vs. After Save Flow Karşılaştırması
Before Save ve After Save flow’larının temel farklarını anlamak, doğru otomasyon stratejisi belirlemek için önem taşır. Performans ve fonksiyonel açıdan aralarındaki farkları karşılaştırarak, hangi durumda hangi flow türünün daha uygun olduğuna karar verebilirsiniz.
Performans Karşılaştırması
Özellik | Before-Save Flow | After-Save Flow |
Çalışma Hızı | ⚡ Çok Hızlı (10x) | ⚡ Hızlı |
DML Kullanımı | Minimal | Normal |
Bellek Kullanımı | Optimize | Standart |
Governor Limits | Az Etki | Normal Etki |
Fonksiyonel Karşılaştırma
Özellik | Before-Save | After-Save |
Create’da Çalışma | ✅ | ✅ |
Update’de Çalışma | ✅ | ✅ |
Delete’de Çalışma | ❌ | ✅ |
Kayıt ID Erişimi | ❌ | ✅ |
Yeni Kayıt Oluşturma | ❌ | ✅ |
E-posta Gönderme | ❌ | ✅ |
İlişkili Kayıt Güncelleme | ❌ | ✅ |
Apex Action Çağırma | ❌ | ✅ |
Hangi Flow Türünü Ne Zaman Seçmelisiniz?
Before-Save Flow Tercih Edilmesi Gereken Durumlar:
- Sadece Tetikleyen Kaydı Güncelliyorsanız: Eğer otomasyonunuz yalnızca tetikleyen kayıttaki alanları değiştiriyorsa, before-save flow ideal seçimdir.
- Performans Kritikse: Yüksek hacimli işlemlerde veya gerçek zamanlı yanıt gereken durumlarda before-save flow’ların hızı avantaj sağlar.
- DML Limitleri Endişesi Varsa: Karmaşık organizasyonlarda DML limitlerinden kaçınmak için before-save flow tercih edilebilir.
After-Save Flow Tercih Edilmesi Gereken Durumlar:
- İlişkili Kayıtlarla Çalışıyorsanız: Child record oluşturma, parent record güncelleme gibi işlemler için after-save flow gereklidir.
- Karmaşık İş Süreçleri: E-posta bildirimleri, onay süreçleri, external system entegrasyonları için after-save flow şarttır.
- Kayıt ID’sine İhtiyaç Duyuyorsanız: Reference field’lar veya lookup ilişkileri kurmak için kayıt ID’si gerekiyorsa after-save flow kullanılmalıdır.
Hybrid Yaklaşım: İki Flow Türünü Birlikte Kullanma:
Bazı senaryolarda hem before-save hem de after-save flow’ları birlikte kullanabilirsiniz:
- Before-Save: Veri normalizasyonu ve validasyon
- After-Save: İlişkili kayıt işlemleri ve bildirimler
Bu yaklaşım, performansı optimize ederken fonksiyonel gereksinimleri de karşılar.
Flow performansınızı takip etmek için:
- Setup → Flow → Runtime Metrics kullanın
- Debug logs analiz edin
- Governor limit warnings takip edin
- Kullanıcı deneyimi geri bildirimi alın
Flow Seçiminde Doğru Karar: Before-Save vs After-Save
Before save ve after save flow farkı anlayarak doğru automation stratejisi geliştirmek, Salesforce org’unuzun performansını ve kullanıcı deneyimini önemli ölçüde etkiler. Before-save flow’lar hızlı field güncellemeleri için, after-save flow’lar ise kapsamlı iş süreçleri için idealdir.
Automation seçiminizdeki temel kriter basittir: sadece tetikleyen kaydı mı güncelliyorsunuz, yoksa ilişkili kayıtlar ve external sistemlerle mi çalışıyorsunuz? Bu sorunun cevabı, salesforce before-save vs after-save flow kararınızı belirleyecektir.
Her iki flow türü de kendine özgü avantajları olan güçlü araçlardır. Doğru seçim yapmak, hem teknik gereksinimleri hem de performans beklentilerini dengeli bir şekilde değerlendirmeyi gerektirir.