# Hooky > Hooky adds a chat bubble to websites built with AI tools (Lovable, Bolt, v0, Cursor, Claude, ChatGPT, Codex…). Visitors write in the bubble; the site owner answers from a web dashboard or phone, across all their sites, and counts events (signups, purchases, clicks) with one line of JavaScript or a server API call. Install = one ` ``` - Optional attribute `data-lang` = `fr`, `en`, `es`, `pt`, `it` or `de` (default: the page's ``, then the browser, then English). - Open/close from a button once loaded: `window.Hooky && Hooky.open && Hooky.open()`, `Hooky.close()`. - Count an event right after the action succeeds: `Hooky.track("signup")`; with an amount that is summed: `Hooky.track("purchase", { value: 49 })`; extra keys become properties (flat, max 20, strings ≤ 500 chars, numbers, booleans). Never send personal data (email, name, phone) in properties. - If `Hooky.track` may run before widget.js has loaded, first add in ``: ```html ``` - Server-side events: `POST https://api.heyhooky.com/v1/events` with header `Authorization: Bearer ` and JSON `{"name": "purchase", "value": 49, "properties": {...}, "occurred_at": "ISO 8601, up to 7 days back"}` → `201`. Keep the secret key server-side (environment variable `HOOKY_SECRET_KEY`), never in front-end code. - Channel (receive-only notifications, like a Slack channel): every site has a channel URL `https://api.heyhooky.com/hooks/hkc_…` (Dashboard → Sites → the site → "Site channel", or `channel_url` in `GET /v1/sites`). POST Slack-webhook JSON to it from a server, never from the page: `{"text": "*New order*: €49 :tada:", "username": "Shop", "attachments": [{"color": "good", "title": "Order #123", "fields": [{"title": "Amount", "value": "€49"}]}]}`. `text` is Slack mrkdwn (`*bold*`, `_italic_`, `` `code` ``, ``, `> quote`, `:emoji:`). The owner reads it in Dashboard → Channels and gets a push notification. Keep the URL secret; no personal data in messages. - Account API with an API key (`Authorization: Bearer hka_…`): `GET /v1/account`, `GET /v1/sites`, `GET /v1/sites/:id`, `POST /v1/sites`, `PATCH /v1/sites/:id`, `GET /v1/stats?site_id=&days=7|30|90&time_zone=`, `POST /v1/events` with `site_id`. An API key opens the whole account: keep it server-side (`HOOKY_API_KEY`), never in front-end code or a commit. - If the site lists allowed addresses in the dashboard, the bubble and `Hooky.track` only work on those hosts (`www.` ignored). Add the AI tool's preview address too (e.g. `my-site.lovable.app`), and `localhost` to test locally. With a site key that no longer exists or an address that is not allowed, the bubble simply stays hidden. ## Docs - [Full documentation for LLMs](https://heyhooky.com/llms-full.txt): everything in one Markdown file (account creation by an AI, install, options, events, server API, API keys, errors, limits, team, privacy). - [Human documentation (English)](https://heyhooky.com/en/docs/): same content as a web page. - [Documentation (français)](https://heyhooky.com/docs/): la même doc, en français. ## Product - [Home page](https://heyhooky.com/en/): what Hooky is, pricing (free for 1 site; Creator 10 sites €9/month or €90/year; Studio 50 sites and 5 people €29/month or €290/year; subscribe on the web with Stripe or in the app through the App Store or Google Play, same prices). - [Dashboard](https://heyhooky.com/espace/connexion.html): sign in with Google or an email link; inbox, stats, sites, team, billing. - Apps: iPhone, iPad, Mac and Android (inbox and push notifications), coming soon to the App Store and Google Play; until then, the dashboard works in a phone browser. - [Help](https://heyhooky.com/en/help/), [Privacy policy](https://heyhooky.com/en/privacy/), [Terms](https://heyhooky.com/en/terms/); contact: support@heyhooky.com. ## Optional - [Widget source](https://heyhooky.com/widget.js): the bubble itself, plain JavaScript, Shadow DOM.