Iterable Destination


Getting Started

When you switch on the Iterable destination in your Segment dashboard, your data will start flowing into Iterable, which will trigger workflows and be available for analytics. You can locate your Iterable API key by going to Destinations → API Keys inside the Iterable app.

Use Cases


Identify

When you call identify with one of Segment’s sources, we’ll call Iterable’s update user endpoint, to add data for that particular user. You can also call identify to update user fields.

Iterable keys users by email or a user ID. This user ID will be the Segment userId if sent. Note that if you fail to send either of userId or email, Iterable won’t accept the request and throws an error.

Merge Nested Objects

Iterable offers the option to either merge user fields with nested data or overwrite them. (see their docs for more info). By default, this option is set to false. If you wish to disable this, you can pass an destination specific property called mergeNestedObjects and set it’s value to true.

Here’s an example:

analytics.identify({
    userId: 'user-id',
    traits: {
        settings: {
            mobile: true
        }
    },
    integrations: {
        Iterable: {
            mergeNestedObjects: true
        }
    }
});

This identify event would merge the mobile property for this user with any other settings that were previously a part of that users settings field.

Track

When you call track with one of Segment’s sources, we’ll call Iterable’s track API endpoint, and send over the event properties as the data fields in the request. The name of the track event will show up as a Custom Event in Iterable, and will be available to trigger workflows, segment users, and view analytics.

If a user does not already exist in Iterable, calling track for a user event will add that user into the system. You can track with either an email or userId (if a userId exists for that email).

Example steps:

First track event with userId and email; user will be created

Subsequent track with userId

Ecommerce

Iterable also supports Segment’s ecommerce events. This works just as you would expect, using the track method.

_Note: there is one important difference from the Segment documentation. If you are using the Product Added / Product Removed events, you will need to also pass along the “products” field with your cart info, just like Segment’s example for the Order Completed event. You must include all required fields for the Purchase events in Iterable, which includes the total value of the purchase with the property: total. This value works best as a float, double, and possibly an integer. An example might look like this: _

analytics.track("Order Completed", {
  total: 100.00
});

Page

Calling page to track pageviews will register as a custom event within Iterable. If you have a page called “shoppingCart” the custom event will be called “shoppingCart page” within Iterable.

If a user does not already exist in Iterable, calling page for a user event will add that user into the system. Be sure to pass in the email the first time you call page for a user, since Iterable keys users by email. After the first time, you can call page with userId.

Example steps:

Call page with userId and email; if with email and the email doesn’t exist, the user will be created.

Sending Email Data from Iterable

Iterable supports sending email events to other tools on the Segment platform. These events will be sent as track calls to the other destinations you’ve turned on.

To enable this feature, go to Destinations, Third Party, and select Segment in the Add Destinations button. Then, enter your API key.

Send email events from Iterable

Sending Push Notification Data from Iterable

Iterable supports sending push notification events to Segment. These events will be sent as track calls to the other destinations you’ve turned on. Push events will be automatically enabled once the Email Source is enabled.

They support the following events: Push Delivered, Push Bounced, Mobile App Uninstalled, Push Opened

Personas

You can send computed traits and audiences generated through Segment Personas to this destination as a user property. To learn more about Personas, reach out for a demo.

For user-property destinations, an identify call will be sent to the destination for each user being added and removed. The property name will be the snake_cased version of the audience name you provide with a true/false value. For example, when a user first completes an order in the last 30 days, we will send an identify call with the property order_completed_last_30days: true, and when this user no longer satisfies we will set that value to false.

When the audience is first created an identify call is sent for every user in the audience. Subsequent syncs will only send updates for those users which were added or removed since the last sync.

Supported Sources and Connection Modes

The first step is to make sure Iterable supports the source type and connection mode you’ve chosen to implement. You can learn more about what dictates the connection modes we support here.

Web Mobile Server
📱 Device-mode
☁️ Cloud-mode

To learn more about about Connection Modes and what dictates which we support, see here.

This destination requires a Device-based Connection Mode for Mobile data. Follow the steps above to ensure you have packaged the Iterable SDK with Segment’s.

Settings

Segment lets you change these destination settings from your Segment dashboard without having to touch any code.

Track Categorized Pages

Send an event for every page or screen with a category.

Track Named Pages

Send an event for every page or screen with a name.

API Key

You can find your iterable API key under your “API Configuration Settings”. It should look something like this: 42f187310705012194bd0bd694905664ae.

Map All Pages to Single Event Name

When sending a page or screen event, always use the same Iterable “Event Type”. The other page-related settings, i.e. “Track All/Categorized/Named Pages”, are still relevant – they determine whether an event will be sent to Iterable at all.

Pages will be sent as “Loaded a Page”. Screens will be sent as “Loaded a Screen”.

Track All Pages

Send an event for every page or screen event.

Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
or
Create free account