Ne yapar
Arama kaydının bağlı olduğu modülü kontrol eder; Leads değilse çıkar. Aramanın sahibini ve bağlı lead'i okur; lead zaten o kişideyse dokunmaz, değilse lead'in Owner alanını arama sahibine çevirir.
Kurulum mantığı
- 01
Workflow Rules altında modül Calls. Calls kuralı On Create ile değil arama türüyle tetiklenir ve bir kural tek arama türü seçer. Yapılan aramalar için iki kural kurun: Outgoing Call is logged or modified ve Incoming Call is logged or modified; ikisine de aynı fonksiyonu bağlayın. Tek kural yeterliyse Any of the Above seçin; bu seçim planlanan, cevapsız ve silinen aramaları da kapsar.
- 02
İsteğe bağlı: Which calls would you like to apply the rule to? bölümünde Apply this rule to için Leads seçin. Kod Leads dışındaki aramaları zaten atlar.
- 03
Eylem Function, argüman
callId, Call Id alanına eşlenir.
Alan eşlemesi
Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.
| Alan | Değer | Not |
|---|---|---|
| $se_module | Leads | Aramanın bağlı olduğu modül; Contacts'a bağlı aramalar atlanır. |
| What_Id | lead kimliği | Aramanın bağlı olduğu kayıt. Lead'e bağlı aramada lead burada durur; Who_Id boş gelir ve Zoho oraya lead yazılmasını kabul etmez. |
| Owner (Calls) | arayan temsilci | Yeni lead sahibi bu olur. |
| Owner (Leads) | yazılır | Yalnız farklıysa. |
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.assignLeadToCallOwner(String callId)
{
try
{
info "===== Call Sahibine Lead Atama Başladı =====";
info "Call ID: " + callId;
if(callId == null || callId.trim() == "")
{
info "Call ID boş.";
return;
}
callRecord = zoho.crm.getRecordById("Calls",callId.toLong());
if(callRecord == null || callRecord.isEmpty())
{
info "Call kaydı bulunamadı.";
return;
}
relatedModule = "";
if(callRecord.get("$se_module") != null)
{
relatedModule = callRecord.get("$se_module").toString();
}
if(relatedModule != "Leads")
{
info "Call bir Lead kaydına bağlı değil. İlgili modül: " + relatedModule;
return;
}
leadLookup = callRecord.get("What_Id");
if(leadLookup == null || leadLookup.get("id") == null)
{
info "Call üzerinde bağlı Lead bulunamadı.";
return;
}
ownerLookup = callRecord.get("Owner");
if(ownerLookup == null || ownerLookup.get("id") == null)
{
info "Call sahibi bulunamadı.";
return;
}
leadId = leadLookup.get("id").toString();
callOwnerId = ownerLookup.get("id").toString();
leadRecord = zoho.crm.getRecordById("Leads",leadId.toLong());
if(leadRecord == null || leadRecord.isEmpty())
{
info "Bağlı Lead bulunamadı.";
return;
}
currentOwnerId = "";
currentOwner = leadRecord.get("Owner");
if(currentOwner != null && currentOwner.get("id") != null)
{
currentOwnerId = currentOwner.get("id").toString();
}
if(currentOwnerId == callOwnerId)
{
info "Lead zaten Call sahibine atanmış.";
return;
}
updateMap = Map();
updateMap.put("Owner",callOwnerId);
updateResponse = zoho.crm.updateRecord("Leads",leadId.toLong(),updateMap);
info "Güncelleme sonucu: " + updateResponse;
}
catch (e)
{
info "Hata: " + e.toString();
}
}Dikkat edilecekler
- Gelen aramalar
Incoming Call kuralı ya da Any of the Above kurulursa gelen aramanın sahibi de sahipliği alır; yalnız giden aramalar sahiplik versin isteniyorsa yalnız Outgoing Call kuralını kurun.
- Planlanan aramalar
Any of the Above ya da Scheduled Call altında Created or Modified seçilirse ileri tarihli planlanan bir arama da kaydedildiği anda fonksiyonu çalıştırır. Kod arama durumuna bakmaz, lead henüz aranmadan arama sahibine geçer. Yalnız yapılmış aramalar sahiplik versin isteniyorsa Outgoing Call ve Incoming Call kurallarını kullanın.
- Cevapsız aramalar
Any of the Above seçilirse telefon entegrasyonunun kaydettiği cevapsız arama da lead'i o aramanın sahibine geçirir.
- Sahip değişim bildirimi
Fonksiyon lead'i options_map vermeden günceller, bu yüzden Leads modülündeki Workflow Rules bu atamada tetiklenmez. Owner değişimine bağlı bir Workflow bildirimi ya da kuralı kurduysanız fonksiyonun yaptığı atamada çalışmaz; onay süreçleri, Blueprint ve Orchestration ise varsayılan olarak çalışır. Workflow'un da çalışması isteniyorsa updateRecord çağrısına
{"trigger":{"workflow","approval","blueprint","orchestration"}}verin; yalnızworkflowyazılırsa onay süreci, Blueprint ve Orchestration bu güncellemede çalışmaz. - Kullanıcı kimliği
Owneralanına kullanıcı ID'si yazılır, e-posta ya da ad değil.
İlgili kayıtlar
- 03Leads
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.
- 05Leads · 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.
- 07Leads
Lead telefonlarını +90 biçimine getir
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.