Batch Migration Guide

Easily plan your migration from Batch to OpenBack for push & in-app messaging without interruption.

Before migrating, we recommend updating your app to include the OpenBack SDK, then users won’t be lost between app updates. The base setup steps for adding OpenBack are:

  • Create your OpenBack app on our dashboard.
  • (Recommended) Add your APNs certificate/Firebase Cloud Messaging Key to your OpenBack app.
  • Complete the basic SDK integration for Native Android/iOS or Plugin.

Integrating OpenBack will not interfere with any other services you may have - as such, you can run services alongside each other during migration.

For help with migrating to OpenBack from Batch, feel free to contact the onboarding team and we can help guide you through the process including setting up a simple plan.

1 - Feature Explanations across Platforms

Batch ->OpenBack
Attributes ->Custom Segments & Attributes
Segment users based on custom in-app information. Send notifications to users within these segments. Attributes can be used to personalize the content of a notification.Segment users based on custom in-app information and send notifications to these users. Attributes are used to store clientside information about users that is then used to personalize the content of a notification.
Events ->Custom Events
Segment users based on in-app events.Send notifications or in-app messages to users based on in-app actions.
Sent NotificationsFull Notification Metrics
Batch offers some notification metrics such as number of sent notifications.OpenBack provides full notification metrics out of the box that range from delivery confirmation to clicks and goal completions.
Location Targeting
OpenBack requires no custom setup or integration to message your users based on location.
Allow/Block - Opt-Out Status
As this is handled on the device side, OpenBack automatically picks up the user's current status without any work required to or migrate or transfer user preferences. Users will NOT be shown the OS permission dialogue again.
Deep Links & Deep Linking
As these are defined by you at an app level, there is no work to migrate across. To make things easier for sending messages, you may want to setup shortcuts in the OpenBack Dashboard under App Settings -more details here

2 - Attributes & Custom Segments

For help with deciding whether your user information should be stored as an Attribute or a Custom Segment, contact anytime.


OpenBack uses Attributes to personalize the content of a notification with user information that is stored on the device, such as a user’s first name. When migrating from Batch, any Batch attributes that would have been used to personalize the notification content should be setup as OpenBack Attributes in your mobile app.

To learn more about OpenBack Attributes go here for Android and here for iOS.

Here are examples of your existing Android code for Batch, and also the updated Android code for OpenBack Attributes:

// Batch example code
Batch.User.editor().setAttribute("age", 26).save();
//OpenBack example code
OpenBack.setAttribute("age", 26);

Custom Segments

OpenBack uses Custom Segments to store user information in OpenBack on the user’s device which can then be used to target specific segments of users as well as personalizing the content of the messages.

When migrating, any Batch attributes that would have been used to segment your users can be converted to OpenBack Custom Segments.

To learn more about OpenBack Custom Segments go here for Android and here for iOS.

Here are examples of your existing code for Batch, and also the updated code for OpenBack Custom Segments:

// Batch example
Batch.User.editor().setAttribute("age", 26).save();
// OpenBack example
OpenBack.setCustomSegment(OpenBack.CUSTOM_SEGMENT_1, 26);

3 - Custom Events

For help with deciding whether your user actions should be stored as a Custom Event or a Custom Segment, contact anytime.

Custom Events can be used to deliver notifications to users based on in-app actions. A Custom Event can deliver the notification immediately or after a specific delay that can be set on device or by the OpenBack dashboard.

When migrating from Batch, any Events that would have been used for segmentation can be converted to Custom Events.

To see more about how to use Custom Events you can go to our Android and iOS docs.

Here are examples of your existing code for Batch, and also the updated code for OpenBack Custom Events:

// Batch example code
// OpenBack example code
// OpenBack.signalEvent(event_name, delay_in_seconds);
OpenBack.signalEvent("ad_seen", 0);

4 - Importing Push Tokens

This is typically not required as by default the OpenBack SDK handles the user’s push token and syncs the token with the OpenBack Engine (backend), which starts once the OpenBack SDK is included in the app, so importing push tokens is not usually relevant, but can be supported.

A push token is a unique key, created and assigned by Apple(APNs) or Google(FCM) to create a connection between a specific mobile app on a specific iOS or Android device. The push token is then used by conventional platforms when sending push notifications from their backend systems to APNs/FCM who then make efforts to deliver the notification to that device. Push tokens change from time to time, and sometimes go stale. Push tokens are a key source of the deliverability issues which OpenBack resolves, you can read more about that here.

While not strictly necessary, OpenBack recommends setting up APNs/FCM as then a silent push notification is sent out to apps whenever there is updated content & settings for faster updates.

If you have a collection of your user’s push tokens, usually in .CSV format, we can bulk import them for you. Contact to finalize an import plan; and also for help exporting Push Tokens from existing platforms including Airship, Batch and others.


Android push tokens are always mixed casing whereas iOS push tokens can sometimes be all lower case or all upper case. If importing existing push tokens into OpenBack, pay attention to the casing of iOS push tokens to avoid duplicate records.

5 - Detailed SDK Comparisons

Android Size950kB230kB
iOS Size~1MB900kB or less
Unity PluginNot AvailableYes
React Native PluginYesYes
Xamarin PluginNot AvailableYes
Titanium PluginNot AvailableYes
Cordova/Phonegap PluginYesYes
Deliverability OptimisationNot AvailableYes
Moment of Delivery ControlNot AvailableYes
Full Notification MetricsNot AvailableYes
Client-side Real-Time Content PersonalizationYesYes
Dynamic Push (Auto-Remove/Update)Not AvailableYes
App InboxYesYes
In-app Video MessageNot AvailableYes