В 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 (контакт, лид или компания), иначе произойдет замена значения полей одного пользовательского поля значениями другого пользовательского поля с тем же кодовым именем.