APIs & Integrations

LCM4
Member

Contact batch upsert endpoint

SOLVE

Hi!

I'm trying to use the upsert endpoint

 

 

 

https://api.hubapi.com/crm/v3/objects/contacts/batch/upsert

 

 

 

 to update existing contacts and create not existing ones, but cannot get it to work

 

I'm passing the following body (first input exist so should update, and the following two does not exist and should create them)

 

 

 

{
    "inputs": [
        {
            "id": "35791753356",
            "properties": {
                "firstname": "Maria",
                "lastname": "Johnson"
            }
        },
        {
            "id": "doesnotexist",
            "properties": {
                "firstname": "John 1",
                "lastname": "Doe 1",
                "email": "test.test1@test.com"
            }
        },
        {
            "id": "doesnotexist2",
            "properties": {
                "firstname": "John 2",
                "lastname": "Doe 2",
                "email": "test.test2@test.com"
            }
        }
    ]
}

 

 

 

 

But I get the following response

 

 

 

{
    "status": "error",
    "message": "Updates in a single batch must specify its unique property.",
    "correlationId": "d6594c05-a699-4014-a51d-6693c172f179",
    "category": "VALIDATION_ERROR"
}

 

 

 

 

What am I doing wrong? The documentation says that when providing a not existing id it will create the contact but it does not work

0 Upvotes
1 Accepted solution
SteveHTM
Solution
Guide | Partner
Guide | Partner

Contact batch upsert endpoint

SOLVE

And if you do try to use 'email' as the idProperty...

 

HTTP 400

{
  "status": "error",
  "message": "Unable to perform update/upsert by non-unique 0-1 property email in portal ID XX3719",
  "correlationId": "fccd25a3-fb03-45ed-bf1d-982736c99cbe",
  "category": "VALIDATION_ERROR"
}

 

 

Scatching my head for how this might work...

Steve Christian

HTM Solutions

https://info.htmsolutions.biz/meetings/stevec2

mobilePhone
+1 6195183009
emailAddress
stevec@htmsolutions.biz
website
www.htmsolutions.biz
address
San Diego, CA
Create Your Own Free Signature

View solution in original post

7 Replies 7
SteveHTM
Guide | Partner
Guide | Partner

Contact batch upsert endpoint

SOLVE

@LCM4 - my reading of the descrption here suggests thst you need to provide the idProperty selection along with the id value. Using an email address as the idProperty that would look like:

"inputs": [
    {
      "idProperty": "email",
      "id": "joe@company.com",
      "properties": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
]

 

But there is a rather strange warning that "email upserts are not supported" - which maybe practically limits what you can use the  API for. Unless this format works of course:

"inputs": [
    {
      "idProperty": "hs_object_id",
      "id": "", #null for new contact
      "properties": {
        "email": "joe@company.com",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
]

Best of luck!

 

Steve

 

 

Steve Christian

HTM Solutions

https://info.htmsolutions.biz/meetings/stevec2

mobilePhone
+1 6195183009
emailAddress
stevec@htmsolutions.biz
website
www.htmsolutions.biz
address
San Diego, CA
Create Your Own Free Signature
0 Upvotes
LCM4
Member

Contact batch upsert endpoint

SOLVE

It would return this

 

{
    "status": "error",
    "message": "Duplicate IDs found in batch input: []. IDs must be unique",
    "correlationId": "218c3962-47cc-4248-87ea-0064604ff943",
    "context": {
        "ids": [
            ""
        ]
    },
    "category": "VALIDATION_ERROR"
}

 

 


But there is a rather strange warning that "email upserts are not supported" - which maybe practically limits what you can use the  API for.


Might be that since email is not supported here, or documentation is wrongly written on how pass the data correctly (seen that before). Tried the V1 API where a similar endpoint exist and works just right, but yeah, this one does not 😞

 

And a note hehe

I've tried deleting the id, idProperty, both at the same time, leave the id for the one that exist and none of those are working

0 Upvotes
SteveHTM
Solution
Guide | Partner
Guide | Partner

Contact batch upsert endpoint

SOLVE

And if you do try to use 'email' as the idProperty...

 

HTTP 400

{
  "status": "error",
  "message": "Unable to perform update/upsert by non-unique 0-1 property email in portal ID XX3719",
  "correlationId": "fccd25a3-fb03-45ed-bf1d-982736c99cbe",
  "category": "VALIDATION_ERROR"
}

 

 

Scatching my head for how this might work...

Steve Christian

HTM Solutions

https://info.htmsolutions.biz/meetings/stevec2

mobilePhone
+1 6195183009
emailAddress
stevec@htmsolutions.biz
website
www.htmsolutions.biz
address
San Diego, CA
Create Your Own Free Signature
SAMsan
Contributor

Contact batch upsert endpoint

SOLVE

So should we consider documentation is wrong and we can't batch update/insert contacts?
I tried to get this working according to guidelines without any success, it returns error 400 if using `email` as `idProperty` value
Response is : `Unable to perform update/upsert by non-unique 0-1 property email in portal ID XXX`.

Batch read does work correctly with same params.

0 Upvotes
SAMsan
Contributor

Contact batch upsert endpoint

SOLVE

As an update, this endpoint totally works with custom objects although I can't get associations working, the batch update/insert is OK.

0 Upvotes
SteveHTM
Guide | Partner
Guide | Partner

Contact batch upsert endpoint

SOLVE

Yes - seems useless for most obvious practical purposes. Like many things its not clear how you can get this feedback to the product management team.

 

Steve

Steve Christian

HTM Solutions

https://info.htmsolutions.biz/meetings/stevec2

mobilePhone
+1 6195183009
emailAddress
stevec@htmsolutions.biz
website
www.htmsolutions.biz
address
San Diego, CA
Create Your Own Free Signature
0 Upvotes
Tuscher
Participant

Contact batch upsert endpoint

SOLVE

I have the same issue. Seems that the upsert endpoint is completely useless.

0 Upvotes