Iterable
This integration is currently in beta. Contact your MetaRouter support team to get started.
What Is Iterable?
Iterable is a cross-channel marketing platform designed to help businesses create seamless and personalized customer experiences. It enables marketers to design, execute, and optimize campaigns across email, SMS, push notifications, in-app messaging, and social media channels. With robust automation, segmentation, and analytics capabilities, Iterable empowers brands to deliver targeted and data-driven messaging.
What are the benefits of integrating MetaRouter with Iterable?
- Improved Data Accuracy: Server-side integration ensures that data sent to Iterable is accurate, reliable, and adheres to privacy standards.
- Real-Time Data Flow: MetaRouter enables seamless, real-time event delivery to Iterable, allowing faster and more responsive marketing campaigns.
- Customizable Event Mappings: Businesses can tailor event and user data mapping to align with Iterable's API requirements and specific use cases.
Capabilities and Considerations
- Project Support: This integration supports both hybrid and email-only Iterable projects, enabling flexible use cases depending on project type.
- Event Tracking: Supports standard event types like
identify
,product_added
, andorder_completed
, as well as custom events and parameters in alignment with Iterable’s API schema. - Default Event Mapping: Default events in the integration are used to track all events not covered by specific APIs, such as add to cart, purchase, or identify. These events leverage the generic
/api/events/track
endpoint, allowing for flexible tracking of custom user interactions and behaviors outside the scope of dedicated APIs. - Global and Event-Specific Mappings:
- Global mappings ensure consistent inclusion of key identifiers, such as
email
,userId
, andip
. - Event-specific mappings capture additional contextual data like product details, quantities, and transaction amounts.
- Global mappings ensure consistent inclusion of key identifiers, such as
- Data Transformation: Lua expressions allow for dynamic data transformations and enrichment prior to transmission, ensuring compatibility with Iterable’s requirements.
- Authentication: Integrates with Iterable using API key-based authentication for secure data exchange.
- Data Schema Compliance: Event payloads must strictly adhere to Iterable’s API specifications. Non-compliant payloads will be rejected without automatic error correction or fallback.
- Merge Users: The MetaRouter integration utilizes Iterable’s Merge Users API to consolidate duplicate user profiles by merging a source user profile into a destination user profile. This process transfers system events, custom events, and user profile fields from the source to the destination, ensuring data consistency and reducing fragmentation. The source user profile is deleted post-merge, and conflicts in overlapping fields are resolved by prioritizing the destination profile’s data. This functionality is especially valuable in hybrid or email-based projects where multiple identifiers (e.g., email, userId) may represent the same user.
- Region-Specific Base URL Requirements: Data center-specific base URLs must be configured for regional compliance. Failure to use the correct URL may result in rejected or misrouted requests.
- IP Override: If the Iterable project setting 'Automatically update IP in user profile from inbound events' is enabled, the ip field updated by MetaRouter may be overwritten after email clicks. This setting populates the ip field on user profiles based on Iterable’s tracking, which could impact data consistency. Customers should be aware of this potential interaction when configuring their integration.
Limitations
- Push Notification Support: This integration does not support push notification delivery to Iterable. Only event tracking and email project data are supported.
- No In-App Messaging or SMS Support: In-app messaging, SMS, and other Iterable campaign types are not handled by this integration. The focus is on events and identifiers relevant to email and hybrid projects.
- Batch Event Processing: This integration processes events individually in real-time. Batch uploads or bulk event processing are not supported via the APIs being used.
- Geo Limitations on Merged Users: Geolocation updates for merged users are limited because the
ip
address in thedataFields
object does not transfer if the source profile lacks it. Geolocation is only updated foridentify
events through the/api/users/update
endpoint. This limitation arises as the source profile's data is either prioritized or omitted during the merge unless explicitly included, as per the Merge Users API behavior - Merge User Array Fields: We do not support merging array fields. If an array field exists, only the destination profile's version is retained during the merge.
Getting Started - From Your Iterable Account
- Log in to your Iterable account.
- Navigate to the API Keys section in the account settings.
- Create a new API key with the necessary permissions for event tracking and user data management.
- Locate your Iterable data center to determine the appropriate
API_BASE_URL
:- For US-based accounts, use
https://api.iterable.com
. - For EU-based accounts, use
https://api.eu.iterable.com
. - For other regions, refer to Iterable's documentation or contact support for the correct base URL.
- For US-based accounts, use
- Copy the API key and the corresponding
API_BASE_URL
to use in the MetaRouter integration.
Getting Started - From Your MetaRouter Account
Adding an Iterable integration.
From the integration library, add an Iterable integration. Then, fill out the Connection Parameters:
Connection Parameter | Description |
---|---|
API_KEY | The API key from your Iterable account. Required for authentication. |
API_BASE_URL | The base URL for the Iterable API. Typically, https://api.iterable.com . |
Event Mappings
MetaRouter provides all of the event mappings that Iterable integrations typically require. You may add custom events, parameters or mappings in accordance with Iterable’s API documentation.
Global
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
Output Key | Description | Expected Input |
---|---|---|
id Required | String: A unique identifier for the event. | messageId |
createdAt Required | Integer: The event timestamp in seconds since the Unix epoch. | Expression - Convert input.timestamp using SECONDS_SINCE_EPOCH_FROM_RFC3999 . |
dataFields.ip | String: The user’s IP address. | context.ip |
dataFields.userAgent | String: The user’s browser or device user agent. | context.userAgent |
createNewFields | Boolean: Indicates whether to create new custom fields automatically if not predefined. | Enrichment - true |
Event Specific
Identify
Output Key | Description | Expected Input |
---|---|---|
email Required | String: The email address of the user. | traits.email |
userId Highly Recommended | String: The unique identifier of the user. | anonymousId |
dataFields | Object: Custom fields for user identification. | properties |
Product Added
Output Key | Description | Expected Input |
---|---|---|
user.email Required | String: The email address of the user. | traits.email |
user.userId Highly Recommended | String: The unique identifier of the user. | anonymousId |
items Required | Array: List of product objects added to the cart, each including id , sku , name , categories , price , and quantity . | Expression - Derived from input.properties . |
Order Completed Event
Output Key | Description | Expected Input |
---|---|---|
user.email Required | String: The email address of the user. | traits.email |
user.userId Highly Recommended | String: The unique identifier of the user. | anonymousId |
total Required | Float: The total value of the order. | Expression - Calculate from input.properties.products prices and quantities. |
items Required | Array: List of purchased product objects, including id , sku , name , categories , price , and quantity . | Expression - Derived from input.properties.products . |
dataFields | Object: Additional custom fields for the purchase event. | Expression - Derived from input.properties with products removed. |
Default Event Mappings
Default events in the integration are used to track all events not covered by specific APIs, such as add to cart, purchase, or identify. These events leverage the generic /api/events/track
endpoint, allowing for flexible tracking of custom user interactions and behaviors outside the scope of dedicated APIs.
Output Key | Description | Expected Input |
---|---|---|
email Required | String: The email address of the user. | traits.email |
userId Highly Recommended | String: The unique identifier of the user. | anonymousId |
eventName Required | String: The name of the event being tracked. | Expression - Derived from input.event for track events or input.type . |
dataFields | Object: Additional custom fields associated with the event. | properties |
Required & Recommended Identifiers
These identifiers must be mapped to Iterable in order for successful user matching to occur. Without these IDs, any events sent to Iterable may not be accurately reflected in reporting. For your convenience, required and recommended IDs are mapped as Global parameters to ensure they are added to every event.
Attribute | Example | Sync Injector Required? |
---|---|---|
user.email Required | [email protected] | No |
user.userId Recommended | 123456 | No |
dataFields.ip | 203.0.113.42 | No |
dataFields.userAgent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 | No |
Additional Identifiers
These identifiers should be mapped to Iterable whenever possible to ensure the highest user match rates possible. If using these identifiers, they must be added as Global or Event Specific mappings.
Attribute | Description | Example |
---|---|---|
dataFields.referrer | The referring URL for the current page. | e.g., https://example.com |
dataFields.locale | The user's locale settings, e.g., language. | e.g., en-US |
Additional Iterable Documentation
Updated 1 day ago