Iterable is a cross-channel platform that powers unified customer experiences and empowers marketers to create, optimize, and measure every interaction across the entire customer journey. They’re primarily used to activate users by enabling habit-forming usage patterns and re-engage users throughout their lifecycle.
The Heap Iterable integration is bi-directional:
- Automatically capture interesting moments from Iterable as events in Heap (open email, open push notification, etc)
- Send behavioral data into Iterable as dynamic lists to run marketing campaigns
With this integration, digital marketers can incorporate the granular user behavioral data available from Heap into marketing campaigns without additional engineering effort. Campaigns can be more effectively personalized to better drive critical product and business outcomes, like activation, trial conversion, and retention.
Email Join Key Required
You need to have email addresses attached to your users in Heap to match data between Heap and this source. This property can be set to identity or any custom user property in Heap.
If you are not currently sending email addresses into Heap you will need to use Heap’s APIs to do so. Learn more about attaching email data to users via Heap’s identity API.
To set this up, navigate to Integrations > Directory > Iterable and click the Set Up button under the Data In card.
Step 1: Enable the Iterable Source in Heap
If this is the first data-in integration you’ve set up in your account, you’ll be prompted to select a User Id in Heap that contains email addresses. These values are used to match the Iterable events to the correct user profiles in Heap.
Copy the Endpoint URL on the next screen for the next step.
Step 2: Set Up Iterable System Webhook
In the Iterable UI, navigate to Integrations > System webhooks and click the Create Webhook button in the top right corner.
Paste the Endpoint URL from step 1 in the modal that appears.
Click Create once you’re done.
On the next page, select the following options:
- Status: enabled
- Authentication: none
And then check off any events you want to send to Heap.
Click Save Webhook once you’re done.
Step 3: Define Events in Heap for Analysis
If you have active campaigns running in Iterable, events should begin flowing into Heap within 5 minutes. In order to analyze these events in Heap, you need to first define the relevant events in Heap by going to Definitions > New Definition > New Event.
Then, create a Heap event for each Iterable event you want to analyze:
After you define the event, it should appear in any analysis queries you want to run in Heap.
Based on the events you selected in step 2, you should expect to see the following Iterable events when defining an event in Heap:
|Event Name||Event Description|
|Email Blast Send||An email sent as part of a marketing or blast campaign.|
|Email Triggered Send|
|Email Click||A user clicked on a link within an email.|
|Email Open||The recipient has opened the HTML message.|
|Email Subscribe||A user subscribed to a messaging channel.|
|Email Unsubscribe||A user clicked on a message’s subscription management link.|
|Email Hosted Unsubscribe|
|Email Bounce||A sent email that has been rejected by the email server.|
|Email Complaint||A user marked message as spam.|
|Email Send Skip||The email queue skipped over a specific user.|
|SMS Send||An SMS that has been successfully delivered to the receiving server.|
|SMS Received||A user has sent an inbound SMS that was received by a server.|
|SMS Bounce||An SMS that has been rejected by a server.|
|SMS Send Skip||An event indicating that Iterable did not send a SMS to an intended recipient, for any of various reasons.|
|Push Send||A mobile push notification sent by Iterable.|
|Push Open||A user has been shown push notification by client app.|
|Push Bounce||A sent push notification that has been rejected by the device.|
|Push Uninstall||A ghost push notification sent 12 hours after the original push delivered results in rejection from the receiving server. In Iterable documentation, this event is also sometimes referred as “Mobile App Uninstalled”.|
|Push Send Skip||An event indicating that Iterable did not send a push notification to an intended recipient, for any of various reasons.|
|In-App Send||An event indicating that Iterable sent an in-app message to a user. It does not mean that the user received the message.|
|In-App Click||An event indicating that a user tapped a link or button in an in-app message.|
|In-App Open||An event indicating that an in-app message displayed in an app, either because it appeared on arrival or because the user selected it in the device.|
|In-App Send Skip||An event indicating that Iterable did not send an in-app message to an intended recipient, for any of various reasons.|
|Web Push Send||A notification sent by Iterable to a user using Chrome, Firefox, or Opera web browsers.|
|Web Push Click|
|Web Push Send Skip||An event indicating that Iterable did not send a web notification to an intended recipient, for any of various reasons.|
Destination (Iterable Data Connector)
Step 1: Enable Iterable Destination in Heap
To set this up, navigate to Integrations > Directory > Iterable and click the Set Up button under the Data Out card.
Step 2: Create Iterable API Key in Iterable
You’ll need an Iterable API key to complete set up. You can get this by creating a standard API key in Iterable on the API keys page.
Step 3: Input Iterable API Key in Heap
Next, copy and paste the API key into the Setup Iterable Integration in Heap.
Step 4: Select Property to Map Heap Data to Iterable
On this page, you’ll be prompted to select the Heap User ID and Iterable User ID to map users between the two platforms. This is typically the user’s email address, though you can use any IDs that match.
Once you click Confirm, the Data Out section will show as connected on the Iterable page.
Step 5: Sync Heap Segments to Iterable
Now you can toggle on any defined segment to sync into Iterable as lists. To do so, navigate to Definitions > Segments, click on any segment, then in the Integrations section, click the toggle next to Iterable.
The segment will begin syncing immediately, and you should see a list in Iterable with the same segment name within 2-5 minutes. We only allow you to have 30 segments recurrently syncing to Iterable at one time. After the first sync completes, the segment will update every 4 hours.
Frequently Asked Questions
Can you connect more than 1 Iterable project?
At this point, you can only connect 1 Iterable project to 1 Heap environment. Please let us know if you need to connect more than 1 Iterable projects to 1 Heap environment as we’re open to feedback to improve this integration.
What happens if a user gets synced by Heap but does not exist in Iterable?
That user will still be included in the Iterable list after the sync. Heap syncs all users in the segment; this includes users that both exist and do not exist in Iterable prior to the sync.