@elov4anin
Frontend developer

Как проверять на существование лидов с таким же Email. Битрикс24. Коробочная версия?

При создании лида нужно проверять на существование лидов с таким же Email. Как это сделать, если массив возвращаемый методами CCrmLead::GetList (CCrmLead::GetListEx) не содержит поля email или fm?
  • Вопрос задан
  • 3433 просмотра
Решения вопроса 2
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Сделать нужно немножечко подругому:

Изучите нижеследующий код и rest-метод crm.duplicate.findbycomm. Смотрите в /home/bitrix/www/bitrix/modules/crm/classes/general/restservice.php

use \Bitrix\Main;
use \Bitrix\Crm;

/* @var string Email, который будем искать */
$sEmail = 'swap@google.com';

/* @var array ID лидов, которые попадаются под условия */
$arLeadIds = [];

if ( Main\Loader::IncludeModule('crm') )
{
	// Формируем критерий, подсовываем Email
	$criterion = new Crm\Integrity\DuplicateCommunicationCriterion( Crm\CommunicationType::EMAIL_NAME, $sEmail);

	// Выполняем поиск первых 20 клиентов
	$duplicate = $criterion->find( \CCrmOwnerType::Lead, 20);

	// Если найдены entity проитерируем их
	$entities = $duplicate->getEntities();
	if ( !empty($entities) )
	{
		foreach($entities as $entity)
		{
			$arLeadIds[] = $entity->getEntityID();
		}
	}
}

// А тут будут ID сделок
var_dump($arLeadIds);
Ответ написан
@elov4anin Автор вопроса
Frontend developer
Добавлю так же решение которые по советовали в ТП Битрикса и которе применил в итоге

CModule::IncludeModule('crm');
$rs = CCrmFieldMulti::GetList(
   array(),
   array(
      'ENTITY_ID' => 'LEAD', // выбираем только email лида
      "VALUE" => "test@mail.ru",
      //"@ELEMENT_ID" => array(1,2), // ID выбираемых лидов
      //"TYPE_ID" => "EMAIL",
      'COMPLEX_ID' => 'EMAIL_WORK' // тип email: "Рабочий"
   )
);
while($ar = $rs->Fetch()) 
{
   echo '<pre>';
   print_r($ar);
   echo '</pre>';
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы