CRM Integration with Mobile Applications
Mobile app for sales or service without CRM integration—isolated tool where managers manually transfer data. Phone calls, tasks, deals—all live in CRM, mobile app must fetch and send this data in real-time, not batched daily.
Direct API vs Middleware
Direct CRM API connection from mobile—bad practice. API keys in app (easily extracted via jadx or class-dump), no business logic control, no caching.
Correct scheme: mobile app → own API (BFF, Backend for Frontend) → CRM. BFF authenticates with CRM via OAuth 2.0 or API key, stores secrets server-side, transforms data for mobile client needs.
BFF returns only needed data: deal list with name, amount, status—not full 40-field deal object. Reduces traffic and parsing time on mobile.
Offline Mode and Sync
Sales rep drives to client—internet gone in suburbs. Makes call, fixes agreements in app. Data should reach CRM when connection returns.
On Android—WorkManager with NetworkType.CONNECTED. On iOS—BGProcessingTask. Local storage (Room/Core Data) buffers changes. On connection restored, worker reads unsent records and sends to BFF in batches.
Conflicts: manager in office changes deal via CRM web, mobile user changes same deal offline, connection returns. Conflict occurs. Simple strategy: server wins (CRM data overwrites local). Complex: versioning via updated_at timestamp, user chooses version on conflict.
Change Notifications
CRM changes deal status—mobile app learns about it. Options:
Webhook → Push: CRM sends webhook to BFF on event (deal changed, new lead). BFF sends FCM/APNs push to user device. Low latency, requires webhook setup in CRM.
Polling: app queries changes every N minutes via GET /changes?since={timestamp}. Simpler, more server load. For CRM data (not real-time)—acceptable.
WebSocket: on open app—subscribe to events. When closed—push. Best UX, complex implementation.
Typical Entities and Mapping
Each CRM names standard objects differently. Building mapping layer in BFF:
| Standard | amoCRM | Bitrix24 | Salesforce |
|---|---|---|---|
| Deal | Lead/Opportunity | deal | Opportunity |
| Contact | Contact | contact | Contact |
| Company | Company | company | Account |
| Task | Task | task | Task |
Unified model in mobile (Deal, Contact, Company) with adapters per CRM in BFF—allows supporting multiple CRM or switching without rewriting client.
Timeline
Single CRM integration via BFF, basic CRUD, offline buffer: 2-4 weeks. Add push notifications, conflict resolution, multiple CRM support: plus 1-2 weeks. Cost calculated individually.







