A CDP is a schema, a collector, an identity graph and a fan-out. This is all four, built rather than bought: a tracking plan enforced in code, a collector that stores only planned properties, identity stitching that joins a browser to a person and a person to an account, and optional mirrors to Segment or RudderStack that are destinations rather than the system of record. It is also what makes the SDR pipeline's behavioural scoring possible — first-party data no vendor can sell you or your competitor.
The only events this site may emit, and the only properties each may carry. The plan is code — filterProperties() drops anything not listed here, so an unplanned property cannot reach the database even if a caller passes it.
A page was viewed. Tokenized document paths are excluded upstream.
path · referrerHost · title
A visitor opened a Labs demo.
lab
A lab finished a run. Emitted server-side so the count is trustworthy.
lab · durationMs · source
A link in a drafted outbound message was clicked.
campaign · accountDomain
The contact form was submitted. Server-side: the client never reports its own conversions.
formId · accountDomain
A design passed its manufacturability checks. An activation signal: it means somebody got far enough to have a part worth quoting, which is a much stronger buying indicator than a page view.
project · process · readiness · accountDomain
Somebody downloaded the STEP, STL, BOM and spec sheet. The strongest activation signal in the product: an engineer does not export a quote package unless they intend to get it made.
project · files · accountDomain
A unit was shown an experiment variant. The Segment Spec's own name for this, kept rather than invented, because every downstream tool already knows it. Exposure, not assignment. Assignment is a pure function and happens for everyone the moment they are looked at; exposure means the variant was actually rendered. Logging assignment instead inflates the denominator with units that never saw the test, which drags every measured effect toward zero — the failure mode where a working change looks like it did nothing.
experimentKey · variant · unit · unitHash · holdout
A project moved between lifecycle stages. Emitted server-side because it is the event the whole loop hangs on — for a parts supplier, prototype → production is the account-graduation moment, and a stage change the browser could invent is a score the browser could inflate.
project · from · to · revision · accountDomain
A CDP is a schema, a collector, an identity graph and a fan-out. What vendors sell is the operating cost of running them and the connector catalogue — both real, neither the same as the capability. Owning the event layer makes a vendor a destination rather than the system of record, so switching costs an adapter and no history.