Skip to content

360-degree Profile & Unification

A 360-degree customer profile is a single, unified record of a customer that aggregates data from every touchpoint they have with your business — website visits, form submissions, purchases, ad clicks, CRM records, and more.

In CustomerLabs, this profile is built progressively. Every event or identify call sent to CustomerLabs adds new data points to the profile. Over time, the system stitches together anonymous and identified interactions into one comprehensive record.


A complete profile in CustomerLabs consists of the following data layers:

Data LayerDescriptionExamples
Identity DataWho the customer isEmail, phone, name, address
Behavioral DataWhat the customer doesPage views, clicks, form submissions, purchases
Transactional DataWhat the customer boughtOrder value, product name, quantity, frequency
Engagement DataHow the customer interactsUTM source, channel, first touch, last touch
External IDsHow other systems identify the customerCRM ID, Facebook FBP, Shopify cart token, GA4 client ID
Group / Account DataWhat company the customer belongs toCompany name, website, account ID

When a user first visits your website, CustomerLabs assigns them an anonymous user ID (customerlabs_user_id). All their activity — page views, product views, clicks — is attributed to this anonymous profile.

During the first page view events, external ids like click ids, acquisition source etc are captured and stored in the anonymous profile.

Anonymous User (cluid: abc123)
└── Page Viewed //click ids, acquisition source etc
└── Page Viewed
└── Clicked: "Start Free Trial"
└── Clicked: "Start Free Trial"

When the user submits a form or logs in, the _cl.identify() call is triggered with a known identifier (email or phone). CustomerLabs then merges the anonymous profile with the identified profile.

Identified User (email: john.doe@example.com)
└── All previous anonymous events are now merged into this profile
└── New traits added: first_name, last_name, phone, company

This is called Identity Resolution — the process of matching anonymous and known user identifiers to the same person.

Every subsequent event — whether it’s a new page view, a product purchase, or a form update — enriches the existing profile. External IDs like facebook__fbp, shopify_cart_token, and crm_user_id are also appended over time.

Profile: john.doe@example.com
├── Traits: first_name, last_name, phone, company, address, city, country
├── External IDs: identify_by_email, identify_by_phone, facebook__fbp, crm_user_id
├── Events: Form Submitted, Product Viewed, Purchased (×3), Checkout Made
└── Group: ABC Corporation (website: www.example.com)
360-degree Profile

Profile unification is the process of correctly associating all events and traits from multiple identifiers to a single canonical profile.

CustomerLabs resolves profiles using the following identifier hierarchy:

  1. identify_by_email — highest priority, most reliable
  2. identify_by_phone — used when email is not available
  3. customerlabs_user_id — used for anonymous sessions
  4. Custom external IDs (e.g., crm_user_id) — supplementary
ScenarioWhat Happens
Same email seen across two sessionsEvents from both sessions are merged into one profile
Anonymous CLUID tied to email via identifyAnonymous history is stitched to the identified profile
Phone-only user later provides emailBoth identifiers co-exist on the same profile
Group event sent with igb: trueCompany profile is created or updated and linked to the user

Once data is unified, CustomerLabs maintains a single source of truth for each customer. This unified profile powers:

  • Audience Segmentation — Filter users by traits, behaviors, events, or group membership.
  • Ad Audience Sync — Send enriched, matched audiences to Meta, Google, LinkedIn, and other platforms.
  • Server-side Events — Fire conversion events with user context to improve ad algorithm training and Event Match Quality (EMQ).
  • CRM & Webhook Sync — Push unified profile data to your CRM or downstream tools.

StateDescription
AnonymousUser has not yet been identified. Tracked by customerlabs_user_id.
KnownUser has been identified by email or phone via _cl.identify().
UnifiedAnonymous history and known profile have been merged.