Migrate from another provider
UpdatedHow it works
While you can export your audience from your old provider, push notification delivery is still dependent on the SDK(s) in your app. You can’t send a push from Customer.io to someone using a version of your app that doesn’t use Customer.io!
So, when you move to Customer.io from another push provider, you’ll need to import your audience and help them upgrade to a version of your app that uses Customer.io before you can send them push notifications.
This means that you won’t be able to finish your migration until a significant portion of your audience has upgraded to a version with Customer.io. You’ll likely need an interim period when you maintain audiences in both push providers while you push your audience to update your app.
The steps below are a general guide, but we’ve provided more specific instructions to export and import data from some specific providers as well.
1. Integrate with Customer.io
You won’t be able to send push notifications to people through Customer.io until they upgrade to a version of your app integrated with Customer.io! You’ll need to remove your old provider’s SDK, add ours, and test your app before you release it to your audience.
This is probably the lengthiest and most involved part of the process to migrate from another provider, so you’ll want to start with your integration. See our mobile SDKs for more about integrating with Customer.io.
2. Export your audience (not their device tokens)
When you’re ready to start a migration campaign, you’ll export your audience from your old provider and import them into Customer.io. You won’t export device tokens because you’ll register tokens for people when you identify them with the Customer.io SDK; this will be how you count members of your audience who’ve updated your app!
You may need to reformat some of your audience information to fit Customer.io before you import it.
For example, OneSignal typically exports attributes and column titles with capital letters. If you maintain attributes in a different format (like snake_case
), you’ll need to reformat your exported data to match the way you want to store it in Customer.io.
You can also add people using our API. So, if you export people from your service programmatically, you can easily re-shape your exported data to fit Customer.io and then import it via our APIs.
3. Import your audience into Customer.io
Depending on how you exported people, you can import them again through a CSV or our API. You’ll need to make sure that it fits Customer.io—see our API or CSV import documentation for more information.
But, in general, you’ll need to make sure that your CSV contains a value mapped to id
or email
to identify the person. All the other values will represent attributesA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. Attributes are analogous to traits in Data Pipelines. for people—which you’ll use to segment them, personalize messages with liquidA syntax that supports variables, letting you personalize messages for your audience. For example, if you want to reference a person’s first name, you might use the variable {{customer.first_name}}
., and more.
4. Create a segment to monitor your audience’s progress
In Customer.io, you can create a segmentA group of people who match a series of conditions. People enter and exit the segment automatically when they match or stop matching conditions. to compare your mobile audience in Customer.io to the number of people you exported from (or store in) your old provider. So, as the Customer.io segment approaches the number of exported people, you can safely sunset your old provider.
Luckily, we already have a segment that might work for you: the Have a mobile device segment checks for people who have a device. As you register devices from the version of your app integrated with Customer.io, your segment will grow.
If you already have device users in Customer.io, and you just want to segment the people you migrated from your former platform, you may want to create a new segment that a Device exists for people you added from your previous platform. You’ll want to set a new attribute to make this easier—like from_<old_platform>
.
5. Encourage your audience to update your app
You should send notifications to your audience through your old provider encouraging them to update your app. As people update to a version of your app containing the Customer.io SDK, you’ll see the Customer.io segment you created in earlier steps start to fill up. You’ll be able to send these people—your Customer.io app users—notifications through Customer.io.
As the segment you created in the previous step approaches the number of people you exported from your old provider, you can safely sunset your old provider.
Export your audience from OneSignal
To migrate your audience from OneSignal to Customer.io, you’ll need to export your audience from OneSignal and import them into Customer.io. You don’t want to export their device tokens because you’ll register tokens with Customer.io when you identify them with the Customer.io SDK; this will be how you count members of your audience who’ve updated your app!
- In OneSignal, go to Audience > Subscriptions. Select a segment if your mobile users are confined to a specific segment. Otherwise, don’t select a segment to export all your users.
- Make sure the columns that you want to export are present. Leave out device information like the Push Token column.
- Click Export and OneSignal will send you an email with your CSV.
Now you’re ready to import your audience to Customer.io!
Export your audience from Braze
Braze doesn’t let you export all of your users directly. You’ll need to create a segment in Braze and export that segment. Braze exports are limited to 500,000 users at a time, so you may need to generate and export multiple segments.
After you’ve made your Braze segment, you can go to Segments in Braze and click the settings dropdown and select the CSV Export User Data option.
Now you’re ready to import your audience to Customer.io!
Import your audience from another provider
You might need to reformat your exported data to fit Customer.io. For example, Braze exports attributes and column titles with capital letters; if you maintain attributes in a different format (like snake_case
), you’ll need to reformat your exported data to match the way you want to store it in Customer.io.
In Customer.io, go to People, click Add People and select Import a CSV.
Set up your Import:
- How do you want to identify people? If your
id
in Customer.io doesn’t match the External User ID from OneSignal, you should useemail
. If you’re importing from OneSignal and use the same value for IDs in Customer.io that you use in OneSignal, you should map theexternal_user_id
column toid
in Customer.io when you import you audience. - Set Do you want to add new people? to Yes.
- Set Do you want to update existing people? to Yes.
- Set What should we do with empty values? to Ignore them.
- How do you want to identify people? If your
Map fields from your CSV to attributes in Customer.io. You’ll need to map at least one identifierThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace. for people—an ID or email. Otherwise, you may want to map columns in your import to specific attributes if you use different formats for values in OneSignal and Customer.io (e.g. you use
firstName
in OneSignal andfirst_name
in Customer.io).Review your import for errors and warnings.
Click Complete import. The import process takes approximately one minute per 20-30 thousand rows. You can leave the page, and we’ll send you an email when your import is finished. You can also check the status of your import on the Data & Integrations > Imports page.