Получаем по ID Лида все Звонки с длительностью в минутах (с датой последнего звонка и кол-во), Письма (с датой последнего письма и кол-во), Чаты (с датой последнего обновления)
- Этот код получает по ID Лида все Звонки с длительностью в минутах (с датой последнего звонка и кол-во), Письма (с датой последнего письма и кол-во), Чаты (с датой последнего обновления)
use Bitrix\Main\Loader;
Loader::includeModule('crm');
Loader::includeModule('voximplant');
// Устанавливаем конкретное значение ID лида
$leadId = "{{ID}}"; // ID лида
$obActivities = CCrmActivity::GetList([],[
'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID('LEAD'),
'OWNER_ID' => $leadId,
'CHECK_PERMISSIONS' => 'N'
],
false,
false,[
'ID', 'TYPE_ID', 'PROVIDER_ID', 'SUBJECT', 'COMPLETED', 'START_TIME', 'END_TIME', 'LAST_UPDATED', 'CREATED'
]
);
$calls =[];
$letters =[];
$customActions =[];
$chats =[];
$totalCallDuration = 0;
$lastUpdatedChats = null;
$latestLetterCreated = null;
$latestCallCreated = null;
$totalLettersCount = 0;
$totalCallsCount = 0;
$totalChatsCount = 0;
while ($arActivity = $obActivities->Fetch()){
switch ($arActivity['TYPE_ID']){
case 2:
$calls[]= $arActivity['ID'];
// Получаем длительность звонка
$callStatistics = Bitrix\Voximplant\StatisticTable::getList(['filter' =>['CRM_ACTIVITY_ID' => $arActivity['ID']],
'select' =>['CALL_DURATION'
]]);
if ($stat = $callStatistics->fetch()){
$callDuration = (int)$stat['CALL_DURATION'];
$totalCallDuration += $callDuration;
if ($callDuration > 20 && ($latestCallCreated === null || $arActivity['CREATED']> $latestCallCreated)){$latestCallCreated = $arActivity['CREATED'];
}
}
break;
case 4:
$letters[]= $arActivity['ID'];
if ($latestLetterCreated === null || $arActivity['CREATED']> $latestLetterCreated)
{
$latestLetterCreated = $arActivity['CREATED'];
}break;
case 6:
if ($arActivity['PROVIDER_ID']== "IMOPENLINES_SESSION")
{
$chats[]= $arActivity['ID'];
// Обновляем дату последнего обновления для любого чата
if ($lastUpdatedChats === null || $arActivity['LAST_UPDATED']> $lastUpdatedChats)
{
$lastUpdatedChats = $arActivity['LAST_UPDATED'];}
}
break;
}
}$totalLettersCount = count($letters);
$totalCallsCount = count($calls);
$totalChatsCount = count($chats);
$totalCallDurationMinutes = round($totalCallDuration / 60);
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("Calls", $calls);
$rootActivity->SetVariable("Letters", $letters);
$rootActivity->SetVariable("CustomActions", $customActions);
$rootActivity->SetVariable("Chats", $chats);
$rootActivity->SetVariable("TotalCallDuration", $totalCallDurationMinutes);
$rootActivity->SetVariable("LastUpdatedChats", $lastUpdatedChats);
$rootActivity->SetVariable("LatestLetterCreated", $latestLetterCreated);
$rootActivity->SetVariable("LatestCallCreated", $latestCallCreated);
$rootActivity->SetVariable("TotalLettersCount", $totalLettersCount);
$rootActivity->SetVariable("TotalCallsCount", $totalCallsCount);
$rootActivity->SetVariable("TotalChatsCount", $totalChatsCount);
Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлы
Отключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie.
Подробнее о нашей политике в отношении Cookie.
Принять все
Отказаться от всех
Настроить