All docs
/
Enrich
/
Marketo integration

Marketo integration

Create, update, and lookup Marketo objects directly from Clay.

Overview

Marketo is a marketing automation platform for managing leads and campaigns. With this integration, you can create, update, and look up Marketo objects directly from Clay, and connect Marketo via webhook to enrich inbound leads in real time.

Before you connect

To connect Marketo to Clay, you'll need three values from your Marketo instance: a Client ID, a Client Secret, and your Munchkin Account ID.

Clay connects as a dedicated API-only user in Marketo rather than as you, so a Marketo admin has to create that user and a service for it before the connection will work. The credentials don't exist until that service does, so if you don't administer Marketo yourself, raise this with your IT team before you start in Clay.

Getting your credentials from Marketo

  1. Ask your Marketo admin to create an API-only user role and an API-only user, then add a service for that user in Admin > Integration > LaunchPoint using New > New Service.
  2. Once the service exists, return to Admin > Integration > LaunchPoint, find the service, and click View Details to get its Client ID and Client Secret.
  3. Go to Admin > Integration > Web Services and find the Endpoint under REST API. Your Munchkin Account ID is the part before .mktorest.com, and looks like 123-ABC-456.

Enriching data with Marketo

  1. While in a Clay table, click Add enrichment and search for Marketo.
  2. Under Integrations, select one of the Marketo options.
  3. In the modal, you will be asked to Select Marketo account.
    • If you haven't already connected your Marketo account, click + Add account and enter the Client ID, Client Secret, and Munchkin Account ID from the steps above.
Note: When setting up a role in Marketo to connect with Clay, the role requires two minimum permissions: Read-Write Schema Standard Field and Read-Write Schema Custom Field. You will also need to grant access to any objects you'd like to work with in Clay (e.g., Leads, Companies). You can edit the role later to include other objects.

Action Create object

Use this action to create a new object in Marketo.

Inputs

Required:

  • Object type: The Marketo object type you want to create. Select Person (leads) or Company.
  • Fields: Dynamic fields that appear after selecting an object type. For Person, Email is required. For Company, Company Name is required.

Optional:

  • Fields: All remaining fields for the selected object type, populated dynamically from your Marketo schema.

Action Lookup object

Use this action to look up an existing object in Marketo.

Inputs

Required:

  • Object type: The Marketo object type you want to look up. Select Person (leads) or Company.
  • Filter type: The field to filter on, populated dynamically from the searchable fields for the selected object type.
  • Filter values: The value(s) to filter on. Accepts a comma-separated list. Matching is case-insensitive and uses OR logic.

Optional:

  • Remove blank values from results: When enabled, blank values are removed from the returned object — helpful for reducing response size. Defaults to on.

Action Update object

Use this action to update an existing object in Marketo.

Inputs

Required:

  • Object type: The Marketo object type you want to update. Select Person (leads) or Company.
  • Marketo object ID: The ID of the Marketo object to update. You can retrieve this using the Create object or Lookup object action.

Optional:

  • Ignore blank values: When enabled, blank values from Clay will be ignored in Marketo. When disabled, blank values will overwrite existing Marketo field values. Defaults to on.
  • Fields: The fields to update, populated dynamically from your Marketo schema.

Run settings

  • Auto-update: Recommended when writing enriched data back to Marketo, so that new or updated rows are automatically pushed.
  • Only run if: The enrichment will only run if conditions are met. (Learn more about conditional formulas here!)

Connecting Marketo via webhook

Use webhooks to send data from Marketo to Clay for real-time lead enrichment. This is ideal for capturing inbound leads as they arrive — such as form fills, demo requests, or other lead events. After enrichment, you can use the Marketo enrichment actions above to write the enriched data back to Marketo.

  1. Copy the webhook URL from Clay. In a new or existing Clay table, locate the Webhook URL option and copy it. This is the endpoint Marketo will POST lead data to.
  2. Go to the Admin area in Marketo. Navigate to the Admin section in your Marketo instance.
  3. Open Webhooks. In the Admin area, click Webhooks in the left-hand menu.
  4. Create a new webhook. Click New webhook to begin configuration.
  5. Configure the webhook. Fill in the following details:
    • URL: The webhook URL copied in step 1.
    • Header: Add a custom header with the key Content-Type and the value application/json.
    • Request type: POST
    • Request token encoding: None
    • Response format: JSON
    • Payload template: Use the JSON template below, customizing fields as needed.

{  "id": "{{lead.Id}}",
 "first_name": "{{lead.FirstName}}",
 "last_name": "{{lead.LastName}}",
 "email": "{{lead.EmailAddress}}",
 "title": "{{lead.JobTitle}}",
 "company": "{{lead.CompanyName}}",
 "industry": "{{lead.Industry}}",
 "country_code": "{{lead.Country}}"
}

Troubleshooting

Field values containing special characters are split incorrectly in Clay

If a lead field value contains an ampersand (&) — such as a job title like "VP & Head of Sales" — and you're using a form-encoded payload template in Marketo, the & will be interpreted as a field separator, causing the value to be split across multiple fields in Clay. To avoid this, use a JSON-formatted payload template (as shown in step 5 above). JSON handles special characters correctly and will not split values on &.

Explore other docs

Settings & admin

Set up SCIM provisioning in Clay

Keep your Clay workspace membership and roles in sync with your identity provider.

View article
Gen AI

Scheduled tasks

Set a task to run on its own — daily, on weekdays, weekly, or monthly — so recurring go-to-market work happens without you starting it.

View article
Gen AI

Knowledge Hub

Keep one reviewable record of your business in Clay — what you sell, who you sell to, and what signals matter — that Clay drafts and you edit.

View article
Enrich

Upriver integration

Map the sponsorships, products, and audiences behind any brand.

View article
Settings & admin

Beta program

Get early access to new Clay features through the Beta program, and see how to join, leave, and share feedback.

View article
Enrich

G2 integration

Find software products on G2, pull their ratings, features, reviews, and competitors, and build lists of companies researching the categories you compete in.

View article
Gen AI

Clay (global agent)

Chat with Clay, our global agent, to build and run go-to-market plays: it plans, analyzes, and carries out work across many of Clay's surfaces.

View article

Other popular resources

Experts

Find a Clay Expert

Explore our network of Clay experts and agencies.

View experts
Community

Join our slack community

Find help in our slack community, and support channels.

Go to slack
Cohorts

Join a cohort, learn Clay fast!

The faster way to master Clay. Sign in if you're enrolled in a cohort (current or past) or apply!

Learn more about cohorts
Talents

Hire GTME Talent

Find and connect with GTM talent who've demonstrated expertise in building advanced workflows

Explore GTME talents