As the Enterprise level Marketing automation platform, Marketo manages your user/customer/prospects information acquired from several sources and maintain that in Marketo for better personalization, segmentation and reporting. These sources can range from your website forms to list build to your CRM data to your e-commerce data.
Marketo offer standard objects i.e Lead, Company, Opportunity and Activity etc. These standard objects sometimes are not sufficient to fulfil the emerging marketing needs of extended datasets to be available in Marketo. For example, items added to the cart, students applied for different courses, products owned by specific person, and consents for different subscriptions etc. This information can be critical for Marketers to keep the customer/prospect engaged by providing more personalized content and unified user experience across platforms.
To accommodate these business needs, Marketo provides custom ways to store this type of data in Custom Fields, Custom Activities and Custom Objects.
I have observed people having issues understanding when to use which of the options. In this blog post, we will understand in details what these three things actually are and when to use which one with some examples.
The “Lead“ object in Marketo is the master object and everything else is connected with this one, directly or indirectly. Marketo allow you to create custom fields on the “Lead“ object, “Company” object and recently they announced the support of “Program member” custom fields. These custom fields fulfil your need to store certain type of data. For example, you might need to store the Job Function or different consents from the user. There are two types of custom fields in Marketo:
- Synced from CRM: As part of the auto Marketo ↔︎ SFDC sync, Marketo syncs all the custom fields visible to Marketo user in SFDC on Lead, Contact, account and opportunity Object.
- Marketo only fields: You can directly create a field in Marketo. The data of these fields will not be synced with SFDC.
💡 Do you have a Marketo only field and now wants to sync the data in SFDC? Check out this blog to learn how you can do that.|
💡 Learn more about custom fields here.
💡Marketo APIs does not support updating/creation of the custom fields as of now.
Apart from standard objects, Marketo allows you to create your own custom objects. You can create custom objects and relate to either Company or Lead object or another custom object.
A custom object is a set of custom records that supplement standard Lead and Company records. Custom objects allow you to store additional data in a scalable manner and link that data to a Lead or Company record.
You can build a custom object with any combination of standard (Link Fields) and custom fields, populate those fields to create custom object records, and then link those records to a Lead or a Company record. Powerful and flexible, linked records enrich your Segments, Smart Lists, Campaigns by letting you build those assets with information not found in Lead fields and Company fields.
A custom object can have one of the following types of relationships:
- One-to-one relationship: where each custom object has a single Lead/Company object record.
- One-to-many relationship: where each custom object contains multiple custom object records related to a Lead/Company.
- Many-to-Many relationship: where multiple custom object record can link with multiple lead/company object. For example, Multiple students are enrolled in multiple courses from a course catalog
💡 Learn more to setup custom objects here.|
💡 You can use the Marketo custom object as intermediary object as well meaning custom object of custom object.
Why Custom Objects?
Custom objects allow you to compile and use unique data that is relevant to a company or lead but is not necessarily static information about the company or lead themselves. While lead fields relate to an individual’s lead information (Email Address, Zip Code, and so on), business information (Job Title, Industry, and so on), or system-driven information (Marketo ID, a SFDC ID, or Create Date etc), custom object fields are fully customizable. For example, use custom objects to store information such as the following:
- A user’s purchase history
- Cart information
- Whether or not a customer has used one of your limited-time, promotional discount codes.
- Supplementary information acquired from survey results, interviews, and event attendance.
- A user’s trial information including trial instance URL, Start Date, End Date, Number of user’s etc.
Marketo Custom Object Limitations:
- By default, Marketo allows you to create 10 custom objects. You can increase the limit with additional subscription fee.
- The Default number of fields per object is 50 but you can request Marketo support for additional fields if required. (Thank you Michael Florin for additional input here.)
- There is a limit on the number of records you can have across all the custom objects. It depends on your subscription with Marketo. This limit can be increased with additional subscription fee.
- If a custom object was created using API, Marketo does not allow to edit the CO schema from Marketo UI.
💡 Marketo API’s support CRUD (Create, Read, Update, and Delete) operation on custom objects.|
💡 You can use this custom object data for email personalization using Velocity Script.
💡 You can find all Custom object related endpoints here.
💡 Bulk APIs only support bulk import of custom object records, it doesn’t support bulk extract. Check here.
💡 You can import data in custom object using Lead Database import functionality. Check Here for more details.
Custom object terminology
Custom object: A container that holds a grouping of all the custom object records. Formally known as a data card set or custom table.
Custom object record: Data record holding additional field information that can be tied to a lead or company. A record can be made up of standard lead or company fields, and custom object record fields. Formally known as a data card or data table row.
Custom object record field: Completely customizable fields to collect unique or temporary information. These fields are created and housed inside the custom object itself. Formally known as a data card field or database table field/column.
Link Field: Special type of custom object record field to define the relationship between custom object record and linked Lead/Company object record. When you create custom objects, you must provide link fields to connect the custom object record to the correct parent record.
- For a one-to-many or one-to-one custom structure, use the link field in the custom object to connect it to a person or a company.
- For a many-to-many structure, you use two link fields, connected from a separately created intermediary object (which is a type of custom object, too). One link connects to people or companies in your database and the other connects to the custom object. In this case, the link field is not located in the custom object itself.
There are several ways someone can interact with our organization. They may visit your company’s website, attend one of your tradeshows, or perhaps click a link in an email sent by you. These actions are activities, and whatever action they take, Marketo captures it so your Marketing and Sales Teams can better understand user’s behavior for personalized and unified engagement.
Custom Activities can help you track an activity that isn’t related to a Marketo form, email, or landing page. For example, if you want to track when someone viewed a video on website or took a survey, use custom activity.
Custom activities differ from custom objects. Use custom objects when the value can change (i.e. “car color” changes from blue to red). Use custom activities when tracking moments that occurred, and their details cannot change (i.e. “purchased car”).
By default, the limit of max number of custom activities can be defined is 10. This can be increased with additional subscription fee.
As per the Marekto’s data retention policy, custom activities will be deleted automatically after 25 months.
Custom Activities terminology
Custom Activity Non-Marketo events that you would want to track inside Marketo.
Custom Activity ID Marketo assign a numeric ID to the custom activity that can be used while trying to push/pull the activity data using Marketo API.
Custom Activity Fields Activity meta data can be stored in activity field. For example, if you are tracking the views on video, the fields could be the Page URL, Video Title etc.
Custom Activity Primary field Custom activity fields that can be used as the smart list filer criteria
|💡 The API endpoints for custom activities are available here.|
Custom Object vs Custom Activities
|Custom Object||Custom Activities|
|1||Max 10 Custom objects by default per instance||Max 10 custom activities by default.|
|2||Max 50 custom object fields per custom object||Each custom activity type can have upto 20 secondary attributes|
|3||Max 1MM custom object records; May very based on your subscription||After 25 months custom activities will be deleted as per the Marketo’s data retention policy|
|4||Can be used as Filter and Trigger in Smart Lists and Smart Campaigns||Can be used as Filter and Trigger in Smart Lists and Smart Campaigns|
|5||Can be used to personalize the email content||Can not be used to personalise the email content|
|6||Can perform CRUD operation on a custom object record||Only Create and Read is allowed on custom activities|
|7||Use custom objects when the value can change (i.e. “car color” changes from blue to red).||Use custom activities when tracking moments that occurred, and their details cannot change (i.e. “purchased car”)|
|8||Custom objects tell you the fact i.e. present value||Custom Activities tell you the events that have happened in the past|