Создание лида с каждого входящего письма

Не секрет, что лиды в Битрикс24 при письмах с известных адресов создаются далеко не во всех случаях, а лишь тогда, когда у компании или контакта нет сделок, находящихся в работе. Как организовать создание лида с каждого входящего письма в коробочном портале Битрикс 24 без лишних трудозатрат?

Единственным возможным вариантом обойти это ограничение без глубоких доработок является включение опции в настройках почты — создавать новый лид с указанных адресов — и перечисление всех подобных адресов клиентов в выпадающем окне.

Создание лида с каждого входящего письма

При таком сценарии возникает ряд проблем при организации работы: необходимость вручную обновлять этот список адресов и связывать все появляющиеся лиды с контактами или компаниями — ибо Битрикс24 формирует их как не повторные.

Чтобы избежать здесь выполнения ненужной ручной работы, можно запрограммировать следующие бизнес-процессы:

  1. На событие обновления контакта или компании «вешам» PHP-код обновления массива емейлов в поле «Создавать новый лид…». Это можно сделать лишь в рамках коробочной версии!

foreach ($mailboxIds as $mailboxId) {
$mailbox = \CMailbox::getList(array(), array('ACTIVE' => 'Y', 'ID' =>
$mailboxId))->fetch();
$mailboxData['OPTIONS']['flags'] = $mailbox['OPTIONS']['flags'];
$mailboxData['OPTIONS']['imap'] = $mailbox['OPTIONS']['imap'];
$mailboxData['OPTIONS']['crm_new_entity_in'] = $mailbox['OPTIONS']['crm_new_entity_in'];
$mailboxData['OPTIONS']['crm_new_entity_out'] = $mailbox['OPTIONS']['crm_new_entity_out'];
$mailboxData['OPTIONS']['crm_lead_source'] = $mailbox['OPTIONS']['crm_lead_source'];
$mailboxData['OPTIONS']['crm_lead_resp'] = $mailbox['OPTIONS']['crm_lead_resp'];
$mailboxData['OPTIONS']['version'] = $mailbox['OPTIONS']['version'];
$emails = $mailbox['OPTIONS']['crm_new_lead_for'];
$count = count($emails);

foreach($email as $emailval) {
if(!array_search($emailval, $emails)) {
$emails[$count] = $emailval;
$mailboxData['OPTIONS']['crm_new_lead_for'] = $emails;
$result = \CMailbox::update($mailboxId, $mailboxData);
$count++;
}

}
}

2. Превращаем каждый новый лид в повторный через PHP-код (или аналогичный вебхук в облаке)

$dbResultContact = CCrmFieldMulti::GetList(
array('ID' => 'asc'),
array(
'ENTITY_ID' => 'CONTACT',
'TYPE_ID' => 'EMAIL',
'VALUE' => $email
)
);

if($arPhoneContact = $dbResultContact->Fetch()) {
$contid = $arPhoneContact['ELEMENT_ID'];
}

$dbResultCompany= CCrmFieldMulti::GetList(
array('ID' => 'asc'),
array(
'ENTITY_ID' => 'COMPANY',
'TYPE_ID' => 'EMAIL',
'VALUE' => $email
)
);

if($arPhoneCompany = $dbResultCompany->Fetch()) {
$compid = $arPhoneCompany['ELEMENT_ID'];
}

$arParams = array();
if($contid) {
$arParams['CONTACT_ID'] =$contid;
}
if($compid) {
$arParams['COMPANY_ID'] = $compid;
}

if($arParams) {
$CCrmLead = new CCrmLead(false);
$CCrmLead->Update($leadid, $arParams);
}

Создание лида с каждого входящего письма в итоге больше не превращается в проблему у заказчика. О том, как можно далее быстро увидеть связанные с компанией или контактом лиды, вы можете почитать в данной статье .