# Widget Customization

> Configure the widget's appearance, copy, behaviour, and channels from the dashboard.

URL: https://docs.reaktly.com/docs/platform/widget-customization

The widget is configured per operator in the dashboard. Changes are applied the next time the widget loads — no redeploy on your side.

## Appearance

| Setting | Effect |
|---|---|
| **Primary / secondary colour** | Accent colours for the launcher, buttons, and highlights |
| **Font family** | Typography inside the chat window |
| **Border radius** | Corner rounding of the launcher and window |
| **Theme mode** | `auto`, `light`, or `dark`. `auto` follows the visitor's operating system |
| **Widget size** | `md` (default) or `lg` |
| **Custom CSS** | Additional CSS for cases the presets don't cover |

## Branding

Company name, agent name, avatar visibility, and whether the "powered by" badge is shown.

## Messages

| Setting | Where it appears |
|---|---|
| **Welcome message** | First message in a new conversation |
| **Placeholder text** | The composer input hint |
| **Typing indicator text** | Shown while the AI composes an answer |
| **Offline message** | Shown outside your configured availability |

## Behaviour

| Setting | Effect |
|---|---|
| **Auto-open** | Whether the window opens on page load |
| **Auto-open delay** | Seconds to wait before auto-opening |
| **Close on outside click** | Dismiss the window by clicking the page |
| **Show on pages / Hide on pages** | Page rules (e.g. hide on `/checkout`) |

## Home screen and conversation starters

The home screen is what visitors see before the first message: logo, greeting, subtext, availability status and expected response time.

**Conversation starters** are suggested questions on that screen. You can enable them, cap how many are visible (`maxVisible`), and choose the display mode.

## Contact info

Support email, phone, and URL — offered to visitors who want to reach a human.

## Channels

The **WhatsApp** channel can be enabled per operator. Set the business number, a prefilled message, the CTA label, and where the CTA sits. See [WhatsApp integration](/docs/integrations/whatsapp) for the Meta-side setup.

## GDPR and identity

| Setting | Purpose |
|---|---|
| **GDPR consent** | Show a consent message with accept button before the chat starts, linking to your privacy policy |
| **Identity verification** | Ask visitors to identify themselves before the conversation begins |

> **Note:**
> The **AI disclosure** notice ("Answers are generated by AI") is part of the product, not a setting — it is shown to comply with the EU AI Act's transparency requirements and cannot be restyled or removed from the widget.

## Where configuration lives in code

If you build your own front end instead of embedding the widget, the same configuration is available as JSON — the theme and text values map to the widget's CSS custom properties (`--solis-*`). The widget applies configuration as inline styles, so theme values win over stylesheet rules; use the configuration options rather than overriding styles.