User update tiles let you automatically update a user's Iterable profile or subscription preferences in a journey.
There are three types of user update tiles:
- List Membership tiles
- Subscription Preferences tiles
- User Profile tiles
In this article
List Membership tiles
List Membership tiles can either add a user to or remove them from one of your static lists. For example, at the end of a welcome sequence, you could add all users who have completed the journey to a list called "Finished Welcome Sequence."
Setting up a List Membership tile
To set up a List Membership tile, first select whether you want users to be added to or removed from a list, then select a list from the dropdown.
Example use case
You could use this tile to unsubscribe users from a list called "Upcoming Renewals" after they renew their annual subscription.
Subscription Preferences tiles
Subscription Preferences tiles can either subscribe users to or unsubscribe users from message channels or types.
Setting up a Subscription Preferences tile
To set up a Subscription Preferences tile, first select whether you want users to be subscribed or unsubscribed at this step, then select one or more message types or channels under Messaging Preferences.
There are four possible configurations for this tile:
Action | Message Channel/Type | Result |
---|---|---|
Subscribe users to | Message Channels | Users who pass through this tile begin receiving messages from the selected channels and their associated message types (each user's existing subscription preferences for the channels' associated message types are preserved). |
Subscribe users to | Message Types | Users who pass through this tile begin receiving messages from the selected message types (including users who have previously unsubscribed from the message types). |
Unsubscribe users from | Message Channels | Users who pass through this tile no longer receive messages from the selected channels or their associated message types (including users who have subscribed to any message types within the channels). |
Unsubscribe users from | Message Types | Users who pass through this tile and have previously subscribed to the selected message types no longer receive messages from them. |
To learn more about message channels and types, see Message Channels and Types Overview.
NOTE
Subscription Preferences tiles don't support subscribing to double opt-in message types. These message types are unique to SMS have a different setup required. To learn more about double opt-in message types, read SMS Double Opt-In Overview.
Example use case
You could use this tile to subscribe users to the "Product Suggestions" message type after they opt in to receive product recommendations from your brand.
User Profile tiles
User Profile tiles update one or more fields on a user's profile.
NOTE
If you try to reference an updated field in a message or filter tile immediately after a User Profile tile, Iterable may not be able to update the user's profile in time. To prevent this, add a short delay after the User Profile tile.
For example, if you're using a User Profile tile to update the user's locale
before sending an email, the user's locale
field may not be updated before
they enter the Email tile — and they could receive the wrong localization of
the message.
Setting up a User Profile tile
There are two options for updating user profiles with the User Profile tile:
- Use the data below
- Retrieve data from a webhook
Select the Use the data below option to manually enter the JSON for updating user profiles into the code entry box in the tile. For example:
{ "totalPurchaseValue":"{{numberFormat (math HighestPurchaseValue '-' lastPurchaseValue) 'integer'}}" }
The code entry box supports Handlebars, which you can use to set the value of a user profile field to:
- A value from the journey's triggering event
- Another field from the user's Iterable profile
For example:
{ "user_profile_field": "{{event_field}}" }
Select the Retrieve data from a webhook option if you want Iterable to make
an HTTP GET request to another system, pass a user's unique identifier
(email
or userId
) as a URL parameter, and update the user's Iterable profile
with the requested info.
If you're using the User Profile tile to update a nested object on a user's profile, Iterable can either replace the data that's already in it with the new data, or preserve the existing data while adding to it. Check the box to Merge top-level objects instead of overwriting if you want Iterable to preserve any existing data in a user profile object you're updating. (If you want the data to be overwritten with the new data instead, leave this box unchecked.)
Example:
Let's say you're storing the following information about a user's favorite meal
in a nested object called favoriteMeal
:
"favoriteMeal": { "mainDish": "hamburger", "side": "French fries", "drink": "orange soda" }
If you want to know their favorite dessert too, you could set up a User Profile
tile that adds this information to the existing favoriteMeal
object.
If you've checked the box to Merge top-level objects instead of overwriting,
Iterable will keep all of the existing information in the favoriteMeal
object
and add a new entry for dessert
.
So if the User Profile tile makes this update:
"favoriteMeal": { "dessert": "ice cream" }
Then favoriteMeal
would look like this:
"favoriteMeal": { "mainDish": "hamburger", "side": "French fries", "drink": "orange soda", "dessert": "ice cream" }
If you don't check the box to Merge top-level objects instead of overwriting,
and the User Profile tile runs that same update, the existing fields within the
favoriteMeal
object would get overwritten, like this:
"favoriteMeal": { "dessert": "ice cream" }
NOTE
- Any data you use to update a user profile gets saved as transactional data in the send event (for both API and CSV updates).
- User Profile tiles can't add an array to a user's profile from an event array.
If you try to do this, you'll create a string on the user profile, not an
array. (For example, the event field
exampleEventField: ["a", "b", "c"]
would save to a user profile astargetUserProfileField: "[a, b, c]"
.)
Example use case
Let's say you've set up a message tile that sends users a survey about their interests. You could set up a Yes/No Split tile that checks to see if users clicked one of the links in the message. Then, you could connect the Yes/No Split tile to a User Profile tile that adds any interests they've clicked to their Iterable profile.