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


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. To use a Segment userId for identify calls, first call identify with both a userId and email. Iterable won’t accept the request and throws an error if you fail to send one of either the userId or email.


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


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


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


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.

Segment offers an optional Device-based Connection Mode for Mobile data going to Iterable, so that you can use Iterable features that collect data directly from the mobile device. To do this, you must package the Segment-Iterable mobile SDK with the Segment mobile SDK.


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


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.

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.

This page was last modified: 21 Feb 2020

Get started with Segment

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