Understanding Marketo Custom Object Records: Upsert Methods and Import Modes
One of Marketo's standout features is its ability to store data in the custom object apart from the standard objects. In this blog post, we will explore two essential aspects of working with custom object records in Marketo: the upsert methods and dedupe modes.
Upserting Custom Object Records
Before diving into dedupe modes, let's understand how custom object records are upserted in Marketo. Upserting refers to the process of either creating new records or updating existing ones, depending on whether a matching record already exists. Marketo provides two primary methods for upserting custom object records:
POST API Calls
You can upsert custom object records by making POST API calls to Marketo. This method is versatile and can handle both regular and bulk updates. It gives you fine-grained control over the upsert process, making it suitable for complex scenarios, especially when CO records are generated by another system (as most are).
List Import
Alternatively, you can import custom object records via a list import. This method is accessible within the Database section of Marketo and provides a user-friendly way to handle upserts, especially for the cases where you have CSV export of records in a file! The custom object record import option is available in the Database section (not within your standard static list options).

Understanding Dedupe Modes
When importing custom object records via list import, Marketo offers two dedupe modes for users to choose from:
1. Dedupe Fields
On the other hand, the Dedupe Fields mode relies on user-defined dedupe fields as unique identifiers during the upsert process. To use this mode, you need to include custom object’s dedupe fields in your list import file. This mode is suitable when you are creating and updating custom object records.
2. Marketo GUID
The Marketo GUID dedupe mode relies on a unique identifier assigned to every custom object record. It is a guaranteed way to ensure that you are precisely targeting the record you intend to update. This mode is ideal when your focus is solely on updating records.
However, there's a caveat: you must store the GUID values upon the original insertion of custom object records. Without these GUIDs, you won't be able to use this dedupe mode for updates.
Choosing the Right Dedupe Mode
Now that we understand the two dedupe modes let's discuss when to use each:
Dedupe Fields Mode: Use this mode when you are both creating and updating custom object records, and you have all the necessary dedupe fields in your list import file. It offers flexibility and control.
Marketo GUID Mode: Choose this mode when your primary focus is on updating existing records, and you have retained the GUID values from the original insertions. It provides a failsafe way to target records precisely.
Tl;DR
Marketo offers two methods for managing custom object records: API calls and list imports. When using list imports, you can choose between two dedupe modes:
Marketo GUID Mode: Ideal for updating existing records, but you must store GUID values during initial insertion.
Dedupe Fields Mode: Suitable for creating and updating records, requiring all dedupe fields in the import file.
Choose the mode that aligns with your specific needs for precise record management.