Ne yapar
Lead'e bağlı görevleri ilişkili listeden tek istekle çeker (yalnız 1. sayfa, en fazla 200 kayıt); bunlar içinde durumu Completed olmayanların hepsini kapatır, kapatılan ve atlanan sayısını loglar. Görev başlığına bakmaz. 200'den fazla görevi olan lead'de ilk sayfaya girmeyen görevler açık kalır.
Kurulum mantığı
- 01
Workflow Rules altında modül Leads; tetik olarak
Lead_Statusalanının kapanış değerlerini seçin (örn. "Kaybedildi", "Nitelikli Değil"). Dönüştürme bu listeye girmez: dönüşümde görevler oluşan kişiye aktarılır ve lead Leads modülünden çıkar, bu fonksiyonun kapatacağı görev kalmaz. Aktarılan görevler çoğunlukla kişi üzerinde sürmesi gereken takip işleridir; kapatmak gerekirse kişi tarafında dar bir koşulla Kişinin tüm açık görevlerini kapat kullanılabilir. - 02
Eylem Function, argüman
leadId, Lead Id alanına eşlenir. - 03
Yalnız belirli başlıktaki görevlerin kapanması istenirse
if(taskId != "" && taskStatus != "Completed")satırınaSubjectkoşulu eklenir.
Alan eşlemesi
Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.
| Alan | Değer | Not |
|---|---|---|
| Tasks (ilişkili) | okunur | getRelatedRecords("Tasks","Leads",…,1,200); kod yalnız ilk sayfayı okur. 200'den fazla görevi olan kayıtta kalan görevler açık kalır, bunun için sayfalama gerekir. |
| Status (Tasks) | Completed | Zoho'nun sistem değeri; Türkçe arayüzde "Tamamlandı" görünür, API adı değişmez. |
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.closeAllOpenLeadTasks(String leadId)
{
try
{
info "===== Lead Açık Görevlerini Kapatma 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;
}
taskRecords = zoho.crm.getRelatedRecords("Tasks","Leads",leadId.toLong(),1,200);
if(taskRecords == null || taskRecords.size() == 0)
{
info "Lead'e bağlı görev bulunamadı.";
return;
}
closedCount = 0;
skippedCount = 0;
for each taskRecord in taskRecords
{
taskId = "";
if(taskRecord.get("id") != null)
{
taskId = taskRecord.get("id").toString();
}
taskStatus = "";
if(taskRecord.get("Status") != null)
{
taskStatus = taskRecord.get("Status").toString();
}
if(taskId != "" && taskStatus != "Completed")
{
taskUpdateMap = Map();
taskUpdateMap.put("Status","Completed");
taskUpdateResponse = zoho.crm.updateRecord("Tasks",taskId.toLong(),taskUpdateMap);
info "Task güncellendi: " + taskId + " | Sonuç: " + taskUpdateResponse;
closedCount = closedCount + 1;
}
else
{
skippedCount = skippedCount + 1;
}
}
info "Kapatılan görev sayısı: " + closedCount;
info "Atlanan görev sayısı: " + skippedCount;
}
catch (e)
{
info "Hata: " + e.toString();
}
}Dikkat edilecekler
- Geri dönüşü yok
Kapatılan görevler otomatik yeniden açılmaz; tetik koşulunu gerçekten "bitti" anlamına gelen durumlarla sınırlayın.
- Görev başına API çağrısı
Her açık görev ayrı
updateRecord; 50+ görevli lead'de fonksiyon süresi uzar, API kotasına dikkat. - Görev workflow'ları çalışmaz
updateRecordoptions_mapolmadan çağrıldığı için Tasks modülündeki Workflow Rules bu kapanışlarda tetiklenmez; görev tamamlanınca çalışan bir kuralınız varsa bu fonksiyonla kapanan görevlerde devreye girmez.
İ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.
- 06Calls · 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.
- 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.