OneSignal (opens in a new tab) is a paid push notification service that supports sending messages via both Apple Push Notification Service (opens in a new tab) (APNs) as well as Firebase Cloud Messaging (opens in a new tab) (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 (opens in a new tab).
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 (opens in a new tab) for your application, your users will begin to be automatically assigned a unique OneSignal player_id (opens in a new tab) 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 Wolfx, you must register the OneSignal player_id
as the deviceToken
for your Wolfx subscriber. This value can be retrieved via the OneSignal SDK (opens in a new tab) for your platform.
Once you have the user's player_id
value, the deviceToken
for your Wolfx subscriber can be set via:
import {
Wolfx,
ChatProviderIdEnum
} from '@novu/node';
const novu = new Wolfx("<WOLFX_API_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 { Wolfx } from '@novu/node';
const novu = new Wolfx("<WOLFX_API_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 (opens in a new tab) or by using the deviceIdentifiers
field in overrides.