For full control over initialization, user identity, and lifecycle, use the JavaScript API instead of (or alongside)Documentation Index
Fetch the complete documentation index at: https://docs.clayzo.com/llms.txt
Use this file to discover all available pages before exploring further.
data-* attributes.
Clayzo.init(options)
Initialize the widget. If a widget is already active, it will be destroyed first.
Options
| Option | Type | Default | Description |
|---|---|---|---|
apiKey | string | — | Required. Your SDK API key |
theme | "light" | "dark" | "auto" | "auto" | Color scheme |
accent | string | "#01adae" | Accent color (hex) |
position | "bottom-right" | "bottom-left" | "bottom-right" | Widget corner |
triggerStyle | "fab" | "text" | "tab" | "none" | "fab" | Trigger button style. Use "none" to hide and call Clayzo.open() yourself |
triggerText | string | "Feedback" | Trigger button label |
user | object | — | End-user identity |
user.id | string | — | Your internal user ID |
user.name | string | — | Display name |
user.email | string | — | Email address |
onSubmit | function | — | Callback after successful submission |
Clayzo.open()
Open the feedback panel programmatically. Use this when you’ve set triggerStyle: "none" and want to trigger the panel from your own UI.
Clayzo.destroy()
Remove the widget from the page and stop all recording.
Single-Page App Usage
For SPAs (React, Next.js, Vue, etc.), initialize in your app’s root component and destroy on unmount:- React
- Vue
- Script tag

