Skip to main content
A visitor talking to the assistant in the corner of your site is looking at something. Without help, the assistant has no idea what — so it either asks (“which page are you on?”), which wastes a turn, or answers generically. Live Website Events close that gap. Your site reports what the visitor is doing, and it lands in the assistant’s working memory as ambient context. The assistant never asks. It just knows.
This is the opposite direction from Custom Functions. Events are your site telling the assistant something. Functions are the assistant asking your site to do something. They work well together and are configured separately.

Page views are automatic

If you use the standard embed snippet, you get this for free:
The loader reports the visitor’s page when they open the assistant, and again on every navigation. Ask “what does this plan include?” on your pricing page and the assistant knows which page “this” means. It detects navigation by wrapping history.pushState / replaceState and listening for popstate — always calling through to your router, never replacing it. If your router navigates some other way, report it yourself:

Emit your own events

Anything else worth knowing, send as a named event:
The assistant absorbs it silently and uses it when it becomes relevant — so a visitor who abandons checkout and then asks “is there a discount?” gets an answer that knows about the abandoned cart. Before the loader has finished loading, queue them the same way as handlers:

What the assistant does with them

Nothing, immediately. An event is context, not a turn. The assistant will not stop mid-sentence to announce that you navigated, and it will not comment on an event unless the conversation makes it relevant. That is deliberate. An assistant that reacts to every click is a distraction, and reacting to a navigation the assistant itself performed would make it talk to itself. If you want a reaction, ask for it in the scenario prompt — for example: “If the visitor opens the pricing page while you are talking about features, offer to walk them through the tiers.”

Limits

Keep event details small. This is a signal channel, not a data pipe — if the assistant needs a record, give it a Custom Function to fetch one.
Event names and details reach the assistant’s context. Don’t put secrets, tokens or personal data in them that you would not want the assistant to repeat, and treat them as untrusted input on your side too — everything is flattened and length-capped before it reaches the model, but the content is still yours to choose.

Where it works

Live Website Events need a page to report from, so they work on the sidebar widget: Nothing breaks elsewhere — there is simply no page sending events, and the assistant behaves as it always has.
  • Custom Functions — let the assistant act on your site, not just watch it.
  • Embed API — putting the widget on an authenticated page.