Home/Features/Android App

Mobile

VGraple CRM Android App

Run WhatsApp conversations, leads, appointments and campaigns from Android, live on the Play Store, with an offline-first inbox and WhatsApp-style push notifications.

By Chirag Darji · Updated 26 Aug 2026 · 11 min read

Plans: All plans. The app itself is free to install; it uses your organisation's existing plan and seat limits, the same agent count and conversation quota as the web app.

On this page
  1. What you get
  2. How it works
  3. What is native, and what opens through the bridge?
  4. How does the offline-first inbox actually work?
  5. How do push notifications behave, and why data-only?
  6. How do over-the-air updates work?
  7. How does session security differ from the web app?
  8. What Android permissions does the app actually request?
  9. With VGraple CRM's app vs a browser tab on your phone
  10. Who uses it
  11. What Meta allows
  12. Plans and limits
  13. Recent improvements
VGraple CRM Android app inbox

In short

  • Inbox, CRM (leads and pipeline), Campaigns and a native More menu, live on the Play Store as VGraple CRM
  • An offline-first SQLite mirror of your recent conversations means the inbox renders instantly, even before the network responds
  • Push notifications are data-only (FCM) rendered through Notifee, with separate channels for messages and system alerts
  • Builders and billing (Flow Builder, most of Settings, Plan checkout) open through a secure in-app bridge into the same web app, not a separate native rebuild

The VGraple CRM Android app puts the shared inbox, the leads pipeline, appointment bookings and campaign reporting on your phone, live on the Play Store, with an offline-first local cache so recent conversations open instantly and push notifications that behave the way WhatsApp's own app does. What changes for a business is that an owner or a floor agent is not chained to a desktop to answer a customer or check whether yesterday's broadcast actually landed; the parts of the job that happen in the moment, replying, checking a lead, confirming a booking, work from a phone in your pocket.

What you get

  • Four bottom tabs: Home, Inbox, CRM, Campaigns, plus a More menu for everything else
  • An offline-first SQLite mirror of your 500 most recent conversations and their last 500 messages each, so the inbox renders instantly
  • Data-only FCM push notifications rendered by Notifee, with separate channels for messages and system alerts
  • Native screens for Appointments, Comments, Forms, WhatsApp Groups, Catalog, Automations (pause/resume), Audit and Support
  • A secure in-app bridge that opens the Flow Builder, most of Settings, and billing checkout inside the same authenticated web app
  • Over-the-air JavaScript updates that apply on next launch, without a Play Store review for non-native changes

How it works

  1. Install from the Play Store. Search "VGraple CRM" or use the direct listing. The app requires Android 7.0 (API 24) or above and logs in with the same account you use on the web.

Notification settings in VGraple CRM for push, email and WhatsApp alerts

  1. Land on the Inbox, CRM, or Campaigns tab. The Inbox tab lists conversations across every connected channel; the CRM tab shows your leads pipeline as a mobile-friendly board; Campaigns shows broadcast reports with delivery funnels.

  2. Open a conversation for an instant, cached view. A conversation you have opened before renders from the local SQLite mirror the moment you tap it, then reconciles with the server in the background; a brand-new conversation loads over the network as normal.

  3. Reply, and the message sends through the same tracked path as the web app. Sending, resolving, assigning, tagging and internal notes all work the same way as the web inbox; nothing about how a message is recorded or delivered changes because it came from the app.

  4. Open More for everything else. Appointments, Comments, Forms, WhatsApp Groups, Automations, Catalog, Settings, Plan and billing, Audit and Support all live here, grouped by whether they are day-to-day tools or account-level configuration.

  5. Tapping Flows, most of Settings, or Plan and billing opens the real web app. Rather than a separate native rebuild, the app hands off a one-time secure token to open the exact same page you would see on the web, inside an in-app browser (Flows, most Settings pages) or the system browser (billing checkout), fully logged in, with no second login step.

What is native, and what opens through the bridge?

The app draws a deliberate line: things you do quickly and often are native screens; things you build, configure once, or pay for stay on the web page that is already built for them, opened securely from inside the app.

The VGraple CRM dashboard with contact and conversation counts, active flows and messages sent this month

AreaNative screenOpens via bridge
Inbox, CRM, CampaignsYes
Appointments, Comments, Forms, WhatsApp Groups, CatalogYes
AutomationsYes (pause/resume only)
Audit log, Support desk, Org switcherYes
Settings: profile, team, channels, notificationsYes
Flow Builder canvasYes, in-app browser
Settings: WA Flows, webhooks, API keys, most integrationsYes, in-app browser
Plan and billing checkoutYes, system browser
WhatsApp connect (Embedded Signup), Meta Pages/Instagram connectYes, system browser

The bridge itself is not a generic webview pointed at the site; a server-side endpoint mints a short-lived, single-use token tied to your existing app session, the app exchanges it for a fresh web session cookie scoped to exactly one allowed page, and the in-app browser is locked to the CRM's own domain so nothing else can load inside it.

Example

Tapping "Flows" opens the Flow Builder canvas exactly as it looks on a desktop browser, drag-and-drop nodes and all, inside the app, because rebuilding a drag-and-drop canvas as a second native implementation would mean maintaining two flow builders that could drift apart.

How does the offline-first inbox actually work?

Every successful network response, an initial load, a page of older messages, a realtime push, gets mirrored into a local SQLite database on the device, not as a source of truth but as a fast, bounded cache: the newest 500 conversations and the newest 500 messages per conversation. The inbox and chat screens read from this local mirror first, so opening a conversation you looked at recently is instant, then the screen reconciles with whatever the network returns.

This is the same model messaging apps like Telegram and Signal use: the server owns the full history, and the local database exists to make the screens you actually look at feel instant, not to replicate your entire account onto the device. Scrolling past the cached window for an old conversation pages in older messages from the API the same way it would if there were no local cache at all.

How do push notifications behave, and why data-only?

Notifications arrive as FCM data-only payloads (no top-level notification field), which forces every message to invoke the app's background handler regardless of whether the app is open, backgrounded, or fully closed, and lets the app control the notification's layout and behaviour precisely instead of relying on whatever the operating system does with a generic push. Two channels exist on Android: Messages, for new conversation activity, and System Alerts, for account-level issues like an expired channel token or a failing background job.

The app mirrors WhatsApp's own notification discipline: a conversation you have open on screen never raises a notification for a new message in it, and any pending notification for a conversation clears the instant you open that chat, including the case where a message arrived while the app was backgrounded on that exact chat and you return to it without it re-registering focus.

How do over-the-air updates work?

Most releases are JavaScript-only changes, a UI fix, a new screen, an adjusted flow, and ship through Expo's update service rather than a full Play Store release. The app checks for an update on launch and applies it automatically, so a fix can reach every installed device within a normal usage cycle without waiting on Play Store review turnaround. A change that touches native code, a new permission, a new native module, a Gradle or Android manifest change, still requires a full version bump and a new Play Store release, since that is the boundary Expo's own update model draws.

How does session security differ from the web app?

The app authenticates with a bearer token rather than a browser cookie, and its session policy is tuned for a device rather than a browser tab: it does not enforce the web app's 24-hour inactivity timeout, since the phone's own lock screen and secure keystore are the trusted factor and a messaging app on your phone is expected to stay signed in across normal idle gaps. Instead, a bearer session has a 30-day rolling lifetime that extends every time the app is actively used, and expires on its own if the device goes 30 days without a request, the same expectation WhatsApp, Gmail or Slack's own mobile apps set.

Note

Two-factor authentication, when enabled on your account, still applies to the app the same way it applies on the web; the app's longer idle tolerance covers routine day-to-day use, not the login step itself.

What Android permissions does the app actually request?

Three: notifications (so a new message or alert can be shown), vibrate (for the notification's haptic buzz), and receive-boot-completed (so a scheduled reminder or pending notification survives the phone restarting). Just as deliberate is what the app blocks itself from requesting: photo and video media access, the system-alert-window overlay permission, and Google's advertising ID, none of which the app has a legitimate reason to ask for, so it declares them explicitly blocked rather than leaving the door open for a future dependency to request them unnoticed.

Example

A salon owner installing the app for the first time sees only a notification permission prompt, not a request to access their phone's photo gallery or contacts, because the app never needs blanket media access; sending an image in a chat uses a scoped, one-time file picker instead.

With VGraple CRM's app vs a browser tab on your phone

A mobile browser tabVGraple CRM Android app
Opening a recent conversationFull network round trip every timeInstant from the local SQLite mirror, then reconciles
NotificationsBrowser push, if enabled at allData-only FCM through Notifee, WhatsApp-style focus behaviour
Session lengthStandard web session policy30-day rolling bearer session tuned for a device
Getting fixesReload the pageAutomatic over-the-air updates on launch
Builders and billingSame page, full functionalityOpens the identical page through a secure bridge, no separate login

Who uses it

Salons and spas have the owner check the CRM tab between clients to confirm a new lead was assigned, without sitting at the front-desk computer. See WhatsApp CRM for salons.

Real-estate agencies have field agents reply to buyer questions from the Inbox tab while showing a property, with the same conversation history and template access as the desk-bound team. See WhatsApp CRM for real estate.

Clinics use the Appointments screen to confirm same-day reschedule requests from a phone at the reception desk without a dedicated workstation. See WhatsApp CRM for clinics.

Coaching institutes have counsellors check the Campaigns tab after a promotional broadcast to see delivery and reply numbers before their next parent call. See WhatsApp CRM for coaching institutes.

What Meta allows

Meta policy

Meta does not distinguish between a web client and a mobile client of the WhatsApp Business Platform; the same messaging tiers, the 24-hour customer service window, template rules, and opt-out handling apply identically to a message sent from the app as one sent from a browser, because both go through the same Cloud API connection on the server side.

The app has no separate WhatsApp connection of its own; every send, whether typed on a phone or a desktop, goes through your organisation's one WhatsApp Business Account and is paced, tracked and logged by the same server-side systems described on the broadcasts and delivery protection pages.

Plans and limits

The app is free to install and uses your organisation's existing plan: the same agent seat count, conversation quota and feature gates (Analytics from Starter, the AI assistant from Growth) apply whether a team member signs in from the app or the web. There is no separate mobile-only pricing tier or app-specific limit.

Recent improvements

  • 2026-08-20: Inbox message formats (reactions, quoted replies, voice notes, stickers, locations, contact cards) reached full parity with the web inbox, so a message type an agent sees on desktop renders correctly on the app.
  • 2026-08-13/14: The realtime sync layer was rebuilt around a single funnel that turns server-sent events into both the React Query cache and the SQLite mirror, closing gaps where a push event could update one but not the other.
  • 2026-07-18: A round of mobile UI and UX fixes addressed accent-colour and layout nuances found in a full audit of every native screen.
  • 2026-07-17: Turnstile bot-verification support was added to the app's login and OAuth bridge flows, matching the protection already in place on the web login.

Frequently asked questions

Is the VGraple CRM Android app live on the Play Store?
Yes. Search "VGraple CRM" on the Play Store or use the direct listing link. It requires Android 7.0 (API 24) or above.
What can I do in the app that I can also do on the web?
The Inbox, CRM (leads and pipeline stages), Campaigns (broadcast reports), Appointments, Comments, Forms, WhatsApp Groups, Catalog, and a native Audit log and Support desk. Automations lets you pause or resume existing lead rules and chatbots from your phone.
What stays web-only on the app?
Building things, not using them. The Flow Builder canvas, most of Settings (channel connection, WA Flows, webhooks, API keys), and the billing checkout page open inside the app through a secure bridge into the same web application rather than being rebuilt as native screens, since a drag-and-drop flow canvas or a payment form works better as the real web page than as a native reimplementation.
Does the app work offline?
The inbox keeps a local SQLite mirror of your most recent 500 conversations and the most recent 500 messages per conversation, so recently viewed chats render instantly even before a network request completes. The server remains the source of truth; the mirror is a fast cache, not a full offline copy of your entire history.
How do push notifications work?
Notifications are sent as FCM data-only messages, not standard push notifications, and rendered on-device by Notifee. This means the app controls exactly how a notification looks and behaves (including which chat it silences while you have that conversation open) rather than relying on whatever the OS does with a generic push payload.
Will I get duplicate notifications for a chat I already have open?
No. The chat screen registers itself as the active conversation on focus; a message that arrives for that conversation is not shown as a notification while you are looking at it, and any pending notification for that chat clears the moment you open it, matching how WhatsApp itself behaves.
Does the app update automatically without a Play Store update?
Small JavaScript-only changes ship as over-the-air updates through Expo's update service and apply the next time the app checks on launch, no Play Store review needed. A change to native code (a new permission, a new native module) still needs a full Play Store release with its own version code.
Is my session on the app as secure as the web app?
The app uses a separate bearer-token session model tuned for a mobile device rather than a browser: it does not enforce the web's 24-hour inactivity timeout, since a phone's lock screen and secure storage are the trusted factor, but it does expire an inactive device after 30 days and rotates its own token as it is used.
Can I use the app to send broadcasts, or only view their results?
The Campaigns tab is built for reviewing results, funnel stats and delivery status on campaigns already created. Building and launching a new broadcast, with its audience builder and template mapping, is one of the flows still handled through the web app or the in-app bridge rather than a fully native composer.
What Android permissions does the app request?
Notifications (to show message alerts), vibrate, and receive-boot-completed (so scheduled reminders survive a phone restart). It explicitly blocks itself from requesting photo/video media permissions, the system-alert-window overlay permission, and the advertising ID, permissions the app has no legitimate use for.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.