Skip to content

Instantly share code, notes, and snippets.

@thewheat
Forked from beastawakens/gtm-intercom.js
Last active January 5, 2018 02:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thewheat/9d5068b54f40cf93d679b91ac9f51f03 to your computer and use it in GitHub Desktop.
Save thewheat/9d5068b54f40cf93d679b91ac9f51f03 to your computer and use it in GitHub Desktop.
Adding Google Tag Manager variables to intercomSettings
```
<script>
// app ID
var intercomSettings = {
app_id: "{{IC - Dynamic app ID}}"
};
// Verifies and cleans all GTM variables
function pushGTMVariablesToIntercom(gtmKey, gtmValue) {
if("{{User - Account - 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;
}
function pushGTMObjectToIntercom(gtmKey, gtmValue) {
if("{{User - Account - Type}}" != "Guest"){
if(gtmValue != null && gtmValue != "undefined") {
intercomSettings[gtmKey] = gtmValue;
return true;
}
return false;
}
return false;
}
// Default variables
pushGTMVariablesToIntercom("user_id", "{{User - Account - ID}}");
pushGTMVariablesToIntercom("user_hash", "{{User - Account - Hash}}");
pushGTMVariablesToIntercom("email", "{{User - Account - Email}}");
pushGTMVariablesToIntercom("created_at", "{{User - Account - Registration date}}");
pushGTMVariablesToIntercom("name", "{{User - Account - First name}}" + " " + "{{User - Account - Last name}}");
// Custom variables example
pushGTMVariablesToIntercom("user_services", "{{User - Account - Services}}");
// Company data
pushGTMObjectToIntercom("company", { id: '{{User - Account - Company ID}}' , name: '{{User - Account - Company 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/{{IC - Dynamic app 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