-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
Description
Per #27 and #29, the identity model (and associated management) should be re-evaluated.
Currently, the customer-identity model requires a unique email address. This causes considerable issues when attempting to sync identity data from multiple sources: e.g. from Omeda, Mailchimp, internally from Radix, etc.
Going forward, an identity should be defined as:
- A normalized model containing customer data, that is to say, customer data that has been rolled up from some source in a standardized way
- A representation of customer data at the time is was submitted: either internally via a Radix submission or when pulled from a third-party
- A model whose uniqueness is solely based on a source key and a source identifier, not by email address
- A model that does not require an email address
- A model that is not linked to a customer account, at least not directly. This is debatable
- A model whose data is only updated if the submission also includes the same source key and identifier as the original
Some examples:
- An
omedaidentity with an email address offoo@bar.comwould not be updated by amailchimpidentity with the same email address - An
omedaidentity with an external id ofABC(whose email address is currentlyfoo@bar.com) could now be reliably updated by an new, incoming identity id ofABCwith an email address ofblek@baz.com - Identity records could now exist without any email address information at all
Finally, storing identities in this way would allow us to immediately create the model and drop its associated cookies without requiring the overhead of syncing the data from the third-party source at the same done. This can now be done post-process. Also, identities could now support multiple email addresses instead of a single, unique entry.