Identify your users
Tell Produck who’s giving feedback so each submission ties back to a real user instead of being anonymous. Callidentify once you know who they are — typically right after login.
Pass a login token (JWT)
Already holding the user’s session token? Hand it over and we read the standardsub /
email / name claims for you — one line for Supabase, Auth0, Clerk, Firebase, or Cognito:
Server-rendered pages (no JavaScript)
If your backend already knows the user at render time, setdata-user-* on the script tag and
skip identify entirely. data-user-jwt works the same way if you’d rather pass a token:
Clear identity on logout
Open the widget from your own UI
Wire up your own “Give feedback” button withtrigger:
Listen for events
React when a user submits or dismisses the widget — for example, to show a thank-you toast.Bring your own UI
The widget injects two surfaces you can take over. Each is an ownership setting, not a boolean, so it stays meaningful as more options arrive:
Set
none on a surface to suppress the built-in version and render your own. Turning a surface
off never removes capability — trigger, submit, and submit_error keep working.
data-* attributes on the script tag:
config before the script finishes loading, queue it with the same stub shown above for
identify — the widget replays it on boot.
The keyboard shortcut (⌘/Ctrl + Shift + Z) still opens the widget when
launcher is none — it’s
an invisible trigger, not a visible surface.Clean up on logout
Calldestroy to remove the widget when a user’s session ends. On shared devices, this
keeps the next user from seeing the previous one’s identity.