Skip to main content
Clix will shut down on November 30, 2026.Complete your migration before this date to continue sending notifications. Preserve your campaign settings and reports before the service shuts down.If you would like to migrate to Notifly, email [email protected] for migration assistance.
Migration impact
  • Register devices with OneSignal. Users normally need to open the updated app before their push subscription is available. Clix’s iOS FCM tokens cannot be used as raw APNs tokens.
  • Keep existing permissions. An SDK change does not reset notification permission for the same installed app. Preserve marketing opt-outs separately.
  • Rebuild campaigns. Audiences, templates, schedules, and message history do not transfer automatically.
  • Prevent duplicate sends. Exclude migrated devices from Clix before enabling OneSignal campaigns for them.
This guide walks you through moving an existing Clix integration to OneSignal. Replace the SDK in a new app release, then move notification traffic as devices register with OneSignal.

Before Getting Started

  • Create a OneSignal app and get its App ID.
  • Keep your Android package name and iOS bundle identifier unchanged.
  • Record your Firebase project, push credentials, user IDs, campaign rules, and notification click handlers.
  • Use the same stable account ID you pass to Clix.setUserId(). Keep an explicit mapping for anonymous installations; do not treat Clix-generated IDs as account IDs.
Keep a copy of your campaign settings and reports before changing the integration. A user import does not recreate campaign execution history or users already waiting in a campaign.

Migration Steps

1

Configure push credentials

Configure Google Android (FCM) in OneSignal and upload credentials for the Firebase project used by your app. Reuse that project when possible to avoid changing the sender.Follow OneSignal Android setup to check SDK and build requirements.
Keep REST API keys and push service credentials on the server or in the provider console. The OneSignal App ID is the value used in the app.
2

Replace the Clix SDK

Remove Clix.initialize(), Clix notification configuration, permission calls, and notification listeners. Replace user and event calls in the next step.
  • Android: Remove so.clix:clix-android-sdk or its version catalog alias. Remove Clix-specific manifest entries and receivers.
  • iOS: Remove the Clix package or pod 'Clix'. Replace ClixAppDelegate with your app’s normal delegate and replace ClixNotificationServiceExtension before removing the dependency.
  • React Native: Remove @clix-so/react-native-sdk and its imports. Review native configuration and Expo plugins.
  • Flutter: Remove clix_flutter and its imports. Review native configuration as well as Dart code.
Keep shared dependencies used elsewhere. OneSignal should own push registration and message handling in the new release; remove competing Firebase Messaging handlers or use OneSignal’s documented conflict resolution.
Add a pinned, supported OneSignal 5.x version to your app module. Replace ONESIGNAL_VERSION before syncing Gradle.
app/build.gradle.kts
Initialize in your existing Application class and ensure that class is registered in AndroidManifest.xml:
MainApplication.kt
Keep your permission flow at its existing point in the UI. For users who have not granted permission, call OneSignal.Notifications.requestPermission(false) from a coroutine. Configure the Android notification icon and channels.
For a shared codebase, use the official React Native or Flutter integration instead of initializing an additional native SDK instance.
3

Move user identification and events

Use this mapping when replacing your Clix calls:
UserIntegration.kt
Confirm that your SDK version and OneSignal plan support the Custom Events features you need. A tag update is a profile change and does not replace an event stream.Reapply your app’s messaging preferences to the new subscription and audience rules. Login alone does not carry over consent stored in Clix.
4

Rebuild campaigns and backend sends

Recreate scheduled campaigns and event-based journeys in OneSignal. Check time zones, re-entry rules, delays, frequency limits, quiet hours, and personalization defaults against each Clix campaign.Replace calls to Clix’s send and campaign-trigger APIs with the OneSignal Create message API. Target External IDs or Subscription IDs instead of Clix user or device IDs. Move backend credentials into server configuration and update webhook consumers.Translate landing URLs and custom data into OneSignal’s supported payload fields. Connect the notification click listener to your existing navigation code; Clix’s automatic landing URL handling is removed with the SDK.Do not replay historical events into active journeys. Import profile attributes first, then enable triggers after you have checked eligibility and suppression rules.
5

Test and move traffic

First, upgrade an existing installation with permission already granted. Verify that the device appears in OneSignal under the expected External ID and receives one test message.
  • Test foreground, background, and cold-start taps, including deep links, images, and actions.
  • Test denied permission, marketing opt-out, logout, account switching, and multiple devices.
  • Check subscription updates, custom events, and notification reporting. Provider acceptance does not prove the device displayed the message.
Keep a backend record of successful destination registration by installation, account, platform, and app version. Route each message to one provider. When Clix audience filters cannot exclude individual migrated installations, use backend routing or a conservative account-level cutoff and account for other devices on that account.Release to a small cohort, then expand after registration and delivery checks pass. Keep Clix sends limited to compatible old installations until your chosen cutoff, which must be before November 30, 2026. A backend rollback can return traffic only to installations that still handle Clix payloads; the replacement release needs a compatible send path or a corrective app update.

Push Token Migration

SDK registration is the default migration path. You do not need to force token rotation, reinstall the app, or reset permission. If you can obtain an authorized export, OneSignal supports importing users and subscriptions through its documented APIs. Verify token type and Firebase sender compatibility first. An Android token import does not make an old Clix-only app understand OneSignal payloads. An iOS import requires an APNs token, which is different from the FCM token stored by a Clix integration. See OneSignal migration guidance.

Clix User Management

Review existing account and anonymous user behavior.

Clix Deliverability

Review permissions and device registration before switching sends.