Privacy features

Your users’ privacy, built in.

See where people get stuck, not what they typed. On the web, replays are masked in the visitor’s browser before anything is sent. Your agent gets ids and counts. It never gets identity fields such as name or email. When a masking or agent safeguard cannot run, Sequential holds the data back.

Strict · default
What a Strict replay shows. Every character is a block. You still see the shape of the form and where the visitor typed, but not what they typed.

How Sequential handles your users’ data

Private defaults. You loosen them on purpose.

  1. Masked at the source

    Strict masking is the default for every new project. Text and inputs are masked in the visitor’s browser, before anything is sent.

  2. Cleaned on arrival

    Our servers mask inputs and addresses in recordings again. In events from every SDK we accept, the page address and referrer lose every query value except campaign and ad-click values.

  3. Ids, not identities

    Agents get ids and counts. Identity fields such as name and email are not returned, and agents cannot filter by them.

  4. Fails closed

    When a masking or agent safeguard cannot run, Sequential holds the data back. It does not let the data through.

Session replay

Masked before it leaves the browser.

Strict, the default preset

  • All page text and every input become █ blocks, one per character. Spaces stay, so you still see the shape of the page.
  • Images, SVG, video, audio, iframes and embeds are blocked. Canvas is not recorded.
  • Links keep only their domain. The page address keeps its route, and id-like parts are masked.
  • File names, hidden fields and the values of picked options are masked. A ticked box still shows as ticked.
  • Add data-sq-private to an element and it is masked under every preset.

Checked twice

When a recording arrives, our servers mask its inputs, attributes and addresses again, under your current settings. That second pass can only mask more.

DevTools data

  • JWTs, Bearer and Basic credentials, email addresses and card numbers become [redacted], in the browser and again on the server.
  • Values under keys such as password, secret, token, auth, cookie, session and apikey become [redacted].
  • Request headers and bodies are never stored. Console message text is off by default.

Events

Page addresses in events are cleaned. Always.

Sequential keeps the host, the path and the campaign and ad-click parameters, such as utm_source and gclid. A path part that holds an email, a JWT or a card number becomes [redacted]. Every other query value becomes [redacted]. Long random secrets read [token]. This applies to the page address and the referrer of every event, from every SDK we accept. You cannot turn it off, and you do not set it up. Address parts that an SDK sends as separate properties are stored as sent.

Your site sent Sequential stores
/reset?token=eyJhbGci…&email=jane@example.com /reset?token=[redacted]&email=[redacted]
https://admin:hunter2@app.example.com/billing#invoice-42 https://app.example.com/billing
/landing?utm_campaign=jane@example.com /landing?utm_campaign=[redacted]

You can also list your own websites under Allowed websites. Sequential then refuses data that a browser sends from any other site. Known bots are refused at ingest.

Agents and AI

Your agent sees counts, not customers.

You Break the stuck shoppers down by email.

Sequential “Agents can’t filter or break down by a person’s or account’s name, email or other identity fields.”

"user_id": {"id": "u_8f2c41", "source": "observed"}
An id your app sent, marked as data from your users.
"note": {"observed": "Card declined for [person]"}
Visitor text. A known name, email or phone number reads [person].
"button": {"withheld": "element text"}
Element text is not given to agents.
"quote": {"withheld": "removed by screen"}
Text that read like an instruction to an AI was removed.
  • Names, emails and phone numbers that your app sent are removed from free text, as best effort. If that check cannot run, the text is withheld.
  • Secrets in text, such as a long random token or a token= value, read [token].
  • Visitor text is screened for prompt injection before an agent sees it. Text that the screen cannot check reaches the agent as “not screened”, not as text.
  • If your user ids are emails, agents see them as sent. The agent tool get_overview counts such ids and tells you to send a pseudonymous id instead.

Access tokens

  • Only owners and admins create tokens. Each token has only the scopes you pick and expires after 30, 90 or 365 days. An agent trial gets one token, which expires 3 days after setup.
  • A token is shown once. Sequential stores only a hash of it and its last 4 characters.
  • An agent connected by sign-in works only while the person who connected it is still an owner or admin. Sequential checks this on every call.
  • Owners and admins see each token’s call counts and the newest 50 calls.

When something goes wrong

When one of these safeguards cannot run, the data stops.

A safeguard that fails without a sign is one you cannot trust. Each safeguard in this table fails towards privacy.

If Then
A masking selector is not valid in the visitor’s browser Nothing is recorded until it is fixed. Sequential does not record unmasked.
Someone loosens masking Most changes that loosen masking need the project slug. Nothing saves until they type it in the Loosen masking? sheet. The change goes in the audit log.
The injection screen cannot run The agent gets “not screened” instead of the text. An agent cannot get a fix brief that was not screened.
The check for names and emails cannot run The agent gets “not checked” instead of the text.
Sequential cannot read your allowed websites Sequential refuses the data and asks the sender to try again.
A support change cannot be written to your audit log The change is not made.
An organisation deletion cannot be recorded Nothing is deleted, and you are asked to try again.

Access

You decide who gets in. The log shows what they did.

Roles

  • Four roles: Owner, Admin, Member and Viewer. The server checks the role on every request.
  • Only owners and admins change recording settings, manage keys, tokens and members, and read the audit log.
  • To someone outside your organisation, your projects look the same as projects that do not exist.

Two-factor sign-in

  • Authenticator-app codes, with 10 backup codes and a list of your signed-in devices.
  • Owners and admins can require two-factor sign-in for everyone. This also covers Continue with Google.
  • Sign-in, code and reset attempts are rate-limited. Ten wrong codes in a row lock code entry for 15 minutes.

Audit log

  • Records roles, keys, tokens, agent connections and recording settings, with who and when. Recording settings get a before-and-after diff.
  • No one can edit or delete an entry in the app.
  • A change that loosens masking is flagged, for example “inputs are no longer masked”.

Sequential staff

  • Changes by Sequential support show in your audit log as “Sequential support”. If the entry cannot be written, the change is not made.
  • To debug a problem, Sequential support can view your account read-only. They must give a reason, and a view stops after 30 minutes at most. Your audit log shows when a view starts. It shows a stop when the staff member stops the view. A view that expires gets no stop entry.
  • The staff console needs two-factor sign-in and a recent code. Our internal log records each staff read before the answer is sent.

Encrypted in transit

  • The API accepts HTTPS only, with TLS 1.2 or 1.3. Plain HTTP is redirected.
  • The servers connect to the main database with verified TLS, and to the cache with TLS.

Encrypted at rest

  • The database, the analytics disks, the cache and the recording storage are encrypted.
  • The recording storage blocks public access and refuses requests without TLS.

Retention and deletion

Data with an expiry date.

When you delete a project

  1. At once Ingest keys are revoked and the data is unavailable. The recordings’ encryption keys are deleted.
  2. Within 60 seconds Every Sequential server refuses the deleted keys. Sequential cannot play the recordings after that.
  3. Within 14 days On the default schedule, the data is permanently deleted from the live databases, by a date the app shows. Deletion is marked done only when no rows are left.
  4. Later, on a shown date Storage removes the recording files.

Deleting an organisation does the same for each of its projects.

Retention

  • Retention is enforced, not only stored. Each organisation has a period for events and one for recordings: 7, 30, 90, 180 or 365 days.
  • On the hosted service today, events and recordings are kept for 7 days. They are deleted in weekly blocks, so they stay 7 to 14 days. Some records stay longer, for example the AI judge’s answers and the audit log. Our retention docs list each period.
  • A deleted project’s id is never used again. After 90 days, deletion records lose names, IP addresses and browsers.
  • Agent trials that no one claims are erased after 72 hours.

For your security review

What we do not do yet.

We write our limits down, so your review has no surprises. Our privacy docs open with a list of limits too.

  • No DPA, subprocessor list or certification such as SOC 2 yet. Other parties include Amazon Web Services (hosting), an AI service that judges sessions, Vercel (serves the app) and Google Fonts. Our AI and third parties page names each one. An agent that you connect sends the answers it gets to its own AI provider.
  • No promise yet about the location where data is stored.
  • No per-person deletion or export. You delete a whole project or organisation, or let retention remove the data.
  • Backups keep copies of the database and the analytics data for up to 7 days. Data that you delete can stay in a backup until that backup expires.
  • The full IP address is stored with every event, for the country lookup.
  • No SSO. Sign-in is email and password or Google, with optional required two-factor sign-in.
  • The audit log is not a full record. If the entry for your own team’s change cannot be written, the change still happens. The log is not a sign-in history.
  • The connection from our servers to the analytics database runs on a private network and does not use TLS yet.
  • Some SDKs also send parts of the page address as separate properties, such as Mixpanel’s current_url_search. Sequential stores these properties as sent.
  • Masking catches shapes, not meaning. Ids, class names and short numbers stay readable, and event properties are stored as sent. Keep personal data out of them.
  • Page text is masked only in the browser. Our servers do not mask it again, so a changed recorder can send text that is not masked.
  • Strict is the default for web recordings. Under Balanced, recordings keep the full page address. On mobile, your app’s SDK sets the masking, and project settings do not change it.
  • No consent banner. Our SDK can keep each visitor opted out until your own consent check opts them in.
  • Heatmaps are on by default for each project that records websites. They store counts, not text. The page picture comes from one masked recording, and every role in your organisation can see it.

Read Privacy at a glance · AI and third parties

Questions

Straight answers.

Do you send our data to a language model?
Yes, to the AI service that judges sessions. For automatic judging, the judge reads a short text summary of each session. It has no recording and no user id, and its addresses are cut to their path. Sequential does not store it. That service also gets short parts of visitor text, to screen the text that agents read. Features that a person starts, such as the Insights tab and Ask, send text when someone uses them. The Insights tab sends more. It keeps the domain of each page address, but not the query string. It sends up to three property values for each custom event or error. Owners and admins can turn off automatic judging for each project. That switch does not stop the features that a person starts.
Does the screen catch every prompt injection?
No. Ids are not screened, and an instruction split across parts can get through. Give tokens only the scopes they need, and review before your agent acts.
Can we stop other websites from sending data with our key?
Yes, for browsers. List your websites under Allowed websites. Sequential then refuses data that a browser sends from any other site. This does not stop a server or a script, and mobile app ids are not checked yet. Sequential also refuses bots that it can identify.
Can a contractor see only one project?
Roles apply to the whole organisation. Put that project in its own organisation.

Start masked. Loosen on purpose.

Strict masking, cleaned page addresses and screened agent answers are the defaults.

Can't be bothered? Tell your agent to do it.

Paste this into your coding agent, for example Claude Code or Cursor.

Show the prompt Set up Sequential (session analytics and replay) in this app with a free trial. Ask me for my email address. Then send POST https://api.usesequential.com/api/agent/provision with the JSON body {"owner_email": "<my email>", "platform": "web"} (or "ios", "android" or "react-native", to match this app). Add the answer's install.snippet to the app, run the app on localhost, and keep mcp.url and mcp.token to read the sessions. Do not put the token in source control. Everything you need is in the answer. Then tell me to claim the trial from the email Sequential sends me.
  1. Your agent creates a trial project and installs Sequential in your app.
  2. You get an email from Sequential.
  3. Open the link in the email and claim the project. A trial that nobody claims is erased after 72 hours.