Session replay

Session replay records what visitors see and do on your site, so you can watch a visit back instead of guessing from charts. Databuddy also reads every recording for you: it groups visits by what people were doing, scores how worth watching each one is, and flags clicks the page never answered, so you can go straight to the visits that explain a problem.

Session replay is available on every plan.

Start recording

Session replay is on for every website, so recording starts as soon as you add the recorder next to your existing Databuddy script:

<script
  src="https://cdn.databuddy.cc/replay.js"
  data-client-id="YOUR_WEBSITE_ID"
  defer
></script>

The settings page shows this line with your website ID already filled in. If you install Databuddy with the React, Next.js, or Vue SDK, add the replay prop instead and the SDK loads the recorder for you:

<Databuddy clientId="YOUR_WEBSITE_ID" replay />

Pass replay={{ maskText: false }} to record page text. Typed input stays masked either way. Recordings appear under Replays in the website's sidebar a few seconds after a visitor starts interacting with the page.

The recorder only starts once a visitor moves the pointer, scrolls, taps, or types, so crawlers and tabs nobody looks at never produce a recording. It pauses after five minutes without activity and resumes when the visitor comes back.

Privacy and masking

Recordings are masked in the visitor's browser before anything is sent, so private data never reaches Databuddy.

  • Typed input is always masked. What visitors type into fields is never recorded, whatever else you configure.
  • Page text is masked by default. Add data-replay-unmask to an element whose text is safe to show, such as your navigation, headings, or product names, and its text appears in recordings.
  • Blocked elements are left out entirely. Add data-replay-block to an element, and recordings show an empty box of the same size in its place.

If your pages contain no personal data, you can record all page text with data-mask-text="false" on the recorder script. Typed input stays masked either way.

Mention session recording in your privacy policy, as you would for any analytics that records how people use your site.

Recordings are kept for 30 days and then deleted. To stop recording a website, open its Settings, choose Tracking, and switch off Session replay.

Watch recordings

The Replays page lists recent recordings with the visitor, the page they started on, their country, browser, and device, and how long they stayed. Each row leads with the most useful thing to know, such as a button that did nothing when clicked.

You can narrow the list to recordings that are worth watching, visitors who struggled, identified users, or long visits. The Filter menu adds two more ways to narrow it:

  • What they were doing: browsing, evaluating, creating an account, using the product, buying, or looking for help, as judged from each visit.
  • What they did: any custom event your site sends, such as signup_completed, so you can watch exactly the visits where it happened.

The player shows everything the visitor did as an activity list you can click to jump to any moment. Your own custom events appear in that list at the moment they fired, and clicks the page never answered are listed as findings and marked on the timeline.

You can also reach a recording from other places in Databuddy. A visitor's profile marks the sessions that were recorded, and the events stream shows a play button next to any event whose session was recorded.

Insights and the AI agent

Databuddy watches recordings for clicks that pages never answer, such as a button that does nothing or a card that looks clickable but isn't. When the same element fails for several visitors, Insights opens an investigation, and the investigation links straight to the recordings that show it.

The AI agent can search your recordings by page, by text in the visit, by custom event, or by what visitors were doing, and it can ask every matching recording a question, such as whether the visitor compared pricing plans before leaving. It shows the recordings it finds in the chat, where you can play them without leaving the conversation. Agents connected through MCP can search recordings as well.

Options

Set these as attributes on the replay.js script tag.

AttributeDefaultWhat it does
data-client-idrequiredYour website ID.
data-mask-texttrueSet to false to record page text. Typed input stays masked.
data-record-iframesfalseRecords your own embedded pages into the recording of the page that frames them. Set it on both pages, and only where the framed page allows framing by the parent alone.

Each recording can be up to 20 MB, and each website can record up to 10 GB per day. Very large pages with more than 20,000 elements are not recorded, to keep the recorder from slowing them down.

How is this guide?