Leads

Lead'in Telefon ve Mobil alanlarında 05…, 5…, 90… ya da 0090… ile girilmiş numaraları, kayıt ya da düzenleme sonrası +90… biçimine çevirir; arama ve mesaj entegrasyonları bu numaraları tek biçimde alır.

Modül
Leads
Tetik
Workflow · On Create / On Edit
Argüman
leadId = Lead Id
Uzunluk
107 satır Deluge
Güncelleme

Ne yapar

Kişi sürümüyle aynı mantık, Leads modülünde: Telefon ve Mobil alanlarındaki rakam dışı karakterleri atar, 0090… / 90… / 05… / 5… kalıplarını tanıyıp +90 önekiyle yazar. Biçim zaten doğruysa kayda dokunmaz.

Kurulum mantığı

  1. 01

    Workflow Rules altında modül Leads, tetik On Create (formdan gelen her lead) ve On Edit (Phone / Mobile değiştiğinde).

  2. 02

    Eylem Function, bu fonksiyon; argüman leadId, Lead Id alanına eşlenir.

  3. 03

    Lead dönüşümünde kişiye taşınan numara, bu fonksiyon lead üzerinde çalışmış ve numara tanınan kalıplardan birine uymuşsa normalleşmiş olur. Doğrudan girilen kişiler ve dönüşümden sonra kişide düzenlenen numaralar için Contacts tarafındaki kardeş fonksiyon gerekir. Kural kurulmadan önce oluşmuş ve sonra düzenlenmemiş kayıtlar Workflow'u tetiklemez; bunları ayrıca toplu işlemeniz gerekir.

Alan eşlemesi

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

AlanDeğerNot
Phone+90XXXXXXXXXXKalıp eşleşmezse olduğu gibi bırakılır.
Mobile+90XXXXXXXXXXİki 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.normalizeLeadPhones(String leadId)
void automation.normalizeLeadPhones(String leadId)
{
try
{
	info "===== Lead Telefon Normalizasyonu Başladı =====";
	info "Lead ID: " + leadId;

	if(leadId == null || leadId.trim() == "")
	{
		info "Lead ID boş.";
		return;
	}

	leadRecord = zoho.crm.getRecordById("Leads",leadId.toLong());

	if(leadRecord == null || leadRecord.isEmpty())
	{
		info "Lead bulunamadı.";
		return;
	}

	updateMap = Map();

	// PHONE
	phone = "";
	if(leadRecord.get("Phone") != null)
	{
		phone = leadRecord.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(leadRecord.get("Mobile") != null)
	{
		mobile = leadRecord.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("Leads",leadId.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

  • Form kaynağı

    Zoho Forms ya da web formu numarayı 0 (5xx) xxx xx xx gibi biçimlendirerek gönderebilir; rakama indirgeme bu yüzden ilk adımdır.

  • Yurt dışı lead ve sabit hat

    Dört kalıba (hane koşulları dahil) uymayan numaralar değişmeden kalır: +44… gibi yurt dışı numaralar ve 0212… gibi yerel yazılmış sabit hatlar. 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. Farklı ülke kodları için kalıp listesi genişletilmeli.

İlgili kayıtlar

  1. 03
    Leads

    Mükerrer lead'leri telefondan birleştir

    Aynı telefon numarasıyla ikinci kez gelen lead'leri elle karşılaştırmadan tek kayda indirir; reklam formu, WhatsApp ve web sitesinden ayrı ayrı gelen kayıtlar tek lead'de toplanır.

    Workflow · On Create · On Edit (onay kutusu)300 satır Deluge
  2. 05
    Leads · Tasks

    Lead'in tüm açık görevlerini kapat

    Lead kaybedildiğinde ya da nitelikli bulunmadığında üzerinde kalan tüm açık görevleri tek seferde tamamlandı yapar; temsilcinin görev listesinde ölü lead'lerin hatırlatmaları birikmez.

    Workflow · Alan değişimi72 satır Deluge
  3. 06
    Calls · Leads

    Lead'i arayan temsilciye ata

    Lead'e bağlı bir arama kaydedildiğinde ya da değiştirildiğinde lead'i o aramanın sahibine atar; lead, en son kaydedilen ya da değiştirilen aramanın sahibinde kalır.

    Workflow · Calls · arama türü86 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.