With the RevenueCat and Iterable integration, you can personalize and launch Iterable campaigns based on in-app purchase and subscription events from RevenueCat.
This can help you engage customers in real time, based on how they respond to monetizing and conversion events. For example, you could automatically send push notifications to a user who signs up for a new subscription after a free trial or send an SMS to users who have requested a refund.
Configure the SDKs
First, you'll need to set up the same user identities in both the RevenueCat and Iterable SDKs in order to send events to the right user profiles in Iterable. You can also add a campaign and/or template ID to attribute events to specific Iterable campaigns and/or templates.
Set up the user ID field(s)
In order for Iterable to sync RevenueCat events to the right user profile,
you'll need to set up either the
$iterableUserId subscriber attribute
in the RevenueCat SDK. If neither of these fields exists, Iterable will
attribute events to a new user profile based on the RevenueCat app user ID.
Learn more about how Iterable
(Optional) Add a campaign or template ID
If you want to attribute RevenueCat events to a specific campaign or template,
$iterableTemplateId subscriber attributes
through the RevenueCat SDK or
You can find the code snippets you'll need for this in the RevenueCat documentation.
To connect RevenueCat to Iterable, you’ll need to copy the server-side API key for your Iterable project.
You can only view/copy an API key in Iterable when you first create it.
Don’t have an API key for your project yet? Create a new one.
Once you’ve located your server-side API key, head to RevenueCat to finish setting up the integration.
Once you’ve configured the RevenueCat SDK and the Iterable SDK to have the same user identities and have located the server-side API key for your Iterable project, navigate to the RevenueCat dashboard to turn on the integration.
- Open up your project in the RevenueCat dashboard and find the Integrations card in the left menu. Select +New.
- In the Integrations menu, select Iterable.
- Paste your Iterable server-side API key into the API key field.
- (Optional) If you have a separate Iterable sandbox project, you can also enter the corresponding API key in the Sandbox API key field.
- Enter the event names that RevenueCat should send, or choose the default event names.
- Choose whether you want RevenueCat to report proceeds (after the app store cut) or revenue (gross sales).
By default, this integration tracks the following events:
|RevenueCat Event||Description||Iterable Event|
|Initial Purchase||The first purchase of an auto-renewing subscription product that does not contain a free trial.||Purchase|
|Trial Started||The start of an auto-renewing subscription product free trial.||Purchase|
|Trial Converted||When an auto-renewing subscription product converts from a free trial to a normal paid period.||Purchase|
|Trial Cancelled||When a user turns off renewals for an auto-renewing subscription product during a free trial period.||Custom|
|Renewal||When an auto-renewing subscription product renews OR a user repurchases the auto-renewing subscription product after a lapse in their subscription.||Purchase|
|Cancellation||When a user turns off renewals for an auto-renewing subscription product during the normal paid period.||Custom|
|Uncancellation||When a user re-enables the auto-renew status for a subscription.||Custom|
|Non-Subscription Purchase||The purchase of any product that's not an auto-renewing subscription.||Purchase|
|Subscription Paused||When a subscription is paused. Available for Google Play subscriptions only.||Custom|
|Expiration||When a subscription expires.||Custom|
|Billing Issue||When a billing issue is detected.||Custom|
Learn more about tracking events with this integration in RevenueCat’s support documentation.
For revenue-generating events, such as trial conversions and renewals, RevenueCat will automatically record this amount along with the event in Iterable.
Have a question or need some help setting up this integration? Reach out to your Iterable CSM.