Profiles

Who used your product, and everything you know about them.

A roster that works before anyone logs in, and gains identity when they do.

Read the visitors docs
Anonymous
Rows exist pre-signup
identifyUser
Adds email and traits
Your columns
Custom properties inline
Exportable
Take the table with you
  • Clado
  • Olive
  • Codebuff
  • Attensira
  • Assemble
  • Opennote
  • Stratify
  • Gatekeep

The roster

A table you can shape around your product.

Search it, add the columns you care about, export it. Identified visitors show an email; the rest keep a stable generated name so they are still followable across sessions.

Anonymous from the start

Visitors appear before they sign up. Identity is something you add later, not a precondition for the record existing.

Your own properties

Add columns from known property types, or create a new property from the column picker without leaving the table.

Identity via identifyUser

Call identifyUser in the SDK and the row gains email, name, and whatever custom traits you send with it.

Revenue fields

With Stripe connected, MRR, LTV, plan, and subscription status join the table as sortable columns.

Live rows

Heartbeats every thirty seconds keep idle tabs in the live set, so who is in the product right now is a fact rather than an estimate.

CSV export

Take the roster, with the columns you built, out to whatever your team runs on.

Visitor detail

Open a row and the person becomes legible.

  1. 01

    Who they are

    Identity, location, device, company, and revenue when it is available — assembled from the SDK and your connected systems.

  2. 02

    What they did

    Engagement, sessions, and their replays. Their journey through your product is a list you can watch, not a summary you have to trust.

  3. 03

    Where it goes next

    Move straight into a replay, or hand the visitor to an agent that reads every session they have ever had.

Details

How identity attaches.

Local anonymous id
The SDK generates a session id and an anonymous end-user id in the browser, stored in cookie and localStorage. No bootstrap request is needed before recording starts.
identifyUser
Call it once you know who someone is. Prior anonymous activity stays attached to the same record rather than starting a second one.
Custom traits
Send whatever your product knows — plan, role, workspace, cohort — and filter and column the roster by it.

Keep going

The rest of the platform.

Everything here reads from the same recorded session — there is nothing to stitch together between surfaces.

Stop guessing what happened.

One SDK, one afternoon. We will walk your team through it on a call and leave you with the recording of your own product.