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 all 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
9 changes: 7 additions & 2 deletions 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.6",
"version": "4.1.0",
"engine": ">=6.0.0",
"changelog": {
"1.0.0": [
Expand Down Expand Up @@ -60,6 +60,11 @@
],
"4.0.6": [
"Fixed an issue when the `CreateDeal` component was showing error `resource not found`."
]
],
"4.1.0": [
"Added custom properties and additional properties to the following components: `CreateContact`, `CreateDeal`, `UpdateContact` and `UpdateDeal`. Custom properties are new properties that are not part of the default HubSpot properties. Additional properties default HubSpot properties but were not part of the default properties list before.",
"Added caching of Contact and Deal properties, which can be further configured in the connector settings.",
"Improved listing output variables for `GetContact` to make it consistent with the selected properties in the input."
]
}
}
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
13 changes: 11 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 additionalPropertiesArray = context.messages.in.content.additionalProperties?.AND || [];
const additionalProperties = additionalPropertiesArray.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 || '',
...additionalProperties
}
};
const { data } = await hs.call('post', 'crm/v3/objects/contacts', payload);
Expand All @@ -48,7 +55,9 @@ 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 : '',
...additionalProperties
}, 'contact');

}
Expand Down
35 changes: 32 additions & 3 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 <[email protected]>",
"author": "Appmixer <[email protected]>",
"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" },
"additionalProperties": { "type": "object" }
},
"required": [
"email"
Expand Down Expand Up @@ -96,6 +97,34 @@
"label": "Zip",
"tooltip": "The contact's zip.",
"index": 10
},
"additionalProperties": {
"type": "expression",
"label": "Additional Properties",
"tooltip": "Addition HubSpot or 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#additionalFieldsToSelectArray"
}
}
},
"value": {
"type": "text",
"label": "Value",
"tooltip": "The value for the property.",
"index": 2
}
}
}
}
}
Expand All @@ -118,7 +147,7 @@
]
}
],
"version": "1.0.1",
"version": "1.0.2",
"dependencies": {
"service": "1.0.1"
}
Expand Down
Loading