Ne yapar
Alandaki rakam dışı her karakteri atar, kalan rakam dizisini dört kalıba göre tanır ve +90 önekiyle yeniden yazar: 0090…, 90… (12 hane), 05… (11 hane) ve 5… (10 hane). Biçim zaten doğruysa kayda dokunmaz; yalnız değişen alanı günceller.
Kurulum mantığı
- 01
Ayarlar'da Otomasyon bölümündeki Workflow Rules altında modül Contacts, tetik On Create ve On Edit (Phone ya da Mobile değiştiğinde).
- 02
Eylem olarak Function seçin, bu fonksiyonu kaydedin.
- 03
Argüman eşlemesi:
contactId, Contact Id alanına.
Alan eşlemesi
Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.
| Alan | Değer | Not |
|---|---|---|
| Phone | +90XXXXXXXXXX | Yalnız 05… (11 hane), 5… (10 hane), 90… (12 hane) ve 0090… çevrilir; 0212… gibi yerel yazılmış sabit hat ve diğer girişler olduğu gibi bırakılır. |
| Mobile | +90XXXXXXXXXX | Aynı kurallar; iki alan birbirinden bağımsız işlenir. |
Deluge kodu
Kodu olduğu gibi kopyalayın; değiştirmeniz gereken yerler yukarıdaki tabloda işaretli. İzle düğmesi, fonksiyonu adım adım okutur.
void automation.normalizeContactPhones(String contactId)
{
try
{
info "===== Contact Telefon Normalizasyonu Başladı =====";
info "Contact ID: " + contactId;
if(contactId == null || contactId.trim() == "")
{
info "Contact ID boş.";
return;
}
contactRecord = zoho.crm.getRecordById("Contacts",contactId.toLong());
if(contactRecord == null || contactRecord.isEmpty())
{
info "Contact bulunamadı.";
return;
}
updateMap = Map();
// PHONE
phone = "";
if(contactRecord.get("Phone") != null)
{
phone = contactRecord.get("Phone").toString().trim();
}
if(phone != "")
{
phoneDigits = phone.replaceAll("[^0-9]","");
normalizedPhone = phone;
if(phoneDigits.startsWith("0090"))
{
normalizedPhone = "+" + phoneDigits.subString(2,phoneDigits.length());
}
else if(phoneDigits.startsWith("90") && phoneDigits.length() == 12)
{
normalizedPhone = "+" + phoneDigits;
}
else if(phoneDigits.startsWith("05") && phoneDigits.length() == 11)
{
normalizedPhone = "+9" + phoneDigits;
}
else if(phoneDigits.startsWith("5") && phoneDigits.length() == 10)
{
normalizedPhone = "+90" + phoneDigits;
}
if(normalizedPhone != phone)
{
updateMap.put("Phone",normalizedPhone);
}
}
// MOBILE
mobile = "";
if(contactRecord.get("Mobile") != null)
{
mobile = contactRecord.get("Mobile").toString().trim();
}
if(mobile != "")
{
mobileDigits = mobile.replaceAll("[^0-9]","");
normalizedMobile = mobile;
if(mobileDigits.startsWith("0090"))
{
normalizedMobile = "+" + mobileDigits.subString(2,mobileDigits.length());
}
else if(mobileDigits.startsWith("90") && mobileDigits.length() == 12)
{
normalizedMobile = "+" + mobileDigits;
}
else if(mobileDigits.startsWith("05") && mobileDigits.length() == 11)
{
normalizedMobile = "+9" + mobileDigits;
}
else if(mobileDigits.startsWith("5") && mobileDigits.length() == 10)
{
normalizedMobile = "+90" + mobileDigits;
}
if(normalizedMobile != mobile)
{
updateMap.put("Mobile",normalizedMobile);
}
}
if(updateMap.size() == 0)
{
info "Güncellenecek telefon alanı bulunamadı.";
return;
}
updateResponse = zoho.crm.updateRecord("Contacts",contactId.toLong(),updateMap);
info "Güncelleme sonucu: " + updateResponse;
}
catch (e)
{
info "Hata: " + e.toString();
}
}Dikkat edilecekler
- Yurt dışı numaralar ve sabit hat
Kalıplar Türkiye numaralarına göre; yerel biçimde yalnız
05…ve5…ile başlayan cep numaraları tanınır.+44…gibi yurt dışı numaralar ve0212…ya da212…gibi yerel yazılmış sabit hatlar olduğu gibi kalır; sabit hat ancak90ya da0090önekiyle girilmişse biçimlenir. Rakama indirgenince 5 ile başlayıp 10 hane tutan bir yurt dışı numara ise mobil kalıbına uyar ve yanlışlıkla+90önekini alır. - Çift tetik
Fonksiyon
updateRecordçağrısınıoptions_mapvermeden yaptığı için bu yazma Workflow Rules'u yeniden tetiklemez, döngü oluşmaz. Numara sonradan elle boşluksuz+90biçiminde girilirse fonksiyon kayda dokunmaz; boşluklu ya da farklı yazılmışsa yeniden biçimlendirir.
İlgili kayıtlar
- 04Contacts
Mükerrer kişileri telefon ve e-postadan birleştir
Aynı telefon ya da aynı e-postayla açılmış kişi kayıtlarını tek kayda indirir; lead sürümünün Contacts karşılığı, üstüne e-posta eşleşmesi ekler.
- 09Contacts · Tasks
Kişinin tüm açık görevlerini kapat
Müşteri ilişkisi bittiğinde ya da süreç tamamlandığında kişi kaydındaki tüm açık görevleri tek seferde kapatır; Lead sürümünün Contacts modülü karşılığı.
- 13Contacts · Accounts
Firma fatura adresini kişiye aktar
Kişi kaydı bir firmaya bağlı açıldığında firmanın fatura adresini kişinin posta adresi (Mailing) alanlarına kopyalar; kişi kartında adres boş kalmaz, toplu posta ve fatura yazdırmada eksik adres çıkmaz.