description |
---|
Step-by-step guide to send event data from RudderStack to Iterable |
Iterable is a popular growth marketing platform that allows you to maximize customer interaction, and improve your customers' overall LTV (Life Time Value).
RudderStack allows you to configure Iterable as a destination and send your event data to it directly.
To enable sending data to Iterable, you will first need to add it as a destination to the source from which you are sending your event data. Once the destination is enabled, events from RudderStack will start flowing to Iterable.
Before configuring your source and destination on the RudderStack, please verify if the source platform is supported by Iterable, by referring to the table below:
Connection Mode | Web | Mobile | Server |
---|---|---|---|
Device mode | - | - | - |
Cloud mode | - | Supported | Supported |
{% hint style="info" %} To know more about the difference between Cloud mode and Device mode in RudderStack, read the RudderStack connection modes guide. {% endhint %}
Once you have confirmed that the platform supports sending events to Iterable, please perform the steps below:
- Choose a source to which you would like to add Iterable as a destination.
{% hint style="info" %} Please follow our Adding a Source and Destination guide to know how to add a source in RudderStack. {% endhint %}
- Select the destination as Iterable to your source. Give your destination a name and then click on Next.
- On the Connection Settings page, ****fill all the fields with the relevant information and click Next.
The following are the settings to be configured:
- Iterable API Key: The API key can be found under API Configuration Settings in your Iterable account.
- Map All Pages to Single Event Name: If this is enabled, all the pages will be tracked to Iterable with the same event name.
- For page:
Loaded a Page
- For screen:
Loaded a Screen
- For page:
- Track All Pages: All page events will be sent, if enabled.
- Track Categorized Pages: Only pages having a category will be tracked, if enabled.
- Track Named Pages: Only pages having a name will be tracked, if enabled.
When an identify
call is made, RudderStack calls the Update User API of Iterable and sends the data accordingly.
{% hint style="warning" %}
A user is identified by emailId
or userId
. If none of these is passed in the call, the sending of event fails.
{% endhint %}
A sample identify
call is as shown:
[[RSClient sharedInstance] identify:@"test_user_id"
traits:@{@"foo": @"bar",
@"foo1": @"bar1",
@"email": @"[email protected]",
@"key_1" : @"value_1",
@"key_2" : @"value_2"
}
];
If the deviceToken
for Push Notification is present in context
of the payload then a mapping will be done for the user with the device to register for push. This will add the data if it doesn't exist yet. It will also update data fields on the device.
We use mobile device registration API for sending the token information from a device. We set the platform
parameter as APNS
and GCM
for iOS and Android devices respectively. Similarly, we use the browser token registration API for Web platform.
{% hint style="info" %} To understand more about Push Notification registration check the Iterable guides for Android and iOS. {% endhint %}
When the page
method is called, the RudderStack server sends a track event to Iterable with the userId
, emailId
, and eventName
parameters.
If the user does not already exist in Iterable, RudderStack will add the user to the system as long as email
is present in the call. If email is not present, Iterable will reject the event.
{% hint style="info" %}
Iterable requires that you pass email
the first time you call page
for a user. Subsequent calls can use the userId
identifier.
{% endhint %}
If the name of the page is Application Home the event name in iterable will be Application Home Page.
{% hint style="info" %} Note that the above case will differ according to the settings set by the user in RudderStack dashboard. Refer to the configurable settings in the Getting Started section above for more information. {% endhint %}
A sample page
call is as shown:
rudderanalytics.page({
path: "path",
url: "url",
title: "title",
search: "search",
referrer: "referrer"
});
The screen
call is the mobile equivalent of the page
. When called, it sends a track
event to Iterable with userId
,emailId
, and eventName
. In this case, the email ID will be checked if present and will create a new user if not. If the name of the page is Main Activity, the event name will set as Main Activity Screen.
{% hint style="info" %} Note that the above case will differ according to the settings set by the user in RudderStack dashboard. Refer to the configurable settings in the Getting Started section above for more information. {% endhint %}
A sample screen
call is as shown:
[[RSClient sharedInstance] screen:@"Main"];
When the track
call is made, the track API endpoint of Iterable is called by RudderStack to send the events. The event properties are sent as data fields in the request, while the name of the event is sent as a Custom Event.
A sampletrack
call is as shown:
[[RSClient sharedInstance] track:@"Accepted Terms of Service"
properties:@{
@"foo": @"bar",
@"foo_int": @134
}];
{% hint style="info" %}
If a user does not exist in Iterable, the track
call for the user event will add the user in Iterable.
{% endhint %}
You can find the relevant details of the eCommerce events in the RudderStack E-Commerce Events Specification guide.
The E-Commerce event Order Completed
is supported by RudderStack. The other events will be sent as simple track events. The end point details of Iterable is in the Track a purchase event.
User properties, item properties and total are compulsory for sending the order completed event.
Below is an example Order Completed
event.
rudderanalytics.track('Order Completed', {
"total": 1000,
"products": [
{
"product_id": "507f1f77bcf86cd799439011",
"sku": "45790-32",
"name": "Monopoly: 3rd Edition",
"price": "19",
"position": "1",
"category": "Cars",
"url": "https://www.example.com/product/path",
"image_url": "https://www.example.com/product/path.jpg"
},
{
"product_id": "507f1f77bcf86cd799439011",
"sku": "45790-32",
"name": "Monopoly: 3rd Edition",
"price": "19",
"quantity": "2",
"position": "1",
"category": "Cars",
"url": "https://www.example.com/product/path",
"image_url": "https://www.example.com/product/path.jpg"
}
]
})
The eCommerce event Product Added
or Product Removed
is supported by RudderStack. It is sent to Iterable with the end point details present in the Update a user's shopping cart items event.
For this event, the user has to send the whole updated cart and not the individual items that are being added or removed.
rudderanalytics.track('Product Added', {
"total": 1000,
"products": [
{
"product_id": "507f1f77bcf86cd799439011",
"sku": "45790-32",
"name": "Monopoly: 3rd Edition",
"price": "19",
"position": "1",
"category": "Cars",
"url": "https://www.example.com/product/path",
"image_url": "https://www.example.com/product/path.jpg"
},
{
"product_id": "507f1f77bcf86cd799439011",
"sku": "45790-32",
"name": "Monopoly: 3rd Edition",
"price": "19",
"quantity": "2",
"position": "1",
"category": "Cars",
"url": "https://www.example.com/product/path",
"image_url": "https://www.example.com/product/path.jpg"
}
]
})
{% hint style="info" %} For this event, the user properties and item properties are compulsory. {% endhint %}
You can get the Iterable API key under the API Configuration Settings section in your Iterable account.
If this setting is enabled in the RudderStack dashboard, only the pages having a name will be tracked.
If this setting is enabled, only the pages having a category will be tracked.
If you come across any issues while configuring or using Iterable with RudderStack, please feel free to contact us. You can also start a conversation on our Slack channel; we will be happy to talk to you!