Недавно мы узнали как создавать лид через 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, с которого можно начать изучение/тестирование.
Взял Ваш пример. Он отработал и отталкиваясь от него буду уже углубляться.
Спасибо. Всего хорошего.
Здравствуйте. Рад был помочь.
Благодарю за пример!