Marketo is a marketing automation software that provides inbound marketing, social marketing, CRM, and other related services.

Connect Marketo and Lytics to import Marketo's robust lead information, including profile and activity data, into Lytics. You can also export Lytics audiences enriched with cross-channel data and behavioral scoring to Marketo.

This integration allows you to give high-value prospects a more targeted experience, follow up on unresponsive leads with a Facebook ad, or make your media spend more efficient by removing leads that you already have from lead generation activities.


If you haven't already done so, you will need to set up a Marketo account before you begin the process described below. Create a new API user in Marketo. You will need your Client ID, Client Secret, and the portion of Marketo's Endpoint after :// and before /rest for the REST URL.

If you are new to creating authorizations in Lytics, see the Authorizations Dashboard documentation for more information.

  1. Select Marketo from the list of providers.
  2. Select the Marketo Client Credentials method for authorization.
  3. Enter a Label to identify your authorization.
  4. (Optional) Enter a Description for further context on your authorization.
  5. Enter your Client ID.
  6. Enter your Client Secret.
  7. Enter your REST URL.
  8. Click Save Authorization.

Import Audiences & Activity Data

Import leads and activity data from Marketo for use in Lytics audiences.

Integration Details

  • Implementation Type: Server-side Integration.
  • Implementation Technique: REST API Integration and File Based Transfer Integration
  • Frequency: Batch Integration daily or one time only.
  • Resulting data: User Profiles and User Fields.

This integration utilizes Marketo's REST API to import user data. Once the import is started the job will:

  1. Create a Lead Import Job via Marketo's /bulk/v1/leads/export/create.json endpoint.
  2. If email and web activity are configured in the import, it will create separate jobs for each.
  3. Check the status of the job(s) periodically via the /bulk/v1/leads/export/{exportId}/status.json endpoint.
  4. When a job's status is returned as "Completed", retrieve the data via the /bulk/v1/leads/export/{exportId}/file.json endpoint and import the data into the appropriate stream.


The following fields are included in the default mapping of the mo_user stream:

Source FieldLytics User FieldDescriptionType
facebookIdfbuid unique idFacebook Idstring
emailemail unique idEmailstring
idmo_user_id unique idMarketo: User Idstring
billingCitybilling_cityBilling Citystring
billingCountrybilling_countryBilling Countrystring
billingPostalCodebilling_postal_codeBilling Postal Codestring
billingStatebilling_stateBilling Statestring
billingStreetbilling_streetBilling Streetstring
numberOfEmployeescompany_employeesCompany Employeesint
industrycompany_industryCompany Industrystring
companycompany_nameCompany Namestring
annualRevenuecompany_revenueCompany Annual Revenuenumber
sicCodecompany_sicCompany SIC Codestring
websitecompany_urlCompany URLstring
departmentdepartmentDepartment in Companystring
doNotCalldo_not_callDo Not Call Statusstring
doNotCallReasondo_not_call_reasonDo Not Call Reasonstring
emailemaildomainEmail Domainstring
faxfaxFax Numberstring
facebookDisplayNamefb_nameFacebook Namestring
facebookProfileURLfb_photoFacebook Profile Photostring
firstNamefirst_nameFirst Namestring
titlejob_titleJob Titlestring
lastNamelast_nameLast Namestring
linkedInIdli_idLinkedIn Idstring
linkedInDisplayNameli_nameLinkedIn Namestring
linkedInPhotoURLli_photoLinkedIn Photostring
anonymousIPmo_anonymous_ipMarketo: Anonymous IP[]string
createdAtmo_created_atMarketo: Created Datedate
leadRevenueCycleModelIdmo_cycle_modelMarketo: Cycle Modelstring
leadScoremo_lead_scoreMarketo: Lead Scorestring
leadSourcemo_lead_sourceMarketo: Lead Sourcestring
leadStatusmo_lead_statusMarketo: Lead Statusstring
leadPartitionIdmo_partition_idMarketo: Partition IDstring
prioritymo_priorityMarketo: Prioritystring
acquisitionProgramIdmo_program_idMarketo: Program Idstring
originalReferrermo_referrerMarketo: Referrerstring
relativeScoremo_relative_scoreMarketo: Relative Scorestring
sfdcTypemo_sfdc_typeMarketo: SFDC Typestring
leadRevenueStageIdmo_stage_idMarketo: Stage Idstring
updatedAtmo_updated_atMarketo: Updated Datedate
urgencymo_urgencyMarketo: Urgencystring
mobilePhonemobile_phoneMobile Phone Numberstring
phonephonePhone Numberstring
twitterDisplayNametw_nameTwitter Namestring
twitterPhotoURLtw_photoTwitter Photostring
twitterIdtwuser_idTwitter Idstring

The following fields are included in the default mapping of the mo_activity stream:

Source FieldLytics User FieldDescriptionType
leadIdmo_user_id unique idMarketo: User Idstring
channelsAll Channels Used[]string
activityDatecreated_tsGlobal: First Activedate
activityDateemail_firstbounced_tsMarketo: First Time Email Bounceddate
activityDateemail_firstclick_tsEmail: First Time Email Clickeddate
activityDateemail_firstdelivered_tsMarketo: First Time Email Delivereddate
activityDateemail_firstopen_tsEmail: First Time Email Openeddate
activityDateemail_firstsent_tsMarketo: First Time Email Sentdate
activityDateemail_firstsoftbounce_tsMarketo: First Time Email Bounced (soft)date
activityDateemail_firstunsub_tsMarketo: First Time Email Unsubscribeddate
activityDateemail_lastbounced_tsMarketo: Last Time Email Bounceddate
activityDateemail_lastclick_tsEmail: Last Time Email Clickeddate
activityDateemail_lastdelivered_tsMarketo: Last Time Email Delivereddate
activityDateemail_lastopen_tsEmail: Last Time Email Openeddate
activityDateemail_lastsent_tsMarketo: Last Time Email Sentdate
activityDateemail_lastsoftbounce_tsMarketo: Last Time Email Bounced (soft)date
activityDateemail_lastunsub_tsMarketo: Last Time Email Unsubscribeddate
activityDatehourlyGlobal: Hourly Eventsmap[string]intsum
activityDatehourofweekGlobal: Hour of Week Eventsmap[string]intsum
activityDatelast_active_tsLast Active on Any Channeldate
last_channel_activitiesLast Activity By Channelmap[string]time
activityDatemo_created_tsMarketo: First Activedate
primaryAttributeValuemo_email_bouncedMarketo: Emails Bounced[]string
activityTypeIdmo_email_bounced_countMarketo: Count of Email Bouncedint
activityTypeIdmo_email_click_countMarketo: Count of Emails Clickedint
primaryAttributeValuemo_email_clickedMarketo: Emails Clicked[]string
primaryAttributeValuemo_email_deliveredMarketo: Emails Delivered[]string
activityTypeIdmo_email_delivered_countMarketo: Count of Emails Deliveredint
primaryAttributeValuemo_email_openedMarketo: Emails Opened[]string
activityTypeIdmo_email_opened_countMarketo: Count of Emails Openedint
primaryAttributeValuemo_email_sentMarketo: Emails Sent[]string
activityTypeIdmo_email_sent_countMarketo: Count of Emails Sentint
activityTypeIdmo_email_soft_bounce_countMarketo: Count of Email Bounced (soft)int
primaryAttributeValuemo_email_soft_bouncedMarketo: Emails Bounced (soft)[]string
primaryAttributeValuemo_email_unsubMarketo: Emails Unsubscribed[]string
activityTypeIdmo_email_unsub_countMarketo: Count of Unsubscribesint
activityDatemo_first_web_click_tsMarketo: First Time Clicked Webdate
activityDatemo_first_web_submit_tsMarketo: First Time of Web Form Submitdate
activityDatemo_first_web_visit_tsMarketo: First Time Visited Webdate
activityDatemo_firstclick_tsMarketo: First Time Email Clickeddate
activityDatemo_firstopen_tsMarketo: First Time Email Openeddate
activityDatemo_last_active_tsMarketo: Last Activedate
activityDatemo_last_web_click_tsMarketo: Last Time Clicked Webdate
activityDatemo_last_web_submit_tsMarketo: Last Time of Web Form Submitdate
activityDatemo_last_web_visit_tsMarketo: Last Time Visited Webdate
activityDatemo_lastclick_tsMarketo: Last Time Email Clickeddate
activityDatemo_lastopen_tsMarketo: Last Time Email Openeddate
primaryAttributeValuemo_web_clickMarketo: Web Pages Clicked[]string
activityTypeIdmo_web_click_countMarketo: Count of Web Clicksint
primaryAttributeValuemo_web_form_submitMarketo: Web Forms Submitted[]string
activityTypeIdmo_web_form_submit_countMarketo: Count of Web Form Submitint
primaryAttributeValuemo_web_visitMarketo: Web Pages Visited[]string
activityTypeIdmo_web_visit_countMarketo: Count of Web Visitsint
activityDateyymmGlobal: Events By Year/Monthmap[string]intsum


Follow these steps to set up an import leads and activities job for Marketo. If you are new to creating jobs in Lytics, see the Data Sources documentation for more information.

  1. Select Marketo from the list of providers.
  2. Select the Import Audiences & Activity Data from the list.
  3. Select the Authorization you would like to use or create a new one.
  4. Enter a Label to identify this job you are creating in Lytics.
  5. (Optional) Enter a Description for further context on your job.
  6. (Optional) Toggle Show Advanced Options.
    1. Select Keep Updated to continuously import leads and activity from Marketo.
    2. Select the Activity Types to configure the acticity types to import.
    3. Select the Partition IDs to Import to configure Marketo partition IDs to import by adding them to the left column. If no partition IDs are selected, data from all partitions will be imported.
    4. Enter the Import Fields with Prefix to import all user fields that start with this value. NOTE: This will be in addition to all the default user fields and is a case-sensitive value.
    5. Enter the Maximum Number of Calls to make to Marketo per day. By default, accounts have 10,000 calls available per day so Lytics sets this at 9,500. For more information see Marketo Integration Best Practices.
  7. Click Start Import.

Import Limitations

File Size

Lytics uses the Marketo Bulk API, which allows an import of activity and leads data via large CSV files. However, Marketo restricts the amount of data Lytics can import daily. The default value of this limit is 500 MB per day.

For example, if your Marketo account generates a 700 MB file while
importing leads and activities, the first 500 MB will be imported the first day and the remaining 200 MB will be imported when the daily limit resets on the following day.

If daily updates are critical for your use cases, spikes in activity volume may affect how timely Lytics can import data. In such scenarios, you can increase the daily limits for your Marketo account by contacting your Marketo customer success manager.

Filter Field

When data is imported from Marketo, it is queried with one of the fields:

  • createdAt: Only new leads will be received. Leads with updated fields will be ignored.
  • updatedAt: Each time the import runs it will receive leads based on the time they were updated.

NOTE: Importing based on updateAt is preferred so that any new changes are received. However, updatedAt is not available as a filtering field for all Marketo accounts. If createdAt is the only filter field available, this means that any updates made to existing leads will not be reflected in Lytics. See Marketo's documentation regarding Bulk Lead Extract Filters and contact their support to discuss gaining access to the updateAt filter.

Export Audiences

Export Lytics audiences to Marketo to refine your targeting and personalization efforts for high-value prospects.

Integration Details

  • Implementation Type: Server-side Integration.
  • Implementation Technique: REST API Integration - Audience Trigger Integration.
  • Frequency: Real-time Integration and Batch Integration (every 10 minutes).
  • Resulting data:
    Lytics users that are members of the selected audiences are converted into Marketo leads in your Marketo account.

This integration utilizes the Marketo REST API to send user data. Once the export is started the job will:

  1. Scan the selected Lytics audience.
  2. For each user in the audience, it writes that user's identifier and any mapped fields to a CSV file.
  3. Upload the CSV file using Marketo's Bulk Import api and will create the bulk import job in Marketo. The export job will then go to sleep for 10 minutes to let Marketo finish the bulk import job.
  4. The export job continues to monitor bulk import job using Marketo's job status api. The export does not send any user unless the previous Marketo bulk import job is finished.
  5. The export job will run continuously. As users enter/exit the Lytics audience, they will be written to a file. The file will be sent to Marketo every 10 minutes or when the file reaches 10 MB in size.


You can export any Lytics user fields to Marketo Lead Fields. Lytics allows you to select user fields as part of the workflow configuration described below.


Follow these steps to set up an export job for Marketo. If you are new to creating jobs in Lytics, see the Destinations documentation for more information.

  1. Select Marketo from the list of providers.
  2. Select the Export Audiences from the list.
  3. Select the Authorization you would like to use or create a new one.
  4. Enter a Label to identify this job you are creating in Lytics.
  5. (Optional) Enter a Description for further context on your job.
  6. Select the Audience to export.
  7. Select the Identifier Field to identify users in Marketo.
  8. Select the Field Mappings to map fields from Lytics to Marketo by selecting the Lytics field on the left, and Marketo Leads field on the right.
  9. (Optional) Select the Destination List to configure where Marketo fields will be exported.
  10. (Optional) Select Existing Users checkbox to send users who already exist in the selected Lytics audience.
  11. (Optional) Select the Audience Membership Field to configure the field name where audience membership information will be stored in Marketo.
  12. Click Start Export.