ZenDesk: Difference between revisions
Jump to navigation
Jump to search
Created page with "== 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 manag..." |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 15: | Line 15: | ||
dataLayer.push({'event' : 'zendesk-' + eventName}); | dataLayer.push({'event' : 'zendesk-' + eventName}); | ||
} | } | ||
zE('webWidget:on', 'chat:connected', function(){ zendeskDataLayerEvent('connected'); }); | zE('webWidget:on', 'chat:connected', function(){ zendeskDataLayerEvent('connected'); }); | ||
| Line 23: | Line 22: | ||
zE('webWidget:on', 'chat:unreadMessages', function(number){ zendeskDataLayerEvent('unread-msg'); }); | zE('webWidget:on', 'chat:unreadMessages', function(number){ zendeskDataLayerEvent('unread-msg'); }); | ||
zE('webWidget:on', 'chat:end', function(){ zendeskDataLayerEvent('chat-ended'); }); | zE('webWidget:on', 'chat:end', function(){ zendeskDataLayerEvent('chat-ended'); }); | ||
</script> | </script> | ||
</pre> | </pre> | ||
| Line 55: | Line 53: | ||
var dataLayer = window.dataLayer || []; | var dataLayer = window.dataLayer || []; | ||
dataLayer.push({'event' : 'zendesk-' + eventName}); | dataLayer.push({'event' : 'zendesk-' + eventName}); | ||
console.log( 'Datalayer: zendesk-' + eventName ); | |||
} | } | ||
var waitForZopim = setInterval(function () { | |||
if (window.$zopim === undefined || window.$zopim.livechat === undefined) { | |||
return; | |||
} | |||
$zopim(function() { | |||
$zopim.livechat.setOnConnected( function() { | |||
zendeskDataLayerEvent('connected'); | |||
}); | |||
$zopim.livechat.window.onShow( function() { | |||
zendeskDataLayerEvent('on-show'); | |||
}); | |||
$zopim.livechat.window.onHide( function() { | |||
zendeskDataLayerEvent('on-hide'); | |||
}); | |||
$zopim.livechat.setOnChatStart( function() { | |||
zendeskDataLayerEvent('chat-started'); | |||
}); | |||
$zopim.livechat.setOnUnreadMsgs( function() { | |||
zendeskDataLayerEvent('unread-msg'); | |||
}); | |||
$zopim.livechat.setOnChatEnd( function() { | |||
zendeskDataLayerEvent('chat-ended'); | |||
}); | |||
}); | |||
clearInterval( waitForZopim ); | |||
}, 100); | |||
</script> | </script> | ||
Latest revision as of 10:00, 23 January 2025
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});
console.log( 'Datalayer: zendesk-' + eventName );
}
var waitForZopim = setInterval(function () {
if (window.$zopim === undefined || window.$zopim.livechat === undefined) {
return;
}
$zopim(function() {
$zopim.livechat.setOnConnected( function() {
zendeskDataLayerEvent('connected');
});
$zopim.livechat.window.onShow( function() {
zendeskDataLayerEvent('on-show');
});
$zopim.livechat.window.onHide( function() {
zendeskDataLayerEvent('on-hide');
});
$zopim.livechat.setOnChatStart( function() {
zendeskDataLayerEvent('chat-started');
});
$zopim.livechat.setOnUnreadMsgs( function() {
zendeskDataLayerEvent('unread-msg');
});
$zopim.livechat.setOnChatEnd( function() {
zendeskDataLayerEvent('chat-ended');
});
});
clearInterval( waitForZopim );
}, 100);
</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)