Переход на новые методы CRM
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Эта страница помогает перенести интеграцию с методов CRM предыдущей версии API на REST 3.0: найти аналог каждого метода, учесть, чего в REST 3.0 пока нет, и обновить формат запросов и ответов.
Методы обеих версий работают одновременно и меняют одни и те же данные. Интеграцию можно переводить по частям: вызывать часть методов по адресу /rest/api/, а остальные — по адресу /rest/.
Порядок перехода
- Найдите аналоги методов, которые использует интеграция, по правилам из раздела Как найти аналог метода. Если задачи нет в REST 3.0, оставьте этот вызов в предыдущей версии: такие задачи перечислены в разделе Чего пока нет в REST 3.0
- Замените адрес вызова:
/rest/на/rest/api/. Имя метода для сделок, лидов, контактов, компаний и предложений остается тем же, для смарт-процессов и счетов меняется наcrm.<тип>.<действие>, напримерcrm.smartprocess1038.add - Переименуйте поля в
camelCase:TITLE→title,STAGE_ID→stageId. Названия полей каждого типа есть на страницах полей, например Поля сделки - Перечислите нужные поля в параметре
select. Без него методыgetиlistвозвращают толькоid - Обновите обработку ответа и ошибок: данные приходят в объекте
result, ошибки — в объектеerrorс кодом и текстом. Формат описан в обзоре REST 3.0 - Проверьте новые вызовы на тестовых данных до переключения рабочего сценария
Пример: создание сделки
В предыдущей версии поля передаются в верхнем регистре, метод возвращает идентификатор числом.
curl -X POST \
-H "Content-Type: application/json" \
-d '{"FIELDS":{"TITLE":"Заявка на закупку","ASSIGNED_BY_ID":1,"OPPORTUNITY":150000,"CURRENCY_ID":"RUB"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.deal.add
{
"result": 9021
}
В REST 3.0 такой же вызов идет по адресу /rest/api/, поля передаются в camelCase, идентификатор приходит в объекте result.
curl -X POST \
-H "Content-Type: application/json" \
-d '{"fields":{"title":"Заявка на закупку","assignedById":1,"opportunity":150000,"currencyId":"RUB"}}' \
https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/crm.deal.add
{
"result": {
"id": 9023
}
}
Как найти аналог метода
Методы сделок, лидов, контактов, компаний и предложений. Имя метода в REST 3.0 то же, меняется только адрес вызова. Например, crm.deal.add, crm.deal.get, crm.deal.list, crm.deal.update и crm.deal.delete есть в обеих версиях, как и методы add, get, list, update и delete лидов, контактов, компаний и предложений.
Универсальные методы crm.item.*. В REST 3.0 тип объекта входит в имя метода, поэтому параметр entityTypeId не нужен. Например, crm.item.add с entityTypeId: 2 становится методом crm.deal.add, а crm.item.list с entityTypeId: 1038 — методом crm.smartprocess1038.list. Товарные позиции элемента тоже получают тип в имени: crm.item.productrow.add для сделки становится crm.deal.productrow.add. Сегменты всех типов перечислены в обзоре CRM.
Остальные методы называются в REST 3.0 иначе. Они собраны в таблице. Для примера в таблице взяты методы сделки, а для реквизитов и адресов — методы компании. У других типов объектов вместо deal или company в имени стоит их сегмент: crm.lead.field.list, crm.contact.requisite.add.
|
Предыдущая версия |
REST 3.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
crm.deal.get: все контакты в поле |
|
|
crm.deal.addfieldvalue с полем |
|
|
crm.deal.deletefieldvalue с полем |
|
|
crm.deal.update с массивом |
|
|
crm.deal.update с пустым массивом |
|
|
crm.contact.get: все компании в поле |
|
|
crm.contact.addfieldvalue с полем |
|
|
crm.contact.deletefieldvalue с полем |
|
|
crm.contact.update с массивом |
|
|
crm.contact.update с пустым массивом |
|
|
crm.company.get: все контакты в поле |
|
|
crm.company.addfieldvalue с полем |
|
|
crm.company.deletefieldvalue с полем |
|
|
crm.company.update с массивом |
|
|
crm.company.update с пустым массивом |
|
|
|
|
|
Справочники — crm.dictionary.<справочник>.*, стадии сделок и смарт-процессов — crm.deal.category.stage.* |
|
|
crm.company.requisite.* и |
|
|
|
|
|
crm.deal.clientrequisite.* — реквизиты клиента, |
|
|
Адреса контактов, компаний и лидов — crm.company.address.*, адреса реквизитов — crm.company.requisite.address.* |
|
|
|
|
|
Чего пока нет в REST 3.0
Для этих задач оставьте вызовы предыдущей версии по адресу /rest/.
|
Задача |
Метод предыдущей версии |
|
Работать с документами CRM и документами КЭДО |
|
|
Работать с воронками счетов и документов |
|
|
Работать со стадиями лидов, предложений и счетов, со справочником статусов списков обзвона |
|
|
Создать пользовательское поле типа «Список» или «Файл» |
|
|
Задать порядок контактов в сделке или сделать компанию контакта основной при добавлении |
|
|
Работать с пользовательскими полями реквизитов |
|
|
Создавать и изменять шаблоны реквизитов |
|
|
Выбрать реквизит моей компании в предложении или смарт-процессе |
|
|
Получить все поля дела, в том числе настройки и данные провайдера, получить список дел без прав администратора |
|
|
Создать или изменить дело |
|
|
Сбросить вид карточки к настройкам по умолчанию |
|
|
Получить короткие коды типов объектов |
|
|
Узнать режим работы CRM без прав администратора |
|
|
Создать или настроить тип смарт-процесса |
|
|
Работать с таймлайном, генератором документов, автоматизацией, валютами, списками обзвона, дубликатами, сквозной аналитикой, цифровыми рабочими местами, оплатами и доставками |
Методы этих разделов в обзоре CRM |
Чем REST 3.0 отличается от предыдущей версии
- Одна схема для всех типов. Методы
crm.<тип>.*устроены одинаково для сделок, лидов, контактов, компаний, предложений, счетов и смарт-процессов. Отличаются только набор групп и поля типа - Имена полей в
camelCase. Стадия сделки — полеstageId, а неSTAGE_ID. Пользовательские поля сохраняют имена видаUF_CRM_… - Поля задаются явно. Без
selectметодыcrm.<тип>.getиcrm.<тип>.listвозвращают толькоidэлемента. Вselectможно запросить поля связанных объектов через точку, напримерassignedBy.lastNameилиstage.name. У вложенных групп правилаselectсвои — они описаны на страницах методов - Новый формат фильтра и навигации. Параметры
filter,orderиpaginationустроены по общим правилам REST 3.0. Методcrm.<тип>.listпо умолчанию возвращает 50 элементов, максимум — 1000. У списочных методов вложенных групп фильтр, как правило, требует условия по владельцу, напримерownerId, а лимит страницы может быть меньше - Описание полей у каждой группы. У каждой группы методов есть свои
field.getиfield.list, напримерcrm.deal.productrow.field.listвозвращает поля товарной позиции
Формат параметров и ответов описан в обзоре REST 3.0: выбор полей и связанных объектов, фильтрация, сравнение со старой версией.