Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить контакт по Id crm.contact.get». Вы узнаете экспертные методики работы с crm.contact.get и научитесь избегать типичных ошибок начинающих разработчиков.
Получить контакт по Id crm.contact.get
> Scope: crm
>
> Кто может выполнять метод: любой пользователь с правом «чтения» контактов
Метод crm.contact.get возвращает контакт по его идентификатору.
Чтобы получить список компаний, привязанных к контакту, используйте метод crm.contact.company.items.get.
Параметры метода
Названиетип | Описание |
|---|---|
| id* [ integer][1] | Идентификатор контакта. Можно получить при помощи методов crm.contact.list или crm.contact.add |
Примеры кода
Получить контакт с id = 23
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":23}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.contact.get- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":23,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.contact.get- JS
try
{
const response = await $b24.callMethod(
'crm.contact.get',
{
id: 23,
}
);
const result = response.getData().result;
result.error()
? console.error(result.error())
: console.info(result)
;
}
catch( error )
{
console.error('Error:', error);
}- PHP
try {
$contactId = 123; // Example contact ID
$contactResult = $serviceBuilder
->getCRMScope()
->contact()
->get($contactId);
$itemResult = $contactResult->contact();
print("ID: " . $itemResult->ID . PHP_EOL);
print("Name: " . $itemResult->NAME . PHP_EOL);
print("Last Name: " . $itemResult->LAST_NAME . PHP_EOL);
print("Birthday: " . $itemResult->BIRTHDATE?->format(DATE_ATOM) . PHP_EOL);
print("Created Date: " . $itemResult->DATE_CREATE->format(DATE_ATOM) . PHP_EOL);
print("Modified Date: " . $itemResult->DATE_MODIFY->format(DATE_ATOM) . PHP_EOL);
} catch (Throwable $e) {
print("Error: " . $e->getMessage() . PHP_EOL);
}- BX24.js
BX24.callMethod(
'crm.contact.get',
{
id: 23,
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.contact.get',
[
'ID' => 23
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": {
"ID": "43",
"POST": "Администратор",
"COMMENTS": "\nПример комментария внутри контакта\n\n[B]Жирный текст[\/B]\n[I]Курсив[\/I]\n[U]Подчеркнутый[\/U]\n[S]Зачеркнутый[\/S]\n[B][I][U][S]Микс[\/S][\/U][\/I][\/B]\n\n[LIST]\n[*]Элемент списка #1\n[*]Элемент списка #2\n[*]Элемент списка #3\n[\/LIST]\n\n[LIST=1]\n[*]Нумерованный элемент списка #1\n[*]Нумерованный элемент списка #2\n[*]Нумерованный элемент списка #3\n[\/LIST]\n",
"HONORIFIC": "HNR_RU_1",
"NAME": "Иван",
"SECOND_NAME": "Иванович",
"LAST_NAME": "Иванов",
"PHOTO": null,
"LEAD_ID": null,
"TYPE_ID": "PARTNER",
"SOURCE_ID": "WEB",
"SOURCE_DESCRIPTION": "*Дополнительно об источнике*",
"COMPANY_ID": "12",
"BIRTHDATE": "2001-11-11T02:00:00+02:00",
"EXPORT": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"DATE_CREATE": "2024-08-15T10:38:21+02:00",
"DATE_MODIFY": "2024-08-15T10:38:21+02:00",
"ASSIGNED_BY_ID": "6",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"OPENED": "Y",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"ORIGIN_VERSION": null,
"FACE_ID": null,
"LAST_ACTIVITY_TIME": "2024-08-15T10:38:21+02:00",
"ADDRESS": null,
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": null,
"ADDRESS_LOC_ADDR_ID": null,
"UTM_SOURCE": "yandex",
"UTM_MEDIUM": "CPC",
"UTM_CAMPAIGN": "summer_sale",
"UTM_CONTENT": "header_banner",
"UTM_TERM": "discount",
"PARENT_ID_1224": "12",
"LAST_ACTIVITY_BY": "1",
"UF_CRM_1720697698689": "Пример значения пользовательского поля с типом \u0022Строка\u0022",
"PHONE": [
{
"ID": "156",
"VALUE_TYPE": "WORK",
"VALUE": "+7333333555",
"TYPE_ID": "PHONE"
},
{
"ID": "157",
"VALUE_TYPE": "HOME",
"VALUE": "+35599888666",
"TYPE_ID": "PHONE"
}
],
"EMAIL": [
{
"ID": "158",
"VALUE_TYPE": "MAILING",
"VALUE": "ivanov@example.mailing",
"TYPE_ID": "EMAIL"
},
{
"ID": "159",
"VALUE_TYPE": "WORK",
"VALUE": "ivanov@example.work",
"TYPE_ID": "EMAIL"
}
]
},
"time": {
"start": 1723736139.883652,
"finish": 1723736140.299369,
"duration": 0.41571712493896484,
"processing": 0.14158892631530762,
"date_start": "2024-08-15T17:35:39+02:00",
"date_finish": "2024-08-15T17:35:40+02:00"
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultcontact | Корневой элемент ответа. Содержит информацию о полях контакта. Структура описана ниже |
| time [ time][1] | Объект, содержащий в себе информацию о времени выполнения запроса |
contact
Названиетип | Описание |
|---|---|
| ID [ integer][1] | Идентификатор контакта |
| POST [ string][1] | Должность |
| COMMENTS [ text][1] | Комментарий |
HONORIFICcrm_status | Обращение |
| NAME [ string][1] | Имя |
| SECOND_NAME [ string][1] | Отчество |
| LAST_NAME [ string][1] | Фамилия |
| PHOTO [ file][1] | Фотография |
LEAD_IDcrm_lead | Идентификатор лида, на основе которого был создан контакт |
TYPE_IDcrm_status | Тип контакта |
SOURCE_IDcrm_status | Источник |
| SOURCE_DESCRIPTION [ text][1] | Дополнительно об источнике |
COMPANY_IDcrm_company | Идентификатор основной компании |
| BIRTHDATE [ date][1] | Дата рождения |
| EXPORT [ boolean][1] | Участвует ли в экспорте контактов. Возможные значения: — Y — да— N — нет |
| HAS_PHONE [ boolean][1] | Задан ли телефон. Возможные значения: — Y — да— N — нет |
| HAS_EMAIL [ boolean][1] | Задан ли e-mail. Возможные значения: — Y — да— N — нет |
| HAS_IMOL [ boolean][1] | Задана ли открытая линия. Возможные значения: — Y — да— N — нет |
| DATE_CREATE [ datetime][1] | Дата создания |
| DATE_MODIFY [ datetime][1] | Дата изменения |
| ASSIGNED_BY_ID [ user][1] | Ответственный |
| CREATED_BY_ID [ user][1] | Кем создан |
| MODIFY_BY_ID [ user][1] | Кем изменен |
| OPENED [ boolean][1] | Доступно ли для всех. Возможные значения: — Y — да— N — нет |
| FACE_ID [ integer][1] | Привязка к лицам из модуля faceid |
| LAST_ACTIVITY_TIME [ datetime][1] | Последняя активность |
| LAST_ACTIVITY_BY [ user][1] | Кем осуществлена последняя активность в таймлайне |
| UTM_SOURCE [ string][1] | Рекламная система (Yandex-Direct, Google-Adwords и другие) |
| UTM_MEDIUM [ string][1] | Тип трафика. Возможные значения: — CPC — объявления— CPM — баннеры |
| UTM_CAMPAIGN [ string][1] | Обозначение рекламной кампании |
| UTM_CONTENT [ string][1] | Содержание кампании. Например, для контекстных объявлений |
| UTM_TERM [ string][1] | Условие поиска кампании. Например, ключевые слова контекстной рекламы |
PHONEcrm_multifield[] | Телефон |
EMAILcrm_multifield[] | |
WEBcrm_multifield[] | Сайт |
IMcrm_multifield[] | Мессенджер |
LINKcrm_multifield[] | Ссылки. Служебное поле |
Поля связи с внешними источниками данных
Если контакт создан внешней системой, то:
- поле
ORIGINATOR_IDхранит строковый идентификатор этой системы - поле
ORIGIN_IDхранит строковый идентификатор контакта в этой внешней системе - поле
ORIGIN_VERSIONхранит версию данных контакта в этой внешней системе
Названиетип | Описание |
|---|---|
| ORIGINATOR_ID [ string][1] | Внешний источник |
| ORIGIN_ID [ string][1] | Идентификатор элемента во внешнем источнике |
| ORIGIN_VERSION [ string][1] | Версия оригинала |
Устаревшие поля
Поля адреса в контакте являются устаревшими и используются только в режиме совместимости. Для работы с адресом используйте реквизиты.
Названиетип | Описание |
|---|---|
| ADDRESS [ string][1] | Адрес |
| ADDRESS_2 [ string][1] | Вторая строка адреса |
| ADDRESS_CITY [ string][1] | Город |
| ADDRESS_POSTAL_CODE [ string][1] | Почтовый индекс |
| ADDRESS_REGION [ string][1] | Район |
| ADDRESS_PROVINCE [ string][1] | Область |
| ADDRESS_COUNTRY [ string][1] | Страна |
| ADDRESS_LOC_ADDR_ID [ integer][1] | Идентификатор адреса местоположения |
Поля типа crm_multifield (PHONE, EMAIL, WEB, IM, LINK) явно отдаются данным методом только в случае, если значения данного поля не равны null.
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "ID is not defined or invalid."
}Возможные коды ошибок
| Описание | Значение |
|---|---|
ID is not defined or invalid | Параметр id не передан либо переданное значение не является целым числом больше 0 |
Access denied | У пользователя нет прав на «Чтение» контакта |
Not found | Контакт с переданным id не найден |
- [](./crm-contact-add)
- [](./crm-contact-update)
- [](./crm-contact-list)
- [](./crm-contact-delete)
- [](./crm-contact-fields)
- [](../../../tutorials/crm/how-to-edit-crm-objects/how-to-change-email-or-phone)
- [](../../../tutorials/crm/how-to-add-crm-objects/how-to-add-activity-to-contact)
- [](../../../tutorials/crm/how-to-add-crm-objects/how-to-send-email)
[1]: ../../data-types.md
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Получить контакт по Id crm.contact.get» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru