Complete example
Here is a complete configuration example demonstrating how to implement these callbacks within your initialization script.
window.civchat = {
apiKey: "YOUR_API_KEY",
name: "John Doe",
user_id: "52bdc3be5145e87076c8",
// 1. Trigger GTM when ready
onLoad: function () {
dataLayer.push({ event: "User.com - Widget Ready" });
},
// 2. Handle incoming messages
onMessage: function (message) {
console.log('Message received:', message.content);
if (message.isAdmin) {
// Logic for agent messages
}
},
// 3. Handle Automation "Send Code" payloads
onPayloadReceived: function (message) {
if (typeof message === "string") {
try {
var fn = new Function(message);
fn();
} catch (e) {
console.error("Execution error:", e);
}
}
},
// 4. UI State listeners
onOpen: function () {
console.log("Chat window expanded");
},
onClose: function () {
console.log("Chat window minimized");
}
};