Session replay is only useful if you know which recordings to watch. A tenant capturing hundreds of sessions a day has hundreds of tapes nobody opens. Devotel Orbit's High-Friction Sessions view solves the triage problem: it reads every recorded session server-side, derives a frustration score from four concrete signals — rage clicks, dead clicks, error clicks, and rapid back-navigation u-turns — and lists your sessions worst-first. Open one and the replay player marks each signal as a marker on the timeline, so you jump straight to the moment a customer struggled.
Quick answer: rank recorded sessions by frustration signals so the team watches the replays that matter, routes product issues to product and support issues to support, and audits the ranking against the contact-reason taxonomy rather than eyeballing tapes.
What Orbit ships
The view lives at Insights → High-friction sessions in the dashboard. The capture pipeline records the visitor's DOM and stores the raw stream; the ranking layer scans that stream on read and derives four per-session signals:
- Rage clicks. Three or more clicks within about a second, inside a ~30-pixel radius, on the same element. The customer is hammering a button that is not responding.
- Error clicks. A click immediately followed by a JavaScript or console error on the page. The click triggered a broken code path.
- Dead clicks. A click that produced no DOM change and no navigation. Something on the page looked interactive but did nothing.
- U-turns. Rapid back-navigation to the page the visitor just left. They went somewhere, it was not what they wanted, they bounced straight back.
Each signal type contributes a weighted amount to the session's frustration score — rage clicks and error clicks count heaviest, dead clicks and u-turns half as much — and the list sorts by that aggregate. Every row shows the start page, the session's start time, and its per-signal counts; picking a session opens the player with a marker strip aligned under the scrubber marking where each signal happened, with a legend and tooltips naming the type.
Reading the ranking: product-team vs support
The ranking answers one question — "which recordings matter today?" — and the second question is who owns the fix. The signal mix tells you:
- Error clicks dominate. The recorded session contains a page throwing errors after a click. That is an engineering defect on a route you ship; route it to the product or engineering owner with the marker timestamp as the reproduction anchor.
- Rage clicks and dead clicks dominate on one element. The UI element reads as interactive and is not responding, or responds too slowly to give feedback. Route to the product team as a usability defect on that surface.
- U-turns dominate across a flow step. Visitors reach a page and immediately reverse — typically a form step, a confirmation page, or a pricing jump. Route to the product team as an information-hierarchy problem.
- The same page recurs across many customers. If support sees repeated live chats or tickets about "the checkout button does nothing" and the top-ranked session is a rage burst on checkout, route the replay to support as validation, and the fix ticket to product.
The discipline that makes this stick: support closes the complaint once the ranked session confirms it, and product owns everything on its own surfaces. The view's empty states separate "no recordings yet" (recording not installed or not enabled) from "no friction this period" (recording fine, nothing to triage), so a blank list is a diagnosis, not a dead end.
Example: pair with the contact-reason taxonomy
Contact-reason intelligence classifies inbound support conversations into a reason taxonomy; High-Friction Sessions explains what was happening on the site before those conversations arrived. The pairing closes the loop:
- A topic in the contact-reason view spikes — say "checkout button unresponsive."
- Open High-Friction Sessions and look for rage or error bursts on the checkout page among the top-ranked sessions.
- Confirm the pattern with replays, route the fix to the owning team, and watch the topic drain in the reason view.
Used this way, session replay stops being a separate analytics silo and becomes the evidence layer under your contact-reason taxonomy. See the sibling posts in this cluster — Voice of Customer analytics and Contact-reason surveys over SMS and WhatsApp — for the classification and survey side of the loop.
Privacy: the tenant controls the recording posture
Frustration ranking reads what your session recording captured, and the capture posture is tenant-controlled. Devotel Orbit's recording policy runs default-deny: input values are masked in the browser before upload, and the operator can extend that with CSS selectors whose text is replaced or whose subtree is never serialized at all — so recordings default to redacted and an operator must explicitly relax masking. High-Friction Sessions derives signals from clicks and navigation events, which of the four signal types survived your masking policy is a capture decision your team owns.
Frequently asked questions
What exactly counts as a rage click here?
Three or more clicks in about a second inside a roughly 30-pixel radius on the same element — the detector treats that burst as one rage-click signal, anchored at the first click of the burst, so one meltdown scores once.
How is the frustration score computed?
Each signal type carries a weight — rage clicks and error clicks weigh more than dead clicks and u-turns — and the session score is the weighted sum. The list ranks by that aggregate, so a session with several heavy signals outranks one with many light ones.
Does the ranking need a new table or a re-index?
No. The detector is a pure function over the events you already captured, computed on read, so the ranking always reflects the latest recordings with nothing to backfill and nothing to stale.
What session data does recording capture, and who controls masking?
Recording captures the serialized page DOM plus click, mutation, and navigation events. Masking is tenant-controlled and default-deny: input values are masked before upload, and selectors can mask text or block subtrees entirely. The default posture is redacted unless an operator relaxes it.
Where do I open it?
In the dashboard, Insights → High-friction sessions. Pick a session from the ranked list; the player marks every derived signal on the timeline.
Get started
Install the Web Session Recording SDK/script on the pages you want covered, confirm recording is enabled for the tenant, and ranked sessions start appearing within the first traffic batch. Then add the pair workflow to your support review: contact-reason spikes checked against High-Friction Sessions before anyone scrubs tapes by hand.
Open [Insights → High-friction sessions](/insights/high-friction-sessions) to see the ranking.