SkaveloHelp Center

What the widget sends

The data the widget collects from a page, and what it never sends.

To answer well, Skavelo needs some context about the page a user is on. It collects as little as it can.

What's sent with each question

DataWhy
The questionSo Skavelo can answer it
The page address and titleSo answers fit where the user is
A short list of visible buttons, links and headings, with their labels and positionsSo Skavelo can name the right controls and run walkthroughs
The details you pass to identify, if anySo answers fit the user's plan and role; see below
Error messages showing on the page, and switched off buttons with the reason your app givesSo Skavelo can explain why something isn't working
Your app's requests that failed in the last 2 minutes: the method, the path and the status, such as POST /invoices/:id/send returned 402So Skavelo can tell a permissions problem from a billing one; see below

What's never sent

  • Anything users type. Values in input fields and text areas, and text in rich-text editors, are never collected.
  • Password fields and editable areas. These are reduced to their type, marked as masked, with no content.
  • Anything you mark as sensitive. Add data-sk-sensitive to any element, and Skavelo skips everything inside it.
<div data-sk-sensitive>
  Account number 12345678
</div>

Failed requests

To work out why something isn't working, the widget notes when one of your app's requests fails. It keeps only the method, the path and the status code, in memory, for 2 minutes. It never reads request or response bodies, headers or query strings, and numbers, IDs and tokens in the path become :id. Requests to Skavelo itself, and blocked requests to other sites such as analytics, are ignored.

The widget only watches requests; it never changes, delays or repeats them. To switch it off, set diagnostics when you start the widget:

Skavelo.init({ agentId: 'YOUR_AGENT_ID', diagnostics: { network: false } });

Error messages and switched off buttons are still read, like the rest of the page. Anything inside data-sk-sensitive stays out of both.

Identity details

If you identify signed-in users, their name and email are stored so your team can see who asked in Conversations, but they're never sent to the AI model. Plan, role and tags help tailor answers. Traits are used only for your targeting rules and shown in Conversations; they aren't sent to the AI model either. Use an opaque user ID rather than an email address for id.

Where the widget runs

The widget renders inside a Shadow DOM, an isolated layer, so it can't read or change your page's styles. It only works on your allowed sites, and during server rendering it does nothing at all.

On this page