Insights: what happened before anyone reported it
Bug reports tell you what one person saw; Insights shows how people move through your app, which calls are slow and which errors keep firing.
Insights in Flawsnap is a privacy-first view of how your site or app is used. It records the screens visitors move through, API calls with status and duration, uncaught errors grouped into issues, and actions you track. It sets no cookies and respects Do Not Track. Journeys, screens and API timing are on Pro; error tracking is on both plans.
What Insights records
Portal views: Summary, Screens, Journeys (the journey map), Users, APIs, Errors and Setup.
- Screens: each page or route a visitor views, how they got there (link, back, redirect) and their active time on it. These feed a journey diagram.
- API calls: method, URL without the query string, status and duration, tied to the screen that made them.
- Errors: uncaught errors and unhandled promise rejections on the web (Dart errors in Flutter), grouped into issues.
- Actions: named events you send with
Flawsnap.track().
Switching it on
- 1
Turn on the project switch
Insights is off by default. Open Insights → Setup in the project and switch it on. On Pro you get journeys, screens and API timing.
- 2
Keep your existing snippet
The widget loads a small extra script (
widget-insights.js) only for projects with Insights on. Nothing else to paste. - 3
Name what matters
Call
Flawsnap.track()for actions such as a completed sign-up, andFlawsnap.screen()when a route name tells you more than the path.
Flawsnap.track('signup_completed')
Flawsnap.screen('Checkout: payment')Action names use lowercase letters, digits and _ . : - (1 to 64 characters) and take no properties. A page sends at most 100 actions, and at most 20 with the same name.
Single-page apps and route names
Insights follows pushState, replaceState and back/forward navigation, so each route in a React, Vue or Svelte app is recorded as a screen. Screens are keyed on the path, with ids masked: /orders/123 becomes /orders/:id. If your router only changes the part after #, the path stays the same, so name screens yourself with Flawsnap.screen().
Privacy by default
- No cookies. A random visit id is kept in memory only.
- Bodies, headers, query strings and console output are never sent to Insights.
- Do Not Track and Global Privacy Control turn it off for that visitor.
- Consent-first sites can start in a pending state (
data-consent="pending") and callFlawsnap.consent(true)once the visitor agrees.consent(false)deletes the stored visitor id. - "Recognise returning visitors" is optional. It stores a random id in localStorage that is not linked to a name or email.
identify()never reaches Insights. - Admins can erase one person's Insights data.
How long it is kept
Raw events are kept for 30 days. Daily rollups, which power the longer trends, are kept for 13 months. Events that arrive up to seven days late are still counted.
In Flutter apps
The Flutter SDK supports Insights with insights: true in Flawsnap.init plus Flawsnap.navigatorObserver for screens. API timing covers requests made through Flawsnap.httpClient(). Native iOS and Android crashes are not included in Insights errors.
Questions
- Do I need a cookie banner for Insights?
- Insights sets no cookies, but whether you need consent depends on your jurisdiction and what else your site does. If you ask for consent, start Insights in pending mode and call Flawsnap.consent(true) when the visitor agrees.
- Is Insights a replacement for product analytics?
- It covers screens, journeys, API timing, errors and simple named actions without properties. If you need funnels on custom event properties, keep your analytics tool and use Insights for the engineering side.
- Can I get error tracking without Pro?
- Yes. Error tracking is on both plans. Journeys, screens and API timing need Pro.
Try it on your own site
7-day free trial, then $9 a month for Starter or $19 for Pro, per organization, with unlimited team members.
Related
Updated