Добавить компанию через веб-форму
Scope:
crmКто может выполнять метод: пользователи с правом создания компаний в CRM
Если вы разрабатываете интеграции для Битрикс24 с помощью AI-инструментов (Codex, Claude Code, Cursor), подключите MCP-сервер, чтобы ассистент использовал официальную REST-документацию.
На сайте можно разместить форму для сбора данных клиентов. Когда клиент заполнит форму, его данные попадут в CRM, и вы сможете обработать заявку.
Настройка формы состоит из двух шагов.
-
Разместите форму на HTML-странице. Она отправит данные в обработчик.
-
Создайте файл для обработки данных. Обработчик примет и подготовит данные, а затем создаст компанию методом crm.company.add.
1. Создаем веб-форму
Создадим на странице сайта веб-форму с тремя полями:
-
TITLE— название компании, обязательное, -
EMAIL— электронная почта, -
PHONE— телефон.
При отправке форма передает данные в обработчик form.php.
<form id="form_to_crm" method="POST" action="form.php">
<!-- Название компании (обязательное поле) -->
<input type="text" name="TITLE" placeholder="Название компании" required>
<!-- Электронная почта -->
<input type="text" name="EMAIL" placeholder="Почта">
<!-- Телефон -->
<input type="text" name="PHONE" placeholder="Телефон">
<!-- Кнопка отправки -->
<input type="submit" value="Отправить">
</form>
<!-- Подключаем jQuery для AJAX-запроса -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
// Отправка формы без перезагрузки страницы
$('#form_to_crm').on('submit', function(el) {
el.preventDefault(); // Отменяем стандартную отправку
// Получаем данные формы
var formData = $(this).serialize();
// Отправляем данные на сервер
$.ajax({
'method': 'POST',
'dataType': 'json',
'url': 'form.php', // Файл-обработчик
'data': formData,
success: function(data) {
alert(data.message); // Показываем результат
}
});
});
});
</script>
2. Создаем обработчик формы
Чтобы обработать значения из полей формы и добавить компанию в CRM, создадим обработчик form.php.
Для добавления компании используем метод crm.company.add. В объекте fields передаем поля:
-
TITLE— название компании, -
COMPANY_TYPE— тип компании. УказываемCUSTOMER, так как заполняют форму только клиенты компании, -
PHONE— номер телефона, -
EMAIL— электронная почта.
Значения полей TITLE, PHONE, EMAIL получаем из формы. Телефон и email система хранит как массив объектов crm_multifield, поэтому их нужно привести к формату массива.
-
Если значение есть, добавляем его первым элементом
VALUEв массив, а вторым значением указываем типVALUE_TYPE, например:-
WORK— для телефона, -
HOME— для email.
-
-
Если значения нет, передаем пустой массив.
Проверьте, какие обязательные поля настроены для компаний в вашем Битрикс24. Все обязательные поля нужно передать в метод crm.company.add.
<?
// Получаем данные из формы
$sTitle = htmlspecialchars($_POST["TITLE"]);
$sPhone = htmlspecialchars($_POST["PHONE"]);
$sEmail = htmlspecialchars($_POST["EMAIL"]);
// Форматируем телефон и почту для Битрикс24 в формат crm_multifield
$arPhone = (!empty($sPhone)) ? array(array('VALUE' => $sPhone, 'VALUE_TYPE' => 'WORK')) : array();
$arEmail = (!empty($sEmail)) ? array(array('VALUE' => $sEmail, 'VALUE_TYPE' => 'HOME')) : array();
// Отправляем данные в Битрикс24
$result = CRest::call(
'crm.company.add',
[
'fields' =>[
"TITLE" => $sTitle, // Название компании
"COMPANY_TYPE" => 'CUSTOMER', // Тип компании — клиент
"PHONE" => $arPhone, // Телефон
"EMAIL" => $arEmail, // Почта
]
]
);
// Возвращаем результат
if(!empty($result['result'])){
echo json_encode(['message' => 'Company added']);
}
elseif(!empty($result['error_description'])){
echo json_encode(['message' => 'Company not added: '.$result['error_description']]);
}
else{
echo json_encode(['message' => 'Company not added']);
}
?>