Добавление события в историю сущности CRM

  • Добавление события в историю сущности CRM

    Антон Долганин 21 Июля 2015 13:17 15956
    В этом посте я расскажу как добавить элемент истории сущности CRM (лид, сделка, контакт, компания, предложение).

    sss1.png


    Собственно сразу кусок кода на добавление, а ниже разберем каждое из полей.
    if (\Bitrix\Main\Loader::includeModule('crm')) {
       $CCrmEvent = new CCrmEvent();
       $CCrmEvent->Add(
          array(
             'ENTITY_TYPE'=> 'DEAL',
             'ENTITY_ID' => '457',
             'EVENT_ID' => 'INFO',
             'EVENT_TEXT_1' => 'Tratatat test',
             'DATE_CREATE' => $eventDate,
             'FILES' => array(
                CFile::MakeFileArray('/bitrix/templates/bitrix24/images/template_sprite_21.png')
             )
          )
       );
    } 
    


    Поехали:

    ENTITY_TYPE - к какой сущности относится, может принимать значения: LEAD, CONTACT, COMPANY, DEAL, QUOTE (лид, контакт, компания, сделка, предложение).
    ENTITY_ID - ID соответствующей сущности.
    EVENT_ID - тип записи, которую вы хотите сделать, может принимать значения: INFO, PHONE, MESSAGE (информация, телефонный звонок, отправленный e-mail), хочу заметить, что  актуальный тип только "информация", для звонков и e-mail используются отдельные сущности, которые мы тут рассматривать не будем.
    EVENT_TEXT_1 - текст.
    FILES - список файлов, если требуется.
    DATE_CREATE - дата записи, по умолчанию текущее время, но вы можете подшаманить примерно так:
    $eventDate = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', SITE_ID);


    Вот и все, результат:

    sss2.png
Юрий
4 Августа 2015 10:39
Спасибо! Очень своевременно и полезно!
Побольше бы таких примером )))
Дмитрий
25 Декабря 2015 19:50
Добрый вечер.

Очень просто и понятно

А как сделать тоже самое , только в ленту ?
Антон Долганин
26 Декабря 2015 6:23
К сожалению, это уже совсем другой код, со своими заморочками вроде как.
Юрий
14 Апреля 2016 17:23
Вот так получилось, правда файлы прицепить пока не смог.


   $entity_type = 'LEAD';
   $entity_id = '13308';
   $now = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', 's1');
    $arBindings[] = array(
                'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($entity_type),
                'OWNER_ID' => $entity_id
            );
   $arFields = array(
      'OWNER_ID' => $entity_id,
      'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($entity_type),
      'TYPE_ID' =>  CCrmActivityType::Email,
      'SUBJECT' => 'ФАЙЛ',
      'START_TIME' => $now,
      'END_TIME' => $now,
      'COMPLETED' => 'Y',
      'RESPONSIBLE_ID' => $USER->GetID(),
      'PRIORITY' => CCrmActivityPriority::Medium,
      'DESCRIPTION' => 'Тестирование записи в лид',
      'DESCRIPTION_TYPE' => CCrmContentType::BBCode,
      'DIRECTION' => CCrmActivityDirection::Outgoing,
      'LOCATION' => '',
      'NOTIFY_TYPE' => CCrmActivityNotifyType::None,

      'BINDINGS' => array_values($arBindings)
   );


   $test = CCrmActivity::Add($arFields, false, false, array('REGISTER_SONET_EVENT' => true));
 
Константин
21 Декабря 2016 13:17
Спасибо! очень нужный пример. Оба примера. Все работает. :)
Денис
12 Июня 2020 7:47
Код выше позволяет добавит в ленту (LiveFeed) только 4 вида активити: Письмо, Звонок, Встречу, Задачу.

Докопался до источников как добавить обычный коммент:
    $arPOST = array(
            'ENTITY_TYPE_ID' => 2, //Тип - сделка
            'ENTITY_ID' => 246, //ID сделки
                       'MESSAGE' => 'Текст мессаджа',
            'TITLE' => 'Заголовок, но он вроде не выводится',
            'USER_ID' =>1, //От какого Юзера коммент

        );
        $message_id = \CCrmLiveFeed::CreateLogMessage($arPOST);

P.S. Капец, 4 года прошло от последнего комментария - до сих пор в документации ни слова. Типа "для вас Rest API сделали, зачем вам низкий уровень?".