If your sales department uses a CRM, a mobile app without integration becomes manual data entry, lost deals, and duplicated tasks. We connect the app with the CRM through a BFF proxy, ensuring instant synchronization, offline mode, and push notifications. For example, when a deal status is updated via the web interface, the app receives a notification within 2-3 seconds. According to our practice, integration pays off in 2-3 months by reducing manual entry by 80%. Get a free assessment of your project — contact us.
How to Choose the Right Integration Approach for CRM and Mobile App?
Direct connection to CRM API from a mobile app is risky. API keys are stored in APK or IPA (easily extracted via jadx or class-dump), business logic is uncontrolled, and caching is absent. The correct architecture: mobile app → custom API (BFF, Backend for Frontend) → CRM. BFF keeps secrets on the server, transforms data for the mobile client.
BFF returns only what the specific screen needs: a list of deals with name, amount, and status — not the entire object with 40 fields. This reduces traffic and parsing time by 3x. The pattern is described on Wikipedia.
Why BFF is Better Than Direct Connection
BFF isolates CRM specifics: when switching CRM (amoCRM → Bitrix24), you only rewrite the adapter, not the entire app. Additionally, BFF allows versioning the API for the mobile client without affecting other systems. Our engineers use Kotlin/Spring Boot or Go, depending on load. Typical BFF implementation is 100-150 lines of code per entity, speeding up development by 40%.
How to Ensure Offline Mode?
A sales rep drives to a client — internet drops. They make a call, record agreements in the app, data must be sent to CRM when network returns. On Android we use WorkManager with NetworkType.CONNECTED, on iOS — BGProcessingTask. Local storage (Room or Core Data) buffers changes; when connection is restored, the worker sends packets to BFF.
Conflicts: if a manager changed the deal via web while a mobile user was offline, data diverges. A simple strategy is server-wins (CRM overwrites local). More complex: versioning via updated_at timestamp with user choice on conflict. The chosen strategy affects implementation complexity by 20-30%.
Step-by-step guide: setting up background sync on Android
- Add dependency
androidx.work:work-runtime-ktx:latest. - Create class
SyncWorkerextendingCoroutineWorker. - In
doWork(), perform request to BFF and update local DB. - Schedule task via
WorkManager.enqueueUniquePeriodicWorkwith 15-minute interval. - Constrain execution to network:
Constraints(requiredNetworkType = NetworkType.CONNECTED).
Notifications About Changes
CRM changes deal status — the app must know. Compare methods:
| Method | Latency | Complexity | Server Load |
|---|---|---|---|
| Webhook → Push | 1-5 s | Medium | Low |
| Polling | 1-10 min | Low | High |
| WebSocket | <1 s | High | Medium |
WebSocket has 10x lower latency than polling but requires persistent connection. For most CRM scenarios, polling with a 1-2 minute interval strikes a good balance. Webhook → Push is preferred if CRM supports external callbacks.
Typical Entities and Mapping
Each CRM calls objects differently. Mapping in BFF:
| Standard Entity | amoCRM | Bitrix24 | Salesforce |
|---|---|---|---|
| Deal | Lead/Opportunity | deal | Opportunity |
| Contact | Contact | contact | Contact |
| Company | Company | company | Account |
| Task | Task | task | Task |
A unified model in the app (Deal, Contact, Company) with adapters per CRM in BFF — allows supporting multiple CRMs or switching CRM without rewriting the client. Budget savings on re-integration up to 60%.
What Is Included?
- Detailed analysis of integration scenarios (sync, notifications, offline).
- BFF design with documented API (Swagger/OpenAPI).
- Implementation of adapters for 1-3 CRMs (additional ones by agreement).
- Offline mode and background sync setup.
- Push notification integration (FCM/APNs).
- Testing on real scenarios (App Store Review Guidelines, Google Play).
- Handover of access and maintenance instructions.
Timelines and Guarantees
Basic integration with one CRM via BFF, CRUD operations, offline buffer: 2-4 weeks. Adding push notifications, conflict resolution, multi-CRM support: plus 1-2 weeks. Cost is estimated individually.
Our experience: 5+ years in mobile development, 30+ implemented CRM integrations. We guarantee stable operation post-launch. Get a consultation — contact us. Order a free integration audit — we'll estimate timelines and cost.







