Iterable automatically creates and maintains some field on each user's profile. In most cases, these fields do not need to be edited by the client, and there's no need to include them when updating a user's profile. All of these fields are case sensitive and space sensitive.
The following fields will be ignored by Iterable (i.e. no changes will be made to the field value) if passed in a user update call:
Using the name
size (at the top level or as part of an object) is not
recommended because even though you will be able to set the value of that
field, referencing it in a template may be unreliable as
sometimes reference an internal value equal to the number of fields in the
current object context.
Fields that Iterable manages
These fields do not need to be included in any updates to the user profile, nor should they be overwritten.
profileUpdatedAt is the date the user profile was last updated, either via
CSV upload or API call. The data type is Date and the format looks like
"2016-08-02 18:53:45 +00:00". For more information, read
Data field types in Iterable.
signupDate is the date when the user profile was created in Iterable.
The data type is date, and the format looks like
2016-08-02 18:53:45 +00:00.
For more information, read
Data field types in Iterable.
signupSource is how the user entered the Iterable database. Includes
IMPORT. The data type is string.
emailListIds is an array of numbers, one for each of the lists the user is
a part of. Whenever a user is added to a new list, Iterable will
automatically update this array. The data type is an array of integers. If
you wish to update the lists a user is part of via API, use the the following
unsubscribeChannelId is an array of numbers for each of the message
channels in which a user is unsubscribed from. If a user has a channel ID
unsubscribeChannelIds, then she will not receive messages from
unsubscribeMessageTypelIds is an array of numbers for each of the message
types in which a user is unsubscribed from. If a user has a message type Id
unsubscribeMessageTypeIds, then she will not receive messages from
createdAt indicates a timestamp of when the event was indexed into
Iterable. This field can be updated via API, though one thing to note is the
value will need to be in Unix timestamp, instead of an ISO-formatted string.
All of these fields are case sensitive and space sensitive. For example,
phone_number will add a separate field to your users' profiles; it will not
allow Iterable to send SMS to them.
phoneNumber is the phone number of the user, used to send SMS messages. The
data type is String and the format looks like
16503926753. To learn more
about SMS requirements, read
devices is an array of objects of the user's devices, used for push
notifications. Each object in the array must include at least the following
To learn more about push notifications, read Creating a push notification campaign.
This field must be added by calling the
ip is included on a user profile, Iterable will, by default, add and
update fields on the user profile for
timeZone. These fields can be edited if desired, but Iterable will update
and overwrite them if
ip is updated, which can happen when a user opens or
clicks on an email. This setting can be adjusted by going to
Settings > Project Settings. These fields are all strings.
timeZone will allow messages to be sent at a user's local time.
ip can also be automatically added to the user profile by Iterable if you
toggle on Automatically Update IP in User Profile from Inbound Events
in Settings > Project Settings. We will detect the user's ip from email
click events and add it to the user profile.
locale is used to represent which language preference a person should
receive when send a message. You can create multiple versions of a template,
one for each locale, while maintaining the same
templateId. The value of
locale should be a string, and should be the
two-letter ISO country code
for the language desired. These will correspond to the options you add to the locales
section of your project's settings.