Helpdesk Mobile: an open source Android app for Frappe Helpdesk

Frappe Helpdesk, now on Android

Frappe Helpdesk works perfectly well in a mobile browser; as long as you enjoy pinch-to-zoom.

We use Helpdesk at BWH for our support workflow, so I ended up building a native Android client for our
own use. It has reached the point where I figured it might be useful to others in the Frappe community too.

What it does

  • Ticket list with filters and search

  • Full ticket and conversation view

  • Replies, comments, and canned responses

  • Dashboard with ticket details and SLA status

  • Analytics and agent leaderboard

  • Push notifications

How it works with your Helpdesk site

The app uses the standard Frappe REST API, so there are no custom Helpdesk endpoints required.
A few parts turned out to be more interesting than expected:

Login

OAuth Authorization Code + PKCE is used for login, so the app never sees the user’s password and doesn’t ship a client secret. The OAuth Client ID is fetched from the site at runtime, so there’s nothing deployment-specific hardcoded into the app.

API key + secret authentication is still supported for sites where that’s preferred.

Push notifications

Frappe’s notification hooks run on the site that owns the ticket, so simply putting a relay somewhere else doesn’t work particularly well.

The solution is a small companion app called helpdesk_push, which mints the FCM v1 token directly on the bench. This means there’s no Cloudflare Worker or other third party sitting in the notification path.

Offline cache and counts

The app locally caches the newest few thousand tickets so lists open instantly and remain useful with an unreliable connection.

Counts, however, always come from the server. Our Helpdesk instance has around 61k tickets, and using locally cached data for things like total open or resolved counts would eventually give you numbers that quietly look correct but aren’t.

Agent attribution

Writes are performed as the agent selected in the app’s settings, so replies and comments don’t all end up being attributed to a single API user.

Try it

APK: Release v1.2.0 · bwhtech/helpdesk_mobile · GitHub

Source: bwhtech/helpdesk_mobile · GitHub

Push companion: kaulith/helpdesk-push · GitHub

One thing to know before installing: the account needs to be a System User.

Helpdesk blocks most API paths for website users, so an agent with only a portal login will hit Access not allowed for this URL during sign-in.

And yes, I discovered that the slow way.

What’s next?

Many more features, small enhancements, and an iOS app are also on my list.

Issues, feedback, and PRs are very welcome.

Curious to hear from the community: which Frappe apps do you wish had a good mobile client?

This looks really useful for teams that rely on Frappe Helpdesk from their phones. The offline ticket cache and server-side counts are especially good choices, since keeping large ticket lists locally can easily lead to outdated numbers. I also like the OAuth PKCE approach because agents can sign in without giving the mobile app their password. The System User requirement is worth knowing before trying the APK.

Thanks

Could you pls guide on how to setup OAuth Client ID on frappecloud site?

It’s a convenient and efficient solution for IT teams and employees who need to raise and manage IT support tickets directly from their mobile devices.

I am facing this error.

@UsmanFarooq the site rejects the sign in because the OAuth Client’s redirect URIs field doesn’t contain the app’s callback. Frappe checks that field only, not default redirect URI, and the match is exact.

Open the OAuth Client in desk and set both redirect URIs and default redirect URI to:

helpdesk://oauth/callback

Example Ref: :down_arrow: