TAU Widget
Events
Capture TAU Widget events to integrate with analytics, automations, and external systems.
Events
The TAU Widget emits events via window.postMessage that can be captured for integration with analytics systems, automations, or other functionality.
Available events
| Event | When it fires |
|---|---|
Loaded app | Widget fully loaded |
Opened chat window | User opened the chat window |
Sent message | User sent a message |
Clicked button | User clicked a button inside the chat |
conversion | A conversion or important action occurred |
toolResponse | A tool was executed in the chat |
Capturing events
window.addEventListener('message', function(event) {
// Verify origin for security
if (event.origin !== 'https://app.taubot.ai') return;
switch (event.data.type) {
case 'Loaded app':
console.log('Widget loaded');
break;
case 'Opened chat window':
console.log('Chat opened');
break;
case 'Sent message':
console.log('Message sent');
break;
case 'Clicked button':
console.log('Button clicked');
break;
case 'conversion':
console.log('Conversion:', event.data.data);
break;
case 'toolResponse':
console.log('Tool executed:', event.data.data);
break;
}
});Always verify event.origin before processing the event. This ensures the events come from the official TAU widget.
Integrations
Google Analytics (GA4)
window.addEventListener('message', function(event) {
if (event.origin !== 'https://app.taubot.ai') return;
if (event.data.type === 'Opened chat window') {
gtag('event', 'chat_opened', {
event_category: 'engagement',
event_label: 'tau_widget'
});
}
if (event.data.type === 'conversion') {
gtag('event', 'conversion', {
event_category: 'lead_generation',
value: event.data.data?.value || 1
});
}
});Meta Pixel (Facebook)
window.addEventListener('message', function(event) {
if (event.origin !== 'https://app.taubot.ai') return;
if (event.data.type === 'conversion') {
fbq('track', 'Lead', {
content_name: 'TAU Widget Conversion',
content_category: 'customer_support'
});
}
});Custom API
window.addEventListener('message', function(event) {
if (event.origin !== 'https://app.taubot.ai') return;
if (event.data.type === 'Sent message') {
fetch('/api/chat-events', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
event_type: 'message_sent',
timestamp: new Date().toISOString(),
page_url: window.location.href
})
});
}
});Security
Best practices:
- 🔐 Always verify
event.origin === 'https://app.taubot.ai' - ✅ Validate the event type before processing
- 🛡️ Do not execute code based solely on event data without validation
- 📝 Log suspicious events for auditing