Agree it with engineering before the first property is written.
The rules are written against Klaviyo. They hold on any platform that keeps profile state and event history apart.
For the founder, three symptoms that mean this work wasn't done: a segment that should hold thousands holds eleven; a flow fires twice; a count shrinks after a release.
Each one looks like a marketing problem and starts in the data layer. Data failures don't throw errors. They produce a number slightly too low or a flow that fires slightly too often. The strategy gets blamed and rewritten while the plumbing stays broken.
Identity decides whether any of this reaches a person. Run the merge test in a clean browser before each release that touches the header, checkout or account system. Browse anonymously, submit a test email through a form, log in with the same address and complete a paid checkout. Search for the address. One profile carrying all four stages passes; two or three fail.
A failed test means your flows fire at the copy with no purchase history and your segments count one person several times. Put the tracking script on every page, including subdomains and iframes. Normalize phone numbers to E.164 at capture. Don't ask a visitor who clicked through from your email for their address again, because a different answer forks a second profile.
Change an existing profile's email or phone server-side. Klaviyo's browser-side endpoints return 202 for an identifier change and leave the field as it was.
Read it by symptom when a number moves and nobody can explain it. Read it by control when you build, because each control costs a field on day one and a migration on day ninety.
This is one chapter of The Second Order, which is free and readable in full on a single page with no form in front of it.