const mappings = {
crm: [
'Salesforce',
'Microsoft Dynamics',
'Microsoft Dynamics 365 for Sales',
'Microsoft Dynamics 365',
'Pipedrive',
'Close.io'
],
marketingauto_email: [
'HubSpot',
'Marketo',
'Autopilot',
'Drip',
'Salesforce Pardot',
'Act-On',
'Customer.IO',
'Vero',
'Campaign Monitor',
'Constant Contact',
'GetResponse',
'MailChimp'
],
live_chat: ['Intercom', 'Drift', 'LiveChat', 'Olark'],
ad_retargeting: [
'AdRoll',
'Facebook Web Custom Audiences',
'Perfect Audience'
],
web_product_tracking: ['Amplitude', 'Heap', 'Mixpanel', 'Kissmetrics']
};
const techAliases = {
'Salesforce Pardot': 'Pardot',
'Facebook Web Custom Audiences': 'Facebook Custom Audiences',
'Microsoft Dynamics Marketing': 'Microsoft Dynamics',
'Microsoft Dynamics 365 for Sales': 'Microsoft Dynamics',
'Microsoft Dynamics 365': 'Microsoft Dynamics',
'HubSpot CRM': 'HubSpot',
'HubSpot Sales': 'HubSpot'
};
const datanyzeTechs = _.get(account, 'datanyze.technologies', []);
const userTraits = {};
// Determine tech based on priority for all categories
if (datanyzeTechs.length > 0) {
mappings.map((val, key) => {
val.map(v => {
if (_.includes(datanyzeTechs, v)) {
userTraits[key] = v;
}
});
});
}
// Alias the tech if appropriate
userTraits.map((val, key) => {
if (techAliases[val] !== null) {
userTraits[key] = techAliases[val];
}
});
//Write the results back in the Hull profile
hull.traits(userTraits, { source: "primary_tools" });