Hava / Developer docs
Hava's standard website runtime emits privacy-safe lifecycle events on the host page. Analytics products such as Intellign Growth can listen without Hava depending on them.
window.addEventListener('hava:event', (event) => {
console.log(event.detail.event, event.detail.properties)
})
| Event | Meaning |
|---|---|
hava_opened | The customer-facing Hava interface actually opened. |
hava_conversation_started | The first user turn in a new runtime conversation. Emitted once per conversation. |
hava_message | A user turn was successfully submitted. Message contents are never included. |
hava_action | A recognized Hava action or navigation was invoked. |
hava_closed | The customer-facing Hava interface closed. |
{
event: 'hava_conversation_started',
properties: { surface: 'concierge', conversationStage: 'started' }
}Only these optional property names are emitted: surface, actionType, destinationType, and conversationStage.
The standard Hava runtime emits hava_action only for actions it recognizes. Custom/headless interfaces can report a recognized Hava action with window.Hava.emitAction({ actionType: 'navigate', destinationType: 'product', surface: 'concierge' }). Do not put destination URLs, product names, customer identifiers, or conversation content in event properties.
No Growth installation is required. Hava dispatches browser events whether or not a listener exists. If Growth or another analytics listener is absent, nothing happens.