Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HubSpot (minor) add custom properties and caching #449

Open
wants to merge 12 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
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
5 changes: 4 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,9 @@
"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 caching of Contact and Deal properties, which can be further configured in the connector settings."
]
}
}
32 changes: 31 additions & 1 deletion src/appmixer/hubspot/commons.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,37 @@ 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') {

const cacheKeyPrefix = 'hubspot_properties_' + objectType;
let lock;
try {
lock = await context.lock('hubspot_properties');
Copy link
Preview

Copilot AI Mar 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Using a static lock key ('hubspot_properties') for all object types could lead to collisions when getObjectProperties is called concurrently for different object types. Consider incorporating the objectType into the lock key.

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

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, context.config.objectPropertiesCacheTTL || (20 * 1000));
await context.staticCache.set(cacheKeyPrefix + '_names', properties, context.config.objectPropertiesCacheTTL || (20 * 1000));

// 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
2 changes: 1 addition & 1 deletion 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 <[email protected]>",
"author": "Appmixer <[email protected]>",
"icon": "data:image/png;base64,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",
"description": "Create a new contact.",
"private": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
'use strict';
const Hubspot = require('../../Hubspot');
const { getObjectProperties } = require('../../commons');

module.exports = {

async receive(context) {

const { auth } = context;
const hs = new Hubspot(auth.accessToken, context.config);
const { data } = await hs.call('get', 'crm/v3/properties/contacts');
const properties = await getObjectProperties(context, hs, 'contacts', 'all');

return context.sendJson(data.results, 'out');
return context.sendJson(properties, 'out');
},

contactsPropertiesToContactInspector(contactsProperties) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
'use strict';
const Hubspot = require('../../Hubspot');
const { getObjectProperties } = require('../../commons');

module.exports = {

async receive(context) {

const { auth } = context;
const hs = new Hubspot(auth.accessToken, context.config);
const { data } = await hs.call('get', 'crm/v3/properties/deals');
const properties = await getObjectProperties(context, hs, 'deals', 'all');

return context.sendJson(data.results, 'out');
return context.sendJson(properties, 'out');
},

dealsPropertiesToDealInspector(dealsProperties) {
Expand Down
Loading