Недавно мы узнали как создавать лид через API коробочной версии Битрикс24. Если вы еще не ознакомились с этим материалом — настойчиво рекомендую незамедлительно сделать это. А сегодня мы пойдем дальше и научимся создавать компании и сделки в CRM Битрикс24.
Напомню, что весь приведенный далее код может быть выполнен только в коробочной версии продукта, но вы вполне можете адаптировать его и воспользоваться REST API для облака. Для создания компании вам понадобиться функция crm.company.add, а для сделок — crm.deal.add.
Я же буду использовать CCrmCompany::Add и CCrmDeal::Add соответственно.
<?
$_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 — это идентификатор направления сделки. Проще говоря — воронка. Например, вы можете завести воронку «Исходящие сделки», в которой менеджеры будут работать с клиентами, которых нашли самостоятельно. И воронку «Входящие сделки», в которой и будут создаваться заявки с сайта.
Описание всех доступных полей — в документации.
Здравствуйте.
Весь день искал пример работы с API, с которого можно начать изучение/тестирование.
Взял Ваш пример. Он отработал и отталкиваясь от него буду уже углубляться.
Спасибо. Всего хорошего.
Здравствуйте. Рад был помочь.
Благодарю за пример!