Merle

What the feedback button records

Updated November 6, 2026

Merle's feedback button is a small script a team adds to its product. People use it to send that team a message. This page lists what the button records, what it never records, who receives it and how long it is kept. Teams can link to this page from their own privacy notices. The privacy policy has the legal detail.

Before anyone presses it

What goes with a message

A message and its steps go only when the person presses Send. Before they do, the panel names what will go with it, and they can take off the page address and the steps.

WhatExactlyCan they take it off?
Their messageWhat they wrote, up to 2,000 charactersIt's the message
The page addressThe path of the page, such as /settings/billing. No query string, no fragmentYes
The stepsThe last minute of activity on the page, listed belowYes
Window sizeWidth and height in pixelsNo
Browser idThe random id from the first press, so the button can show them their own messagesNo
Message keyA random secret made for each message. Merle stores only its hash, and the browser holds the secret so it can ask about that messageNo
Who they areOnly if the team's product signs them in and passes a signed token: an id, and the name, email address, company and plan if the team includes themNo. The team decides what its token holds

Taking off the page address removes that line only. The steps can also hold paths, so someone who wants no paths sent takes off both.

The steps

Steps cover the last minute, up to 60 of them. With a screen recording they cover the recording too, up to 200. A path can hold an id if the team's product puts one in its addresses.

StepWhat is recorded
A clickA short name for the element: its tag, its id or first class, and its name attribute. Also a button's own label or an element's aria-label, if that is 40 characters or fewer. Links and form labels often show people's data, so they go by the short name alone
TypingThe short name of the field and how many characters are in it. The characters themselves are never read
Moving to another pageThe new path
A request from the productMethod, path and status code, for requests to the product's own address or its own subdomains, such as api.example.com. Requests to other sites are left out
An errorThe message of an uncaught error, up to 300 characters. Query strings, email addresses, long hexadecimal strings and long numbers are removed in the browser first

Pictures, recordings and voice

These happen only when the person chooses them, each with its own tap.

Add a picture

An image of the visible part of the page. Everywhere a person can type is blurred before the image exists: inputs, text areas, select menus and editable areas, plus anything the team marks with data-merle-mask. Frames the page can't read are blurred whole. Other text on the page still shows, such as names or amounts. The person sees the picture and can blur more of it. It uploads when they press Use this picture, and it is deleted within an hour if no message claims it.

A picture chosen from the person's own files is sent as it is, and the panel says so.

Show me

A recording of this tab, up to 2 minutes, in Chrome and Edge on a computer. The button refuses a whole screen, a window or another tab. It records the tab's picture and, if the person allows the microphone, their voice. It doesn't record the tab's own sound. Places to type are covered with a blur, measured again on every frame, and other text on the tab shows. The person watches the recording and can cut its ends. Nothing leaves until they press Send. The team gets the recording, what was said written out as text, and up to three still frames from it.

Say it

Up to 60 seconds of voice in place of typing. The audio goes to Merle when the person stops, is turned into text and is dropped. The person sees the text and can change it before sending. The team reads the text and never hears the voice.

The blur can't reach closed shadow roots, because a page's scripts can't see inside them. That is why the person is shown every picture and recording before it goes.

What it never records

Merle uses the sender's IP address per request, to limit abuse. It isn't stored with the message.

What stays on the device

After the first press, the browser's local storage holds the random browser id and, once they send, the person's own messages and their status, so they can read them there. Session storage holds small flags for that visit, such as whether voice is off. Clearing the browser's site data removes all of it.

Who receives it

WhoWhat they getWhere
The team behind the productEverything above, in their Merle inbox. They are the controller, and Merle processes it for themStored in the EU
CloudflareHosting and storage. It also turns voice into textStored in the EU; requests are served from the nearest location
AnthropicAnthropic gets the message text, the titles of the team's open requests and its past answers, to sort the message and say it back in one sentence, and nothing else: no names, email addresses, company, plan, pictures or recordingsUnited States
GitHub or LinearOnly if the team connects one and files an issue: the words people sent, the recorded steps and how many people sent it. No names or email addressesUnited States
ResendOnly if the person asks for updates by email: their address and the email. An email names the team's product and holds no message textEU

How long it is kept

Who to ask

The team behind the product decides what happens to its customers' messages, so start with that team for a request about your data. For anything about Merle, write to support@hellomerle.com.

Teams adding the button can read the install docs.