Move from OneSignal without losing a subscriber
Notification permission belongs to your app, not to OneSignal, so your users never have to opt in again. You add Chumbaq next to OneSignal, let devices check in, then move your campaigns over.
Five steps. We help you through every one.
- 1
Add the Chumbaq SDK next to the one you have
Install the SDK for your platform, start it once, and call identify with the same user ID you use today. Both SDKs can run in the same app.
final config = ChumbaqConfig.builder( baseUrl: 'https://your-chumbaq-host', apiKey: '<project API key>', projectId: '<project id>', ).build(); await Chumbaq.instance.init(config); // Who this is, once they log in. await Chumbaq.instance.identify( IdentifyParams.builder().externalUserId('u_42').build(), ); // Push: the SDK reports whatever the app hands it. await ChumbaqPush.instance.init(); FirebaseMessaging.onMessage.listen( (message) => ChumbaqPush.instance.reportNotificationReceived(message.data), );import ChumbaqCore import ChumbaqPush let config = ChumbaqConfig.Builder( baseUrl: "https://your-chumbaq-host", apiKey: "<project API key>", projectId: "<project id>" ).build() Chumbaq.shared.initialize(config: config) // Who this is, once they log in. try await Chumbaq.shared.identify( IdentifyParams.Builder().externalUserId("u_42").build() ) // Push: APNs hands the app its device token. ChumbaqPush.shared.initialize() try await ChumbaqPush.shared.registerToken(deviceToken) // Data or Stringval config = ChumbaqConfig.Builder( baseUrl = "https://your-chumbaq-host", apiKey = "<project API key>", projectId = "<project id>", ).build() Chumbaq.init(context, config) // Who this is, once they log in. Chumbaq.identify(IdentifyParams.Builder().externalUserId("u_42").build()) // Push: one call, and that is the whole integration. ChumbaqPush.init(context) ChumbaqPush.registerToken(fcmToken) // or let the service pick it upimport Chumbaq from '@chumbaq/sdk'; const chumbaq = new Chumbaq({ baseUrl: 'https://your-chumbaq-host', apiKey: '<project API key>', projectId: '<project id>', }); await chumbaq.init(); // Who this is, once they log in. await chumbaq.identify({ externalUserId: 'u_42', deviceFingerprint: chumbaq.deviceFingerprint, platform: 'web', }); // Push: the token from your own Firebase Messaging setup. await chumbaq.registerPushToken({ token: fcmToken, platform: 'web', provider: 'fcm', }); - 2
Keep your push setup
Your Firebase project, FCM server credentials and APNs key stay exactly as they are. Chumbaq sends through them.
Add your Firebase service account and your APNs key or certificate to your Chumbaq project. The SDK hands Chumbaq each token your app already receives.
- 3
Ship the release and let devices check in
As people open the new version, Chumbaq learns who they are and gets their push token. Nobody is asked for permission again.
There's no bulk import of users today. Plan to run both tools side by side for a release cycle while devices update. - 4
Rebuild what makes money first
Start with the two or three journeys that drive purchases, then the rest. Most concepts carry straight over:
In OneSignal In Chumbaq Subscription / player Device with a push token External ID externalUserId in identify Tags Traits Segments Segments Journeys Journeys In-App Messages In-app messages (six native layouts) Outcomes Conversions, scored against a control group Turn OneSignal off
Remove the OneSignal SDK in the next release, then close the account once that release has rolled out.
Weighing it up first? See how Chumbaq and OneSignal compare, row by row.
Read the comparisonStart moving today
Free up to 2,500 monthly active users. No card, no sales call.