- Home
- Apps
- SaaS Tools
- Push Notifications (Web & Mobile/FCM) for ERPNext
Illustrative previewA build-to-order ERPNext app that fires targeted web push and Firebase Cloud Messaging (FCM) mobile push from
`hooks.py` doc events, scheduler jobs, and audience-segmented campaigns.
ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 bench.
What is Push Notifications (Web & Mobile/FCM) for ERPNext?
A build-to-order ERPNext app that fires targeted web push and Firebase Cloud Messaging (FCM) mobile push from `hooks.py` doc events, scheduler jobs, and audience-segmented campaigns. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
Your ERPNext portal or companion mobile app has users who need to know the moment something changes: a Sales Order is confirmed, a Support Ticket is reassigned, a payment posts, or a stock item is back in inventory. ERPNext core covers this internally with the Notification DocType and email or in-desk toasts, but that reach stops at logged-in desk users on an open browser tab. There is no native path to a browser-level Web Push notification that lands when the tab is closed, and nothing at all for delivering to a native Android or iOS app via Firebase Cloud Messaging (FCM). Operators who run customer portals or field-service apps on ERPNext end up bolting on a third-party service, which fragments the audience, duplicates the customer list, and cuts the notification off from the exact business events already flowing through the ERP.
ECOSIRE builds a proper Frappe app — its own module, DocTypes, and hooks.py wiring — that closes that gap end to end. On the browser side we register a Service Worker and capture the W3C Push subscription (endpoint plus p256dh/auth keys) against the signed-in user, storing each in a Push Subscription DocType with device metadata and an active flag. On the mobile side we integrate the Firebase Admin SDK server-side, store FCM registration tokens per device, and handle token refresh and invalidation (pruning NotRegistered/Unregistered tokens returned by Firebase so your audience stays clean). A Push Campaign DocType and a Push Template DocType give your marketing and operations teams a place to compose rich pushes — title, body, image, click-through deep link, and CTA buttons — and target them.
Delivery is driven two ways. Event-triggered pushes hang off doc_events in hooks.py (for example on_submit of Sales Order, on_update of Issue) and off scheduler_events for time-based sends like abandoned-cart or renewal reminders; the heavy lifting runs through the Frappe background queue (frappe.enqueue) so a large fan-out never blocks the web worker. Campaign pushes resolve their audience from saved segments — a Push Segment DocType backed by a report query or filter on Contact, Customer, Portal User, or any linked DocType — so a campaign can target "customers in UAE with an open subscription" without hand-built lists. Whitelisted API methods (@frappe.whitelist()) expose subscription register/unregister and a send endpoint over the Frappe REST API for your front-end and mobile clients, all gated by role-profile permissions so only authorized roles can broadcast. Every send is logged in a Push Log DocType with per-recipient status, provider response, and click-through tracking for open-rate reporting.
Because this is build-to-order, nothing ships as a one-click marketplace download. We start with a short scoping call to confirm which ERPNext events matter to you, your Firebase project details, the DocTypes to segment on, and your v15 or v16 target. We then build your version of the app against a staging bench, run UAT with you, and install it on production with a rollback plan. Typical delivery is one working week from confirmed scope, and you receive the full source in a git repository you own, so you are never locked to us.
What you get
- Installable source code for your version of the app (a proper Frappe app, bench-installable on your site)
- Installation and configuration on your bench: Firebase service account, VAPID keys, Service Worker, doc-event and scheduler wiring
- Technical documentation: DocType reference, `hooks.py` event map, whitelisted API endpoints, and Firebase/VAPID setup guide
- User guide plus a live training session for the team that composes campaigns and manages segments
- Post-go-live support window for defect fixes and configuration questions
- UAT on a staging bench with a documented test plan and a production rollback plan
- Git repository handover so you fully own the source and history
- Segment and template starter set configured for your priority ERPNext events
Who this is for
ERPNext portal operator
Runs a customer or partner portal on ERPNext and needs order, ticket, and payment updates to reach users even when the tab is closed, without exporting the customer list to a third-party push service.
Mobile app product owner
Has a native Android/iOS companion app backed by ERPNext and needs reliable FCM delivery tied directly to business events and back-office data, with token management handled server-side.
CRM & marketing lead
Wants to run segmented push campaigns — renewals, re-engagement, promotions — targeting audiences defined on ERPNext Contacts and Customers, with open-rate and click-through reporting.
ERPNext technical lead / bench admin
Owns the Frappe bench and needs a clean, standards-based app with proper DocTypes, permissioned whitelisted APIs, background-queue fan-out, and a git repo they control on v15/v16.
How Push Notifications (Web & Mobile/FCM) for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Delivery model | Build-to-order; scoped, built, and installed for your bench in one working week | In-house build; timeline depends on your team's Frappe depth | Instant download but generic; may not fit your events | Available immediately but no web/FCM push at all |
| FCM mobile push | Firebase Admin SDK integration with token lifecycle handling | Possible, but you build and maintain the token plumbing | Sometimes included; token hygiene often shallow | Not supported |
| Web push (closed tab) | VAPID + Service Worker capturing full PushSubscription | Doable but easy to get the SW/keys wrong | Varies; often desk-only or third-party redirect | In-desk toasts only; nothing when tab is closed |
| Event triggering | Wired to your `doc_events` and `scheduler_events` in `hooks.py` | You author and test every hook yourself | Usually a fixed, non-configurable event set | Notification DocType, email/in-desk only |
| Segmentation | `Push Segment` DocType on Contact/Customer/portal queries | Build your own audience resolver | Basic lists; rarely ties to ERPNext filters | No push audience concept |
| Ownership | Full git repo handover; no lock-in | You own it outright | Vendor-controlled; per-seat or SaaS fees common | Part of ERPNext core |
| Reporting | `Push Log` with delivery status, CTR, and open tracking | You design and build the logging | Dashboard exists but may live off-platform | None for push |
| Support | Post-go-live window + optional upgrade retainer | Self-supported by your team | Tiered/paid support, best-effort on custom events | Community/your ERPNext partner |
Frequently Asked Questions about Push Notifications (Web & Mobile/FCM)
How long does delivery take?
This is a build-to-order app, not an instant download. After a short scoping call to confirm your events, Firebase project, segments, and target version, typical delivery is one working week from confirmed scope. We build against a staging bench, run UAT with you, then install on production with a rollback plan.
What do I need from Firebase, and do you set it up?
You provide (or we help you create) a Firebase project and a service-account JSON for the FCM HTTP v1 API, plus your mobile app's Firebase config. We generate the Web Push VAPID key pair, wire the Service Worker, and store all credentials in a Frappe Settings DocType rather than in source code.
Does it work with Frappe/ERPNext v15 and v16?
Yes. We build and test against your target — Frappe/ERPNext v15 or v16 — as a standard bench-installable app. If you run both (e.g. staging on one, production on another), tell us at scoping and we account for it.
How are pushes triggered from ERPNext data?
Two ways. Event-triggered pushes hang off `doc_events` in `hooks.py` (for example `on_submit` of a Sales Order) and off `scheduler_events` for time-based sends. Campaign pushes are composed in a `Push Campaign` DocType and sent to a saved `Push Segment`. Fan-out runs through `frappe.enqueue` background workers.
What about support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and configuration questions. Because you receive the full git repository, your own team can also maintain and extend the app. We offer ongoing support and version-upgrade retainers separately if you want us to keep it current across Frappe releases.
Can I control who can send and who receives?
Yes. Broadcast and campaign actions are gated by role profiles and DocType permissions, so only authorized roles can send. On the recipient side, per-user opt-in/opt-out is honored on every send, and unsubscribed or expired subscriptions are pruned automatically.
Do I own the code, or am I locked in?
You own it. We hand over the complete source in a git repository, along with technical docs and a user guide. There is no license phone-home and no dependency on ECOSIRE to keep it running.
Related Modules

Power BI Connector for ERPNext
A secure, governed way to feed ERPNext data into Microsoft Power BI through a curated read-only semantic model. ECOSIRE builds, installs, and supports it for your instance after a scoping call — this is a build-to-order engagement, not an instant download.

Premium Desk Themes & White-Label UI
A build-to-order Frappe app that gives ERPNext v15/v16 modern Desk themes, full white-labeling, custom fonts, dark mode, and branded login and portal pages. ECOSIRE scopes, builds, installs, and supports it for your brand or reseller stack.

QR Code Contactless Ordering for ERPNext
Per-table QR menus that let guests browse, order and pay from their phone, injecting orders straight into ERPNext POS and the kitchen. A build-to-order Frappe app that ECOSIRE scopes, builds, installs and supports for your restaurant.

QuickBooks Migrator & Two-Way Sync for ERPNext
A build-to-order ERPNext app that migrates your QuickBooks Online chart of accounts, contacts, items and transactions into ERPNext, then optionally keeps both systems in incremental two-way sync. ECOSIRE builds, installs, and supports it — request a quotation to start.
Push Notifications (Web & Mobile/FCM)
A build-to-order ERPNext app that fires targeted web push and Firebase Cloud Messaging (FCM) mobile push from `hooks.py` doc events, scheduler jobs, and audience-segmented campaigns. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 bench.
- Firebase Cloud Messaging (FCM) HTTP v1 integration via the Firebase Admin SDK, with OAuth2 service-account credentials stored in a Frappe Single/Settings DocType (not in code)
- Web Push (VAPID) delivery through a registered Service Worker, capturing the W3C PushSubscription endpoint plus `p256dh` and `auth` keys per browser
- `Push Subscription` and FCM-token DocTypes keyed to the ERPNext User/Contact, with device metadata, platform, and an active flag
- Automatic token hygiene: FCM `NotRegistered`/`Unregistered` and stale Web Push 410 endpoints are pruned so audiences stay deliverable