Everion Consulting
Everion Consulting
HomeBlogSalesforce Validation Rules

Salesforce Validation Rules

Salesforce Validation Rules
Gaye Dinç

Gaye Dinç

12 August 2025

Salesforce

Bir şirkette tüm iş süreçlerinin doğru ve verimli işlemesi için doğru veriye sahip olmak kritik önemdedir. Yanlış girilen müşteri e-postaları, eksik adresler, tutarsız fiyat bilgileri gibi durumlar satış ekibinden raporlara, otomasyonlardan müşteri deneyimine kadar her şeyi olumsuz etkileyebilir.

Salesforce’ta bu veri kalitesini korumanın en güçlü yollarından biri Validation Rules (Doğrulama Kuralları)’dır.

Bir validation kuralı belirlediğiniz standartlara uymayan verileri kaydedilmeden önce tespit eder ve kullanıcıyı uyarır.
Bu kurallar formül veya ifade kullanarak True/False değeri döndürür:

  • True → Veri geçersiz, kayıt engellenir ve hata mesajı gösterilir.
  • False → Veri geçerli, kayıt işlemi devam eder.

Örneğin;
Bir bankada müşteri temsilcisi yeni bir kredi başvurusu kaydı açarken TC Kimlik Numarası alanına 11 haneli olmayan bir değer girdiğinde sistem kaydı reddedip “TC Kimlik Numarası 11 haneli olmalıdır” şeklinde uyarı verir.

Validation Rule’un Temel Unsurları

Bir validation kuralı şu parçalardan oluşur:

  1. Formül / İfade
    • Veriyi kontrol eden mantık (True/False döndürür).
    • Örn: LEN(Phone) <> 10 (Telefon numarası 10 haneli değilse True döndürür).
  2. Hata Mesajı
    • Kullanıcıya neyin yanlış olduğunu net olarak anlatır.
    • Örn: “Telefon numarası 10 haneli olmalıdır.”
  3. Hata Mesajı Konumu
    • Belirli bir alanda (Field-level) veya sayfa üstünde genel olarak gösterilebilir.

Örneğin;
Bir e-ticaret firmasında müşteri adresi girilirken posta kodu alanına harf yazıldığında formül NOT(ISNUMBER(PostalCode)) True döndürür ve kullanıcı “Posta kodu yalnızca rakam içermelidir” mesajı ile uyarılır.

Validation Rule Nerelerde Kullanılır?

Validation kuralları hem standart hem de özel Salesforce nesnelerinde uygulanabilir:

  • Objeler: Account, Contact, Opportunity gibi.
  • Alanlar: Belirli bir alanın giriş kurallarını zorlamak için.
  • Campaign Members: Kampanya katılımcı verileri doğrulamak için.
  • Case Milestones: Servis süreçlerindeki kilometre taşlarını kontrol etmek için.

Örneğin;
Bir insan kaynakları (IK) uygulamasında “İşe Başlama Tarihi” alanı her zaman “Bugün” veya sonraki bir tarih olmalıdır. Geçmiş bir tarih girildiğinde sistem kaydı reddeder.

Salesforce’ta Validation Rule Ekranı ve Fonksiyonlar

Validation Rule ekranına ulaşmak için:

  1. Setup (Sağ üst köşedeki dişli çark → Setup)
  2. Object Manager
  3. İlgili objeyi seçin (ör. Account, Contact, Opportunity)
  4. Sol menüden Validation Rules’a tıklayın
  5. New butonuyla yeni kural oluşturun veya mevcut bir kuralı düzenleyin

Örneğin;
Bir satış ekibi yöneticisi Opportunity nesnesinde “Close Date bugünden önce olamaz” kuralı eklemek için Object Manager’dan Opportunity nesnesini açar, Validation Rules sekmesinden yeni kural ekler.

Validation Rule Ekranında Bulunan Alanlar

Validation Rule ekranında şu bölümler vardır:

  • Rule Name → Kuralın sistem içindeki adı (boşluksuz ve özel karakter kullanmadan).
  • Description → Kuralın ne işe yaradığını açıklayan not.
  • Active kutusu → Kuralın aktif/pasif durumunu belirler.
  • Error Condition Formula → Asıl kontrolün yazıldığı formül alanı.
  • Check Syntax butonu → Formülünüzün doğru olup olmadığını kontrol eder.
  • Error Message → Kullanıcıya gösterilecek hata mesajı.
  • Error Location → Mesajın hangi alanda veya sayfanın üstünde gösterileceğini belirler.

Validation Rule Formüllerinde Kullanılan Semboller

Formül yazarken sıkça kullanılan semboller:

SembolAnlamıÖrnek
=EşitStageName = "Closed Won"
<>Eşit değilISPICKVAL(Status, "Active") <> TRUE
>BüyüktürAmount > 10000
<KüçüktürCloseDate < TODAY()
>=Büyük veya eşitDiscount >= 0.1
<=Küçük veya eşitAge__c <= 18
&Metin birleştirmeFirstName & " " & LastName

En Çok Kullanılan Fonksiyonlar

Validation Rule’larda onlarca fonksiyon vardır ama en sık kullanılanlar şunlardır:

FonksiyonAçıklamaÖrnek Kullanım
ISBLANK()Alanın boş olup olmadığını kontrol eder.ISBLANK(Phone)
ISNUMBER()Değerin sayısal olup olmadığını kontrol eder.NOT(ISNUMBER(AccountNumber))
ISPICKVAL()Picklist alanında belirli bir değer seçilmiş mi kontrol eder.ISPICKVAL(Status, "Closed Won")
CONTAINS()Metin içinde belirli bir ifadeyi arar.CONTAINS(Email, ".com")
LEN()Metnin karakter uzunluğunu döndürür.LEN(PostalCode) <> 5
AND()Tüm koşullar doğruysa True döner.AND(ISBLANK(Phone), ISBLANK(MobilePhone))
OR()Koşullardan biri doğruysa True döner.OR(ISBLANK(Email), ISBLANK(Phone))
NOT()Sonucu tersine çevirir.NOT(ISNUMBER(PostalCode))
TODAY()Bugünün tarihini döndürür.CloseDate < TODAY()
YEAR()Tarihten yıl bilgisini alır.YEAR(StartDate__c) <> YEAR(TODAY())
RIGHT()Metnin sağdan belirli karakter sayısını alır.RIGHT(Website,4) <> ".com"
TEXT()Picklist değerini metne çevirir.TEXT(StageName) = "Prospecting"

Örneğin;

  • ISPICKVAL(Status, "Closed Won") → Bir satış kazanıldığında ek alanların doldurulmasını zorunlu kılmak için.
  • AND(ISBLANK(Phone), ISBLANK(MobilePhone)) → Hem sabit hem cep telefon numarası boş bırakılırsa hata vermek için.

Adım Adım Validation Rule Oluşturma

Örnek: Hesap numarası tam 8 karakter olmalı

  1. SetupObject ManagerAccount
  2. Sol menüden Validation Rules’a girin
  3. New butonuna tıklayın
  4. Bilgileri girin:
    • Rule Name: Account_Number_8_Characters
    • Error Condition Formula:

      LEN(AccountNumber) <> 8 

    • Error Message:

      Account number must be 8 characters long. 

  5. Check Syntax ile doğrulayın
  6. Save ile kaydedin

Örneğin;
Bir lojistik firmasında sevkiyat numaraları 8 haneli olmalıdır. Yanlış girilen numaralar hem depo hem de kargo takibini aksatır. Bu kural hatalı numaraların sisteme girmesini engeller.

Validation Rule’da ‘True’ = Hata” Mantığı

Validation Rule ekranındaki Error Condition Formula alanı “hatalı/istenmeyen durum” gerçekleştiğinde TRUE dönmelidir.
Yani istediğin durumu yazarsan kural hep hata verir. İstemediğin durumu yazmalısın ki “True → hata” tetiklensin.

Yanlış vs Doğru

Amaç: Amount 0’dan büyük olmalı.

  • Yanlış (istediğin durumu yazmak):

    Amount > 0 

    Bu formül TRUE olduğunda hata üretir. Yani Amount gerçekten 0’dan büyükken hataya düşer. İstemediğimiz şey bu.

  • Doğru (istenmeyen durumu yazmak):

    Amount <= 0 

    Amount 0 veya altındaysa (istenmeyen durum) TRUE döner → hata mesajı gösterilir. Amount > 0 olduğunda FALSE döner → kayıt yapılır.

Boş (blank) değerleri nasıl ele alacağım?

Salesforce formüllerde boş sayısal alanlar bazen 0 gibi davranabilir. İhtiyacına göre iki senaryo:

  1. Blank’a izin ver, sadece pozitif değilse hata ver:

    AND (   
    NOT(ISBLANK(Amount)),   
      Amount <= 0
    ) 
    • Amount boşsa: NOT(ISBLANK(Amount)) FALSE → kural çalışmaz (hata yok).
    • Amount dolu ve ≤ 0 ise: TRUE → hata.
  2. Blank’a izin verme, hem boşsa hem ≤ 0 ise hata ver:

    OR (   
    ISBLANK(Amount),   
      Amount <= 0 
    ) 
    • Amount boşsa: TRUE → hata.
    • Amount 0 veya altındaysa: TRUE → hata.

İş Kuralına Bağlama - Günlük Hayattan Senaryo

“Closed Won” fırsatlarda Amount mutlaka pozitif olmalı ve boş olamaz:

AND (   
	ISPICKVAL(StageName, "Closed Won"),   
  
	OR(     
		ISBLANK(Amount),     Amount <= 0   
	) 
) 

Error Message: For Closed Won, Amount must be greater than 0.

Günlük Hayattan Benzetmeler

  • Turnike / Güvenlik Kapısı: “Kartı olmayan geçemez” kuralı yazarken “Kartı var” değil “Kartı yok” durumunu kontrol edersin.
    • Yanlış: HasBadge = TRUE (Kartlıyken durdurursun)
    • Doğru: HasBadge = FALSE (Kartsızsa durdurursun)
  • Yaş Sınırı: “18 yaş altı giremez” kuralı Age < 18 olarak yazılır; Age ≥ 18 yazarsan 18’den büyükleri engellersin.

Sık Düşülen Tuzaklar ve İpuçları

  • İstediğin şartı yazma, istemediğin (hatalı) şartı yaz.
  • Blank davranışı netleştir: Boş değere izin verecek misin? ISBLANK() ile açıkça belirt.
  • Hata mesajını kullanıcıya göre yaz:
    • Kötü: Invalid amount.
    • İyi: Amount must be greater than 0 (no blanks).

Örnek Validation Kuralları ve Senaryolar

1. Hesap Numarası Sayısal Olmalı

AND (    
  
	NOT(ISBLANK(AccountNumber)),    
  
	NOT(ISNUMBER(AccountNumber))
) 
  • Amaç: Hesap numarası boş değilse sayısal olmalı.
  • Hata Mesajı: "Account Number is not numeric."
    Örnek: Bir banka CRM’inde hesap numarasına harf girilmesini önlemek.

2. Tarih Mevcut Yılda Olmalı

YEAR(My_Date__c) <> YEAR(TODAY()) 

  • Amaç: Girilen tarih, bugünkü yıl içinde olmalı.
  • Hata Mesajı: "Date must be in the current year."
    Örnek: Bir eğitim şirketinde “Sözleşme Bitiş Tarihi” mevcut yıl içinde olmalı. Gelecek yıl veya geçmiş yıl tarihleri sisteme kaydedilmez.

3. Maaş Aralığı Doğrulaması

(Salary_Max__c - Salary_Min__c) > 20000 

  • Amaç: Maksimum maaş ile minimum maaş arasındaki fark 20.000 USD’yi geçmemeli.
  • Hata Mesajı: "Salary range must be within $20,000. Adjust the Salary Max or Salary Min values."
    Örnek: Bir işe alım sürecinde, ilan edilen maaş aralığının çok geniş olmaması için kullanılır.

4. Web Sitesi Uzantısı

AND(    
  RIGHT(Web_Site__c, 4) <> ".COM",    
  RIGHT(Web_Site__c, 4) <> ".com",    
  RIGHT(Web_Site__c, 4) <> ".ORG",    
  RIGHT(Web_Site__c, 4) <> ".org",    
  RIGHT(Web_Site__c, 4) <> ".NET",    
  RIGHT(Web_Site__c, 4) <> ".net" 
) 
  • Amaç: .com, .org veya .net dışında uzantı kabul edilmesin.
  • Hata Mesajı: "Web Site must have an extension of .com, .org, or .net."
    Örnek: Bir B2B yazılım şirketinde müşteri web sitelerinin standart uzantılardan biri olması zorunlu tutulur.

5. Geçerli Fatura Ülkesi

OR(  
  LEN(BillingCountry) = 1,  
  NOT(   
  CONTAINS("AF:AX:AL:DZ:AS:AD:...:ZW", BillingCountry)  
  )
) 
  • Amaç: ISO 3166 iki harfli ülke kodu dışında değer kabul edilmesin.
  • Hata Mesajı: "A valid two-letter country code is required."
    Örnek: Uluslararası bir e-ticaret şirketinde, fatura ülkesi mutlaka iki harfli ülke kodu (TR, US, DE vb.) olmalı.

En İyi Uygulamalar

  • Hata mesajlarını kullanıcı dostu yazın
    “Invalid data” yerine “Telefon numarası 10 haneli olmalıdır” gibi net ve yönlendirici olun.
  • Alan bazlı hata konumu kullanın
    Böylece kullanıcı hangi alanın hatalı olduğunu anında görebilir.
  • Karmaşık formülleri optimize edin
    Çok karmaşık doğrulamalar kayıt süresini yavaşlatabilir.
  • Belirli kullanıcı gruplarını hariç tutun
    Örn: Yöneticiler için kuralı devre dışı bırakmak:

    AND($Profile.Name <> "System Administrator", ...)

Örneğin;
Satış müdürleri tekliflerde özel indirim uygulama yetkisine sahiptir. Validation kuralı yalnızca normal satış temsilcileri için geçerli olacak şekilde yapılandırılır.

Sonuç

Validation Rules Salesforce’taki veri kalitesini korumak için vazgeçilmezdir. Doğru tasarlanmış kurallar, yanlış veri girişlerini en başta engeller, süreçleri hızlandırır ve raporlamanın güvenilirliğini artırır.

Kaynakça