Starko

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 replayapp.northwind.io/reports · 1m 12s
Reports
Export
00:1801:12
1x2x4x8xskip inactive
At a glance

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-mask hides text, starko-no-capture leaves 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.
Capture

Recorded in the browser, uploaded only when something happens.

With session replay on, the widget loads a pinned recorder from Starko's own origin and records the page structure, clicks, navigation and scrolling. It is not a screen video. Events stay in a buffer on the visitor's device until a trigger fires, and only then does the widget start uploading.
  • 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: true to be captured.
  • In ticket-only widget mode, the recording is attached to the ticket the visitor files.
Privacy

Inputs are masked before anything leaves the page.

The recorder masks every input field, always. It is not a setting you can forget. You decide the rest with two class names and one widget option, and recording stays off until someone who can change Starko AI settings turns on Record visitor sessions.
  • Add starko-mask to an element to mask its text, or starko-no-capture to leave it and everything inside it out of the recording.
  • Set sessionReplay: false in the widget options to keep a page out entirely.
  • Canvas pixels are not masked. Put starko-no-capture on 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.
v2.starko.one/dashboard/settings/starko-ai
Settings/Starko AI
72%
Session replay

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.

Generate digest now
Page errors

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.

Playback

The recording sits next to the conversation it explains.

Open a conversation and its side panel lists the visitor's recordings under Recordings: the page, when and how long, clicks, errors, whether it was recorded during this conversation, and what started it. Recordings from up to an hour before the conversation began count as its context. Play opens the Session replay dialog, sized to the visitor's own screen, so a phone recording plays tall and narrow.
  • 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.
AI friction analysis

Starko AI reads each clip for one thing: where the product got in the way.

When a conversation settles, closed by a person or for inactivity, or when someone presses Analyze with AI, Starko rebuilds the recording in a short-lived sandbox, screenshots the moments around the errors and the trigger, and resolves what each click actually hit. That becomes a timeline a model can read. The visitor's own words in the conversation say what they were trying to do.
  • 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.
Recordings
  • app.northwind.io/settings/teamPlay
    12 minutes ago2m 4s17Conversation
    Confusion82%

    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
    Create improvement ticket
  • app.northwind.io/reports/monthlyPlay
    3 hours ago48s92API error
    Analyzing…
  • app.northwind.io/billingPlay
    yesterday14s6Rage click
    Not analyzed: only 6s of activityAnalyze with AI
From clip to ticket

Confident friction becomes a recommendation.

A Hesitation, Confusion or Dead end verdict shows Create improvement ticket under the analysis. Starko also files on its own when the verdict is Confusion or Dead end at 70% or more, or when the visitor described the problem at 60% or more. Repeats of the same problem become sightings on one ticket. All of it waits on Improvements until someone accepts it.
  • 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.