Custom Objects in Marketo - Part 4 - Bulk Upload

Marketo Employee
Marketo Employee

In previous entries in this blog series, I've demonstrated how to upload custom object data into marketo using REST and SOAP.. but did you know its also possible to upload data in bulk.. from the Marketo UI, just like you'd upload Lead Data? It's true, and its really cool. The addition of this feature truly brings custom objects within reach for even non technical Marketo users.

If you recall, when we last left our hero (that's me)  We'd created an Automobile object using the new Custom Objects Interface. Since then the Interface has stealthily shifted around a bit, while maintaining the same functionality.

Fig 1: The Automobile's Definition


Fig 2: The Automobile's Attributes


Next up is creating an input file, and here's our sample.

Screen Shot 2015-09-11 at 4.58.15 PM.png

Great! The process is a LOT like uploading bulk leads actually, but here's how it looks. Start out in the lead database under New-->Import Custom Object Data


Select your input file, and choose your options. My file was text, autodetected, and Ive chosen to tell Marketo to use my dedupe field and a link field of email address, which is great for inserts and updates. You can also choose the MArketo GUID as the dedupe mode.

4.pngThen.. map the fields to the object fields...




Now you can see the objects in the lead details.


Cool, right?

Not applicable

This is cool, thanks! I have some quick questions:

  1. Is there any constraint checking i.e. on the link and unique fields?
  2. Sounds like we can we use this method to upsert a custom object i.e. to update/refresh the object after it's been initially loaded - is that right?
  3. Is there a way of calling this bulk load method from an ETL layer or from a script? Or can we only integrate using the SOAP/REST APIs?



Level 10

This is very cool John Mattos​!

Marketo Employee

1. Yes! You'll get errors if the fields are incorrectly populated.

2. Yes!

3. I wish... stay tuned.... I've been fighting for that for a LONG time I envision it working like the bulk lead upload API.. nothing yet... but we're talking about.

Marketo Employee

Thanks! I think its really cool, and a long time coming

Level 2

Hi John,

When I process a bulk upload Marketo doesn't remember my field mappings from the previous bulk upload to the Custom Object. Marketo does this when uploading a list upload. Is this something I can reach out to Support to fix or a known issue? It's a real pain to map 40+ fields on a Custom Object every day. Thanks!

Not applicable

Thank you John for this wonderful overview. I just imported custom object data and it was a successful upload. Yet, the custom object data does not display in my Marketo account. Is there a delay before the data displays in Marketo?

Level 4

Hi John Mattos​,

Do you know how to bulk delete via REST API? Pasting all the different marketoGUID's or dedupeFields I want to delete seems really painful. Is there a wildcard or another way to delete in mass?

Level 4

Hi Wyatt Bales

Below is a syntax which allows us to delete in mass using objects as key differentiators.

POST /?delete HTTP/1.1

Host: please.provide.your.host.name.here

Authorization: authorization string

Content-Length: Size

Content-MD5: MD5

<?xml version="1.0" encoding="UTF-8"?>












Let me know if this helps.



Marketo Employee

Hey Wyatt.

Looking at this http://developers.marketo.com/rest-api/lead-database/#objects  you can choose to deleteBy "dedupeFields" , and depending on how your object is set up... you can pas sin whatever dedupe fields you like. If your fields are something like "email" and "uniqueID", you can try passing in only one of them, like "email" to see if it deletes all the custom objects associated with that email.

my guess is that it will bark at you that you have to include all of the dedupe fields, meaning there isnt really a way to mass delete.. but I'd definitely try it.

Not applicable

Hi All,

Has someone tried dedupeFields with Bulk Import Custom Object API?

Even when I used dedupeFields, the API still responds with Error 1003.


            "code": "1003",

            "message": "Dedupe field 'product_code' not specified in header"



            "code": "1003",

            "message": "Dedupe field 'customer_id' not specified in header"


Appreciate if someone can share how they tackled this?