ZapBounce and Iterable
Iterable identifies users by email address unless you configure a user ID as the key. That default has a specific consequence for bad data.
Correcting a mistyped address does not update the user. It creates a second user, and the first one keeps the history.
Email as the key makes a typo permanent
With email as the user key, a typo creates a user record under the wrong address. Fixing it later means creating the correct user and manually merging or abandoning the first.
The abandoned record keeps the event history, so the corrected user starts with nothing and looks like a brand new signup to every campaign.
Projects configured with a user ID as the key avoid this entirely, which is worth knowing before a project is created rather than after.
How the data moves
Prefer userId as the project key
Where you are setting up a new project, this removes the whole class of problem. Email becomes an attribute rather than an identity.
Verify before the first user write
With email as the key, the first write is what fixes the identity. There is no cheap correction afterwards.
Store the verdict as a user field
Iterable lists and segments read user fields, so the verdict drives audience selection.
Merge rather than abandon where a typo is found
Iterable supports updating a user's email. It is still a correction rather than an edit, and the history matters.
Setting it up
- Check whether your project is keyed on email or userId.
- Verify addresses before the first user write, which matters most on email-keyed projects.
- Create a user field for the verdict and one for the check date.
- Build lists and segments filtered on the verdict.
- For existing bad addresses, use the email update path rather than creating a second user.
- Backfill the verdict across existing users through the bulk API.
Iterable: common questions
Should my project be keyed on email or userId?
userId where you have the choice. Email as a key makes every address correction an identity change.
What happens when I fix a typo?
On an email-keyed project, Iterable's email update path handles it. Creating a new user instead leaves the history stranded.
Where does the verdict go?
A user field, so lists and segments can filter on it.
Check a Iterable export today
100 free checks a month, no card. Unknown results and duplicates are never billed.