Contact Batch Upsert Does Add Properties on Newly Created Objects

I am using the /crm/v3/objects/contacts/batch/upsert endpoint to test creating and updating contacts. While it seems to update fine, and it does create new contacts, it is not setting the properties on these new contacts. Here’s my JSON body :

{

“inputs”: [

{

“properties”: {

“active”: “false”

},

“id”: “existing1@gmail.com”,

“idProperty”: “email”

},

{

“properties”: {

“active”: “false”

},

“id”: “existing2@gmail.com”,

“idProperty”: “email”

},

{

“properties”: {

“active”: “true”,

“firstname”: “Upsert”,

“lastname”: “Test”

},

“id”: “doesNotExist@gmail.com”,

“idProperty”: “email”

}

]

}

While it will update the active value on the first two, and it will create a contact with an email doesNotExist@gmail.com, it doesn’t set active, firstname or lastname. What am I missing?

Hi @Anya23 :waving_hand:

I’ve been able to replicate your results and agree this is not consistent with generally accepted expectations for a “batch upsert” API endpoint. I’ve also found this related post which seems to be consistent with your experience.

It’d be great to get some input from @Jaycee_Lewis @BérangèreL as to any planned updates to the CRM > Contacts > Create or update a batch of contacts by unique property values endpoint, because at the moment it seems pretty unusable.

I hope this proves helpful. Please let me know if you have any follow-up questions.

Yeah, it’s really strange. I duplicated it over and over, and was perplexed. Then I did it another time, without (I thought) changing anything, and suddenly it started updating. Not sure if some patch was released in the meantime?

Hi @Anya23 :waving_hand:

Yes, I agree -- it seems like HubSpot has resolved the issue :slightly_smiling_face: