Hi @tvnavink ,
You should not define a primary identifier in a schema if it is not going to be part of every record sent to Platform.
What is the web implementation? Are you using Web SDK? If so, you should pass identities using the identityMap as opposed to declared identity fields in your schema definition. ECID will be passed automatically in every record and will default to the primary identity. You can switch to using a different authenticated identity when the customer logs in (ECID will still be sent).
If this is a Web SDK implementation, I suggest this in depth Web SDK tutorial (the DA tutorial is good too but is not as focused on Web SDK):
https://experienceleague.adobe.com/docs/platform-learn/implement-web-sdk/overview.html?lang=en
This page covers a lot of the identity capture:
https://experienceleague.adobe.com/docs/platform-learn/implement-web-sdk/tags-configuration/create-d...
As a final word of caution, be careful with using email as an identity field. Only use it if you are absolutely sure it is going to be unique to the user or you could experience profile collapse. Imagine if you just had a web form allowing free form entry of an email address and then used this value as an identity. A % of users might enter something like "spam@spam.com" and all of their profiles would merge together into a single profile in Platform. Again, only use email as an identity if you have validated that it is their real email address and unique.