Поля контакта в REST 3.0
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Поля относятся к методам REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Поля контакта возвращают методы crm.contact.get и crm.contact.list, а принимают методы crm.contact.add и crm.contact.update. Значения множественных полей по одному добавляют и удаляют методы crm.contact.addfieldvalue и crm.contact.deletefieldvalue. Список полей с признаками возвращает метод crm.contact.field.list.
Часть полей существует в двух видах: как идентификатор и как связанный объект, например assignedById и assignedBy. Идентификатор можно передать при записи, а связанный объект — только запросить в select.
Какие поля принимают и возвращают методы
|
Метод |
Принимает |
Возвращает |
|
Поля таблицы Объект контакта, которые можно изменять, и пользовательские поля. Обязательно хотя бы одно из полей |
Идентификатор созданного контакта |
|
|
|
Признак успеха |
|
|
|
Без |
|
|
|
Без |
|
|
|
Признак успеха |
Поля с пометкой «только чтение» методы add и update не принимают и возвращают ошибку BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION с текстом «Поле "companyId" не доступно к заполнению». Связанные объекты, например company и assignedBy, тоже только для чтения: для записи передавайте идентификатор — companiesId, assignedById.
Поля со значениями из справочников метод проверяет при записи. Если значения нет в справочнике, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Для типа контакта, обращения и источника в тексте ошибки перечислены допустимые значения.
Логические поля принимают и возвращают true или false. Значения Y, N, 1 и 0 не подходят: метод вернет ошибку «В поле opened требуется тип данных bool для такого запроса».
Поле birthdayTime типа date принимает и возвращает дату в формате YYYY-MM-DD, например 1990-05-15. Дату со временем или в формате 15.05.1990 поле не принимает. Поля типа datetime возвращаются в формате ISO 8601, например 2026-11-03T14:42:28+03:00. В фильтре по полю datetime тоже передавайте дату со временем.
Фильтровать и сортировать можно только по полям, у которых это указано в описании. На другие поля метод list вернет ошибку «требуется наличие атрибута Filterable» или «Sortable». Через точку можно фильтровать по полям связанных элементов CRM, значений телефона, почты, сайта и мессенджера, объектов utm и lastCommunication, например ["company.title", "=", "Ромашка"] или ["phone.value", "=", "+79990000003"]. По полям сотрудников и справочников, например assignedBy.id или type.name, фильтр не работает: метод вернет ошибку BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION. Формат фильтра описан на странице crm.<тип>.list и в статье Обзор REST API 3.0.
Фильтр по полю companiesId сейчас не работает: метод crm.contact.list отвечает HTTP-статусом 500 и ошибкой INTERNAL_SERVER_ERROR. Чтобы найти контакты компании, фильтруйте по основной компании companyId или запросите поле contactsId у компании методом crm.company.get.
Объект контакта
|
Название |
Описание |
|
id |
Идентификатор контакта. Назначается при создании. Только чтение. Можно фильтровать и сортировать |
|
name |
Имя, до 50 символов. При создании контакта обязательно Можно изменять, фильтровать и сортировать |
|
secondName |
Отчество, до 50 символов. Можно изменять, фильтровать и сортировать |
|
lastName |
Фамилия, до 50 символов. При создании контакта обязательно Можно изменять, фильтровать и сортировать |
|
title |
Полное имя контакта, которое Битрикс24 собирает из фамилии, имени и отчества, например Только чтение. Фильтровать и сортировать нельзя |
|
honorificId |
Идентификатор обращения, например Можно изменять, фильтровать и сортировать |
|
honorific |
Обращение. Объект типа значение справочника. Только чтение. Запрашивается в |
|
post |
Должность, до 255 символов. Можно изменять, фильтровать и сортировать |
|
birthdayTime |
Дата рождения в формате Можно изменять, фильтровать и сортировать |
|
typeId |
Идентификатор типа контакта, например Можно изменять, фильтровать и сортировать |
|
type |
Тип контакта. Объект типа значение справочника. Только чтение. Запрашивается в |
|
export |
Участвует ли контакт в экспорте контактов: Можно изменять, фильтровать и сортировать |
|
photo |
Фотография контакта. Объект типа файл. Чтобы удалить фотографию, передайте Можно изменять. Фильтровать и сортировать нельзя |
|
companiesId |
Идентификаторы компаний контакта, до 50 значений. Компании возвращает метод crm.company.list. Переданный массив заменяет текущий список компаний. Первая компания массива становится основной и попадает в Можно изменять. Фильтр по полю сейчас возвращает ошибку |
|
companies |
Компании контакта. Массив объектов типа элемент CRM. Если компаний нет — пустой массив. Только чтение. Запрашивается в |
|
companyId |
Идентификатор основной компании контакта — первой в списке Только чтение. Можно фильтровать и сортировать |
|
company |
Основная компания контакта. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
leadId |
Идентификатор лида, из которого создан контакт. Если контакт создан не из лида — Только чтение. Можно фильтровать и сортировать |
|
lead |
Лид, из которого создан контакт. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
phone |
Телефоны контакта. Массив объектов типа значение множественного поля. Типы телефонов возвращает метод crm.dictionary.phonetype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
email |
Адреса электронной почты. Массив объектов типа значение множественного поля. Типы адресов возвращает метод crm.dictionary.emailtype.list. Метод проверяет формат адреса и на некорректный адрес возвращает ошибку «Поле "Рабочий e-mail" содержит некорректный адрес». Можно изменять. Фильтровать можно по полям значения через точку, например |
|
web |
Сайты и страницы в соцсетях. Массив объектов типа значение множественного поля. Типы сайтов возвращает метод crm.dictionary.webtype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
im |
Мессенджеры и открытые линии. Массив объектов типа значение множественного поля. Типы мессенджеров возвращает метод crm.dictionary.imtype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
hasPhone |
Есть ли у контакта хотя бы один телефон: Только чтение. Фильтровать и сортировать нельзя |
|
hasEmail |
Есть ли у контакта хотя бы один адрес почты: Только чтение. Фильтровать и сортировать нельзя |
|
hasWeb |
Есть ли у контакта хотя бы один сайт: Только чтение. Фильтровать и сортировать нельзя |
|
hasIm |
Есть ли у контакта хотя бы одно значение в поле Только чтение. Фильтровать и сортировать нельзя |
|
sourceId |
Идентификатор источника, например Можно изменять, фильтровать и сортировать |
|
source |
Источник. Объект типа значение справочника. Только чтение. Запрашивается в |
|
sourceDescription |
Дополнительная информация об источнике. Можно изменять и фильтровать, сортировать нельзя |
|
assignedById |
Идентификатор ответственного за контакт. Идентификаторы пользователей возвращает метод user.get. Если пользователя нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Можно изменять, фильтровать и сортировать |
|
assignedBy |
Ответственный. Объект типа сотрудник. Только чтение. Запрашивается в |
|
observersId |
Идентификаторы наблюдателей. Идентификаторы пользователей возвращает метод user.get. Переданный массив заменяет текущий список наблюдателей. Можно изменять и фильтровать, сортировать нельзя. В фильтре |
|
observers |
Наблюдатели. Массив объектов типа сотрудник. Если наблюдателей нет — пустой массив. Только чтение. Запрашивается в |
|
opened |
Доступен ли контакт всем пользователям: Можно изменять, фильтровать и сортировать |
|
comments |
Комментарий к контакту. Можно изменять. Фильтровать и сортировать нельзя |
|
utm |
UTM-метки контакта. Объект типа UTM-метки. Можно изменять. Фильтровать можно по полям объекта через точку, например |
|
trackingSourceId |
Идентификатор источника сквозной аналитики. Если источника нет или он в архиве, метод вернет ошибку «Источник сквозной аналитики не найден или находится в архиве». Можно изменять и фильтровать, сортировать нельзя |
|
originatorId |
Идентификатор внешней системы, из которой загружен контакт. Используйте вместе с Можно изменять, фильтровать и сортировать |
|
originId |
Идентификатор контакта во внешней системе. Можно изменять, фильтровать и сортировать |
|
originVersion |
Версия записи во внешней системе. Можно изменять. Фильтровать и сортировать нельзя |
|
createdTime |
Дата и время создания контакта. Только чтение. Можно фильтровать и сортировать |
|
createdById |
Идентификатор пользователя, который создал контакт. Данные пользователя — в объекте Только чтение. Можно фильтровать и сортировать |
|
createdBy |
Пользователь, который создал контакт. Объект типа сотрудник. Только чтение. Запрашивается в |
|
updatedTime |
Дата и время последнего изменения контакта. Только чтение. Можно фильтровать и сортировать |
|
updatedById |
Идентификатор пользователя, который последним изменил контакт. Только чтение. Можно фильтровать и сортировать |
|
updatedBy |
Пользователь, который последним изменил контакт. Объект типа сотрудник. Только чтение. Запрашивается в |
|
lastActivityTime |
Дата и время последней активности в таймлайне контакта. Только чтение. Можно фильтровать и сортировать |
|
lastActivityById |
Идентификатор автора последней активности в таймлайне. Только чтение. Можно фильтровать и сортировать |
|
lastActivityBy |
Автор последней активности в таймлайне. Объект типа сотрудник. Только чтение. Запрашивается в |
|
webformId |
Идентификатор CRM-формы, через которую создан контакт. Если контакт создан не формой — Только чтение. Можно фильтровать и сортировать |
|
webform |
CRM-форма, через которую создан контакт. Объект типа CRM-форма. Только чтение. Запрашивается в |
|
lastCommunication |
Даты последних коммуникаций с контактом. Объект типа последняя коммуникация. Только чтение. Запрашивается в |
|
entityTypeId |
Идентификатор типа объекта. Для контакта — Только чтение |
|
canRead |
Может ли текущий пользователь просматривать контакт: Только чтение |
|
url |
Относительная ссылка на карточку контакта, например Только чтение |
Телефоны, почта, сайты и мессенджеры
Поля phone, email, web и im — массивы значений. Каждое значение — объект с полями:
|
Название |
Описание |
|
id |
Идентификатор значения. Назначается при записи, передавать его нельзя: метод вернет ошибку «Поле "id" не доступно к заполнению» |
|
valueTypeId |
Тип значения, например |
|
valueType |
Тип значения с названием: |
|
value |
Значение: номер телефона, адрес почты, адрес сайта или идентификатор в мессенджере. Обязательное поле при записи |
При записи передавайте массив объектов с полями valueTypeId и value:
{
"phone": [
{"valueTypeId": "WORK", "value": "+79990000001"},
{"valueTypeId": "MOBILE", "value": "+79990000002"}
]
}
В ответе каждое значение приходит с id и объектом valueType:
{
"phone": [
{
"id": 8871,
"valueTypeId": "MOBILE",
"valueType": {
"id": "MOBILE",
"name": "Мобильный телефон",
"nameShort": "Мобильный"
},
"value": "+79990000003"
}
]
}
Как работает запись:
crm.contact.updateзаменяет все значения поля переданным массивом. Значения, которых нет в массиве, удаляются. Другие множественные поля, которых нет вfields, не меняются- пустой массив, например
"phone": [], удаляет все значения поля - одно значение добавляет метод crm.contact.addfieldvalue, удаляет — crm.contact.deletefieldvalue. В
valueпередайте объект{"valueTypeId": "MOBILE", "value": "+79990000008"}. Если такое значение уже есть,addfieldvalueвернет ошибку «The field value already exists.» - в одном поле может быть до 50 значений, во всех четырех полях вместе — до 100. При превышении метод вернет ошибку «Too many phone multifields.»
Объект файла
Поле photo. Чтобы загрузить фотографию, передайте объект upload с именем файла и содержимым в Base64 или ссылкой на файл:
{
"photo": {
"upload": {
"name": "photo.png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=="
}
}
}
Вместо data можно передать url — адрес файла. Одновременно передавать data и url нельзя.
В ответе поле содержит данные загруженного файла:
|
Название |
Описание |
|
id |
Идентификатор файла, например |
|
name |
Имя файла |
|
url |
Адрес для просмотра файла в Битрикс24 |
|
downloadUrl |
Адрес для скачивания файла через REST. В адресе есть данные авторизации вебхука, не публикуйте его |
Объект UTM-меток
Поле utm. При записи передавайте только нужные метки: при создании остальные получат значение null, при изменении сохранят текущие значения. Каждая метка — строка до 255 символов.
|
Название |
Описание |
|
source |
Рекламная система, метка |
|
medium |
Тип трафика, метка |
|
campaign |
Рекламная кампания, метка |
|
content |
Содержание объявления, метка |
|
term |
Ключевая фраза, метка |
Связанные объекты
Связанный объект запрашивается в select по имени поля без суффикса Id: assignedBy, honorific, company. Имя объекта целиком возвращает все его поля, путь через точку — только выбранные, например ["type.name", "assignedBy.firstName"]. Путь поддерживает один уровень вложенности: company.createdBy.firstName метод не примет.
Связанный элемент CRM — company, companies, lead — по имени целиком возвращает только id. Остальные поля элемента запрашивайте через точку. Через точку доступны поля из объекта элемента CRM и любые поля типа связанного элемента, например ["company.title", "company.phone", "company.industryId"]. Поля компании описаны в статье Поля компании в REST 3.0.
Если связь не заполнена, объект приходит как null, а массив объектов, например observers или companies, — как пустой массив.
Объект сотрудника
Поля createdBy, updatedBy, lastActivityBy, assignedBy, observers.
|
Название |
Описание |
|
id |
Идентификатор пользователя |
|
firstName |
Имя |
|
lastName |
Фамилия |
|
personalGender |
Пол: |
|
url |
Относительная ссылка на профиль пользователя, например |
|
personalPhoto |
Ссылка на фотографию пользователя. Если фотографии нет — |
Объект элемента CRM
Поля company, companies, lead.
|
Название |
Описание |
|
id |
Идентификатор элемента |
|
entityTypeId |
Идентификатор типа объекта: |
|
canRead |
Может ли текущий пользователь просматривать элемент |
|
title |
Название элемента |
|
url |
Относительная ссылка на карточку элемента, например |
Объект значения справочника
Поля honorific, type, source.
|
Название |
Описание |
|
id |
Идентификатор значения, например |
|
name |
Название значения, например |
|
sort |
Порядок сортировки |
Объект CRM-формы
Поле webform.
|
Название |
Описание |
|
id |
Идентификатор CRM-формы |
|
name |
Название CRM-формы |
Объект последней коммуникации
Поле lastCommunication. Если коммуникации такого вида не было, поле равно null.
|
Название |
Описание |
|
communicationTime |
Дата и время последней коммуникации любого вида |
|
callTime |
Дата и время последнего звонка |
|
emailTime |
Дата и время последнего письма |
|
imolTime |
Дата и время последнего сообщения в открытой линии |
|
webformTime |
Дата и время последнего заполнения CRM-формы |
Пользовательские поля
Пользовательские поля контакта называются UF_CRM_<код>, например UF_CRM_1716289811. Их передают и запрашивают по имени так же, как стандартные поля. Список пользовательских полей контакта возвращает метод crm.contact.field.custom.list.
Значение поля типа «Деньги» передается объектом {"sum": 150.5, "currencyId": "RUB"}. Строка вида 150.5|RUB не подходит: метод вернет ошибку «В поле UF_CRM_… требуется тип данных MoneyDto для такого запроса».
У каждого пользовательского поля есть парное поле UF_CRM_…_data — только для чтения, запрашивается в select. Оно содержит значение в нескольких представлениях:
value— значение в том же формате, что в самом полеrawValue— значение в формате хранения, например150.5|RUBдля поля «Деньги»formattedValue— значение для показа пользователю:150.50 ₽для денег, имя сотрудника для поля «Привязка к сотруднику»extra— дополнительные данные: для денег —amount,currencyIdиcurrencyFullName, для сотрудника — поля объекта сотрудника. Для строки, числа и даты —null
У множественного пользовательского поля UF_CRM_…_data — массив таких объектов.