Session replay

Watch the session, not a summary of it.

Every click, console line, and failed request on one clock.

Read the replay docs
DOM
Reconstructed, not video
6 tabs
Signals on one timeline
Masked
Inputs redacted in the browser
?t=
Deep link to any moment
  • Clado
  • Olive
  • Codebuff
  • Attensira
  • Assemble
  • Opennote
  • Stratify
  • Gatekeep

Player

Play the session back and jump to the moment that matters.

Transport controls carry play, ±10s skip, playback speed, and skip-inactive so a forty-minute session is watchable in three. Header stats show clicks, keypresses, and console errors before you press play.

  • Skip inactive time on long sessions
  • Clicks, keypresses, and console errors in the header
  • Deep link straight to a timestamp with ?t=

Activity panel

Everything that happened, tabbed beside the video.

The panel is the difference between watching a session and investigating one. Each tab is filtered to this session and seeks the player when you click a row.

Issues

Errors tied to this session, with the same fingerprint and grouping you see on the Issues list.

Behavior

Frustration signals — rage clicks, dead clicks — surfaced where they happened rather than buried in an event feed.

Events

Product events and navigations, including the custom events you send from your own code.

Console

Console logs captured in the browser at the moment they fired, not reconstructed after the fact.

Network

Request breadcrumbs so a failed call and the screen the user was staring at line up.

Web Vitals

Performance samples measured in that session, so 'it felt slow' becomes a number.

How you get here

You rarely open Replays cold.

Most sessions get watched because something else pointed at them. The list is scoped when you arrive from an issue, a dashboard dip, or a set of sessions.

  1. 01

    Something looks wrong

    An issue spikes, a funnel step drops, or an agent files a finding. Each of those carries the sessions behind it.

  2. 02

    The list arrives scoped

    A chip shows what narrowed it — an issue, a session set, a filter — so you are watching the right sessions, not a random sample.

  3. 03

    Watch, then act

    Jump to the moment, open the visitor, or hand the session to an agent that files the ticket.

Details

What the recording actually is.

DOM, not video
Replays are rrweb DOM snapshots reconstructed in the browser. Text stays selectable and the page stays inspectable, at a fraction of the bandwidth of a screen recording.
Inputs masked by default
The SDK ships privacy-first: every input value is masked in the browser before anything leaves the page. Open specific fields with unredactFields when you need them.
Page text is not masked
Neither redaction mode masks text already rendered on the page. If your screens print personal, health, or payment data, mark those elements with data-hb-redact or rr-mask.
Deep links
replay= opens a session, issue= scopes the list to an issue, sessions= to a set, and t= seeks to a moment — the same date range and filter chips as every other analytics page.

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.