Navigating Marketo Custom Objects and Person Partitions: What You Need to Know?
For background, Marketo custom objects provide a flexible and scalable way to store and manage unique data that goes beyond standard lead and contact information, allowing marketers to design custom processes and workflows that are tailored to their specific business needs.
As you probably know, Marketo custom object (CO) records can only be created or manipulated using the APIs or list imports, i.e., you can’t use flow steps for adding or updating custom object records.
However, many users don’t know the caveat of using CO objects in case there’s a possibility of duplicate records across multiple person partitions or within the same partition itself!
Read on to find out what it is and a potential workaround to avoid any MOOPs later.
To start off, Marketo does not de-duplicate people across multiple partitions; i.e., if created, people with the same email address will co-exist as separate person records with different lead ids in their respective partitions.
Normally, when you import person records via a list import, Marketo won’t create or update records in a person partition that the workspace can’t see.
However, when importing or updating custom object records, all the person records are visible to the custom object handler, not just those in a particular person partition. Due to this, if there are duplicate person records in multiple partitions, the CO create/update handler just looks to see which person record was updated most recently and grabs that for adding the CO record.
This behavior can very well be extended to the duplicate records within the same person partition as well; Marketo would associate the new CO records with the person record that was most recently updated in the case of duplicate records.
This happens only when using fields other than the lead-id as link fields (e.g., email address) in a custom object, as lead-id is the Marketo database’s primary key and two records can’t have the same lead-id value. To give some background, the link field is used as the field to associate records between custom and person objects.
For this reason, when using person partitions and custom objects in an instance (or even dealing with duplicate records in a single partition), it’s always a wiser choice to use lead-id as the link field instead of other fields that could have the same values for multiple people (e.g., email address field). This would ensure that the custom object record always gets added to the intended person record in Marketo.
Happy to chat in case you have questions about this. 😄
Happy Marketo’ing!