Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

Marketo

This documentation for the Marketo integration describes the technical capabilities of this integration, including authorization, scopes/permissions, and utilized endpoints. For more information on how to integrate Marketo, visit our connection instructions.

Version

This integration utilizes the Marketo REST API v1.

Base URL

The base URL used for all Marketo API endpoints contains the Subdomain:
https://subdomain.mktorest.com/rest/v1

Authentication & Authorization

The DataGrail Marketo integration connects using OAuth 2.0 with the following credentials: Client ID and Client Secret.

Sensitive Credentials
Publicly exposing your API credentials can allow unauthorized access to Marketo API endpoints by a third party. DataGrail stores your API credentials encrypted and protected.

Scopes

The Marketo integration requires specific scopes that must be granted in order to function for a given capability.

ScopeAccessDeletionData Discovery
Sales Person
Account
Activity
Metadata
Opportunity
Person
Schema Standard Field
Schema Custom Field
Activity Metadata
Activity Assets
Company
Named Account

Endpoints Utilized

DataGrail uses the following endpoints to authorize and test the connection:


Limits

Limits in Marketo are calculated using the leaky bucket algorithm. All requests that are made after rate limits have been exceeded are throttled and an HTTP 429 Too Many Requests error is returned. Requests succeed again after enough requests have emptied out of the bucket.

  • DataGrail supports requests throttling to stay within 70-80% of specified service rate limits.
  • DataGrail processes API responses with HTTP 429 status to interrupt requests, waiting and retrying (using an exponential backoff strategy).

Capabilities

Access

DataGrail's Marketo integration provides Synchronous Access capabilities for the following supported identifier category: Email.

Data Interactions

For Access requests, DataGrail will take the following actions:

  1. Search Persons (aka Leads), who are people external to your company.
  2. Search Sales Person (aka Sales), who are in general employees of your company.
  3. If found, collect Activities by the persons IDs

When reviewing data returned by Marketo please note the following:

  • Only fields with values are returned
  • Custom fields unique to the organization may also be returned if they may potentially contain PII.
  • Other Custom Objects may also be returned if they are linked to a Lead or Sales, that may contain PII in one or more fields.

Endpoints Utilized

MethodEndpointPurposeDocs
GET/activities.jsonReturns a list of activities
GET/activities/pagingtoken.jsonReturns a paging token for use in retrieving activities and data value changes
GET/activities/types.jsonReturns a list of available activity types in the target instance, along with associated metadata of each type
GET/leads.jsonReturns a list of up to 300 leads based on a list of values in a particular field

Deletion

DataGrail's Marketo integration provides Synchronous Deletion capabilities for the following supported identifier category: Email.

For Deletion requests, DataGrail will take the following actions:

  1. Search for Leads, who are people external to your company.
  2. Delete collected Leads by ID.

Endpoints Utilized


Opt Out

DataGrail's Marketo integration provides Opt Out capabilities for the following supported identifier category: Email.

Data Interactions

For Opt Out requests, DataGrail will take the following actions:

  1. Find leads using configured identifiers.
  2. Update the unsubscribed attribute with the opted_out value for all detected leads by specifying a Marketo user identifier.

Endpoints Utilized


Data Discovery

DataGrail's Marketo integration provides data discovery capabilities based on the principle of finding any and all personal data that's stored in a data system.

Data Interactions

For discovery requests, DataGrail will take the following actions:

  1. Count number of all records for each of supported objects.
  2. Fetch example records for each of the supported objects.
Supported Objects
  • Schema Standard Field
  • Schema Custom Field
  • Activity
  • Activity Metadata
  • Activity Assets
  • Company
  • Account
  • Opportunity
  • Person
  • Sales Person
  1. Sample data for the next analysis and classification.

Endpoints Utilized

MethodEndpointPurposeDocs
GET/activities.jsonReturns a list of activities
GET/activities/pagingtoken.jsonReturns a paging token for use in retrieving activities and data value changes
GET/activities/types.jsonReturns a list of available activity types in the target instance, along with associated metadata of each type
GET/asset/v1/programs.jsonRetrieves the list of accessible programs from the target instance
GET/companies.jsonRetrieves company records from the destination instance based on the submitted filter
GET/companies/schema/fields.jsonRetrieves metadata for all company fields in the target instance
GET/leads.jsonReturns a list of up to 300 leads based on a list of values in a particular field
GET/leads/schema/fields.jsonRetrieves metadata for all lead fields in the target instance
GET/namedaccounts.jsonRetrieves a list of named account list records based on the filter type and values given
GET/namedaccounts/schema/fields.jsonRetrieves metadata for single named account field
GET/opportunities.jsonReturns a list of opportunities based on a filter and set of values
GET/opportunities/roles.jsonReturns a list of opportunity roles based on a filter and set of values
GET/opportunities/roles/describe.jsonReturns a list of opportunity roles based on a filter and set of values
GET/opportunities/schema/fields.jsonRetrieves metadata for all opportunity fields in the target instance
GET/programs/program_id/members.jsonReturns a list of up to 300 program members on a list of values in a particular field
GET/programs/members/schema/fields.jsonRetrieves metadata for all program member fields in the target instance
GET/salespersons.jsonRetrieves salesperson records from the destination instance based on the submitted filter
GET/salespersons/describe.jsonReturns metadata about salespersons and the fields available for interaction via the API

 

Need help?
If you have any questions, please reach out to your dedicated Account Manager or contact us at support@datagrail.io.

Disclaimer: The information contained in this message does not constitute as legal advice. We would advise seeking professional counsel before acting on or interpreting any material.