Before Getting Started
- Create Android and iOS apps in your Braze workspace as needed.
- Get each app’s SDK API key and the workspace’s SDK endpoint. These differ from the REST API key and REST endpoint used by your backend.
- Keep the existing Android package name and iOS bundle identifier.
- Record Clix campaign definitions, account IDs, properties, events, notification handling, and opt-outs.
Migration Steps
1
Configure push credentials
In Braze App Settings, configure Android FCM HTTP v1 credentials for your existing Firebase project. Configure iOS APNs credentials for your existing bundle identifier.Keep server-side credentials in the provider console or your backend. Use the SDK API key and SDK endpoint in the app. Follow Braze SDK integration and push setup for your platform.
2
Replace Clix initialization and notification handling
Remove Clix initialization, notification configuration, permission calls, and listeners. Replace user and event calls in the next step.
Use Braze’s platform-specific setup for a shared codebase rather than copying native initialization into the app twice.
Remove platform-specific Clix integration
Remove platform-specific Clix integration
- Android: Remove
so.clix:clix-android-sdkand its Clix-specific manifest entries. Keep your Firebase config and add any shared dependency that was previously supplied by Clix. - iOS: Remove the Clix package or pod. Replace
ClixAppDelegateand replaceClixNotificationServiceExtensionwith the extension required by your selected Braze features. - React Native: Remove
@clix-so/react-native-sdk, then follow Braze’s React Native setup, including native configuration or your Expo integration. - Flutter: Remove
clix_flutter, then follow Braze’s Flutter setup and its native push configuration.
- Android
- iOS
Add a pinned supported version in your app module, replacing Add your SDK credentials and Firebase sender ID:Register session lifecycle handling in your existing, manifest-registered Keep Firebase Messaging and the Google Services plugin configured. Set notification channels and icons, and preserve your Android 13+ permission flow. Verify automatic FCM registration in Braze before sending a test.
BRAZE_VERSION:app/build.gradle.kts
app/src/main/res/values/braze.xml
Application class:MainApplication.kt
3
Map user IDs, properties, and events
UserIntegration.kt
Logout behavior needs an explicit decision. Current Braze SDKs provide
logout() and unregisterPush(); Android support starts at 43.0.0 and Swift at 18.0.0. Full logout disables the SDK after successful cleanup, so implement its documented re-enable and registration flow at the next login. Handle failures and retries. Do not use a shared placeholder account ID on logout. See Braze user IDs and logout.4
Recreate campaigns and backend integrations
Rebuild Clix scheduled campaigns as Braze campaigns and multi-step event flows as campaigns or Canvas flows. Review delays, re-entry, cancellation events, time zones, frequency caps, quiet hours, and user-versus-device targeting.Rewrite personalization using the destination’s supported syntax and defaults. Recreate deep links, image attachments, action buttons, and categories. On Android, explicitly configure automatic deep-link handling if you want Braze to navigate on a tap; otherwise connect the callback to your existing navigation.Replace Clix sends with the appropriate Braze REST operation:
- Messages send for server-composed messages.
- API-triggered campaign send for campaigns configured in Braze.
5
Validate and move notification traffic
Upgrade an existing installation and confirm the expected external ID, push registration, properties, and one test message. Check Android FCM and iOS APNs separately.
- Test foreground, background, cold-start taps, deep links, rich media, and actions.
- Test denied permission, marketing opt-out, logout failures, re-login, account switching, and multiple devices.
- Confirm custom events and test campaign entry without enabling production automation.
Push Token Migration
SDK registration is the default. If you have an authorized token export and want an assisted import, confirm Braze’s supported import process, app mapping, token types, and payload compatibility before using it. Do not assume that importing user attributes also imports push eligibility. Keep the Firebase project and app identity compatible where possible. Re-registering with Braze does not require resetting OS permission or deliberately rotating every token.Related Guides
Clix Event Tracking
Review the event names and property types used by your campaigns.
Clix Campaign Types
Map existing automation to campaigns and Canvas flows.