# How to get ready to migrate from the Batch MEP to the CEP? (for Tech & Product teams)

The Customer Engagement Platform (CEP) provides enhanced capabilities, improved performance, and a more powerful approach to managing your customer engagement strategies. Ensuring these prerequisites are met will facilitate a smooth transition and enable you to leverage the full potential of the Batch CEP.

{% hint style="warning" %}
Learn more about how to differentiate the Batch CEP and MEP[ on this page.](https://doc.batch.com/getting-started/other/faq/what-are-the-differences-between-batch-customer-engagement-platform-and-mobile-engagement-platform)
{% endhint %}

{% hint style="danger" %}

* Please **carefully review all sections** relevant to your Batch usage and complete the necessary actions before requesting the CEP activation from our teams.
* This guide provides an extensive overview, but it **might not be exhaustive**. Please make sure that everything important to you will be available on the CEP. If you’re unsure, don’t hesitate to contact us!
  {% endhint %}

## 1. SDK version

The Batch CEP relies on newer versions of the Mobile and Web SDKs to support its advanced features and ensure optimal performance.

* [ ] **Upgrade your&#x20;**<mark style="background-color:yellow;">**mobile apps**</mark> to the latest version of the Batch Android and iOS **SDKs**.\
  Refer to our SDK changelog: [iOS](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/ios/sdk-changelog) / [Android](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/android/sdk-changelog) / [Flutter](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/flutter/sdk-changelog) / [React Native](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/react-native/sdk-changelog) / [Expo](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/react-native/expo-sdk-changelog) / [Cordova](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/cordova/sdk-changelog)
* [ ] **Upgrade your&#x20;**<mark style="background-color:yellow;">**websites**</mark> with the Batch **SDK version 4**, following the dedicated update guide: [Migrating from v3](https://doc.batch.com/developer/sdk/web/advanced/3x-migration)

{% hint style="warning" %}
**All versions** of the Batch SDK are compatible with the CEP, but note that some features are only available in newer versions. In particular, upgrade to **version 3.1 of the mobile SDK** to use the new In-App and Mobile Landings features.
{% endhint %}

## 2. Tagging plan: cross-platform matching

When migrating to the CEP, your mobile apps and websites will be grouped into **omnichannel projects**. **Data must be consistent** across the different apps and websites to ensure omnichannel features work smoothly.

{% hint style="info" %}
An omnichannel project can contain a maximum of **1** Android app, **1** iOS app, and **1** website.\
If you have many websites, refer to our documentation on [how to manage multiple websites with Batch omnichannel projects](https://doc.batch.com/getting-started/other/implementation-guides/mep-to-cep-migration/how-to-migrate-multiple-websites-into-batch-omnichannel-projects).
{% endhint %}

* [ ] **Use the same** [<mark style="background-color:yellow;">**Custom User ID**</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/technical-guides/how-to-guides/how-to-choose-the-right-custom-user-id-to-use-in-batch) across all platforms (Android, iOS, Web) of the same project to consistently identify users.
* [ ] **Ensure&#x20;**<mark style="background-color:yellow;">**consistency of the tagging plan**</mark> tracked via the Batch SDKs and APIs across all platforms (Android, iOS, Web) of the same project.\
  This means that custom attributes and events need to be sent:
  * [ ] With the exact same name
  * [ ] With the same additional data for events (consistent keys and value structures)
  * [ ] With the same data type (String, Integer, Boolean, etc.).

{% hint style="danger" %}
Ensure you **test the data collection carefully** using [the Debug feature](https://doc.batch.com/getting-started/features/customer-engagement-platform/settings/debug) on the Batch dashboard.
{% endhint %}

## 3. APIs

To ensure full compatibility with the CEP, apply the adjustments detailed below to the [MEP APIs](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep) you are currently using.

{% hint style="warning" %}
Remember to **keep the MEP APIs** running as long as you still need them during the migration phase.
{% endhint %}

### Transactional & Partner APIs

If you are using the [Transactional API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/transactional) (or its variant, the Partner API), you need to [<mark style="background-color:yellow;">switch from the Transactional API to the Profiles API</mark>](https://doc.batch.com/getting-started/other/implementation-guides/mep-to-cep-migration/how-to-switch-from-the-transactional-api-to-the-profile-api)<mark style="background-color:yellow;">.</mark> This will especially allow your marketing teams to edit the content of these transactional messages without relying on your back-end teams.

### Campaigns API

If you are using the [MEP Campaigns API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/campaigns), you need to:

* [ ] <mark style="background-color:yellow;">Upgrade to the</mark> [<mark style="background-color:yellow;">CEP Campaigns API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/campaigns) to **send** push notifications on the CEP data model (POST).
* [ ] <mark style="background-color:yellow;">Upgrade to the</mark> [<mark style="background-color:yellow;">Orchestrations API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/orchestrations) to **retrieve information** on existing campaigns (GET).

{% hint style="danger" %}
The **Date format** has evolved from `yyyy-MM-ddThh:mm:ss` to `yyyy-MM-ddThh:mm:ss`**`Z`**.
{% endhint %}

### In-app Campaigns API

* [ ] The migration to the CEP for your use cases that rely on the [In-app Campaigns API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/in-app-campaigns-api) will depend on your specific usage. Contact us so that we can review your needs and define the best approach together.

### Custom Audience API

* [ ] If you are using the [MEP Custom Audience API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/custom-audience), you need to <mark style="background-color:yellow;">upgrade to the</mark> [<mark style="background-color:yellow;">CEP Audiences API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/audiences) so that the resulting audiences are usable on the CEP.

{% hint style="info" %}
This option is not applicable if you are sending **Installation IDs** with the [MEP Custom Audience API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/custom-audience). In this case, contact us so that we can review your needs and define the best approach together.
{% endhint %}

### Custom Data API

* [ ] If you are using the [Custom Data API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/custom-data-api), we encourage you to <mark style="background-color:yellow;">move to the</mark> [<mark style="background-color:yellow;">Profiles API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles) to send data to all platforms (iOS, Android, Web) of your omnichannel project within **a single API call**.
* [ ] If you are not ready to move to the [Profiles API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles) yet, the [Custom Data API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/custom-data-api) is still compatible with the CEP, **except in one specific case**: if you are using the `overwrite: true` parameter, API calls are skipped for the data integration into the CEP. To keep using the [Custom Data API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/custom-data-api) while using the CEP, you need to ensure that the `overwrite` parameter is set to `false`.

{% hint style="danger" %}
Once the CEP is activated for your account, you will need to do **a one-shot API call to send all attributes again** for all users so that they are available for the CEP usage.
{% endhint %}

### Trigger Events API

* [ ] If you are using the [Trigger Events API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/trigger-events-api), we encourage you to <mark style="background-color:yellow;">move to the</mark> [<mark style="background-color:yellow;">Profiles API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles) to send the events to all platforms (iOS, Android, Web) of your omnichannel project within **a single API call**.
* [ ] If you are not ready to move to the [Profiles API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles) yet, the [Trigger Events API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/trigger-events-api) is still fully compatible with the CEP, without any additional action on your side.

### App Data API

* [ ] If you are using the [App Data API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/app-data), you need to <mark style="background-color:yellow;">upgrade to the</mark> [<mark style="background-color:yellow;">Catalogs API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/catalogs) to store non-user-centric data and use it to personalize your messages on the CEP.

### GDPR API

The [GDPR API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/gdpr) is fully compatible with the CEP, without any additional action on your side.

### Export API

* [ ] If you are using the [MEP Export API](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/export), we recommend upgrading <mark style="background-color:yellow;">to the</mark> [<mark style="background-color:yellow;">Profile API - Export Profile Data</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles/export) to export data from the CEP data model.

### Webhooks

* [ ] The migration to the CEP of your use cases relying on the [Webhooks](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/mep/webhooks) will depend on your specific usage. Contact us so that we can review your needs and define the best approach together.

## 4. Additional features

### Custom Exports

You may have set up custom exports to receive files from Batch on external storage that you manage (such as SFTP, S3, AWS, etc.). These must be updated to ensure compatibility with the CEP.

We highly recommend <mark style="background-color:yellow;">switching from these flat file exchanges to the</mark> [<mark style="background-color:yellow;">Profiles API - Export Profile Data</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/profiles/export) so that you are fully autonomous for the setup and maintenance of these data flows. If that's not an option on your end, please reach out to us.

### CSV audience importer

You may have requested from Batch to set up a custom script to import audiences from files that you drop on external storage that you manage (such as SFTP, S3, AWS, etc.).

* [ ] This feature must be updated to ensure compatibility with the CEP. We recommend <mark style="background-color:yellow;">switching from this custom script to the</mark> [<mark style="background-color:yellow;">CEP Audiences API</mark>](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/api/cep/audiences) so that you are fully autonomous for the setup and maintenance of these data flows. If that's not an option on your end, please contact us to schedule the update of the script.

### Editorial Dashboard

The upgrade of the Editorial dashboard to the CEP does not require any additional technical action on your side.

{% hint style="danger" %}
If you change the data collection setup (custom attributes, tag collections, or events) used for targeting in your editorial dashboard, it will likely impact the delivery of the corresponding push notifications. We recommend avoiding changes whenever possible; if you have no alternative, please get in touch with us first.
{% endhint %}

## 5. Third-party integrations

You may have configured [connections between Batch and our partners' solutions](https://batch.com/partners) (Analytics, CDP, etc.).

* [ ] Establish the list of connectors you are willing to upgrade, and <mark style="background-color:yellow;">contact us to get the upgrade steps</mark>.

{% hint style="info" %}
[Event dispatchers](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/sdk/ios/event-dispatchers) (used to connect the Batch mobile SDK with external Analytics tools) are compatible with the CEP, without any additional action on your side.
{% endhint %}

## Next Steps

Once you have performed the necessary checks and updates:

1. <mark style="background-color:yellow;">**Test**</mark>**:** After making changes, especially SDK updates and data format adjustments, test your app extensively. Pay close attention to data collection across all relevant platforms (iOS, Android, Web).
   * [How to test the integration on Android?](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/technical-guides/how-to-guides/mobile/android-specific/how-to-test-the-integration-on-android)
   * [How to test the integration on iOS?](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/technical-guides/how-to-guides/mobile/ios-specific/how-to-test-the-integration-on-ios)
   * [How to test my Web Push integration?](https://app.gitbook.com/s/CL8wF0y1T2vLnm3yR2MW/technical-guides/how-to-guides/web/how-to-test-my-web-push-integration)
2. <mark style="background-color:yellow;">**Inform us**</mark>**:** Reach out to us to confirm that you have completed the prerequisite actions, and we will work with you to schedule the migration of your account to the CEP.

{% hint style="info" %}
If you have any questions about any of the steps outlined above, feel free to reach out to us via your dedicated Customer Success Manager or <support@batch.com>.
{% endhint %}

{% hint style="info" %}
CRM teams can refer to [this guide to prepare the migration from the MEP to the CEP](https://doc.batch.com/getting-started/other/implementation-guides/mep-to-cep-migration/how-to-prepare-for-the-migration-from-the-mep-to-the-cep-for-crm-teams).
{% endhint %}
