Skip to content

For support teams

Session Replay for Customer Support Teams

Turn "it does not work" tickets into something an agent can watch. How support teams use AnyReplay to find the moment, in any language, without seeing secrets.

Updated · 5 min read

A ticket arrives: "The checkout button does nothing." No browser version, no steps, no screenshot. The agent replies asking for details, the customer answers two days later with a different description, and the ticket ages while nobody knows what happened. Session replay for customer support replaces that exchange with a recording of the visit itself.

AnyReplay records what the user saw and did in the browser or in a React Native app, and lets an agent watch it back in their own language. This page covers how support teams use it, what stays hidden from the agent, and how to set it up.

The problem: tickets describe symptoms, not events

Support tickets are written after the fact by people who are not trying to write a bug report. "It does not work" can mean a form that rejected a valid address, a button that looked disabled, a page that reloaded and lost the cart, or a browser extension that blocked a script. Each of those has a different owner and a different fix.

The usual response is a round of questions: which browser, which page, can you send a screenshot. When the ticket finally reaches engineering it still contains a description rather than evidence, and a request to reproduce something that happened once on someone else's machine.

Global products add a second problem. A user in one country files a ticket in their language; the agent who picks it up reads a different one. Even when the ticket text is translated, the interface the user was looking at is not.

How replay fits a support workflow

The workflow changes at the first touch. Instead of asking for details, the agent opens the session that belongs to the ticket. Finding it is the first step, and that is what identify() is for: the SDK call ties a session to the user ID or email your support system already stores, so the agent searches by the same identifier that appears on the ticket. See user identification.

Inside a session, two flags narrow a twenty-minute recording down to the moment that matters. Every uploaded chunk carries hasError when a script error occurred and hasRageClick when the user clicked the same spot three times within a second. A rage click on a button that did not respond is usually the exact second the customer would describe as "it does not work".

With the moment found, the agent answers from evidence: the address form rejected a postcode with a space, or the button was covered by a cookie banner on a narrow screen. Tickets that are genuinely bugs go to engineering with a link to the recording rather than a paraphrase.

What AnyReplay does for support teams

Watch a session in the agent's language

An agent in Berlin can watch a user in São Paulo. Session translation translates the recorded interface, headings, buttons, labels and placeholders, on demand before the session plays, so seeking backwards or restarting stays translated. Translations are cached per organisation, so after a handful of sessions almost every string in your product is already translated and the next session costs nothing. The post on reviewing user sessions in another language walks through a full example.

Never see a password or a card number

Support agents should not see what a customer typed into a password field, and with AnyReplay they cannot: passwords and payment card fields are masked whatever you configure. Every other form value, email and phone fields included, is masked by default too; maskAllInputs: false records them. Masked values replay as asterisks; the originals never leave the page. The ar-mask class masks an element's text and a field's value; ar-block drops the element from the recording. Input masking is decided at record time, so no unmasked copy exists for anyone to find. The privacy page covers the full model.

Keep recordings only as long as policy allows

Retention defaults to 14 days per organisation and is configurable. The API enforces it on an interval, and deleting a session deletes the recording rather than hiding it. If your support policy closes a case after 14 days, data retention can match it.

Give agents the access they need and no more

Organisations have five roles: owner, admin, moderator, member and viewer. A support team can be given viewer access, enough to watch sessions and nothing else. No role can grant a role at or above its own rank, and every permission change lands in an append-only audit trail.

Mobile support too

If your product has a React Native app, the React Native SDK records the element tree rather than screenshots. The mobile session is translatable in the same way, and every TextInput is masked on the device before anything is uploaded.

Getting started

  1. Create a project in the dashboard. The Free plan includes one project and 500 sessions per month; see pricing for the current plans.
  2. Install the SDK. For the web, add the @anyreplay/browser snippet with your project key. For mobile, run npm install @anyreplay/react-native and call init at app start.
  3. Call identify({ userId, email }) once you know who the user is, using the same identifier your ticketing system stores.
  4. Keep the default so no form value is recorded, then ship; adjust sampleRate later if volume is higher than you need.
  5. When the next ticket arrives, search sessions by the user ID on the ticket, jump to the chunk flagged hasError or hasRageClick, and watch.

Frequently asked questions

Can a support agent see what a customer typed into a form?

Only if you set maskAllInputs: false. By default every form value is masked in the browser, replaying as asterisks with no unmasked copy on the server; passwords and card fields stay masked whatever you configure, but emails and phone numbers are recorded once you opt out.

How does an agent find the session that belongs to a ticket?

Call identify with the user ID or email your support system already stores. Sessions then carry that identifier and can be searched by it. Without identify, sessions are grouped by a visitor ID that persists in the browser.

Does replay work if the customer speaks a different language than the agent?

Yes. Session translation translates the recorded interface into the agent's language before playback. Translations are cached per organisation, so repeated interface strings are translated once and reused.

Can we limit how long recordings are kept?

Retention is 14 days by default and configurable per organisation. Sessions past the window are deleted by the API on a schedule, and deleting a session deletes its recording.

Start free — 1 project, 500 sessions a month

Install the snippet, record a session, and watch it back in your own language.