Marketo
Marketo develops marketing automation software that provides inbound marketing, social marketing, CRM, and other related services.
Features
Feature Name | Supported | Notes |
---|---|---|
Capture deletes | check | CAMPAIGN , LEAD , LIST_MEMBERSHIP , OPPORTUNITY_MEMBERSHIP , PROGRAM , PROGRAM_COST , PROGRAM_TAG , and PROGRAM_MEMBERSHIP tables. We read the activities stream, and once we see a delete activity, we mark the record as deleted. <br/> |
History mode | check | EMAIL_TEMPLATE_HISTORY table only |
Custom data | check | LEAD , COMPANY , PROGRAM_MEMBERSHIP , PROGRAM and all activity tables. For each activity, we create a table in the format activity_{activity_name} |
Data blocking | check | LEAD table. |
Column hashing | check | |
Re-sync | check | |
API configurable | check | API configuration |
Priority-first sync | check | LEAD and all activity tables (and dependent tables)*. |
Fivetran data models | check | |
Private networking | ||
Authorization via API | check |
*NOTE: We don't support priority-first sync for the activity tables that you select after the initial sync is complete.
Setup guide
Follow our step-by-step Marketo setup guide to connect Marketo with your destination using Fivetran connectors.
Sync overview
We use Marketo's REST API and the BULK export. Initially, we sync the lead and activity tables and then sync the remaining tables alphabetically.
Because accidentally activating a historical re-sync can cause lengthy disruptions, we've disabled the historical re-sync button in the Fivetran dashboard for this connector. Contact our support team to enable a full historical sync. However, you can perform table level re-syncs to re-sync specific tables.
Sync strategy for activities
Priority-first sync
We use priority-first sync to pull your activities data. Priority-first syncs fetch your most recent data first so that it's quickly ready for you to use.
NOTE: For connectors created after February 6, 2023, we fetch leads data using priority-first syncs.
During your initial sync, Fivetran fetches the past seven days' worth of data.
In all subsequent syncs, we continue to fetch your most recent data first. We also sync historical data until we reach the end of your activities data retention period. For example, if Change Score activities are retained for 90 days, we will sync 90 days' worth of Change Score data.
Priority-first syncs allow us to keep your most recent data up to date while syncing your historical data over time.
API usage
The Marketo connector mostly uses the Marketo BULK API to fetch activity data, a combination of the BULK API and REST API to fetch activities, and the REST API to fetch all other data.
Make sure that you have sufficient REST and BULK API quota.
SOAP API credentials
We don't use the Marketo SOAP API to sync your tables. However, we can provide you with an estimate of your BULK API quota usage by using your Marketo SOAP API credentials. If you want Fivetran to use your SOAP API credentials to estimate your BULK API quota usage, you can specify the credentials in the connector setup form. For more information, see our setup instructions.
Semantic activity types
Semantic activity types define how changes propagate in Marketo. We fetch semantic activities from Marketo even if you don't select them in the Schema tab of your connector’s dashboard. We can't sync data for other tables (LEAD
, PROGRAM_MEMBERSHIP
) if we don't fetch these activities. We use your BULK API to fetch the following semantic activities:
Activity ID | Description |
---|---|
12 | New Lead |
13 | Change Data Value |
24 | Add to List |
25 | Remove from List |
32 | Merge Leads |
34 | Add to Opportunity |
35 | Remove from Opportunity |
104 | Change Status in Progression |
113 | Add to Nurture |
NOTE: For connectors created between February 6, 2023 and May 11, 2023, we don't consider activity IDs 12, 13, and 32 as semantic activity types.
Activity types recommendation
The following activity types are large in volume and impact sync speed.
We do NOT recommend including them in the sync.
Activity ID | Description |
---|---|
6 | Send Email |
7 | Email Delivered |
8 | Email Bounced |
9 | Unsubscribe Email |
10 | Open Email |
11 | Click Email |
13 | Change Data Value |
27 | Email Bounced Soft |
38 | Send Alert |
111 | Sent Forward to Friend Email |
112 | Received Forward to Friend Email |
Sync strategy for PROGRAM_MEMBERSHIP table
When we sync the activity tables, we obtain the program IDs from the activities. We use these program IDs to fetch all the associated program membership records and sync the records into the PROGRAM_MEMBERSHIP
table. This strategy may result in syncing the records again even if there are no changes (new lead activities) in the data and can impact your Monthly Active Rows (MAR) usage for the PROGRAM_MEMBERSHIP
table.
Sync strategy for SEGMENT and LEAD_SEGMENT tables
Whenever we detect a change in the segment of a lead, we use the lead_id
and New segment ID
columns from the incoming ACTIVITY_CHANGE_SEGMENT
record to insert one row into the LEAD_SEGMENT
table. We use the segmentation_id
from ACTIVITY_CHANGE_SEGMENT
record to fetch segments and insert them into the SEGMENT
table. To sync these tables, you must have the ACTIVITY_CHANGE_SEGMENT
table selected, and there must be changes happening to segments in the source.
updatedAt filter usage for BULK exports
Marketo's Bulk Lead Extract and Bulk Program Member Extract APIs supports multiple filters. The updatedAt
filter allows us to query leads and program members more efficiently and sync your data quickly.
Most Marketo subscriptions already have the updatedAt filter enabled by default. You can determine if your subscription supports the filter while creating the connector. We strongly recommend that you enable the filter for your subscription. For more information, see Enable updatedAt filter for your subscription.
Historical sync time frame
You can set the historical sync time frame for the following tables while setting up your connector:
ACTIVITY_*
LEAD_SEGMENT
SEGMENT
DELETED_PROGRAM_MEMBERSHIP
OPPORTUNITY_MEMBERSHIP
LIST_MEMBERSHIP
MERGED_LEAD
Sync notes
Deleted leads
We use Marketo's Get Deleted Leads
API endpoint to fetch the deleted leads. Marketo retains the activity details of deleted leads for only 14 days. See Marketo's REST API documentation for more information.
We fetch the deleted_lead
activity before all the activities. If you pause your connector for more than 14 days and Marketo removes the deleted_lead
activity, we may not be able to identify some of the leads as deleted. See Marketo's Activities Data Retention Policy for more information.
Deleted program memberships
When Marketo returns a Change Program Status activity status of 'Not in Program' for a specific pair of lead ID and program ID, we add this pair to the DELETED_PROGRAM_MEMBERSHIP
table. This pair specifies that a lead is no longer a member of the specified program.
Schema information
Marketo's schema follows Fivetran's standard API schema rules.
Extracting data from Marketo can leave you with sparse, duplicative, and confusing tables if you're not careful. Fivetran helps to organize this data into a relational data model, making your queries more efficient, your destination less cluttered, and your data easier to analyze.
Marketo supports creating custom tables. The custom tables that can be in your Marketo account can vary depending on which integrations you have, and how you have configured it. Most of the custom tables are basically custom event tables. For example, "Event X" becomes "activity_event_x" in our system. We will make tables for the activities you're trying to track.
Schema
This schema applies to all Marketo connectors.
To zoom, open the ERD in a new window.Enable updatedAt filter for your subscription
Most Marketo subscriptions already have the updatedAt filter enabled by default. To enable the feature for your subscription, submit a request to Marketo support. Include the following information in your request:
The Account String. Find this in the Admin > Landing Pages section of Marketo.
The Munchkin Account ID. Find this in the Admin > Munchkin section of Marketo.
Marketo will inform you once the feature is enabled for your subscription.
Syncing empty tables and columns
The Marketo connector does not support the creation of empty tables and columns in your destination.
We create a table in the destination only if we can retrieve the table data from the source. If Marketo does not return any data for a source table, we don’t create the table in your destination.