Real LiveChat widget (license 12501717). The ListenLayer adapter tracks the
lifecycle and email capture via the official LiveChatWidget.on() API, and
message bodies via LiveChat's internal postMessage IPC
(secure.livechatinc.com → on_message). LiveChat has no
chat_started/new_message events, so the adapter derives everything
from the real events below. Interact with the live widget to generate real tracking events.
visibility_changed: maximized) → widget opened.
form_submitted: prechat; the adapter
then reads get('customer_data')) → email captured.on_message IPC with user_type: visitor, plus
customer_status_changed: queued/chatting) → message sent (with text) + conversation started.on_message IPC with user_type: agent) → message received (with text).visibility_changed: minimized) → widget closed.
Return to browsing (customer_status_changed: browsing) → conversation ended.
Note: LiveChat's widget-API new_event does not expose the body text
(only type + author). Like the Drift adapter, ListenLayer instead
reads the body from LiveChat's iframe→host postMessage IPC: the
on_message store action carries { text, user_type }
(visitor = sent, agent = received), so messageText is
the real message. Email is not in the customer_status_changed payload either —
the adapter reads it from get('customer_data') after the pre-chat
form_submitted.