Rich push notifications powered by Google FCM (free & unlimited). Increase your click-through rates by 56%. Images, topics, multicast, silent push, web push token registration, deep linking, click tracking.
Test in Demo App ·
See in Bubble Editor
OverviewBubble’s native push notifications handle the essentials: title, body, and deep linking for mobile apps. With Advanced Push Notifications, we add: images, custom sounds, broadcast to groups, web browser notifications, silent background sync, delivery controls, and more.
Your notifications go directly through Firebase Cloud Messaging (FCM), Google’s free push notification infrastructure. You bring your own Firebase project (no per-message fees, no subscriber limits).
FeaturesFeature
| Bubble native
| Advanced Push Notifications
|
Title and body
| ✅
| ✅
|
Deep linking (navigate to a specific view on tap)
| ✅
| ✅
|
Images in notifications
| ❌
| ✅
|
Custom icon and color (Android)
| ❌
| ✅
|
Custom sound
| ❌
| ✅
|
iOS badge count
| ❌
| ✅
|
Send to a topic (all subscribers in one call)
| ❌
| ✅
|
Multicast (up to 500 devices in one call)
| ❌
| ✅
|
Subscribe/unsubscribe devices to topics
| ❌
| ✅
|
Silent data push (background sync)
| ❌
| ✅
|
Foreground notifications with Bubble events
| ❌
| ✅
|
Notification expiration (TTL)
| ❌
| ✅
|
Collapsible notifications
| ❌
| ✅
|
Custom data payload
| ❌
| ✅
|
Failed token detection and cleanup
| ❌
| ✅
|
Web push (browsers)
| ❌
| ✅
|
Platform compatibilityWe use FCM registration tokens, the standard token format generated by Firebase. Compatibility depends on whether your app environment can provide these tokens.
Platform
|
| How tokens are obtained
|
Bubble Native Mobile (iOS and Android)
| ✅
| Bubble’s built-in permission action generates FCM tokens natively
|
Natively (Firebase Advanced mode)
| ✅
| Natively exposes the FCM token as a plugin state
|
Web browsers (Chrome, Edge, Firefox)
| ✅
| Built-in FCM Token Manager element (included)
|
Natively (OneSignal mode)
| ❌
| Exposes OneSignal Player IDs, not FCM tokens
|
BDK
| ❌
| Uses OneSignal exclusively, does not expose FCM tokens
|
GoNative / Median
| ❌
| Uses OneSignal exclusively, does not expose FCM tokens
|
Wrappers that use OneSignal internally expose OneSignal Player IDs instead of FCM tokens. These are two different identifier systems that are not interchangeable.
If your wrapper supports Firebase (like Natively in Advanced mode), everything works seamlessly.
6 workflow actions
Web push token registration (included)We include
FCM Token Manager, an invisible element you place on your page. When a user clicks your “Enable Notifications” button, it requests browser permission and retrieves the FCM token.
The element auto-detects native and wrapped environments and stays completely inactive in those contexts, so it never interferes with your existing push setup.
Click tracking and open ratesUse the
web_click_link field to redirect notification clicks through a tracking page in your Bubble app. Log each click as a database entry, then calculate your open rate: clicks divided by sends. A step-by-step guide is included in the documentation.
Built for productionActionable error messages. Every input is validated before we send anything to FCM. If something is missing or malformed, you get a clear message that tells you exactly what to fix and where to find it. For example:
”Missing Service Account Email. Go to Plugins tab → Advanced Push Notifications (FCM) and paste the client_email value from your Firebase service account JSON file.”Dead token detection. When a device token expires or a user uninstalls your app, FCM returns an error for that specific token. We catch it and return it in the
failed_tokens list, which is a native Bubble list of texts. You can use it directly in a workflow to clean your database:
Make changes to a list of Users where push_token is in Step 1’s failed_tokens → set push_token to empty.Auto-correction of common mistakes. If you pass a topic name starting with “/topics/”, we strip the prefix automatically and log a note in your server logs. If you paste your private key with literal “\n” characters (which happens when copying from a JSON file), we convert them to real line breaks. Small things, but they sometimes save hours of debugging.
Structured server logs. Every log entry is prefixed with
[Push Notifications] so you can filter your Bubble server logs instantly and find exactly what happened, when, and why.
Lightweight and fast. We use a single dependency:
google-auth-library, the official Google authentication library (Apache 2.0 license). Fast cold starts on Bubble’s server infrastructure and a minimal surface for security vulnerabilities.
Documentation and supportWe wrote the documentation we wish every Bubble plugin had.
We respond to support requests 7 days a week, and happily take any improvement request.
See full documentation hereTry risk-freeThe monthly subscription is prorated by the day. Try it for a few days, and if it is not the right fit, cancel and pay only for the days you used.
Requirements
- A Firebase project with Cloud Messaging enabled (free)
- A service account key from Firebase Console (3 values to copy-paste)
- For web push: a VAPID key and a small service worker file (documented step-by-step)