What a Customer Data Platform (CDP) is on Orbit
A customer data platform (CDP) collects every behavioral event and identifier a customer leaves, stitches them into one resolved profile, and keeps that profile current so segments, scores, and journeys act on it. Two jobs define the category: unification (one golden record per person, not a pile of partial records) and activation (the profile is readable and current for segments, journeys, and destinations). This page defines the term and points at the shipped concepts that make both jobs real on Orbit: the CDP event model for collection, identity resolution and merge semantics for unification, and the segment recompute model and scoring pipeline for activation.Every control named on this page is tenant-owned. Orbit supplies the match contract, the event pipeline, and the audit trail; you set the identity rules, thresholds, tracking plans, and journey policies. None of this is legal advice.
The three parts of the profile
- The golden record. One contact row per resolved person, assembled by identity resolution from conflicting partial records. Survivorship rules decide which value each field keeps, with a blank never overwriting a populated value, per identity resolution and merge semantics.
- The event stream. Every
track,identify,page,group, andscreencall your SDKs send lands in one append-only event table per tenant, bound to the resolved contact after ingest, per the CDP event model. - The derived layer. Computed traits, predictive scores (churn risk, intent, propensity, lifetime value), and segment memberships. All are recomputed from the stream and stamped back onto the profile, per the scoring pipeline.
Identity resolution: the unification half
Two deliberate layers turn “events arrive” into “events describe a specific person,” and the split is what makes the pipeline safe to automate:- Deterministic. Records whose normalized identifiers are equal on a declared key (the same lowercased email, the same E.164 phone, the same external id) group transitively into one profile and auto-merge once confidence clears your tenant-set threshold.
- Probabilistic. Everything below that bar (a fuzzy name, a respelled phone, a shared channel id) ranks into a review queue for a steward, never an automatic fold.
The pipeline end to end
One path connects collection to activation: an SDK call lands, identity binds it, resolution unifies it, and the derived layer acts on it. The shapes below are the shipped pipeline, not a sketch: Each arrow is a shipped stage with a named owner: the durable append lives on the CDP event model, and the two resolution branches live on identity resolution and merge semantics. An example of the first arrow — onetrack call entering the stream (Segment-compatible ingest, HMAC-signed):
contact_id after ingest, and the derived layer (segments, scores) converges on its own cadence. The SDK side of this — lifecycle, ingestion, and identity from the client — is covered by the web SDK public key model.
Worked example: what folds and what queues
Take four partial contacts that a nightly dedupe preview scans:
The first two pairs are equality on a declared key, which is the only thing a deterministic group ever needs: normalization removes the case (and formatting) difference before the keys compare,
email and phone corroborate the match, and the group folds once its confidence clears your tenant-set auto-merge threshold. E + F has no equality on any enabled key, so no automatic fold happens — it sits in GET /api/v1/cdp/identity/merge-candidates until a steward approves or dismisses it, per identity resolution and merge semantics, Section 2.
Whichever way a pair resolves, the same two guarantees hold: the fold is reversible inside a 30-minute undo window (POST /api/v1/contacts/unmerge/:mergeId), and a durable audit row records the verdict, the confidence, and the identifiers that corroborated the match — so an automated fold is never silent, and a steward’s call is never opaque.
Native versus installed
An installed CDP pipes events out of your communications platform into a separate system before the profile can form; a native CDP ships inside the same platform that carries the channels. On Orbit the difference is concrete: channel-side events resolve against the golden record as they happen, platform-minted events likewhatsapp_flow_submitted enter the same stream through the same identity pipeline, and activation (segments, journeys) reads the live stream without an export round trip. When a standalone CDP still earns its place (collecting from many unrelated tools outside communications) is a comparison the native-vs-installed framing answers case-by-case, per the CDP event model.
Activation: segment, score, and journey cadences in numbers
Activation is the point of the unified profile, so the definitional page owes you the actual cadence numbers (each links to the owning concept page):- Segments — re-evaluate in about one second. A
trackoridentifyevent re-evaluates only the one contact it binds to against the tenant’s auto-refresh segments, and a scheduled batch catch-up converges everything the fast path skips; the per-surface staleness table (dashboard badge ~1 s, enrichments up to ~24 h, ad audiences in hours) lives on the segment recompute model. - Scores — recompute once per day per contact. Churn risk, intent, propensity, and a lifetime-value estimate are a fixed-weight blend, every input signal stamped into the row for audit; an on-demand pass closes the first-touch gap for freshly imported contacts, per the scoring pipeline.
- Profile traits — re-enrich once per day. The enriched attributes a segment filter references (industry, country, lifecycle stage) refresh on the daily re-enrichment sweep named in the staleness table on the segment recompute model.
- Journeys — enroll from the same stream. Three routers feed enrollment (inbound-reply keyword, segment entry/exit, CDP-track events) through a guarded entry chain with a tenant-set re-entry policy and hourly entry rate limit, per journey enrollment fan-out.
Tenant-owned controls
Three decision surfaces carry the behavior you set:- Event governance. Tracking plans catalog the allowed events, event schemas pin a JSON Schema per event type and enforcement mode, and event-property governance marks sensitivity and allowed uses. Undeclared events pass through; enforcement is a posture you choose, per the CDP event model.
- Identity rules. One rule per identifier type with a numeric priority, an auto-merge threshold dividing the deterministic layer from the review queue, and a survivorship policy per governed field, per identity resolution and merge semantics.
- Journey enrollment. Re-entry policy, the per-hour entry rate limit, and the offboard precheck on the contact’s own block/opt-out fields, per journey enrollment fan-out.
Cross-references
- The CDP event model: collection, identity hints, tracking plans.
- Identity resolution and merge semantics: the unification half defined.
- CDP accounts: the B2B account entity.
- How CDP segments recompute: the recompute cadence.
- The contact scoring pipeline: daily scores and the auditable scorer.
- Journey enrollment fan-out: activation into journeys.