Onesignal
Learn how to use the Onesignal provider to send push notifications using Novu
OneSignal is a paid push notification service that supports sending messages via both Apple Push Notification Service (APNs) as well as Firebase Cloud Messaging (FCM).
To configure the OneSignal integration, you will need an active account which has credentials for APNs, FCM or both, and have access to the OneSignal App ID
and Rest API Key
available via your application’s settings page.
Setting the Device Token
Once OneSignal has been configured with your credentials for APNs/FCM, and the OneSignal SDK has been set up and configured for your application, your users will begin to be automatically assigned a unique OneSignal player_id identifier by the SDK.
This identifier allows targeting your user when sending push notifications without having to retrieve the specific Android or iOS device tokens - which are managed by OneSignal.
In order to target the OneSignal user from Novu, you must register the OneSignal player_id
as the deviceToken
for your Novu subscriber. This value can be retrieved via the OneSignal SDK for your platform.
Once you have the user’s player_id
value, the deviceToken
for your Novu subscriber can be set via:
import {
Novu,
ChatProviderIdEnum
} from '@novu/node';
const novu = new Novu("<NOVU_SECRET_KEY>");
await novu.subscribers.setCredentials('subscriberId', PushProviderIdEnum.OneSignal, {
// Your user's unique 'player_id' from OneSignal
deviceTokens: ['ad0452ca-3ca7-43b5-bf9b-fa93fd322035'],
});
Checkout the API reference for more details.
SDK Trigger Example
import { Novu } from "@novu/node";
const novu = new Novu("<NOVU_SECRET_KEY>");
novu.trigger("<WORKFLOW_TRIGGER_IDENTIFIER>", {
to: {
subscriberId: "<SUBSCRIBER_ID>",
},
payload: {
abc: "def", // If the notification is a data notification, the payload will be sent as the data
},
});
Device/notification identifiers can be set by using setCredentials or by using the deviceIdentifiers
field in overrides.