Skip to main content
The embed dispatches CustomEvents on window so you can react to lifecycle and interaction without polling. For almost all integrations, these events plus the methods are all you need. Every event includes these fields in event.detail:

Browser events

homiebot:opened and homiebot:closed fire for every open/close action — the launcher button, welcome bubbles, window.homieBot.open() / .close() / .toggle(), and actions triggered from inside the chat.
Message and response content, user identifiers, feedback text, and internal errors are never included in browser event payloads.

Listen for the API

Fired once window.homieBot is usable.

Listen for the assistant

Fired once the iframe is ready for sendMessage and getHistory.

Track a conversation funnel

Useful for forwarding interactions to analytics.

Interaction payloads

Message sent

inputType is one of text, speech, suggestion, pdp-question, or api.

Message received

This event fires once for the complete response, including streamed responses. productCount is 0 when the response does not contain product recommendations.

Chat reset

reason is one of manual, inactivity, or api. The chatId identifies the conversation that was cleared.

Product clicked

The product object contains only gtin, brand, designation, and url.

Feedback submitted

rating is either like or dislike. Feedback reasons and free text are not exposed.