Profiles & identity
A profile is JourneyLayer's complete picture of a single user. Every user — whether anonymous or known — has exactly one profile, made up of:
- Identity — the anonymous id, plus any stable identity (such as email or phone) once the user is identified.
- Traits — user properties like
email,name,phone, andcity. See Properties. - Activity timeline — the full, ordered history of events that user has performed.
Finding and viewing profiles
In the dashboard, profiles live under Profiles / Find People. Search or browse to locate a user, then open their profile to see:
- Properties — the traits currently on the profile.
- Activity timeline — every event for that user in chronological order, so you can follow exactly what they did and when.
This makes a profile the single place to answer "who is this person, and what have they done?"
Anonymous vs identified
A user does not have to log in to have a profile.
- Anonymous. As soon as the SDK loads, JourneyLayer assigns an anonymous
id and starts a profile. Page views, sessions, and any
track()calls are recorded against that anonymous profile. - Identified. When you call
identify()with a stable identity, the profile becomes a known user with traits like email and name attached.
// Anonymous activity is already being tracked.
journeylayer.track("Pricing Viewed");
// Later, the user signs up — now they are identified.
journeylayer.identify({
name: "Ada Lovelace",
});
The stable identity used for a profile is the first non-null of
identity, email, then phone.
Identity merge behavior
Users often browse anonymously before they sign in. JourneyLayer keeps their history intact by stitching anonymous and identified activity into one profile.
When you call identify() with a stable identity (the first non-null of
identity / email / phone), JourneyLayer links the current anonymous user
to that known person in two directions:
- Forward stitch. New events from this point on attach to the identified person automatically.
- Backfill. Earlier anonymous activity is merged onto the known profile, so
the pre-signup events (like that
Pricing Viewedabove) are not lost — they appear on the same timeline.
The result is a single, continuous timeline that spans the user's anonymous and known sessions.
Resetting identity on a shared device
Call reset() when a user logs out. This starts a fresh anonymous
identity, so the next person to use the same device or browser is not merged
into the previous user's profile.
// On logout
journeylayer.reset();
Always call reset() at logout on shared or public devices. Without it, the next
visitor's activity would be stitched onto the previous user's profile.
A typical lifecycle looks like this:
- Visitor arrives — tracked under an anonymous id.
- They browse — events accumulate on the anonymous profile.
- They sign in —
identify()triggers forward stitch and backfill, producing one unified profile. - They log out —
reset()starts a new anonymous identity for the next user.
For the exact method signatures and platform behavior, see the Website SDK Tracking API.
Next steps
- Understand the traits stored on a profile in Properties.
- See what fills the activity timeline in Events.
- Implement identity calls with the Website SDK Tracking API.