Skip to main content
When a workflow, an AI agent or a teammate asks a customer to show an issue, the widget shows a card with Take screenshot or Record my screen. On the customer’s tap, the SDK hides the widget and shows a small bar on your page. It captures the page when the customer taps Capture or Start. Workflows, AI agents and teammates can also collect logs from the page without asking the customer. How to ask, what the customer sees and what your team gets: Screenshots, recordings and logs.
Needs the JavaScript SDK 19.1.0 or later. The code snippet always loads the latest version. Older versions show the card with Upload a file only.

How the page is captured

  • A screenshot shows the visible part of the page.
  • To never show the browser’s share prompt for screenshots, set Web screenshots to Never show a browser prompt in Project settings → Developer options → Screenshots & recordings.
  • If screen sharing for a recording doesn’t start in a desktop browser (the customer cancels, or it’s blocked), the bar offers Record this page instead.
  • When a link loads a new page, a running recording stops, and the bar comes back on the next page with Record again. Route changes in single-page apps don’t stop a recording.
  • When the request allows the microphone, desktop browsers show a microphone button in the recording bar.
  • The SDK does nothing until a request arrives.

Turn screenshots and recordings off

While it’s off, the card only offers Upload a file, and a capture in progress ends. It’s on by default. You can call it before or after Gleap.initialize, and pass true to turn it on again.

Turn log requests off

Log requests from workflows, AI agents and your team are then answered as not supported, and screenshots and recordings are sent without logs. It’s on by default, and you can call it before or after Gleap.initialize. While it’s on, logs sent along with a screenshot or recording follow the Attach logs setting in the dashboard.

Mask content

Screenshots and recordings leave out sensitive content:
  • Always masked: password fields, and fields whose autocomplete attribute contains current-password, new-password, one-time-code, cc-number or cc-csc.
  • Masked: elements with the class gl-mask or rr-mask, and fields with the attribute gleap-ignore="value".
  • Hidden: elements with the class gl-block or rr-block, and elements that match the CSS selectors under Masked elements in Project settings → Developer options → Screenshots & recordings.
  • The privacy options you set with Gleap.setReplayOptions apply too: blockClass, blockSelector, maskTextClass, maskTextSelector, maskAllInputs and maskInputOptions.
  • Card payment frames, for example from Stripe, Braintree, Adyen or PayPal, are blacked out in screenshots.
In screenshots, masked and hidden elements are painted black. Page recordings mask every input value and the text of masked elements, record hidden elements as empty placeholders and leave out canvas elements. While a screen recording runs in a desktop browser, the same elements on your page are blurred, including those in same-origin frames and open shadow roots.
A screen recording shows everything else the customer shares as it is: other tabs, windows or the whole screen, cross-origin frames (payment frames are blurred as a whole) and closed shadow roots.
Gleap’s own UI, such as the widget, the feedback button and the capture bar, never appears in a capture.

Content Security Policy

If your Content Security Policy restricts media-src (or default-src without a media-src), allow blob: so customers can watch the preview of their recording before they send it.