Как в bitrix24 rest api передать пользовательское поле типа crm?

В Bitrix24 REST API пользовательские поля типа CRM передаются как элементы массива fields при создании или обновлении сущности, такой как контакт, лид или компания. Различные объекты имеют свою собственную структуру полей, и поэтому способ передачи пользовательского поля будет немного различаться в зависимости от объекта. В следующем примере рассмотрим, как передать пользовательское поле типа CRM при создании контакта.

Для начала, необходимо получить список доступных полей для контакта с помощью метода crm.contact.fields. Запрос к REST API будет выглядеть следующим образом:

https://имя_поддомена.bitrix24.ru/rest/crm.contact.fields.json

В ответе вы получите структуру полей контакта. Найдите нужное пользовательское поле типа CRM, и запомните его кодовое имя (например, UF_CRM_123456789).

Теперь, при создании контакта с помощью метода crm.contact.add, в массиве fields добавьте элемент с нужным кодовым именем и укажите его значение. Например:

$fields = array(
    'NAME' => 'John Smith',
    'EMAIL' => array(array('VALUE' => '[email protected]', 'TYPE' => 'WORK')),
    'PHONE' => array(array('VALUE' => '1234567890', 'TYPE' => 'WORK')),
    'UF_CRM_123456789' => 'Custom Field Value',
);

$queryUrl = 'https://имя_поддомена.bitrix24.ru/rest/crm.contact.add.json';
$queryData = http_build_query(array(
    'fields' => $fields,
    'params' => array('REGISTER_SONET_EVENT' => 'Y')
));

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $queryUrl,
    CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result, true);
if (array_key_exists('error', $result)) {
    echo "Error: " . $result['error_description'];
} else {
    echo "Contact created successfully!";
}

В приведенном примере, поле UF_CRM_123456789 будет создано с значением "Custom Field Value".

Важно учесть, что кодовое имя пользователяского поля, также называемое символьным кодом, должно быть уникальным в рамках типа сущности CRM (контакт, лид или компания), иначе произойдет замена значения полей одного пользовательского поля значениями другого пользовательского поля с тем же кодовым именем.