Skip to content
DocumentationDashboard
Browse guides · Session recordings
DocsStart hereSession recordings

Session recordings

Replay captured page changes, pointer activity and scrolling to understand a visit.

Enable future recordings

Open Site settings → Tracking → Visit recordings → Enable recordings. Recording is disabled by default for each site. New clips appear after visitors load the tracker and collection is allowed by the site’s consent settings. The visible list refreshes automatically every 10 seconds. After enabling for the first time, reload an already-open website tab so it loads the current tracker. Pause collection stops new capture; it keeps saved recordings.

A page load creates one clip. Navigation within a single-page application stays in the same clip, while a new document creates another. A visit can have multiple clips. Existing analytics cannot be converted into historical recordings.

Replay a clip

Choose a recording to open its player. Play or pause, drag the timeline to seek, and choose 0.5×, 1×, 2× or 4× speed. The viewport label shows the captured dimensions; the preview scales to fit your screen. The player reconstructs DOM changes rather than playing a screen video. It does not run the website’s JavaScript or allow clicks to interact with the original site.

Open a visit in Visitors, Leads or Contacts to watch its recording in place. The activity timeline marks clicks, scrolling and gaps of at least five seconds with no captured interaction. Click an event or seek along the bar to jump to that moment. Idle does not prove the visitor stopped reading. Visits with multiple page clips show each captured page. Old recording links redirect to Visitors.

Captured
The server has saved page events. This does not guarantee the entire visit or its final activity was captured.
Limit reached
Collection stopped at a recording limit. Events after the last captured event are unavailable.

Tab closure, lost connectivity and blocked requests can omit events or the end of a clip. A recording is evidence of captured activity, not a complete account of the visit.

Masking and consent

Public page text, layout, supported images and fonts are recorded. Form values remain hidden. To mask text in any additional region, use .rr-mask or data-zowar-mask; to exclude the entire region, use one of the private-region markers below. Form controls, password fields, editable content, and regions marked data-pulse-ignore, data-zowar-private or .rr-block are blocked. Embedded frames, objects, canvas, video and audio are excluded. No camera, microphone, console or network capture is enabled.

The tracker and server sanitize event data. Paths exclude query strings and fragments. Scripts, event handlers, navigation targets and arbitrary data attributes are removed. Playback runs inside sandboxed frames under a restrictive content security policy. Public static images and fonts are fetched through a signed, tenant-authenticated asset proxy with HTTPS, public-address, type and size checks. It sends no visitor cookies or referrer to asset hosts. Initial styles, font families, SVG shapes and responsive layout rules are retained. Private content, video, canvas, embedded frames are omitted. Supported stylesheet updates are retained. Large or unavailable assets, authenticated resources and expiring URLs may not render. Assets reflect the public file currently available at that URL. Clips recorded before visual asset support cannot recover omitted text or pictures; record a new visit.

When consent is required, recording waits until consent is granted. Revocation and identity resets stop capture and discard pending buffers. This does not erase data already accepted by the server; delete those clips separately. Recording uses the existing browser identifier to link clips to visits without adding a persistent identifier. See consent and storage.

Limits, storage and deletion

Clips are retained for seven days and expired clips are excluded from lists and playback. Each clip is capped at 50 minutes, 10 MB of sanitized uncompressed events and 5 MB compressed. A snapshot too large to accept stops collection instead of saving an unplayable clip.

A site can hold at most 100 clips and 20 MB of compressed recordings; the server’s global recording budget is 1,000 clips and 100 MB. New collection pauses when capacity is reached or disk space falls below 512 MB. Existing clips are not deleted to make room. Delete a clip or wait for retention; a server operator must resolve low disk space.

Delete permanently removes a clip and its captured page events. The linked visit’s analytics are kept. Pausing collection does not extend retention.

API and same-origin proxies

/api/sites/{site_id}/recordings
GET lists recent clips, collection settings, retention and availability. Add ?visit= with an anchored visit ID to filter.
/settings
PATCH with enabled: true or false changes collection. Append to the site recordings route.
/{recording_id}
GET returns metadata and sanitized events; DELETE removes the clip. Append to the site recordings route.
/api/replay/config
Public tracker POST with site_key and path checks collection availability.
/api/replay/recorder.js
Self-hosted, pinned rrweb recorder loaded only when collection is allowed.
/api/replay/collect
Public tracker POST accepts ordered, bounded event batches with idempotent retries.

Site routes require the existing tenant and site permissions. Enabling, pausing and deleting require write access. Event responses are private and must not be cached.

If you use data-collector-path with a same-origin proxy, allow the public replay config, collect and recorder routes. Preserve request bodies, content types and website Origin on POST requests; strip website cookies and authorization headers. Never expose authenticated site routes through the public proxy. See same-origin collection.

Replay uses rrweb 2.2.0, distributed under the MIT license.

Install Zowar

Keep your workspace one tap away on your home screen.

iPhone or iPad
Open Zowar in Safari. Tap Share, then Add to Home Screen. Keep Open as Web App enabled if shown, then tap Add.

Android
Open the browser menu and choose Install app or Add to Home screen.

On your computer
Use your browser’s install option in the address bar or menu. In Safari, choose File → Add to Dock.

You’ll need an internet connection to view and update your workspace.