Автоматизация конвертации лида в сделку и контакт в Zoho CRM, с учетом данных рекламной кампании и UTM-меток.

03.05.25 03:44 PM - By Dmitrii

Этот скрипт на языке Deluge автоматизирует процесс обработки лида в Zoho CRM, проверяет наличие контакта по телефону или email и создает сделку в зависимости от результата.

Что делает этот код:

Цель: автоматизация конвертации лида в сделку и контакт в Zoho CRM, с учетом данных рекламной кампании и UTM-меток.

Шаг за шагом:

  1. Получение данных лида по ID: скрипт получает все данные по лиду (LeadID) с помощью zoho.crm.getRecordById. Извлекаются ключевые поля: имя, телефон, email, данные рекламы (Ad Campaign, Ad Set и т.д.), бренд, услуга, UTM-метки и пр.

  2. Поиск существующего контакта:

  • сначала по телефону;

  • если не найден — по email.

  1. Если контакт не найден:

  • лид конвертируется в сделку с именем лида и стадией "Qualification";

  • контакт и сделка создаются автоматически внутри функции convertLead.

  1. Если контакт найден:

  • лид также конвертируется в сделку, привязываясь к существующему контакту;

  • после конвертации дополнительно создается новая сделка с расширенными данными из формы и рекламы;

  • в сделку включаются: реклама, бренд, выбор услуги/машины, дата и время, страница Facebook, UTM-метки и т.п.

Ключевые особенности:

  • Два пути обработки: в зависимости от того, найден ли контакт;

  • Без дублей: предотвращается создание лишних контактов;

  • Поддержка рекламы: данные о рекламной кампании сохраняются в сделке;

  • Гибкость: можно легко расширить, добавив дополнительные поля.

Пример использования: подходит для автосалонов, клиник или любых компаний, где лиды поступают через рекламные формы Facebook/Instagram. Код помогает сохранить чистоту базы и отслеживать источники лидов.


info LeadID;

// Get Lead

lead = zoho.crm.getRecordById("Leads",LeadID);

info lead;

Phone = lead.get("Phone");

info Phone;

Email = lead.get("Email");

info Email;

Name = lead.get("Full_Name");

info Name;

Ad_Account = lead.get("Ad_Account");

Ad_Account_ID = lead.get("Ad_Account_ID");

Ad_Campaign = lead.get("Ad_Campaign");

Ad_Campaign_ID = lead.get("Ad_Campaign_ID");

Ad_ID = lead.get("Ad_ID");

Ad_Set = lead.get("Ad_Set");

Ad_Set_ID = lead.get("Ad_Set_ID");

Ads = lead.get("Ads");

Brand = lead.get("Brand");

Choose_a_service = lead.get("Choose_a_service");

Choose_a_car = lead.get("Choose_a_car");

Choose_a_day = lead.get("Choose_a_day");

Choose_a_time = lead.get("Choose_a_time");

Facebook_Page = lead.get("Facebook_Page");

Facebook_Page_ID = lead.get("Facebook_Page_ID");

form_name = lead.get("form_name");

Lead_Source = lead.get("Lead_Source");

utm_campaign = lead.get("utm_campaign");

utm_content = lead.get("utm_content");

utm_medium = lead.get("utm_medium");

utm_source = lead.get("utm_source");

utm_term = lead.get("utm_term");

// check contact

Param = "(Phone:equals:" + Phone + ")";

Contact = zoho.crm.searchRecords("Contacts",Param);

info Contact;

Value = Contact.isEmpty();

info Value;

if(Contact.isEmpty() = true)

{

Param = "(Email:equals:" + Email + ")";

Contact = zoho.crm.searchRecords("Contacts",Param);

info Contact;

Value = Contact.isEmpty();

info Value;

}

if(Contact.isEmpty() = true)

{

deal_values = Map();

deal_values.put("Deal_Name",Name);

deal_values.put("Stage","Qualification");

ConvertLead = zoho.crm.convertLead(LeadID,{"Deals":deal_values});

info ConvertLead;

}

else

{

Contact = Contact.toString();

ContactID = Contact.get("id");

info ContactID;

values_map = Map();

values_map.put("overwrite",true);

values_map.put("Contacts",ContactID);

response = zoho.crm.convertLead(LeadID,values_map);

info response;

//  Create Deal

values_map.put("Deal_Name",Name);

values_map.put("Stage","Qualification");

values_map.put("Contact_Name",ContactID);

values_map.put("Ad_Account",Ad_Account);

values_map.put("Ad_Account_ID",Ad_Account_ID);

values_map.put("Ad_Campaign",Ad_Campaign);

values_map.put("Ad_Campaign_ID",Ad_Campaign_ID);

values_map.put("Ad_ID",Ad_ID);

values_map.put("Ad_Set",Ad_Set);

values_map.put("Ad_Set_ID",Ad_Set_ID);

values_map.put("Ads",Ads);

values_map.put("Brand",Brand);

values_map.put("Choose_a_service",Choose_a_service);

values_map.put("Choose_a_car",Choose_a_car);

values_map.put("Choose_a_day",Choose_a_day);

values_map.put("Choose_a_time",Choose_a_time);

values_map.put("Facebook_Page",Facebook_Page);

values_map.put("Facebook_Page_ID",Facebook_Page_ID);

values_map.put("form_name",form_name);

values_map.put("Lead_Source",Lead_Source);

values_map.put("utm_campaign",utm_campaign);

values_map.put("utm_content",utm_content);

values_map.put("utm_medium",utm_medium);

values_map.put("utm_source",utm_source);

values_map.put("utm_term",utm_term);

values_map.put("Type","Existing");

response = zoho.crm.createRecord("Deals",values_map,{"trigger":{"workflow"}});

info response;

}

Dmitrii