Contacts

Kişi kaydındaki Telefon ve Mobil alanlarında 05…, 5…, 90… ya da 0090… ile girilmiş numaraları +90… biçimine çevirir; WhatsApp, SMS ve santral entegrasyonları bu numaraları tek biçimde alır.

Modül
Contacts
Tetik
Workflow · On Create / On Edit
Argüman
contactId = Contact Id
Uzunluk
107 satır Deluge
Güncelleme

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ığı

  1. 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).

  2. 02

    Eylem olarak Function seçin, bu fonksiyonu kaydedin.

  3. 03

    Argüman eşlemesi: contactId, Contact Id alanına.

Alan eşlemesi

Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.

AlanDeğerNot
Phone+90XXXXXXXXXXYalnı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+90XXXXXXXXXXAynı 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)
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();
}
}
4 ADIMİzle düğmesi fonksiyonu adım adım aydınlatır.

Dikkat edilecekler

  • Yurt dışı numaralar ve sabit hat

    Kalıplar Türkiye numaralarına göre; yerel biçimde yalnız 05… ve 5… ile başlayan cep numaraları tanınır. +44… gibi yurt dışı numaralar ve 0212… ya da 212… gibi yerel yazılmış sabit hatlar olduğu gibi kalır; sabit hat ancak 90 ya da 0090 ö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_map vermeden yaptığı için bu yazma Workflow Rules'u yeniden tetiklemez, döngü oluşmaz. Numara sonradan elle boşluksuz +90 biçiminde girilirse fonksiyon kayda dokunmaz; boşluklu ya da farklı yazılmışsa yeniden biçimlendirir.

İlgili kayıtlar

  1. 04
    Contacts

    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.

    Workflow · On Create · On Edit (onay kutusu)349 satır Deluge
  2. 09
    Contacts · 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ığı.

    Workflow · Alan değişimi72 satır Deluge
  3. 13
    Contacts · 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.

    Workflow · On Create98 satır Deluge

30+

proje

%99

müşteri memnuniyeti

3 kanal

kurulum sonrası destek

İletişim

Mevcut sisteminiz, hedefiniz ve takviminize göre somut bir teklif ve canlı demo hazırlıyoruz. Sözleşme öncesi taahhüt yok.

Görüşme planla

Bilgileriniz KVKK Aydınlatma Metni kapsamında işlenir. 24 saat içinde dönüş yapıyoruz.