Check the complete list of parameters and responses of the
PATCH Device Token endpoint for registering push
notification tokens.What are push notifications in Masivo?
Push notifications allow you to send timely, relevant messages directly to your customers’ mobile devices. By registering device tokens, you can target specific users or segments with personalized notifications, promotions, or alerts.Register a device token
To enable push notifications for a customer, you need to register their device token with Masivo. This links their device to their customer profile, allowing for targeted messaging.Understanding device tokens
- device_token: A unique identifier provided by Firebase Cloud Messaging (FCM) that allows Masivo to send notifications to a specific device. This token is generated by the Firebase SDK in your mobile application.
- device_info: Additional information about the device that helps with segmentation:
- platform: The operating system of the device (“android”, “ios”, or “web”)
- model: The device model name or identifier
- osVersion: The version of the operating system running on the device
Rich notification images
The optional image field on a push template is a rich notification attachment — a banner or hero image displayed alongside the title and body in the notification tray. It is not the app icon or launcher logo; those come from your native app bundle. Masivo uploads the image and includes it in the FCM/APNs payload. Supported formats are JPEG, PNG, and GIF. Keep file sizes reasonable for fast delivery on mobile networks.Custom notification sounds
Notification sounds are native app resources, not remote media. Masivo does not accept an uploaded audio URL because neither FCM nor the operating systems can use a remote file as a notification sound. Add the same.wav file to every
mobile app build that receives the template, then enter its filename in the
Masivo push template.
Use one of these template values:
- Empty: silent notification.
default: device default sound.order_ready.wav: custom sound bundled in the app.
Android
Copyorder_ready.wav to android/app/src/main/res/raw/. Android identifies the
resource as order_ready, without its extension.
On Android 8 and later, create these channels before receiving notifications:
order_ready.wav becomes masivo_order_ready. Android channel sound behavior
cannot be changed after a channel is created, and users can override it in
system settings.
iOS
Addorder_ready.wav to the main application target’s Copy Bundle Resources
build phase. Masivo sends the complete filename in the APNs sound field.
Rebuild and reinstall the native app after adding a sound. An over-the-air
JavaScript update cannot add native audio resources.
Device tokens can change over time. Your app should update the token in Masivo
whenever the FCM SDK provides a new token to ensure uninterrupted delivery of
notifications.
User segmentation with push notifications
Registering device tokens enables powerful audience segmentation capabilities:- Target by demographics: Send notifications to specific user segments based on demographics, location, or behavior
- Campaign-specific messaging: Tailor notifications to specific marketing campaigns or loyalty programs
- Engagement tracking: Monitor which notifications drive user engagement and conversions
FCM data payload
When Masivo delivers a visible push, Firebase receives anotification
block (title, body) plus a data map. Every data value is a string.
Image and sound are platform fields (Android/APNs), not keys inside data.
Use data when the customer opens the notification (deep link, attribution,
or PUSH_OPENED). A dashboard test send is not the same as a journey
send — do not assume the keys are interchangeable.
This section covers visible marketing pushes. Silent in-app wake
payloads use
masivo_type and are documented in the
React Native SDK.Data keys
redirect_* keys are omitted when the corresponding setting is empty.
link is a Masivo short URL when one was generated for that send. Two
fallbacks send the template destination URL instead:
- Journey: the node has no short URL mapped yet
- Test: the send is not tied to a stored push template
app.masivo.ai. It is the first custom domain in
Links settings (for example
https://links.example.com/l/AbCdEf).
Test send
Dashboard Send test from a push template:customerId. If the test is not tied to a stored template, link is the
template destination URL instead of a short URL.
Journey send
A Send push notification action on a journey:notificationId. If the journey node already has short URLs, link is
that short URL. Otherwise link is the template destination URL.
Scheduled audience send
Schedule from a push template to an audience:notificationId is the delivery history id. No customerId on topic or
per-device audience payloads.
Manual API send
POST /push/customers/{id}/send
returns { data: { sent: true, customer_id, push_template_id } }. The device
still receives this data map:
Compare origins
Handle notification opens
data.customerId is missing — use the signed-in customer id.
Best practices
- Always request push notification permissions at appropriate times in the user journey
- Refresh and update device tokens regularly to maintain delivery reliability
- Provide clear opt-out options to respect user preferences
- Test notifications across different device types before sending to your entire audience
- Keep messages concise and actionable to improve engagement