JavaScript Embed Features
Event Listeners
The widget will emit events for every conversational moment. Subscribe via window.chatmount.addEventListener() to pipe data into your analytics, CRM, or UI.
Subscribing
js
window.chatmount.addEventListener("user-message", (event) => {
console.log("User said:", event.data.content);
});
window.chatmount.removeEventListener("user-message", handler);Available events
user-message— payload{ data: { content: string }, type: "user-message" }assistant-message— payload{ data: { content: string }, type: "assistant-message" }tool-call— payload{ data: { name, args, id, type }, type: "tool-call" }tool-result— payload{ data: { name, result, toolCallId, type }, type: "tool-result" }
Examples
js
// Pipe everything into your analytics
["user-message", "assistant-message", "tool-call", "tool-result"].forEach(
(evt) =>
window.chatmount.addEventListener(evt, (e) =>
analytics.track(`chatmount.${evt}`, e.data),
),
);
// React cleanup
useEffect(() => {
const onMsg = (e) => setLast(e.data.content);
window.chatmount.addEventListener("user-message", onMsg);
return () => window.chatmount.removeEventListener("user-message", onMsg);
}, []);Related