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:

  1. Configure Firebase Cloud Messaging in your Flutter build.
  2. Set FCM_SERVER_KEY on the backend.
  3. 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).