Создание компании и сделки через API в коробочной версии Битрикс24

Недавно мы узнали как создавать лид через API коробочной версии Битрикс24. Если вы еще не ознакомились с этим материалом — настойчиво рекомендую незамедлительно сделать это. А сегодня мы пойдем дальше и научимся создавать компании и сделки в CRM Битрикс24.

Напомню, что весь приведенный далее код может быть выполнен только в коробочной версии продукта, но вы вполне можете адаптировать его и воспользоваться REST API для облака. Для создания компании вам понадобиться функция crm.company.add, а для сделок — crm.deal.add.

Я же буду использовать CCrmCompany::Add и CCrmDeal::Add соответственно.

Скрипт для создания компании и сделки в CRM Битрикс24

<?
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../..");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

ini_set('display_errors', 'on');

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
define('BX_NO_ACCELERATOR_RESET', true);
define('CHK_EVENT', true);
define('BX_WITH_ON_AFTER_EPILOG', true);

require ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

@set_time_limit(0);
//@ignore_user_abort(true);
\Bitrix\Main\Loader::includeModule('im');
\Bitrix\Main\Loader::includeModule('crm');

//id ответственного и уведомителя
$responsible = 1;
$inform = 2;

/*создаем компанию*/
$arNewCompany = array(
    "TITLE" => $_REQUEST['name'],
    "OPENED" => "Y",
    "COMPANY_TYPE" => "CUSTOMER",
    "ASSIGNED_BY_ID" => $responsible,

);
$arNewCompany['FM']['PHONE'] = array(
    'n0' => array(
        'VALUE_TYPE' => 'WORK',
        'VALUE' => $_REQUEST['phone'],
    )
);

$arNewCompany['FM']['EMAIL'] = array(
    'n0' => array(
        'VALUE_TYPE' => 'WORK',
        'VALUE' => $_REQUEST['email'],
    )
);
$company = new CCrmCompany(false);
$companyID = $company->Add($arNewCompany);

/* создаем сделку */
$arFields = array(
    "COMPANY_ID" => $companyID,
    "TITLE" => "Заявка от " . date("d.m.Y H:i:s") ,
    "STAGE_ID" => "C8:NEW",
    "SOURCE_ID" => "SELF",
    "CURRENCY_ID" => "RUB",
    "ASSIGNED_BY_ID" => $responsible,
    "CATEGORY_ID" => 8,

);
$oLead = new CCrmDeal(false);
$r = $oLead->Add($arFields, $bUpdateSearch = true, $options = array());

/*отправляем уведомление о новой сделке*/

$attach = new CIMMessageParamAttach(null, "#95c255");
$attach->AddLink(Array(
    "NAME" => "Создана сделка № " . $r . "",
    "DESC" => "Сделка должна быть обработана в ближайшее время!",
    "LINK" => "https://адрес_портала/crm/deal/details/" . $r . "/"
));

$arMessageFields = array(
    "TO_USER_ID" => $responsible,
    "FROM_USER_ID" => $inform,
    "NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
    "MESSAGE" => "Создана новая сделка!",
    "ATTACH" => Array(
        $attach
    )
);
$mess = CIMNotify::Add($arMessageFields);
CMain::FinalActions();
?>

Создание компании происходит в сроках с 25 по 46. Особое внимание стоит уделить конструкции new CCrmCompany(false), а конкретно — параметру false. Дело все в том, что он отвечает за проверку прав при создании и обновлении объектов CRM. Без него совсем никак. В качестве альтернативы компаниям — можно использовать контакты, принцип примерно один и тот же. Более того, вы можете прикрепить к сделке обе эти сущности одновременно.

Создание сделки — с 49 по 60 строку включительно. Не забываем про волшебный false на этапе создания элемента. Обратите внимание на STAGE_ID. Это идентификатор стадии сделки. CATEGORY_ID — это идентификатор направления сделки. Проще говоря — воронка. Например, вы можете завести воронку «Исходящие сделки», в которой менеджеры будут работать с клиентами, которых нашли самостоятельно. И воронку «Входящие сделки», в которой и будут создаваться заявки с сайта.

Описание всех доступных полей — в документации.

Опубликовано: 4 марта 2020 года, в рубрике «Битрикс».

Оставить комментарий

5000
  Подписаться  
Уведомление о
Поблагодарить автора статьи
Зачем это нужно