Iterable keys users by email address. As a result, user profiles created via API, Segment or another method require an 'email' field.
What if you don't have a user's email address but want to track and save their event history? Or perhaps you have their device token but not their email address and want to send them a push notification? Maybe you even want to send out SMS, but don't yet have a person's email address.
To accomplish the sample goals outlined above, you would need to create a placeholder email address for the user. Place holders email addresses must end with ' @placeholder.email'.
For example, if adding users via our API:
Our system prevents any emails following this pattern from receiving email messages. You can then update the user profile with a real email address at a later time with this API call: https://api.iterable.com/api/docs#!/users/updateEmail_post_1
Then, when you receive their actual email address, make a call to Iterable's updateUser API endpoint. If you wanted to update firstname.lastname@example.org to email@example.com, the payload would look like this:
This call must be made for the historical data and profile fields to be transferred to the new email address for the user in Iterable.
Note also that email update can only be done through the Iterable API. This cannot be updated by Segment.