# Customization Source: https://docs.clayzo.com/customization Customize the look, feel, and behavior of the feedback widget. Every aspect of the widget's appearance can be configured via `data-*` attributes on the script tag. No code changes required. ## Full Example ```html theme={null} ``` ## Options Reference ### `data-theme` Controls the widget's color scheme. | Value | Description | | ------- | -------------------------------------------------- | | `auto` | Matches the user's system preference **(default)** | | `light` | Light background, dark text | | `dark` | Dark background, light text | ```html theme={null} ``` ### `data-accent` Sets the accent color used for buttons, highlights, and the element selector. Accepts any hex color. **Default:** `#01adae` ```html theme={null} ``` ### `data-position` Controls which corner the widget appears in. | Value | Description | | -------------- | --------------------------------- | | `bottom-right` | Bottom-right corner **(default)** | | `bottom-left` | Bottom-left corner | ```html theme={null} ``` ### `data-trigger` Controls the style of the trigger button that opens the feedback panel. | Value | Description | | ------ | ----------------------------------------------------- | | `fab` | Floating action button with an icon **(default)** | | `text` | Inline text button | | `tab` | Tab attached to the edge of the screen | | `none` | No trigger — use your own button with `Clayzo.open()` | ```html theme={null} ``` ### `data-trigger-text` Custom label for the trigger button. Only visible with the `text` and `tab` trigger styles. **Default:** `Feedback` ```html theme={null} ``` ## Custom Trigger (BYO Button) Set `data-trigger="none"` to hide the default widget button, then call `Clayzo.open()` from anywhere in your UI: ```html theme={null} ``` This works from any element — a footer link, a nav item, a help menu, a floating button you built yourself. The full feedback panel (element selection, screenshots, session replay) still works exactly the same. ## Identifying Users By default, feedback is submitted anonymously. To attach user identity, use the [programmatic API](/programmatic-api) instead of auto-initialization: ```html theme={null} ``` The user's name and email will appear alongside their feedback in the Clayzo dashboard. # Dashboard Source: https://docs.clayzo.com/dashboard View and manage customer feedback in the Clayzo dashboard. All feedback submitted through the SDK is available in the **Customer Feedback** tab inside the Review sidebar of your workspace. ## Inbox The feedback inbox shows all submissions with: * **Type indicator** — Bug, Idea, or Feedback * **Status** — Open, Active, Resolved, or Closed * **User info** — Name and page URL * **Attachment icons** — Element context, screenshot, session replay, AI fix plan ### Filtering Use the filter bar to narrow results: | Filter | Options | | ---------- | -------------------------------------- | | **Status** | Open, Active, Resolved, Closed | | **Type** | Bugs, Ideas, Feedback | | **Search** | Filter by text, page URL, or user name | Filters can be combined (e.g. show only open bugs). The default view shows **Open** items. ## Detail Panel Click any item to open the detail drawer. ### AI Fix Plan An AI-generated analysis and action plan based on the feedback text, element context, and page URL. Copy the full plan to hand off to your engineering team. ### Session Replay If session replay is enabled, the full recording loads automatically when the panel opens. Watch exactly what the user experienced leading up to their feedback. ### Element Context When a user attaches an element, the panel shows: | Field | Description | | ------------------- | --------------------------------------- | | **React component** | Component name and full component stack | | **Props** | Serialized component props | | **CSS selector** | Full selector path | | **Element text** | Visible text content | | **Layout** | Position and dimensions | ### Screenshot A screenshot captured at the moment of submission. ### Environment Browser user agent and viewport dimensions. ## Managing Status Update the status of any feedback item from the detail panel header. | Status | Meaning | | ------------ | ---------------------- | | **Open** | New, unreviewed | | **Active** | Being worked on | | **Resolved** | Fixed or addressed | | **Closed** | Won't fix or duplicate | # Customer Feedback SDK Source: https://docs.clayzo.com/index Embed a feedback widget in your product to collect bug reports, ideas, and feedback from your users. Drop a single script tag into your site and start collecting bug reports, feature ideas, and feedback from your users — complete with element selection, screenshots, and session replays. Get the widget running in under 2 minutes. Themes, triggers, colors, and positioning. Control the widget with JavaScript. Manage feedback in Clayzo. ## How It Works Go to your workspace's **Settings → Integrations** and generate an SDK API key. Paste the embed snippet into your site's HTML. Each submission captures the page URL, a screenshot, element context, and an optional session replay. All feedback appears under the **Customer Feedback** tab, with AI-generated fix plans and full session replays. # Programmatic API Source: https://docs.clayzo.com/programmatic-api Control the feedback widget with JavaScript for advanced use cases. For full control over initialization, user identity, and lifecycle, use the JavaScript API instead of (or alongside) `data-*` attributes. ## `Clayzo.init(options)` Initialize the widget. If a widget is already active, it will be destroyed first. ```html theme={null} ``` ### 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. ```javascript theme={null} Clayzo.open(); ``` For example, from a button in your footer: ```html theme={null} ``` Or from a React component: ```jsx theme={null} ``` ## `Clayzo.destroy()` Remove the widget from the page and stop all recording. ```javascript theme={null} Clayzo.destroy(); ``` If you use `data-key` on the script tag **and** call `Clayzo.init()`, the programmatic call takes precedence. ## Single-Page App Usage For SPAs (React, Next.js, Vue, etc.), initialize in your app's root component and destroy on unmount: ```jsx theme={null} import { useEffect } from "react"; function App() { useEffect(() => { if (window.Clayzo) { window.Clayzo.init({ apiKey: "sk_live_...", user: { id: currentUser.id, name: currentUser.name } }); } return () => window.Clayzo?.destroy(); }, []); return ; } ``` ```vue theme={null} ``` ```html theme={null} ``` # Quick Start Source: https://docs.clayzo.com/quick-start Get the Clayzo feedback widget running on your site in under 2 minutes. Go to **Settings → Integrations** in your Clayzo workspace and find the **Customer Feedback SDK** section. Click **Generate API Key**. Copy the key — it starts with `sk_live_`. Paste this before the closing `` tag on your site: ```html theme={null} ``` Replace `YOUR_API_KEY` with the key you generated. A feedback button appears in the bottom-right corner of your site. Users can click it to report bugs, share ideas, or leave feedback. The widget is fully isolated using Shadow DOM — it won't affect your site's styles or be affected by them. ## What Gets Captured Every submission automatically includes: | Data | Description | | ------------------- | ------------------------------------------------------------------------------------------------ | | **Page URL** | The page the user was on | | **Screenshot** | Captured at the moment of submission | | **Element context** | CSS selector, React component name, props, and component stack (if the user attaches an element) | | **Session replay** | Full session recording (if enabled in SDK settings) | | **Browser info** | User agent and viewport dimensions | ## Enable Session Replays Session replays are off by default. To enable them: 1. Go to **Settings → Integrations** in Clayzo 2. Find the **Customer Feedback SDK** section 3. Toggle **Session Replay** on Once enabled, each feedback submission includes a full session replay viewable in the Clayzo dashboard.