Для обработки и модификации событий в 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”.