Push notifications are included in every SashiDo plan. Your app registers each device as an installation; you send to installations by query, channel or audience, and see what was delivered in the dashboard.
1. Add the credentials
In the dashboard open App Settings › Push.
iOS (APNs). Either:
- a token (
.p8key, recommended): upload it with its Key ID, your Team ID and the app's Bundle ID. One key works for all your apps and doesn't expire; - or a certificate (
.p12) for the app, for development or production.
Android (Firebase Cloud Messaging). In the Firebase console open Project settings › Service accounts › Generate new private key, and upload the .json file as Private Key JSON. This uses FCM's v1 API; Google has retired the legacy server keys.
Windows. Package Security Identifier (SID) and Client Secret, under Windows Push Credentials.
2. Register devices
The client SDK saves each device as an installation (_Installation) with its push token, its channels and, once you set it, its user:
- iOS: after the user allows notifications, pass the device token to the Parse SDK's current installation and save it (Parse iOS push guide).
- Android: add Firebase Messaging to the app, and the Parse Android SDK's FCM module saves the token (Parse Android push guide).
Set a user pointer on the installation after login, so you can send to a user's devices. Installations appear in Core › Browser › _Installation.
3. Send
From the dashboard: Push › Send New Push, with an audience (all devices, a channel, a saved audience or a query), now or scheduled. Push › Activity shows what was sent and delivered; Push › Audiences keeps reusable targets.
From cloud code, e.g. when something happens in your app:
Parse.Cloud.afterSave('Message', async (request) => {
const recipient = request.object.get('recipient');
const query = new Parse.Query(Parse.Installation);
query.equalTo('user', recipient);
await Parse.Push.send(
{ where: query, data: { alert: 'You have a new message', badge: 'Increment' } },
{ useMasterKey: true }
);
});
From scripts and AI assistants: POST push through the Management API's Parse proxy, or ask your assistant through MCP (send_push, get_push_status).
Options
In App Settings › Push:
| Setting | |
|---|---|
| Enable client push | Lets apps send pushes with the client keys. Handy in development; turn it off in production, or anyone with your keys can message your users. |
| Enable REST push | Lets the REST API Key send pushes. Keep the key on your servers. |
| Enable advanced diagnostics | Records detailed failure data per campaign, to debug delivery. |
When pushes don't arrive
- Push › Activity › the push shows how many devices were targeted and the failures. With advanced diagnostics on, the failures say why (e.g. an expired token, a wrong bundle ID).
- iOS: check that the uploaded certificate or token is for the app's Bundle ID, and that a certificate matches the build (development or production).
- Android: check that the app's Firebase project is the one the uploaded JSON belongs to.
- No devices targeted: check that installations exist and match the query or channel.