Docs

Data handling

What the snippet records about the people who use your app, where it's kept, for how long, and how to export or delete it. Use it for your data processing agreement and records of processing.

You decide what Cueston learns about your users: which user id you pass (if any), which events you track and which surveys you run. Cueston processes that data for your workspace only, to show guidance and measure it. It is never shared with other workspaces or sold. Questions: privacy@cueston.com.

What the snippet collects

Every event carries the page URL as the browser reports it, including the query string, so keep personal data out of your URLs.

Every request from the snippet carries your publishable key (pk_), a random anonymous id made in the browser, a session id (new after 30 minutes without activity), and the user id you pass to Cueston.identify(), if you do. The user hash for identity verification is checked, never stored.

WhatEventFields stored
Guidance eventsimpression, step_view, cta_click, complete, dismiss, skipWhich tour, tooltip, banner, checklist or survey, the step, the page URL, when it happened. The ids above.
Checklist progresschecklist_item_completeThe checklist and the item id, page URL, time, the ids. For identified people Cueston also keeps which items are done, so progress follows them across devices.
Experiments and goalsholdout, goalThat the person was in a control group or reached a goal, for which item, page URL, time, the ids.
Broken guidancetarget_missingThe CSS selector that wasn't found and the page URL, so you can fix the step. The same ids.
Custom eventsCueston.track(name, properties)The event name, the properties you pass (up to 1 KB of JSON), page URL, time, the ids. Cueston also counts them per person per day for behaviour targeting.
Survey and NPS answersA visitor answers a surveyScores, chosen options and free text, the survey and its version, page URL, language, whether the user id was verified, time, the ids.
Identify traitsCueston.identify(userId, traits)Traits (role, plan, permissions…) are used in the browser to decide what to show. The snippet doesn't send them to Cueston. Traits received through a Segment connection are stored as the person's profile.
AI assistant questionsA visitor asks the assistantThe question, the page URL and the answer given, without a user id or anonymous id.

The snippet sets no cookies and doesn't record keystrokes, form values, mouse movement or the screen. IP addresses are used only for short-lived rate-limit counters, never stored with events or answers.

What stays in the browser

The snippet keeps a little state in the visitor's browser so guidance works before and without a round trip.

KeyWhereWhat for
cst_aidlocalStorageThe anonymous id. Cueston.reset() replaces it.
cst_sidsessionStorageThe session id and last activity (a new session starts after 30 idle minutes).
cst_visitslocalStorageHow many sessions this browser has started.
cst_freqlocalStorageWhich items were seen, completed or dismissed, for frequency rules ("show once").
cst_behlocalStorageFirst and last visit and 90 days of custom-event counts, for behaviour targeting.
cst_thrlocalStorageHow many pop-ups were shown this visit and today, for the workspace's limits.
cst_explocalStorageExperiment group and goal status per item.
cst_pslocalStorageChecklist and survey progress in this browser.
cst_sssessionStorageWhether this visit was already reported (once per visit).
cst_previewsessionStorageOnly for your team: an in-site preview link's token while previewing drafts.

Call Cueston.reset() when someone signs out: it forgets the user, starts a new anonymous id and clears the local frequency state.

Where it's stored

The snippet sends data over HTTPS to the Cueston API (app.cueston.com). The application runs on Vercel and stores data in Cueston's PostgreSQL database at Supabase. Every row belongs to one workspace, and every query is scoped to it.

Inside your workspace, your team sees it according to their role: analytics need the "See analytics" permission, exports "Export analytics data", and deleting a person's data "Change workspace settings". Webhooks and the Segment connection send copies to destinations you configure; those copies are governed by them.

Ask privacy@cueston.com for the hosting region and the current list of sub-processors.

How long it's kept

Owners and admins set the workspace retention in Settings → Data & privacy. A cleanup runs every night from 02:00 UTC and deletes what's older.

DataKept for
Guidance events (all types above)Your workspace retention: 30 to 1,095 days, 400 by default
Raw custom events90 days, or your retention if it's shorter
Daily custom-event counts per person400 days, or your retention if it's shorter
Survey answersFree text, user id, anonymous id, session and page URL: your retention. Scores and chosen options then stay, without the person, so NPS trends keep working.
AI assistant questions, friction signals, feature usageYour retention (feature usage: since it was last used)
What each person has seen, completed or dismissed; checklist progressUntil you delete the person or the content: frequency rules need it
Profile traits and events received from SegmentTraits until you delete the person; raw Segment events 90 days, or your retention if shorter
Copies in your webhook and Segment delivery logs30 days
Your team's audit log (who exported or deleted what)400 days, with a reference instead of the person's user id

Deleting a workspace deletes all of its end-user data. Shortening the retention can't be undone.

To export or delete one person's data, see End-user data requests.

On this page