Skip to content

HubSpot Developer Changelog

Updating objects by custom field and adding owner properties via the API

Update CRM Objects by a custom defined unique property

Sometimes it is necessary or easier to use your own unique ID for CRM objects than to use the HubSpot provided ID. This can simplify integration logic since you don’t have to keep track of a mapping between the HubSpot ID and yours.  This is why HubSpot has made it possible to define your own Unique ID properties by creating properties with the field of hasUniqueValue set to true.

What’s happening?

You can now update records using these Unique ID properties. Previously, you could only get records by your custom defined properties and you needed to update by the HubSpot defined ID. 

You can use the existing PATCH endpoint to update by ID, putting the ID that’s meaningful to you in the path. You will then add the query parameter “idProperty” equal to the name of the unique property you’ve defined. 

There is an example of how to create and use these unique ID properties in Understanding the CRM

When is this happening?

This change is now live for all accounts.

CRM v3 Properties API updated to include the creation of “HubSpot User” Field Type

Starting today, we have updated our CRM v3 Properties API to also support the creation of a property that contains the “HubSpot User” field type. This property type allows your end-users to be able to select from a list of users in your HubSpot Portal, just like the default property of “Owner” in your CRM. 

To create this type of property, simply set the following options in your POST for the property creation endpoint along with your additional options (such as label, name, and groupName) for your field:



“type” : “enumeration”,
“fieldType” : “select”,
“formField” : false,
“externalOptions” : true,
“referencedObjectType” : “OWNER”

The User Field inside the CRM

This will then allow you to make a successful call and create the desired field. Note: This type of field is not allowed to be used in forms and will always have a formField value of false.

To discuss these changes, head on over to our community post here.