See what the visitor saw,around the moment it went wrong.
The Starko widget keeps a short recording when something goes wrong on your site, plays it next to the conversation or ticket it explains, and has Starko AI read it for friction. A session where nothing happens never leaves the browser.
Session replay in short.
- Switch
- Record visitor sessions, in Settings under Starko AI. Off by default.
- Triggers
- JS error, API error, Action failed, Rage click, Conversation and Manual.
- Masking
- Every input, always.
starko-maskhides text,starko-no-captureleaves an element out. - Clip length
- Uploads continue for 2 minutes after a trigger. Recording stops after 5 minutes without interaction.
- Retention date
- 7 days, or 30 days when the recording belongs to a conversation or a ticket.
- Verdicts
- Smooth, Hesitation, Confusion, Dead end or Inconclusive, with a confidence.
- Player
- 1x to 8x, skip inactive, and markers for errors, the trigger and the conversation.
- Where it shows
- The Recordings section of a conversation, and Session recording on a ticket.
Recorded in the browser, uploaded only when something happens.
- The triggers: an uncaught JavaScript error or unhandled promise rejection (JS error), a failed request in the widget (API error), a page action the assistant ran that failed (Action failed), a rage click, the visitor opening a conversation, or a manual start.
- The trigger list is sent from Starko's side, so it can change without a redeploy of your site.
- After a trigger the widget keeps uploading for two minutes. Recording stops after five minutes without interaction.
- Canvas and WebGL viewers are sampled twice a second as images, and unchanged frames are not sent again. A WebGL viewer that renders only on demand needs
preserveDrawingBuffer: trueto be captured. - In ticket-only widget mode, the recording is attached to the ticket the visitor files.
Inputs are masked before anything leaves the page.
- Add
starko-maskto an element to mask its text, orstarko-no-captureto leave it and everything inside it out of the recording. - Set
sessionReplay: falsein the widget options to keep a page out entirely. - Canvas pixels are not masked. Put
starko-no-captureon a canvas you do not want recorded. - Network request and response bodies and console logs are not captured.
- Recordings play through a signed-in, workspace-scoped proxy, so storage URLs never reach a browser, and the playback frame runs without scripts.
- Turning the switch off stops new recordings the next time the widget loads its settings. Recordings already stored keep their retention date.
Record visitor sessions
The widget records your pages and keeps a short clip when something goes wrong: an error, a rage click, a conversation or a reported problem. Inputs are always masked. Starko AI reviews the clips and files recommendation tickets for you to accept. Off by default; hosts can also exclude a page with the widget's sessionReplay: false option.
Weekly digest
Every Monday, Starko AI groups the week's session replay analyses into themes: what kept happening, on which pages, and the smallest change to test, as a ticket tagged "Session replay digest", and notifies admins.
Report page errors as tickets
JavaScript errors the widget sees on your pages become bug tickets: grouped, deduplicated, and never sent to the fix agent until a person accepts them.
The recording sits next to the conversation it explains.
- Speeds of 1x, 2x, 4x and 8x, with skip inactive on by default.
- Markers on the timeline: errors in red, the trigger in amber, the conversation in blue.
- Tickets filed from a session, by the visitor, by Starko AI or from a page error, show the recording under Session recording.
- The Has video filter on Conversations also finds conversations that have a session recording.
- When Starko AI works on a ticket, it gets a digest of the recording: the pages, the clicks and what they hit, and JavaScript errors with their stacks. It is handed over as untrusted data, never as instructions.
Starko AI reads each clip for one thing: where the product got in the way.
- One verdict out of five: Smooth, Hesitation, Confusion, Dead end or Inconclusive, with a confidence. Inconclusive is preferred over a confident guess.
- Each verdict says what the visitor was trying to do, what happened, where the UI stopped helping and the smallest change to test, citing [mm:ss] moments that exist in the timeline.
- Clips with under 10 seconds of activity or fewer than 50 events are not analyzed, and the panel says why.
- Recordings without a conversation, started by an error or a rage click, are analyzed about ten minutes after upload with a stricter prompt. A page-load error with no activity is Inconclusive.
- When the conversation grows after a verdict, Analyze again (new messages) runs it once more.
- The conversation and the page are treated as data: instructions a visitor types are never followed, and names, emails and phone numbers stay out of the verdict.
- app.northwind.io/settings/teamPlay12 minutes ago2m 4s17ConversationConfusion82%
Trying to: invite a colleague to the workspace before a trial ends
Scrolled the member list twice and clicked the page title before asking in the chat where the invite link is.
Where the UI stopped helping: the invite link sits under a collapsed Advanced section
- [00:06] Scrolls the member list to the bottom and back
- [00:19] Clicks the page title, nothing happens
- [00:27] Opens the chat and asks how to add a colleague
- app.northwind.io/reports/monthlyPlay3 hours ago48s92API errorAnalyzing…
- app.northwind.io/billingPlayyesterday14s6Rage clickNot analyzed: only 6s of activityAnalyze with AI
Confident friction becomes a recommendation.
- A Dead end with a JavaScript error behind it is filed as a bug; everything else as an improvement.
- Every Monday, the week's analyses are grouped into themes in one Session replay digest ticket.
- JavaScript errors inside recordings also feed Error tracking, counted once even when the widget reports the same error separately.
- See the whole loop on How it works.
FAQAbout Session replay.
Connect a channel and a repository. Turn the support queue into a build queue.
Feedback starts flowing in minutes. The first recommendation shows up as soon as a pattern repeats, and the first pull request as soon as you accept one.