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 omeda identity with an email address of foo@bar.com would not be updated by a mailchimp identity with the same email address
An omeda identity with an external id of ABC (whose email address is currently foo@bar.com) could now be reliably updated by an new, incoming identity id of ABC with an email address of blek@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.
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:
Some examples:
omeda
identity with an email address offoo@bar.com
would not be updated by amailchimp
identity with the same email addressomeda
identity with an external id ofABC
(whose email address is currentlyfoo@bar.com
) could now be reliably updated by an new, incoming identity id ofABC
with an email address ofblek@baz.com
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.