Skip to Content

Profiles

Search and inspect individual users. Profiles connect anonymous browsing history to identified accounts and provide the full event timeline for support and debugging.

Path: /p/:projectId/profiles

Profile list

Search and browse all profiles in the project:

FieldDescription
External IDThe ID passed to identify()
Last seenMost recent event timestamp
Event countTotal events attributed to this profile
Key traitsPreview of merged traits (email, plan, etc.)

Search by:

  • External ID — exact match on the identify() ID
  • Email — if set as a trait via identify('id', { email: '…' })
  • Custom traits — any indexed trait property
Search: user@example.com → finds profile with email trait Search: user-123 → finds profile with external ID Search: plan:pro → finds profiles where plan trait = pro

Profile detail

Click a profile to open the detail view with four tabs:

Overview tab

  • Traits — all merged properties from identify() calls and event-derived attributes
  • First seen / Last seen — profile lifetime
  • Key metrics — event count, session count, revenue total (if purchase events exist)
  • Device info — latest $browser, $os, $geo.country

Events tab

Chronological event history with filters:

  • Filter by event name
  • Filter by date range
  • Filter by property value
  • Expand any event to see full property payload

Use this tab to answer “what did this user do before they churned?” or “did the purchase event fire?”

Sessions tab

List of sessions with:

  • Session ID
  • Start time / duration
  • Entry page ($url of first event)
  • Event count per session

Session detail

Click a session to see all events within that visit in order. Useful for reproducing a user’s exact path through your product.

Identity lifecycle

Profiles follow this lifecycle:

1. Anonymous visit SDK creates anonymous profile → events accumulate 2. identify() called identify('user-123', { email: '…' }) → anonymous events merge into user-123 3. Subsequent visits SDK recognizes user-123 → events attributed directly 4. reset() on sign-out → new anonymous profile for next visitor

See Identity & sessions for SDK details.

Debugging identity issues

SymptomLikely causeFix
Pre-login events missing after identifyidentify() not calledCall identify() immediately after sign-in
Two profiles for same userDifferent external IDs usedStandardize ID; use alias to merge
Traits not updatingAsync write lagWait a few seconds; refresh profile
Anonymous profile with no eventsSDK not initialized on that pageConfirm init() runs before any track()

Use cases

  • Support triage — customer reports a bug; search by email, replay their event timeline
  • Conversion debugging — find users who reached checkout but didn’t purchase
  • Cohort inspection — identify power users by event count or revenue traits
  • Identity audit — verify identify() is firing correctly after deploy

Further reading

Last updated on