Якщо ваш відділ продажів використовує CRM, мобільний застосунок без інтеграції перетворюється на ручне введення даних, втрати угод та дублі завдань. Ми з'єднуємо застосунок з CRM через BFF-проксі, забезпечуючи миттєву синхронізацію, офлайн-режим та push-повідомлення. Наприклад, при оновленні статусу угоди через веб-інтерфейс — застосунок отримує сповіщення за 2-3 секунди. За даними нашої практики, інтеграція окупається за 2-3 місяці за рахунок скорочення ручного введення на 80%. Оцінимо ваш проєкт безкоштовно — зв'яжіться з нами.
Як вибрати підхід до інтеграції CRM з мобільним застосунком?
Пряме підключення до CRM API з мобільного застосунку — ризикована практика. API-ключі зберігаються в APK або IPA (легко дістати через jadx або class-dump), бізнес-логіка не контролюється, кеш відсутній. Правильна архітектура: мобільний застосунок → власний API (BFF, Backend for Frontend) → CRM. BFF зберігає секрети на сервері, трансформує дані під потреби мобільного клієнта.
BFF віддає клієнту лише те, що потрібно для конкретного екрана: список угод з ім'ям, сумою та статусом — не весь об'єкт на 40 полів. Це зменшує трафік та час парсингу в 3 рази. Схема описана в Wikipedia.
Чому BFF краще прямого підключення?
BFF ізолює CRM-специфіку: при зміні CRM (amoCRM → Bitrix24) переписуєте лише адаптер, а не весь застосунок. Крім того, BFF дозволяє версіонувати API для мобільного клієнта без впливу на інші системи. Наші інженери використовують Kotlin/Spring Boot або Go, залежно від навантаження. Типова вартість BFF — 100-150 рядків коду на сутність, що прискорює розробку на 40%.
Як забезпечити офлайн-режим?
Торговий представник їде до клієнта — інтернет зникає. Він робить дзвінок, фіксує домовленості в застосунку, дані мають піти в CRM при появі мережі. На Android використовуємо WorkManager з NetworkType.CONNECTED, на iOS — BGProcessingTask. Локальне сховище (Room або Core Data) буферизує зміни, при відновленні з'єднання воркер відправляє пакети в BFF.
Конфлікти: якщо менеджер змінив угоду через веб, а мобільний користувач — без мережі, дані розходяться. Проста стратегія — server wins (CRM перезаписує локальні). Складніше: версіонування через updated_at timestamp з вибором версії користувачем при конфлікті. Вибір стратегії впливає на складність реалізації на 20-30%.
Покрокова інструкція: налаштування фонової синхронізації на Android
- Додайте залежність
androidx.work:work-runtime-ktx:latest. - Створіть клас
SyncWorker, що наслідуєCoroutineWorker. - В
doWork()виконайте запит до BFF та оновіть локальну БД. - Заплануйте задачу через
WorkManager.enqueueUniquePeriodicWorkз інтервалом 15 хвилин. - Обмежте виконання лише за наявності мережі:
Constraints(requiredNetworkType = NetworkType.CONNECTED).
Сповіщення про зміни
CRM змінює статус угоди — застосунок має дізнатися. Порівняємо методи:
| Метод | Затримка | Складність | Навантаження на сервер |
|---|---|---|---|
| Webhook → Push | 1-5 c | Середня | Низька |
| Polling | 1-10 хв | Низька | Висока |
| WebSocket | <1 с | Висока | Середня |
WebSocket забезпечує в 10 разів меншу затримку, ніж polling, але потребує постійного з'єднання. Для більшості CRM-сценаріїв polling з інтервалом 1-2 хвилини — оптимальний баланс. Webhook → Push кращий, якщо CRM підтримує зовнішні callback'и.
Типові сутності та маппінг
Кожна CRM називає об'єкти по-своєму. Маппінг в BFF:
| Стандартна сутність | amoCRM | Bitrix24 | Salesforce |
|---|---|---|---|
| Угода | Lead/Opportunity | deal | Opportunity |
| Контакт | Contact | contact | Contact |
| Компанія | Company | company | Account |
| Завдання | Task | task | Task |
Єдина модель в застосунку (Deal, Contact, Company) з адаптерами під кожну CRM в BFF — дозволяє підтримувати кілька CRM або змінити CRM без переписування клієнта. Економія бюджету на повторну інтеграцію — до 60%.
Що входить в роботу?
- Детальна аналітика інтеграційних сценаріїв (синхронізація, сповіщення, офлайн).
- Проєктування BFF з документованим API (Swagger/OpenAPI).
- Реалізація адаптерів під 1-3 CRM (додаткові — за погодженням).
- Налаштування офлайн-режиму та фонової синхронізації.
- Інтеграція push-повідомлень (FCM/APNs).
- Тестування на реальних сценаріях (App Store Review Guidelines, Google Play).
- Передача доступів та інструкція з супроводу.
Терміни та гарантії
Базова інтеграція з однією CRM через BFF, CRUD-операції, offline-буфер: 2-4 тижні. Додавання push-повідомлень, вирішення конфліктів, підтримка кількох CRM: плюс 1-2 тижні. Вартість розраховується індивідуально.
Наш досвід: 5+ років у мобільній розробці, 30+ реалізованих інтеграцій з CRM. Гарантуємо стабільну роботу після запуску. Отримайте консультацію — зв'яжіться з нами. Замовте безкоштовний аудит інтеграції — ми оцінимо терміни та вартість.







