Integration tiles sync data to and from services outside of Iterable when users reach that step of a journey. There are four types of integration tiles:
- Live Data (Beta)
- Webhook
- Google Ads
# In this article
# Live Data tiles
BETA FEATURE
The Live Data tile is currently available as part of the Journey Live Data beta for select Iterable customers. If you're interested in using the feature during beta, reach out to your customer success manager to request access.
Live Data tiles fetch data from an external source using a journey webhook. This in-memory data only persists for the duration of a user's path through a journey and supports intelligent, real-time, contextual decisioning and personalization in journeys, such as stock updates and offer eligibility.
To set up a Live Data tile, follow these steps:
# Step 1: Select a webhook
Select the journey webhook that the Live Data tile will use to retrieve data.
To be used in a Live Data tile, a webhook must have Data Retrieval enabled, and you must have defined up to 10 fields from the webhook payload as live data fields during configuration. For detailed instructions on configuring webhooks to work with Live Data, see Creating Journey Webhooks.
# Step 2 (Optional): Configure dynamic parameters
If desired, enter key-value pairs to append as query string parameters to the webhook's endpoint URL. For each pair, the key is the parameter name and the value can be a static string or a Handlebars expression referencing user profile data or custom event data.
For example, let's say you're running an experiment and you want to pass the different variant IDs to determine which variant users received. You could set up the following dynamic parameters:
The resulting endpoint looks like this:
https://api.yourdomain.com/experiments/exposure?experimentId={{dataFields.experimentId}}&variant={{dataFields.variant}}&userId={{userId}}
NOTE
You can also add query string parameters and use Handlebars expressions directly in the endpoint URL when you configure the journey webhook itself. When the endpoint URL has these parameters defined at the webhook level, they apply to all tiles that reference that webhook. Use tile-level Dynamic Parameters when you need different values per tile; use webhook-level Handlebars expressions when the same value applies everywhere. For details on configuring the endpoint URL, see Journey Webhooks — Endpoint.
At any time, you can test the webhook request directly in the tile configuration to confirm that the webhook is returning the data you expect.
If your request includes variables in the endpoint URL, request body, or dynamic parameters, provide sample data so Iterable can populate those values before sending the test request. (Iterable also prefills configured dynamic parameters when possible.)
If no sample data is needed, Iterable runs the test immediately.
# Step 3 (Optional): Set a rate limit
Rate limits help you manage the volume of calls to a journey webhook. In high-traffic journeys, the number of calls to a webhook's endpoint may exceed the supported limit of the external service. A rate limit caps the number of calls per minute or second, pacing individual requests to prevent failures when high journey volume would otherwise overwhelm your endpoint.
You can set a default rate limit for a webhook when it is initially configured, and this default limit is automatically applied to any new Live Data or Webhook tiles that reference it. You can also choose to override the inherited default limit at the tile level. To override the limit for this specific tile, check Set a Rate Limit and enter a new value.
For full guidance on rate limiting, including how Iterable queues individual requests as capacity becomes available, see Journey Webhooks — Rate Limiting Journey Webhook Traffic.
# Step 4 (Optional): Name the liveData object
Give the liveData object a name to identify it and reference the data fields
you defined in the journey webhook downstream in the journey. Live data can be
referenced with standard dot notation.
For example, if you name the liveData object thunderGameStats, you could
reference the current score like this:
{{liveData.thunderGameStats.currentScore}}
# Step 5: View available Live Data fields
The Live Data Fields box shows the fields that are available to reference in downstream tiles for filtering, messaging personalization, or updating a user's profile.
Iterable displays a simplified name for each field, but you can use the Full Names toggle to display the full names if desired.
Use the "copy" icon to copy a field's merge tag (for example, {{liveData.thunderGameStats.currentScore}})
to your clipboard. You can then paste this code into a message template where
you need to reference the associated live data.
For sample payloads you can reuse in message previews, see Journey Live Data Overview.
# Example: Avoid promotional sends for out-of-stock products
You could use a Live Data tile to check inventory levels before sending a promotional
message in a cart abandonment journey. Configure a Live Data tile to query your
inventory API right before a Yes/No Split tile, fetching the in_stock value (and
optionally quantity and restock_eta) for the SKU(s) tied to that user. If
in_stock = true, send a promotional message with a CTA to purchase the item.
If in_stock = false, send an alternate product recommendation or skip the
send.
# Webhook tiles
Webhook tiles send data from Iterable to an external server or third-party service. You can use Webhook tiles to connect apps like Segment, Amplitude, and Inkit to your Iterable journeys, or send data to your own servers.
When you add a Webhook tile to a journey, you need to set the following properties:
- Webhook - Set up a webhook destination to send data to when users reach this step of the journey.
- Rate Limit - The maximum rate of requests that you want Iterable to make to your webhook destination.
This creates a new webhook that sends POST requests to the endpoint URL, along
with information about the triggering event. Iterable discards any response it
receives from the server.
If this tile references a saved journey webhook, you can also test the request directly in the tile configuration. If your request includes variables in the endpoint URL, request body, or dynamic parameters, provide sample data so Iterable can populate those values before sending the test request. Iterable also prefills configured dynamic parameters when possible. If no sample data is needed, Iterable runs the test immediately.
# Step 1: Set up a webhook destination
There are two ways to select a webhook destination for a Webhook tile:
-
Use an existing journey webhook.
- This option creates a reusable webhook that can be used in multiple journeys and has more customizations available, such as custom header fields, custom payload fields, and more advanced authentication options.
-
Add a webhook destination directly in the tile.
- This is the quickest way to get started, but is not reusable in other journeys, and has fewer customization options than using a journey webhook.
# Use existing webhook
First, create a journey webhook in Integrations > Journey Webhooks.
Then, in the journey Webhook tile, select Use Existing Webhook to choose one of the journey webhooks that you've previously created.
# Adding a custom webhook destination in a tile
To quickly add a custom webhook destination from within the tile, select Endpoint URL, and enter a value for your Endpoint URL and an optional Authorization Token for a basic authentication header.
When you add an endpoint URL, Iterable adds the following HTTP headers to the webhook request:
Content-Type: application/jsonAuthorization: Basic <YOUR_AUTH_TOKEN>
NOTE
Webhook URLs entered in the Endpoint URL field of the Webhook tile don't save to your Journey Webhooks page, can't be reused in multiple journeys (unless you manually recreate them each time), and don't have as many customization options as journey webhooks.
For a fully customizable and reusable webhook, add a journey webhook and then select it in the Use Existing Webhook dropdown for the Webhook tile.
For security reasons, don't assume sensitive authentication values entered directly on a Webhook tile will carry over when you clone a tile or journey. If you need reusable authentication, configure it on a saved journey webhook and reference that webhook from your tiles.
# Step 2: Set a rate limit
Rate limits help you manage the volume of calls to a journey webhook. In high-traffic journeys, the number of calls to a webhook's endpoint may exceed the supported limit of the external service. A rate limit caps the number of calls per minute or second, pacing individual requests to prevent failures when high journey volume would otherwise overwhelm your endpoint.
If you select an existing journey webhook that has a configured default rate limit, that limit is automatically applied to the tile. If necessary, you can adjust the inherited rate limit for this specific tile by checking Set a Rate Limit and entering a new value.
For full guidance on rate limiting, including how Iterable queues individual requests as capacity becomes available, see Journey Webhooks — Rate Limiting Journey Webhook Traffic.
When you do set a tile-level rate limit here, it overrides the webhook default for this tile only. Lower limits usually increase queueing time for users waiting at the tile.
# Example: Triggering a send from another service or app
Let's say you're building a customer win-back journey, and you want to send users a postcard in the mail at a certain step. You could add a Webhook tile and set it up to trigger a send from one of Iterable's direct-mail integrations (like Inkit, Poplar, or Paperplanes).
# Facebook tiles
Facebook tiles let you build Facebook custom audiences from your Iterable journeys.
To use the Facebook tile in your journeys, you must have a Facebook ad account.
First, select whether you want to add or remove users from a Facebook Custom Audience when they reach this stage of the journey.
Then, enter your Facebook ad account ID and select which audience you want to update when users reach the tile.
# Example: Triggering a Facebook ad
Let's say you want to display a Facebook ad to users who have shown interest in one of your products by clicking a link in an email. You could set up a Yes/No Split tile that checks whether users have clicked the link, then connect the Yes branch to a Facebook tile that adds users to a Facebook custom audience for ad targeting.
# Google Ads tiles
Google Ads tiles let you build Google Ads audience segments from your Iterable journeys.
To use the Google Ads tile in your journeys, you must have a Google Ads account and complete the integration setup steps.
To set up a Google Ads tile:
First, select whether you want to add or remove users from a Google Ads Customer Match audience when they reach this stage of the journey.
Then, select your Google Ads account and choose which audience(s) you want to update when users reach the tile.
# Example: Retargeting users who haven't converted
Let's say you want to retarget users who clicked through a promotional message but haven't made a purchase. You could add a Yes/No Split tile that checks for a purchase event, then connect the No branch to a Google Ads tile that adds users to a Customer Match audience for follow-up advertising.
# Want to learn more?
For more information about some of the topics in this article, check out these resources:
Support docs