By default the deflector sends an anonymous browser id with each question, and nothing else about the reader. You can turn that off, or add an email address or your own user id.
Anonymous by default
The deflector stores a random id in the browser’s local storage (key kl:anon) and sends it with each question. It is the same id the Ask AI widget uses, so a reader who uses both counts as one person.
If the browser blocks storage, no id is sent. The question still counts in totals, but not in unique-user counts.
| Attribute | Option | Default | What it does |
|---|
data-user-analytics-cookie-enabled | anonymousId | true | "false" stops sending the anonymous id. This also turns it off for the Ask AI widget |
data-user-analytics-fingerprint-enabled | fingerprint | false | Builds the id from browser details (user agent, language, time zone, screen size) instead of storing one |
No IP address is stored. The country comes from your CDN’s header, if it sends one. Browser and operating system are recorded by name only, never by version.
Add the reader’s email or id
You can use either or both.
The form’s own email field. On the Form wiring tab, under Advanced, set Email field (data-user-email-query-selector) to your email input:
data-user-email-query-selector="#request_anonymous_requester_email"
The field is read when the reader presses submit, so it can be filled in at any time.
Details your page already knows, on a signed-in portal. Add these to the script tag. They are shared with the Ask AI widget and are never stored on the deflector.
| Attribute | Option | What it does |
|---|
data-user-id | userId | Your own id for the reader. Used instead of the anonymous id |
data-user-email | userEmail | The reader’s email. A filled-in Email field wins |
You can also set these from code with window.keluSettings = { user: { uniqueClientId, email } } before the script loads. Script-tag attributes win.
What is kept
- The email is saved on the conversation only, and deleted with it by your workspace’s retention window.
- A zero-retention workspace never stores it.
- It is not checked or used for anything else.
Each deflection is saved as a conversation. You can read it under Conversations in the dashboard, and it counts in analytics like widget and bot traffic.