📘

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, and order_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, and ip.
    • Event-specific mappings capture additional contextual data like product details, quantities, and transaction amounts.
  • 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 the dataFields object does not transfer if the source profile lacks it. Geolocation is only updated for identify 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

  1. Log in to your Iterable account.
  2. Navigate to the API Keys section in the account settings.
  3. Create a new API key with the necessary permissions for event tracking and user data management.
  4. 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.
  5. 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 ParameterDescription
API_KEYThe API key from your Iterable account. Required for authentication.
API_BASE_URLThe 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 KeyDescriptionExpected Input
id RequiredString: A unique identifier for the event.messageId
createdAt RequiredInteger: The event timestamp in seconds since the Unix epoch.Expression - Convert input.timestamp using SECONDS_SINCE_EPOCH_FROM_RFC3999.
dataFields.ipString: The user’s IP address.context.ip
dataFields.userAgentString: The user’s browser or device user agent.context.userAgent
createNewFieldsBoolean: Indicates whether to create new custom fields automatically if not predefined.Enrichment - true

Event Specific

Identify

Output KeyDescriptionExpected Input
email RequiredString: The email address of the user.traits.email
userId Highly RecommendedString: The unique identifier of the user.anonymousId
dataFieldsObject: Custom fields for user identification.properties

Product Added

Output KeyDescriptionExpected Input
user.email RequiredString: The email address of the user.traits.email
user.userId Highly RecommendedString: The unique identifier of the user.anonymousId
items RequiredArray: 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 KeyDescriptionExpected Input
user.email RequiredString: The email address of the user.traits.email
user.userId Highly RecommendedString: The unique identifier of the user.anonymousId
total RequiredFloat: The total value of the order.Expression - Calculate from input.properties.products prices and quantities.
items RequiredArray: List of purchased product objects, including id, sku, name, categories, price, and quantity.Expression - Derived from input.properties.products.
dataFieldsObject: 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 KeyDescriptionExpected Input
email RequiredString: The email address of the user.traits.email
userId Highly RecommendedString: The unique identifier of the user.anonymousId
eventName RequiredString: The name of the event being tracked.Expression - Derived from input.event for track events or input.type.
dataFieldsObject: 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.

AttributeExampleSync Injector Required?
user.email Required[email protected]No
user.userId Recommended123456No
dataFields.ip203.0.113.42No
dataFields.userAgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36No

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.

AttributeDescriptionExample
dataFields.referrerThe referring URL for the current page.e.g., https://example.com
dataFields.localeThe user's locale settings, e.g., language.e.g., en-US

Additional Iterable Documentation