You can store information about your users' individual attributes and behavior (like their geographic region, age, product preferences, and devices) in fields on their Iterable user profile.
Iterable provides a set of system fields that it manages automatically, and you can also create custom fields to store additional data. This article explains how to view, manage, and use user profile fields in Iterable.
In this article
- Viewing user profile fields for a project
- Exporting user profile fields
- Adding user profile fields
- Adding a nested field to an object
- Preventing unwanted user profile fields
- Hiding and unhiding user profile fields
- Uploading user data to Iterable
- Viewing a user's data
- Personalizing campaigns with user data
- Want to learn more?
Viewing user profile fields for a project
Users who have the Manage Settings project permission can access the Data Schema Management screen to view and manage user profile fields.
To view a project's user profile fields, go to Settings > Data Schema Management and select the User Profile Fields tab. You can use search and filters to locate specific fields.
User profile fields created by Iterable
Iterable automatically creates and manages data for some user profile fields.
These fields are used for system purposes, like tracking user activity, and are not editable. In Data Schema Management, these fields are distinguished by the Iterable icon next to the field creation date.
For a list of the fields Iterable manages automatically, see User Profile Fields Used by Iterable.
For example, if the Enable user IP to location lookup
setting is enabled for your project, when you provide a user's IP address (in
the ip
field), Iterable also adds the city
, region
, country
, and
timeZone
fields to that user's profile.
When you set the ip
or timeZone
fields on your users' profiles, you can
deliver messages according to each user's local time. For more information, see:
Exporting user profile fields
You can export user profile fields from Iterable to a CSV file. To export user profile fields:
- Go to Settings > Data Schema Management, and select the User Profile Fields tab.
- Click on the overflow menu (three dots) in the upper right corner of the page and select Export User Fields Summary to CSV.
Iterable exports a CSV file with the name user-profile-field-summary.csv
. The
file contains the following metadata for each user profile field: Field Name
,
System Field
, Visibility
, Type
, and Created At
.
Adding user profile fields
To add a new user profile field in Iterable:
- Go to Settings > Data Schema Management, and select the User Profile Fields tab.
- Click New Field.
- Enter details for the field you're adding:
- Name: The name of the custom field. To learn about field names, validation rules, and best practices, read Best Practices for Field Names and Event Names.
- Type: The data type of the custom field. To learn about field data types available in this menu, read Field Data Types.
- Description: A description of the custom field. For display in Iterable.
- Sample Value: An example value for the field. For display in Iterable.
- Click Save.
Adding a nested field to an object
Nested fields are data fields specific to a given parent field (object), allowing for deeper levels of data.
For example, you could have a user profile field called address
with an
object data type and nested fields for street
, city
, state
, country
,
and zip
.
In Data Schema Management, it’s possible to create nested fields in two ways: by adding the nested field directly to the parent field, or by manually entering the nested field by referencing it's parent field name.
You can only add nested fields to parent fields that already exist and have a data type of object.
NOTES
If you need to create an array of objects, you may need to create a nested data type instead of an object. Nested fields count toward the project’s limit for user profile fields (1000).
To add a nested data type, contact your customer success manager or Iterable support. There is currently no way to create a nested data type using the Iterable app.
Nested fields count towards the project’s limit for user profile fields (1000).
To learn more about the differences between nested fields and objects, read Field Data Types.
Method 1 - Adding directly to the parent field
- Go to Settings > Data Schema Management, and select the User Profile Fields tab.
- Find or create the parent field. It must have a data type of object.
- On the far right side of the parent field's row, click New Field.
- Enter the new field's details.
- Name: The name of the nested field. To learn about field names, validation rules, and best practices, read Best Practices for Field Names and Event Names.
- Type: The data type of the nested field. To learn about field data types available in this menu, read Field Data Types.
- Description: A description of the nested field. (optional)
- Sample Value: An example value for the nested field. (optional)
- Click Save.
Method 2 - Adding a nested field with dot notation
You can quickly add nested fields by entering the parent field name followed by
a period (.
) as a delimiter, and then the new field name.
- Go to Settings > Data Schema Management, and select the User Profile Fields tab.
- Click New Field.
- Enter the new field's details.
-
Name: Enter the parent field name followed by a period (
.
), and then the new field name. Example:address.city
. To learn about field names, validation rules, and best practices, read Best Practices for Field Names and Event Names. - Type: The data type of the custom field. To learn about field data types available in this menu, read Field Data Types.
- Description: A description of the nested field. (optional)
- Sample Value: An example value for the nested field. (optional)
-
Name: Enter the parent field name followed by a period (
- Click Save.
Example
Here is a JSON body with a set of nested fields:
{ "dataFields": { "jobInfo": { "company": "Iterable", "title": "Graphic Designer", "anniversary": "2021-06-01" } } }
In this example, the parent field jobInfo
has three nested fields: company
,
title
, anniversary
.
These fields display in Data Schema Management like this:
jobInfo
jobInfo.company
jobInfo.title
jobInfo.anniversary
And here is how to access these nested fields in Handlebars expressions:
Preventing unwanted user profile fields
By default, Iterable accepts any user profile field sent with a user update. This creates the risk of unwanted fields being added to user profiles, which can lead to data quality issues.
When Drop Unrecognized User Fields is on, unrecognized user profile fields sent with a user update are ignored, and aren’t added to the user profile. To add new user profile fields, use Data Schema Management or an API override.
To learn more about this setting, read Data Schema Management Overview.
Hiding and unhiding user profile fields
Fields that are marked as hidden do not display in areas of Iterable’s web UI
(such as drop-down menus that select fields in segmentation, journeys, and
Smart Ingest). Iterable still saves data for these fields when they're updated
on a user profile. Templates that use these fields can access data values for
Handlebars operations. API requests such as GET /api/users/getByEmail
return these fields regardless of a hidden status.
Hidden fields still count towards the project’s limit for user profile fields (1000).
To hide a user profile field from your project:
- Go to Settings > Data Schema Management.
- Locate the field you want to hide, and click the checkbox on the right. You can select multiple fields at once.
- Click the Hide button above the field names.
To unhide a user profile field, follow the same steps, but click the Show button instead.
IMPORTANT
Be careful when hiding fields. Removing a field from view can cause confusion.
For example, when a user opts in to push notifications, the devices
array is
placed on their profile. Each object in the devices
array contains all of the
necessary fields for receiving push notifications—most importantly
devices.token
. If you have hidden that field, it may appear that the user has
no device token when they actually do.
Uploading user data to Iterable
There are many ways to upload user data to Iterable, including:
- Uploading a CSV file
- Using Iterable's API
- Using Smart Ingest
- Using an integration that sends data to Iterable.
Viewing a user's data
To see a user's profile data, go to Audience > Contact Lookup. Enter the user's email address or user ID to view their user profile.
Personalizing campaigns with user data
You can use user profile fields to personalize your campaigns in Iterable. Here are a few ways to use user data in your campaigns.
Using segmentation
You can use user profile fields to create segmentation queries that target specific groups of users. For example, you could create a segment of users who live in a certain geographic area, so that you can target them with a region-specific campaign.
Using merge tags (Handlebars)
You can use a merge tag (the name of a user profile field surrounded by double curly braces) to insert user data in message templates. These are also called Handlebars expressions.
For example, if you store users' first names in a field called firstName
, you
could add the following merge tag to a message template:
At send time, Iterable replaces merge tags in a message template with the relevant data from each user's profile.
To learn more about inserting user data in your Iterable message templates, see Personalizing Templates with Handlebars.
Using dynamic content blocks
You can use dynamic content blocks to personalize messages based on user data. For example, you could create a dynamic content block that displays different content based on a user's demographics.
Want to learn more?
For more information about some of the topics in this article, check out this Iterable Academy course. Iterable Academy is open to everyone — you don't need to be an Iterable customer!