Iterable Cloud Mode Integration

Send events to Iterable using RudderStack cloud mode.

RudderStack lets you send your event data to Iterable via cloud mode.

Find the open source transformer code for this destination in the GitHub repository.

info
RudderStack batches the events together before sending them to Iterable. This reduces the number of API calls and enables faster event delivery.

Identify

When you make an identify call, RudderStack calls Iterable’s Update User API to send the data.

warning
Iterable identifies a user by email or userId. If none of these traits is present in the call, RudderStack will not send the event to Iterable.
info
Iterable gives precedence to email over userId in case both the traits are present in the identify call.

A sample identify call is as shown:

rudderanalytics.identify(
  "userId",
  {
    city: "New Orleans",
    name: "Alex Keener",
    email: "alex@example.com",
    country: "USA"
  }
);

Deleting a user

You can delete a user in Iterable using the Suppression with Delete regulation of RudderStack’s User Suppression API.

For more information on deleting users in Iterable, see Iterable’s API documentation.

To delete a user, you must specify their userId in the event.

A sample regulation request body for deleting a user in Iterable:

{
  "regulationType": "suppress_with_delete",
  "destinationIds": [
    "2FIKkByqn37FhzczP23eZmURciA"
  ],
  "users": [{
      "userId": "1hKOmRA4GRlm",
    }
  ],
}
info
RudderStack uses the Iterable API key for deleting users.

Push notification registration

RudderStack uses Iterable’s device registration API to send the token information from a device. It also sets the platform parameter to APNS and GCM for iOS and Android devices respectively.

Similarly, RudderStack uses Iterable’s browser token registration API for the web platform.

If the deviceToken associated with the push notification is present in context of the event payload, then RudderStack will map 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.

info
To learn more about Iterable’s push notification registration feature for mobile devices, refer to their Android and iOS documentation.

Page

When you call the page method, the RudderStack sends a track event to Iterable with the userId, email, and eventName parameters. If the user does not already exist in Iterable, RudderStack will add them to the system as long as email is present in the event. If email is not present, Iterable will reject the event.

info
Iterable requires email for the first time you call page for a given user. The subsequent events can contain userId.

If the name of your page is Application Home, then RudderStack sends the event to Iterable as Application Home Page.

warning
The event name will differ according to the settings you specify in the RudderStack dashboard. Refer to the Connection settings section above for more information.

A sample page call is shown below:

rudderanalytics.page({
  path: "home",
  url: "https://www.example.com/home",
  title: "Home Page",
  search: "home",
  referrer: "https://www.example.com/previous",
})

Screen

The screen event is the mobile equivalent of the page. When you make a screen call, RudderStack sends a track event to Iterable with the userId,email, and eventName parameters . If a user corresponding to the email ID is absent, Iterable will create a new user.

If the name of your screen is Main Activity, RudderStack sends the event to Iterable as Main Activity Screen.

warning
The event name will differ according to the settings you specify in the RudderStack dashboard. Refer to the Connection settings section above for more information.

A sample screen call is as shown:

[[RSClient sharedInstance] screen:@"Main"];

Alias

The alias call lets you merge different identities of a known user. The format of an alias call is shown below:

rudderanalytics.alias("userId","previousId");

To send an alias event to Iterable, you must set previousId to the current email and userId as new email:

rudderanalytics.alias("new@email.com", "current@email.com");

Track

When you make a track call, RudderStack uses Iterable’s Track API 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.

warning
Iterable requires email for the first time you send a track event for a given user. If a user does not exist, Iterable creates new users for those track calls which have email.

A sampletrack call is shown below:

rudderanalytics.track(
  "Email Opened", {
    "subject": "Resume validation",
    "sendtime": "2022-01-01",
    "sendlocation": "alex@example.com"
  }, {
    traits: {
      email: "alex@example.com"
    }
  }
);

Ecommerce

You can find the relevant details of the ecommerce events in the Ecommerce Events Specification.

Order Completed

RudderStack supports the ecommerce event Order Completed and sends the other events as generic track events. Refer to the corresponding Iterable endpoint details in the Track a purchase API.

info
RudderStack requires the user properties, item properties, and total to successfully send the Order Completed event.

The following snippet highlights a sample 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: "Games,Gifts,Entertainment,Toys",
      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: "Games,Gifts,Entertainment,Toys",
      url: "https://www.example.com/product/path",
      image_url: "https://www.example.com/product/path.jpg",
    },
  ],
})

Product Added / Product Removed

RudderStack supports the ecommerce event Product Added or Product Removed and sends the information to Iterable via the updateCart endpoint, corresponding to updating a user’s shopping cart items.

warning
RudderStack requires the user and item properties to successfully send the Order Completed event to Iterable. Also, you must send the whole updated cart details and not just the updated individual items added/removed from the cart.

A sample snippet highlighting the Product Added event is shown below:

rudderanalytics.track("Product Added", {
  total: 1000,
  products: [
    {
      product_id: "507f1f77bcf86cd799439011",
      sku: "45790-32",
      name: "Monopoly: 3rd Edition",
      price: "19",
      position: "1",
      category: "Games,Gifts,Entertainment,Toys",
      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: "Games,Gifts,Entertainment,Toys",
      url: "https://www.example.com/product/path",
      image_url: "https://www.example.com/product/path.jpg",
    },
  ],
})

Questions? Contact us by email or on Slack