Move from CleverTap without losing a subscriber
CleverTap and Chumbaq both build on the events and user properties your app sends, so most of the work is pointing the same calls at a second SDK and rebuilding your key journeys.
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
Keep your FCM and APNs credentials. Keep your event names too: send the same ones to Chumbaq so segments read the same.
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 CleverTap In Chumbaq Identity externalUserId in identify Profile properties Traits Events Events Segments Segments Journeys Journeys Campaigns Campaigns (push, in-app, email, SMS, WhatsApp) Control groups Control groups, scored on sales Turn CleverTap off
Once your journeys run in Chumbaq and the new release has rolled out, remove the CleverTap SDK and let the contract end.
Weighing it up first? See how Chumbaq and CleverTap compare, row by row.
Read the comparisonStart moving today
Free up to 2,500 monthly active users. No card, no sales call.