Skip to content

Instantly share code, notes, and snippets.

@fernandez14
Created April 2, 2017 17:34
Show Gist options
  • Save fernandez14/4fb16dfe93b77340cd7c41bf9b0d9761 to your computer and use it in GitHub Desktop.
Save fernandez14/4fb16dfe93b77340cd7c41bf9b0d9761 to your computer and use it in GitHub Desktop.
intercom-gtm.js
<script>
// app ID
var intercomSettings = {
app_id: "{{intercom.id}}"
};
// Verifies and cleans all GTM variables
function pushGTMVariablesToIntercom(gtmKey, gtmValue) {
if("{{user.type}}" != "guest"){
if(gtmValue != null && gtmValue != "" && gtmValue != "undefined") {
if(typeof gtmValue == "string") {
gtmValue = gtmValue.trim();
if(gtmValue == "") {
return false;
}
}
intercomSettings[gtmKey] = gtmValue;
return true;
}
return false;
}
return false;
}
// Default variables
pushGTMVariablesToIntercom("user_id", "{{user.id}}");
pushGTMVariablesToIntercom("email", "{{user.email}}");
pushGTMVariablesToIntercom("created_at", "{{user.created_at}}");
pushGTMVariablesToIntercom("name", "{{user.name}}");
</script>
<script>(function() {var w = window;var ic = w.Intercom;if (typeof ic === "function") {ic('reattach_activator');ic('update', intercomSettings);} else {var d = document;var i = function() {i.c(arguments)};i.q = [];i.c = function(args) {i.q.push(args)};w.Intercom = i;var s = d.createElement('script');s.type = 'text/javascript';s.async = true;
s.src = 'https://widget.intercom.io/widget/{{intercom.id}}';
var x = d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}})();
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment