Обработка событий CRM Битрикс24


Для обработки и модификации событий в CRM Битрикс24 в реальном времени, например, получить и модифицировать данные лида при его изменении, необходимо добавить следующий код в файл init.php (путь к файлу по умолчанию /bitrix/init.php от корневой директории, рекомендуется создать новый файл в локальном пространстве /local/ и вносить свои обработки в него):

$eventManager = \Bitrix\Main\EventManager::getInstance(); 
$eventManager->addEventHandlerCompatible( 
    'crm', // идентификатор модуля
    'OnBeforeCrmLeadUpdate', // идентификатор события
    function(&$arFields) { 
        $arFields['RESULT_MESSAGE'] = 'Сообщение на вывод';
        return false; // прерывание дальнейшего выполнения  
    } 
);

В коде обработчика, указывается модуль (в данном случае “crm”) и идентификатор события (в данном случае “OnBeforeCrmLeadUpdate” – событие обновления лида).

Внутри функции-обработчика мы можем использовать массив $arFields – в котором будут все данные текущего события (в данном случае – все параметры лида (id, наименование, дата создания и т.д.)), которые мы можем модифицировать.

Модуль “crm” содержит также другие события, вот некоторые из них:
OnBeforeCrmCompanyAdd – cобытие перед добавлением компании;
OnAfterCrmCompanyAdd – событие после добавления компании;
OnBeforeCrmCompanyUpdate – событие при обновлении компании;
OnBeforeCrmDealAdd – событие перед добавлением сделки;
OnBeforeCrmDealUpdate – событие перед обновлением сделки;
OnBeforeCrmLeadAdd – событие перед добавлением лида.

И также в разрезе CRM востребованное событие – передача данных в систему после звонка из телефонии, за него отвечает событие “OnCallEnd” модуля “voximplant”.