Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/appmixer/hubspot/bundle.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "appmixer.hubspot",
"version": "4.0.5",
"version": "4.1.0",
"engine": ">=6.0.0",
"changelog": {
"1.0.0": [
Expand Down Expand Up @@ -57,6 +57,10 @@
"4.0.5": [
"Removed webhook subscribing when using AuthHub.",
"Fixed an issue when HubSpot webhook was not automatically created when using own API key."
],
"4.1.0": [
"Added custom properties to the following components: `CreateContact`, `CreateDeal`, `CreateLineItem` and `Engagements - CreateEmail`.",
"Added caching of Contact and Deal properties, which can be further configured in the connector settings."
]
}
}
36 changes: 35 additions & 1 deletion src/appmixer/hubspot/commons.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,41 @@ module.exports = {
},

WATCHED_PROPERTIES_CONTACT: ['email', 'firstname', 'lastname', 'phone', 'website', 'company', 'address', 'city', 'state', 'zip'],
WATCHED_PROPERTIES_DEAL: ['dealname', 'dealstage', 'pipeline', 'hubSpotOwnerId', 'closedate', 'amount']
WATCHED_PROPERTIES_DEAL: ['dealname', 'dealstage', 'pipeline', 'hubSpotOwnerId', 'closedate', 'amount'],

async getObjectProperties(context, hubspot, objectType, output = 'all') {

// Default cache TTL set to 1 minute as property definitions rarely change
// Can be configured via context.config.objectPropertiesCacheTTL if needed
const objectPropertiesCacheTTL = context.config.objectPropertiesCacheTTL || (60 * 1000);
const cacheKeyPrefix = 'hubspot_properties_' + objectType;
let lock;
try {
lock = await context.lock(`hubspot_properties_${objectType}`);
const cached = await context.staticCache.get(cacheKeyPrefix + '_' + output);
if (cached) {
return cached;
}

// Get all properties from HubSpot.
const { data } = await hubspot.call('get', `crm/v3/properties/${objectType}`);
const properties = data.results.map(property => property.name);

// Save to cache both versions: triggers and actions.
await context.staticCache.set(cacheKeyPrefix + '_all', data.results, objectPropertiesCacheTTL);
await context.staticCache.set(cacheKeyPrefix + '_names', properties, objectPropertiesCacheTTL);

// For triggers return array of names: ['email', 'firstname', ...]
if (output === 'names') {
return properties;
}

// For actions return array of objects: [{ name: 'email', type: 'string', ... }, ...]
return data.results;
} finally {
await lock?.unlock();
}
}
};

/**
Expand Down
15 changes: 13 additions & 2 deletions src/appmixer/hubspot/crm/CreateContact/CreateContact.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ module.exports = {
const { auth } = context;
const hs = new Hubspot(auth.accessToken, context.config);

const customFieldsArray = context.messages.in.content.customProperties?.AND || [];
const customProperties = customFieldsArray.reduce((acc, field) => {
acc[field.name] = field.value;
return acc;
}, {});

const payload = {
properties: {
email,
Expand All @@ -32,7 +38,8 @@ module.exports = {
address: address || '',
city: city || '' ,
state: state || '' ,
zip: zip || ''
zip: zip || '',
...customProperties
}
};
const { data } = await hs.call('post', 'crm/v3/objects/contacts', payload);
Expand All @@ -48,7 +55,11 @@ module.exports = {
phone: properties.phone ? properties.phone : '',
state: properties.state ? properties.state : '',
address: properties.address ? properties.address : '',
email: properties.email ? properties.email : ''
email: properties.email ? properties.email : '',
company: properties.company ? properties.company : '',
...Object.entries(properties)
.filter(([key]) => Object.keys(customProperties).includes(key))
.reduce((acc, [key, value]) => ({ ...acc, [key]: value || '' }), {})
}, 'contact');

}
Expand Down
33 changes: 31 additions & 2 deletions src/appmixer/hubspot/crm/CreateContact/component.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "appmixer.hubspot.crm.CreateContact",
"author": "Zulkafil Tabish <zulkafil@client.io>",
"author": "Appmixer <info@appmixer.com>",
"icon": "data:image/png;base64,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",
"description": "Create a new contact.",
"private": false,
Expand Down Expand Up @@ -29,7 +29,8 @@
"address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" },
"zip": { "type": "string" }
"zip": { "type": "string" },
"customProperties": { "type": "object" }
},
"required": [
"email"
Expand Down Expand Up @@ -96,6 +97,34 @@
"label": "Zip",
"tooltip": "The contact's zip.",
"index": 10
},
"customProperties": {
"type": "expression",
"label": "Custom Properties",
"tooltip": "Custom properties to add to the contact.",
"exclusiveFields": ["name"],
"index": 11,
"levels": ["AND"],
"fields": {
"name": {
"type": "select",
"label": "Property",
"tooltip": "The property to add to the contact.",
"index": 1,
"source": {
"url": "/component/appmixer/hubspot/crm/GetContactsProperties?outPort=out",
"data": {
"transform": "./GetContactsProperties#customFieldsToSelectArray"
}
}
},
"value": {
"type": "text",
"label": "Value",
"tooltip": "The value for the custom property.",
"index": 2
}
}
}
}
}
Expand Down
Loading