Интеграция Битрикс24 с мобильным приложением
Представьте: менеджер вносит изменения в сделку в веб-версии, а мобильное приложение показывает устаревшие данные. Клиенты жалуются на задержки, сотрудники тратят время на ручной ввод. Без интеграции с Битрикс24 синхронизация происходит с опозданием на часы. Мы решаем эту проблему через REST API, вебхуки и push-уведомления — ваше приложение получает актуальную информацию в реальном времени. Наш опыт: более 5 лет успешных интеграций, более 30 проектов для бизнеса. Оставьте заявку на оценку вашего проекта за 1 день.
Процесс авторизации OAuth 2.0
Согласно документации Битрикс24, OAuth 2.0 является рекомендуемым способом авторизации для мобильных приложений. Битрикс24 использует Authorization Code Flow. Мобильное приложение открывает WebView или Chrome Custom Tabs с URL авторизации:
https://{portal}.bitrix24.ru/oauth/authorize/? client_id={app_id}& response_type=code& redirect_uri={deeplink} После успешной авторизации приходит code, который обменивается на access_token и refresh_token. access_token живёт 1 час, refresh_token — 30 дней. Обновление токена выполняется стандартным grant_type=refresh_token. Хранить refresh_token нужно в Keychain/Keystore — это критично для безопасности.
Как настроить OAuth 2.0 для мобильного приложения? Пошаговая инструкция
- Зарегистрируйте приложение в Битрикс24 (Разработчикам → Приложения).
- Укажите redirect URI в формате deep link (например,
myapp://oauth). - Реализуйте WebView или Chrome Custom Tabs с URL авторизации, содержащим
client_id,response_type=code,redirect_uri. - После получения
codeвыполните POST-запрос наhttps://oauth.bitrix24.ru/oauth/token/сgrant_type=authorization_code,client_id,client_secret,code,redirect_uri. - Сохраните полученные
access_tokenиrefresh_tokenв Keychain/Keystore. Обновляйте токен с помощьюgrant_type=refresh_tokenкаждый час.
Входящие вебхуки — упрощённый вариант без OAuth. URL вебхука содержит токен доступа, который позволяет вызывать API без авторизации пользователя. Это удобно для серверной интеграции, но хранить вебхук на мобильном клиенте опасно: утечка даёт полный доступ к порталу. OAuth 2.0 безопаснее входящего вебхука для мобильных приложений.
Основные методы API
Работа со сделками через Retrofit:
interface Bitrix24Api { @GET("crm.deal.list") suspend fun getDeals( @Query("auth") token: String, @Query("filter[STAGE_ID]") stageId: String, @Query("select[]") fields: List<String>, @Query("start") offset: Int ): Bitrix24ListResponse<Deal> } Параметр start — offset для пагинации. Битрикс24 возвращает максимум 50 записей за раз. В ответе next — следующий offset, total — общее количество. Для полной загрузки списка нужно последовательно запрашивать страницы, пока next не станет null.
Лимит запросов: 2 запроса в секунду при OAuth и при входящем вебхуке. Пакетная обработка через batch-метод объединяет до 50 вызовов в один HTTP-запрос — это увеличивает эффективную пропускную способность в 50 раз.
{ "halt": 0, "cmd": { "get_deals": "crm.deal.list?filter[STAGE_ID]=NEW", "get_contacts": "crm.contact.list?filter[TYPE_ID]=CLIENT" } } Что такое batch-метод и как он ускоряет синхронизацию?
Batch-метод позволяет выполнить до 50 REST-вызовов в одном HTTP-запросе. Передаётся JSON с параметром cmd, где ключи — произвольные имена, значения — методы с параметрами. Ответ содержит результаты всех команд. Это уменьшает количество запросов, помогает обходить лимиты и ускоряет синхронизацию больших объёмов данных. Для 1000+ записей используйте batch с пагинацией.
Как исходящие вебхуки обеспечивают real-time уведомления?
Исходящий вебхук Битрикс24 отправляет POST-запрос на указанный URL при наступлении события: изменение сделки, новый лид, обновление задачи. Сервер принимает событие, распознаёт тип и отправляет push-уведомление на устройство. Битрикс24 передаёт только ID и тип события — для получения полных данных требуется дополнительный запрос crm.deal.get. Это добавляет задержку 1-2 секунды, но обеспечивает актуальность.
События, которые чаще всего используются:
| Событие | Описание | Типовое применение |
|---|---|---|
| ONCRMDEALADD | Создание сделки | Push-уведомление менеджеру |
| ONCRMDEALUPDATE | Изменение сделки | Синхронизация полей в приложении |
| ONCRMLEADADD | Новый лид | Автоматическое создание карточки |
| ONTASKUPDATE | Изменение задачи | Обновление статуса задачи |
Для задач: ONTASKADD, ONTASKUPDATE. Для активностей: ONCRMACTIVITYADD.
Как обойти лимиты запросов Битрикс24?
Независимо от метода авторизации, Битрикс24 ограничивает 2 запроса в секунду. При превышении возвращается ошибка WRONG_REQUEST. Пакетная обработка через batch-метод эффективно увеличивает пропускную способность в 50 раз. Для синхронизации больших объёмов используйте комбинацию batch и пагинации.
Лимиты запросов Битрикс24
| Метод | Лимит | Пакетная обработка |
|---|---|---|
| OAuth 2.0 | 2 запроса/с | Batch до 50 команд |
| Входящий вебхук | 2 запроса/с | Batch до 50 команд |
Телефония и звонки
Битрикс24 фиксирует звонки через voximplant.infocall.startwithsound или telephony.call.attachbyqueue. Для мобильного приложения можно инициировать click-to-call: telephony.externalcall.register создаёт карточку звонка в Битрикс24, связывает с клиентом. После звонка — telephony.externalcall.finish с duration и результатом. Для VoIP-звонков в приложении — интеграция с Voximplant или Twilio через REST.
Что входит в работу по интеграции?
- Аналитика: разбор текущих процессов, выбор сущностей для синхронизации.
- Проектирование: архитектура интеграции, выбор протоколов (REST/Webhook/Batch), схема tokens.
- Реализация: настройка OAuth, разработка клиента API, реализация пагинации и offline-буфера.
- Тестирование: интеграционное тестирование, нагрузочное тестирование до 1000 сделок.
- Документация: описание API методов, схемы данных, инструкции для техподдержки.
- Пост-релизная поддержка: 2 недели мониторинга, исправление багов.
Мы гарантируем стабильную интеграцию с соблюдением App Store Review Guidelines (Section 5.1) и Google Play Store политик.
Сроки и стоимость
Базовая интеграция (сделки, контакты, задачи) с OAuth и пагинацией — 1-2 недели. Добавление вебхуков, push-уведомлений и offline-буфера — плюс 1 неделя. Стоимость рассчитывается индивидуально — оставьте заявку, оценим проект за 1 день.
Сокращение времени на синхронизацию и исключение ручного ввода снижают операционные затраты — интеграция окупается за счёт автоматизации. Свяжитесь с нами для консультации.







