Install & connect the mobile app
The BottleCRM mobile app is a Flutter application that ships in the same repository (Django-CRM/mobile/) and talks to your backend over the same JSON API.
Building from source
cd Django-CRM/mobile
flutter pub get
flutter run # dev build on a connected device or simulator
For production builds:
flutter build apk --release # Android
flutter build appbundle --release # Android App Bundle
flutter build ios --release # iOS (on macOS)
Connecting to your backend
On first launch the app asks for the server URL. Enter the base URL of your CRM (e.g. https://crm.acme.com) — the app appends /api/ itself.
Then sign in with the same options as the web app:
- Google OAuth
- Magic link (the app opens the link from the email and completes the exchange)
Tokens are stored in the device's secure storage (Keychain on iOS, Keystore on Android) and refreshed automatically.
Switching organizations
Tap the avatar in the top-right of the home screen → Switch organization. This calls the same POST /api/auth/switch-org/ endpoint the web app uses and replaces the local token pair.
Offline behaviour
The app caches recently-viewed records for offline reading but does not support offline writes — every create/edit requires a live connection so the backend can apply tenant-scoped validation.
Push notifications
To enable push:
- Configure Firebase Cloud Messaging in your Flutter build.
- Set
FCM_SERVER_KEYon the backend. - The app registers its FCM token on login via
POST /api/devices/register/.
The backend then sends push notifications on the same events that fire webhooks (assignments, escalations, mentions).