Tidio Chat GTM Event Listener
Track Tidio live chat and chatbot interactions in GTM. Monitor widget open/close, messages, email capture, and chatbot interactions with chatAction variable.
tidiochatchatbotecommercegtmga4support
Event fired
Tidio_chat_interactionKey variable
chatActionTidio Chat
Overview
Tidio is a customer service platform combining live chat, chatbots, and email. This listener hooks into Tidio's JavaScript API to track widget interactions and chatbot events.
Event fired: Tidio_chat_interaction
Variable: chatAction
Tracked Events
| chatAction | Description |
|---|---|
chat widget opened | Visitor opens widget |
chat widget closed | Visitor closes widget |
message sent | Visitor sends message |
message received | Agent/bot replies |
email captured | Email submitted |
chatbot triggered | Chatbot flow starts |
chatbot response | Chatbot sends response |
pre-chat survey submitted | Pre-chat form completed |
operator joins | Live agent joins |
Installation
html
<!-- GTM Custom HTML Tag: Tidio Listener -->
<script>
(function() {
function tidioPush(action, extra) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push(Object.assign({
'event': 'Tidio_chat_interaction',
'chatAction': action
}, extra || {}));
}
document.addEventListener('tidioChat-ready', function() {
tidioChatApi.on('open', function() { tidioPush('chat widget opened'); });
tidioChatApi.on('close', function() { tidioPush('chat widget closed'); });
tidioChatApi.on('messageFromVisitor', function(data) {
tidioPush('message sent', { chatMessage: data.message });
});
tidioChatApi.on('messageFromOperator', function(data) {
tidioPush('message received', { chatMessage: data.message });
});
tidioChatApi.on('visitorDataUpdated', function(data) {
if (data.email) tidioPush('email captured', { visitorEmail: data.email });
});
tidioChatApi.on('botStart', function() { tidioPush('chatbot triggered'); });
tidioChatApi.on('botEnd', function() { tidioPush('chatbot response'); });
tidioChatApi.on('operatorAssigned', function() { tidioPush('operator joins'); });
tidioChatApi.on('prechatSurveySubmitted', function() { tidioPush('pre-chat survey submitted'); });
});
})();
</script>Data Layer Output
json
{
"event": "Tidio_chat_interaction",
"chatAction": "email captured",
"visitorEmail": "customer@example.com"
}Trigger Configuration
Trigger Type: Custom Event
Event Name: Tidio_chat_interaction
GA4 Mapping
| GA4 Event | Condition | Parameters |
|---|---|---|
chat_widget_open | chatAction = chat widget opened | chat_platform: "tidio" |
generate_lead | chatAction = email captured |