ZenDesk
Tracking In Tag Manager
ZenDesk has an API for tracking.
https://developer.zendesk.com/embeddables/docs/widget/chat
To use this, create a custom HTML tag In tag manager and trigger it on any pages the ZenDesk chat runs on.
Add this script to the custom HTML:
<script>
function zendeskDataLayerEvent( eventName ) {
var dataLayer = window.dataLayer || [];
dataLayer.push({'event' : 'zendesk-' + eventName});
}
zE('webWidget:on', 'chat:connected', function(){ zendeskDataLayerEvent('connected'); });
zE('webWidget:on', 'open', function(){ zendeskDataLayerEvent('on-show'); });
zE('webWidget:on', 'close', function(){ zendeskDataLayerEvent('on-hide'); });
zE('webWidget:on', 'chat:start', function(){ zendeskDataLayerEvent('chat-started'); });
zE('webWidget:on', 'chat:unreadMessages', function(number){ zendeskDataLayerEvent('unread-msg'); });
zE('webWidget:on', 'chat:end', function(){ zendeskDataLayerEvent('chat-ended'); });
</script>
This sets up the events in the datalayer to be used in triggers:
zendesk-connected zendesk-on-show zendesk-on-hide zendesk-chat-started zendesk-unread-msg zendesk-chat-ended
- note there is no way to track offline form submits (when no one is there to chat)
Legacy
Legacy ZenDesk has an API for tracking.
https://api.zopim.com/files/meshim/widget/controllers/LiveChatAPI-js.html
To use this, create a custom HTML tag In tag manager and trigger it on any pages the ZenDesk chat runs on.
Add this script to the custom HTML:
<script>
function zendeskDataLayerEvent( eventName ) {
var dataLayer = window.dataLayer || [];
dataLayer.push({'event' : 'zendesk-' + eventName});
}
zE('webWidget:on', 'chat:connected', function(){ zendeskDataLayerEvent('connected'); });
zE('webWidget:on', 'open', function(){ zendeskDataLayerEvent('on-show'); });
zE('webWidget:on', 'close', function(){ zendeskDataLayerEvent('on-hide'); });
zE('webWidget:on', 'chat:start', function(){ zendeskDataLayerEvent('chat-started'); });
zE('webWidget:on', 'chat:unreadMessages', function(number){ zendeskDataLayerEvent('unread-msg'); });
zE('webWidget:on', 'chat:end', function(){ zendeskDataLayerEvent('chat-ended'); });
</script>
This sets up the events in the datalayer to be used in triggers:
zendesk-connected zendesk-on-show zendesk-on-hide zendesk-chat-started zendesk-unread-msg zendesk-chat-ended
- note there is no way to track offline form submits (when no one is there to chat)