How the Frappe HR mobile app fits leave, attendance and expense approvals
If your HR or platform team wants employees and managers to approve leave, check in and submit expenses from a phone without buying or maintaining a separate mobile product, the Frappe HR progressive web app is the piece to plan for. Frappe HR is the open-source HRMS that runs on ERPNext, and its mobile experience is served from the /hrms path of your ERPNext site rather than from a store listing. Users open that address in a phone browser, add it to their home screen on Android or iOS, and sign in with the same accounts that exist on the desktop. Because the app is delivered from your own site, it sits inside the hosting, identity and access decisions you already make for ERPNext.
This matters most for field staff, shift workers and managers who approve requests while away from a desk. Field teams need to record attendance where they work, shift workers need check-ins that match their rosters, and managers need to clear leave and expense queues between meetings. Before rollout, confirm with your implementation partner which of these flows your Frappe HR version supports on mobile, how check-in location is captured on each phone platform, and which push notification behavior applies to your browsers. Those answers depend on your version and device mix, so verify them in a test site rather than assuming parity with the desktop screens.
The decisions to make early are who gets mobile access, which approval steps must stay on the desktop for audit or policy reasons, and how the site is reached from outside the office network. Mobile users will authenticate against your ERPNext site, so the login policy, two-factor settings and any single sign-on you configure apply to them too. Plan a pilot with one department that covers a shift team, a field team and a manager, and record what the pilot shows about check-in accuracy and approval turnaround before wider release.
Which configuration choices affect the mobile rollout
This table compares the four decisions that shape the Frappe HR mobile rollout: login method, roles and approver permissions, phone check-in with location, and hosting. Read each row for when the option fits and what to confirm in your ERPNext version before you commit. The main takeaway is that login and hosting choices are hard to reverse, so settle them before employees install the app.
| Decision | Option and when it fits | Trade-off | What to confirm in your version |
|---|---|---|---|
| Login method | Password login fits small pilots with few employees and no existing directory | Users manage separate passwords, and offboarding depends on someone disabling the account in ERPNext | Confirm how the Frappe HR app behaves on your release when a user has two-factor authentication or a login policy enabled |
| Login method | Social Login Key with your identity provider fits organizations that already run single sign-on for staff | Setup depends on the provider's OAuth or OpenID Connect settings, and mobile sessions must follow the same policy as the desktop desk | Confirm the provider is listed in Social Login Key and test sign-in from an installed app on both Android and iOS |
| Login method | LDAP fits organizations whose employee directory is Active Directory or OpenLDAP | Group mapping to ERPNext roles happens at each login, so a role change in the directory shows up on the next sign-in | Confirm the LDAP group-to-role mapping on a test site and check the SSL/TLS option your directory requires |
| Roles and approvals | Employee role only, with leave and expense requests submitted by staff | Employees see only their own records, which limits self-service approvals and reporting | Confirm the Employee role and the leave and expense approver fields on the Employee record for your version |
| Roles and approvals | Leave approver or expense approver assignments for line managers | Approvers need correct reporting lines in HR records, or approval requests route to the wrong person | Confirm approver assignment rules and who can see team records before the first approval cycle |
| Phone check-in and location | Check-in from the mobile app for staff without fixed desks or biometric devices | Location capture raises consent, privacy and accuracy questions, and it does not replace a device punch log | Confirm whether the app requests location, how it is stored, and what your HR policy and local labour rules require |
| Phone check-in and location | Check-in only at fixed sites or through biometric or RFID devices | Fewer privacy questions, but remote and field staff need another way to record attendance | Confirm how check-in records feed Auto Attendance and shift rules for your roster |
| Hosting | Frappe Cloud fits teams that want Frappe to run the platform, with plans listed on the pricing page | Server Scripts are not allowed on Frappe Cloud public shared benches, which can limit custom mobile logic | Confirm the plan, support subscription and whether your custom approval logic needs Server Scripts |
| Hosting | Docker Compose or bench fits organizations that must keep data inside their own network | Your team owns upgrades, backups, TLS, push notification setup and HTTPS for the site | Confirm your reverse proxy, TLS certificate and the site path /hrms used by the progressive web app on your release |
What happens when an employee checks in or submits a request
A check-in, leave application or expense claim is stored as a Frappe HR document the moment the employee submits it from the mobile app, and the document then follows the approval chain configured for its type. A check-in creates an Employee Checkin record linked to the employee, which feeds attendance. A leave application is a document with a status that moves from open to approved or rejected, and an expense claim follows the same pattern before it posts payable entries to ERPNext accounts. The approver is not a fixed person on the app. It is whoever the document's approval setup resolves to: the leave approver on the employee record, the expense approver on the employee or department, or the role named in the approval rules. If those fields are empty or point to someone who has left, the request waits with no obvious owner.
That is why approver roles, leave policies and expense approvers must be configured before any pilot user logs in. Confirm that every employee in the pilot has a leave approver and an expense approver, that the leave types and policies they will request are assigned, and that the approval roles exist and are held by active users. Test each path end to end with a dummy employee and an approver account: submit, approve, reject, and check the resulting attendance, leave balance or accounting entry. Problems found in a pilot are usually missing approver fields, not app faults, and fixing them after launch means chasing individual records.
Location data is personal data, and the rules for when it is captured must be settled before rollout. Decide with the HR and legal owners whether location is recorded on check-in only, on every punch, or not at all, whether employees can decline and how that is handled, how long the data is kept, and who can read it. Check whether your jurisdiction or works council requires notice or consent, and record the answer in the employee privacy documentation. Ask your implementation partner to show exactly which field stores location and which roles can see it, then confirm those roles with your HR owner before the first employee checks in.
Setup sequence for the mobile rollout
This sequence takes the Frappe HR progressive web app from a confirmed version and secure domain to a tested pilot on one Android and one iOS device, with each step closed by a check you can verify. It gives the team a clear go or no-go point before any employee is asked to install the app.
Confirm versions against the supported list
The platform owner checks the ERPNext and Frappe HR versions in use against Frappe's supported versions page before anything else is configured. Confirm that the site runs a listed version and plan the minor release cadence your team will follow, since both supported major versions receive frequent minor releases. The step is done when the version numbers are written in the rollout record and the team has confirmed that the support status fits the planned go-live window. If the site is on an unlisted version, stop here and plan the upgrade first.
Serve the site over HTTPS on a stable domain
The infrastructure or platform team puts the site behind TLS on a domain that will not change during the rollout, because installed home screen apps and notification subscriptions are tied to the address they were installed from. Test the certificate chain from a phone on the corporate network and on mobile data, and confirm the app path under the site's /hrms route loads without mixed content warnings. The step is complete when the site loads over HTTPS on both test devices with a valid certificate and the domain is recorded in the change log.
Configure login with SSO or LDAP
The identity owner sets up the sign-in method that employees will use on phones, either a Social Login Key for the identity provider you already run or LDAP Settings for Active Directory or OpenLDAP. Confirm how group-to-role mapping applies at each login, because a misconfigured role will hide leave and expense screens from the wrong people. Test with one employee account, one approver account and one HR account. The step is done when all three accounts sign in on both test devices and see only the screens their roles allow.
Load employees, leave types, approvers and claim types
The HR administrator loads employee records, the leave types and leave policies in use, the reporting lines that determine leave and expense approvers, and the expense claim types with their accounts. Import in batches, since the Data Import documentation advises loading only a few thousand records at a time, and check each batch against the source file. The step is complete when a sample of employees shows the right approver, the leave balances match HR's records, and each expense claim type maps to the expected ERPNext account.
Install the app on Android and iOS test devices
The rollout lead installs the progressive web app on one Android device and one iOS device, using the browser steps for adding to the home screen, and records the browser and operating system versions used. Each device should open the app from the home screen icon and not only from the browser tab. The step is done when both devices open the app in standalone mode, sign in with the test accounts and show the employee home screen without layout errors.
Run check-in, leave and expense end to end
The test employee checks in with location enabled, applies for leave, and submits an expense claim with an attachment. The test approver then approves the leave and the claim from the phone, and HR confirms the attendance record, the leave ledger and the claim status on the desktop. Check that the location captured at check-in matches the expected site and that the approved claim creates the payable entry in ERPNext. The step is complete when every record appears correctly on both sides and no step required a desktop workaround.
Confirm push notifications reach each device
The rollout lead triggers a leave request, an approval and a claim decision, then confirms that each notification arrives on both test devices with the expected content and opens the correct record when tapped. Confirm the notification permission prompts were accepted on each phone, and check whether notifications behave differently when the app is closed. Ask your platform team and Frappe's documentation for the current push notification requirements for each mobile operating system before you widen the pilot. The step is done when every test notification arrives on both devices and the team signs off the pilot.
Security and operating risks for phone access
Phone access puts leave, attendance, location and expense data on devices that leave the office and sign in from many networks. The cards below cover the decisions that connect the web entry point, identity, approver permissions, personal data handling and failed sign-in monitoring, and what to check for each before staff are asked to install the app.
HTTPS and certificate management
The app is served from the /hrms path of your site, so every install and every check-in travels over that address. Decide who owns the TLS certificate, how renewal is automated, and who is alerted when it nears expiry. Confirm that the site redirects plain HTTP to HTTPS and that the certificate chain is trusted on older Android and iOS devices your staff still use. An expired certificate will stop check-ins without a clear error message on the phone.
Session length and lost devices
A phone signed in for weeks is a standing credential for anyone who picks it up. Set the session lifetime with your security team, decide whether employees can see and end sessions from another device, and confirm that a sign-out on the server actually invalidates the token held by the installed app. Write a procedure for reporting a lost or shared phone to HR or IT so that the account can be locked the same day. Test this on a spare device before go-live.
Identity provider and LDAP group mapping
If sign-in goes through LDAP or a social login provider, the role a user receives in ERPNext depends on the groups they hold in the directory. Review which directory groups map to employee, manager and HR roles, and remove any group that was never meant to grant approval rights. Confirm when mappings are refreshed, since group changes in the directory must reach the site before a leaver loses access. Document who approves changes to the mapping.
Least-privilege approver access
A manager who approves leave and expenses on a phone should see only the reports and departments they manage. Check the user permissions and approver settings for leave applications and expense claims, not just the app's visible screens. Test with a manager account that a request from another department cannot be opened by ID. Limit who can change approver assignments, because an approver who can reassign their own approvals can approve their own claims.
Location and personal data in logs and notifications
Check-in location and push notifications both carry personal data that can end up in places with weaker controls. Decide whether precise coordinates are needed or whether a site or zone check is enough, and how long location records are kept. Review server and error logs for employee names, leave reasons and amounts, and mask or shorten them where possible. Confirm what text appears on a locked phone screen, since notification previews are visible to anyone nearby.
Monitoring failed logins
Repeated failed sign-ins from one account or many accounts from one address often reveal password spraying or a stale credential being retried. Ask whether your ERPNext and proxy logs record failed attempts with timestamp, account and source address, and who receives alerts. Set a threshold with your security team and agree how a locked account is unlocked. Check that logs for the /hrms path are collected by the same pipeline as the rest of the site.
How the mobile setup differs by hosting environment
Frappe Cloud is the managed option, and it shapes the mobile rollout more than any other choice. Frappe operates the bench, the servers and the upgrade path, so your team works through the site settings and the Frappe Cloud dashboard rather than the server. Mobile access depends on the site being reachable over HTTPS on a domain you can point to, and on login settings that match the devices your staff use.
- Domains and TLS: You can attach a custom domain to the site and rely on the platform for the certificate, so confirm the domain name before staff install the app.
- Identity configuration: Social Login Key and LDAP settings are available through the site configuration, so plan which sign-in method the mobile app will use.
- Custom scripts: Server Scripts are disabled by default from version 15 and Frappe Cloud public shared benches do not allow them, so any approval logic must be built in a supported way or on a dedicated bench.
- Versions and support: Confirm the ERPNext and Frappe version on your site against the supported versions page, and confirm which Frappe Cloud support plan covers your site.
- Dedicated options: If you need Server Scripts or custom apps, ask whether a dedicated bench is required and what it costs under your quote.
Before the pilot, confirm the site domain, the sign-in method, whether Server Scripts are needed, and the support plan that matches your version.
A self-managed Docker Compose deployment based on frappe_docker gives your team control of the containers, the reverse proxy and the certificates. The project provides production images and Compose files with services for MariaDB, Redis, background workers, the scheduler, Socket.io and Nginx. Its single-file demo setup is meant only for short-lived evaluation, so the pilot should use the production layout with your own domain.
- Domains and TLS: Your team sets the public hostname in the proxy configuration and manages the certificate, which must be valid for the address staff type into the app.
- Identity configuration: You configure LDAP or Social Login Key on the site, and you own the callback URLs that the identity provider must allow.
- Custom scripts: You decide whether Server Scripts are enabled on the site, using the server_script_enabled setting, and you control who can change them.
- Workers and scheduler: Notification and approval delivery depend on background workers and the scheduler, so confirm both run in your stack.
- Upgrades: You own image tags and version changes, so plan them against the release cadence for your major version.
Before the pilot, confirm the public hostname and certificate, the identity callback settings, the server_script_enabled value and that background workers and Socket.io are running.
A bench-based install on Linux is the most flexible route and the one with the most operational work. The bench command line tool creates the sites, installs apps and runs the processes, so your team controls the Python environment, the web server and every configuration file. This model suits teams that need custom apps or scripts, but it also places patching, backups and process supervision on your staff.
- Domains and TLS: You configure the web server, the site name and the certificate, and you control the redirect and HSTS settings.
- Identity configuration: LDAP and Social Login Key are set on the site, and you manage secrets for the providers in your own environment.
- Custom scripts: Server Scripts are available if you enable server_script_enabled, and custom apps can carry the approval logic you need.
- Processes: Workers, the scheduler and Socket.io must be supervised, or push notifications and approvals may stop without a visible error.
- Upgrades: You run the update commands and test each step on a copy of the site before production.
Before the pilot, confirm the site name and certificate, the server_script_enabled setting, the supervision of background processes and a tested backup of the site.
Limits to confirm before promising the app to staff
The supplied sources establish how ERPNext and Frappe HR are versioned and hosted, but they do not settle how the mobile progressive web app behaves on each phone, browser and network. Each card below names one gap, why it affects staff adoption, and what to check on a test device before you commit to a rollout date.
Install steps on each platform
The install path is the site's /hrms route, but the exact prompts, menu labels and icons differ between Android browsers and iOS Safari, and they change with browser releases. Install the app on a current and an older device for each operating system your staff use. Record the exact steps, confirm the home screen icon and name, and check whether the app opens full screen or inside a browser tab.
Push notification coverage
Whether push notifications arrive depends on the operating system, the browser, the notification permission the user grants and the server-side configuration of your site. Do not assume parity across platforms. On each device and browser combination your staff use, submit a leave request and an expense claim, then confirm that the approver receives a notification and that the employee receives the decision.
Offline behavior and sync
Check-in and approval actions may fail, queue or lose data when the connection drops. The sources do not describe offline storage or retry behavior for this app. On a test device, turn on airplane mode, record a check-in, then restore the connection and confirm the punch appears once in the attendance records with the correct timestamp.
Location accuracy across devices
Check-in with location depends on what each phone reports, including GPS availability indoors, permission refusals and coarse positioning. Accuracy will vary between handsets and between buildings. Test check-in at each site staff will use, from inside and outside the building, on several device models. Compare the recorded coordinates with the known site position and decide whether a geofence or a fallback method is needed.
Mobile screens for each action
Not every leave, attendance and expense action may be available on the mobile screens, and some may open the desk interface instead. Build a matrix that lists each action your policy requires, such as applying for a leave type, cancelling a request, submitting an expense claim with receipts or viewing a salary-related record, and mark whether it works in the app. Confirm each row on a test account before you publish instructions.
Approval flow against company policy
Approval routing in Frappe HR depends on the approver assignments, leave and expense configuration and the roles on each user account. The mobile app inherits these settings but may not show every step your policy describes. Walk one leave request and one expense claim through every approval level on a test site, including delegation and rejection, and compare each step with the written approval policy before staff depend on the app.
Questions buyers ask before rolling out the Frappe HR app
What does a Frappe HR mobile app rollout cost, and what drives the price?
The price follows from the written scope, not from a standard package. The main cost drivers are the number of features in scope (check-in with location, leave approvals, expense approvals, push notifications), the number of approval flows, how the login is integrated with your identity provider, how much testing is needed across Android and iOS devices and browsers, and where the site is hosted. Each of these is paid as build and test effort, and some items recur, such as hosting, app updates after each ERPNext or Frappe HR release, and support. Ask for a quote that lists each item separately, marks which items are one-time and which recur, and states what is excluded. DeployOpen does not publish a price list.
How long does a pilot of the Frappe HR mobile app take?
The timeline depends on the scope and on how quickly your decisions arrive. The longest items are usually approval design (who approves leave and expenses, and at which thresholds), agreeing the login method, and getting a representative group of employees on test devices. A pilot covering one site, one department and a small feature set moves faster than a company-wide rollout with several approval chains. Ask the partner to show the phases, the decisions needed from your side in each phase, and the acceptance tests that close each phase. The duration should appear in the written scope, not in a verbal estimate.
What must our company provide before the rollout starts?
Most delays come from missing inputs rather than from the technical work. Prepare four things before the build starts: your HR policies on leave types, attendance rules and expense limits as they apply to mobile use; a current approver list for each leave and expense flow, including delegates for absences; access to your identity provider or the accounts the app will sign in with, so the integration can be tested; and a set of test devices covering the Android and iOS versions your staff use. Also name a business owner who can sign off each phase and an HR contact for questions about policy edge cases.
Can an internal administrator roll out the Frappe HR app without a partner?
Yes, a competent ERPNext administrator can install and configure the progressive web app from the site's /hrms path, and Frappe's documentation covers the core setup. The questions to answer honestly are whether your team has spare capacity for testing on both mobile platforms, whether someone can own the approval workflows and permissions, and whether they can support staff after go-live. A partner is most useful for login integration, custom approval flows, and an acceptance test plan that your HR and security teams can sign off. Many organizations split the work: internal staff own policy and day-to-day support, and a partner handles the technical build and testing.
What happens to location data captured at check-in, and who must approve that use?
The app can record location when an employee checks in, so the use of that data is a policy and legal decision before it is a technical one. Your privacy or legal team should decide what location is captured, how precise it is, how long it is kept, who can view it, and whether employees are told and asked for consent where local law requires it. Works councils or employee representatives may also need to be consulted in some jurisdictions. Technically, confirm which data the Frappe HR check-in stores, where it lives in your hosting, what appears in reports, and how access is restricted through ERPNext roles. Document the decision before the pilot begins.
How do we ask a partner for a fixed-scope quote for this work?
Send a written brief that names the platform version and hosting, the features in scope (check-in, leave, expense approvals, push notifications), the platforms to support (Android and iOS), the login method, the number of approval flows and their rules, the test devices and user groups, and the systems that must not change. Ask for deliverables, acceptance criteria, a timeline with phases, the decisions and inputs expected from your side, what is excluded, and which costs recur after go-live, such as hosting and support. DeployOpen plans most engagements as fixed scope, with the scope, deliverables and timeline agreed in writing before work starts, so compare quotes on the same written brief.
How DeployOpen scopes and delivers the Frappe HR mobile rollout
DeployOpen plans, implements, integrates, documents and supports self-hosted open-source platforms inside your own infrastructure, including Frappe HR on ERPNext. For the mobile app, we agree the rollout scope in writing first, then build and test the installation path, approval flows and notifications on the devices your staff actually use.
How we scope
- We confirm which Frappe HR roles will use the app, such as employees, line managers and HR approvers, and which leave, attendance and expense flows each role needs.
- We check the ERPNext and Frappe HR versions in use and whether the site is hosted on Frappe Cloud or your own servers, because that affects installation and push options.
- Engagements are fixed-scope, so the written scope lists the devices, operating systems, workflows and deliverables covered before any work starts.
How we build
- We configure the app's access over the site's /hrms path, test installation on Android and iOS, and document the steps each user follows to add it to their home screen.
- We test check-in with location on representative devices, including how the app behaves when location permission is denied, and record the settings needed for your policy.
- We test leave and expense approval routes end to end, and confirm which push notifications fire, to whom, and whether they depend on your mail or push configuration.
How we hand over
- We provide written installation guides for employees and an administrator runbook covering site settings, approver setup and notification checks.
- We walk your HR and IT owners through a test pass of each approval flow, so they can confirm results on their own devices before go-live.
- We document known device limits and the open items you need to confirm with your vendor or internal security team, so the handover is complete.
How we support
- Ongoing support, upgrades and testing of the mobile rollout are available as a retainer, sized to the scope agreed for your organization.
- When Frappe HR or ERPNext releases a new version, we can retest the install path, check-in, approvals and notifications before you upgrade your site.
- We review access settings and notification behavior after go-live changes, and record each change so your team can audit the configuration later.

