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
- 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>LaunchPointusingNew>New Service. - Once the service exists, return to
Admin>Integration>LaunchPoint, find the service, and clickView Detailsto get itsClient IDandClient Secret. - Go to
Admin>Integration>Web Servicesand find theEndpointunderREST API. YourMunchkin Account IDis the part before.mktorest.com, and looks like123-ABC-456.
Enriching data with Marketo
- While in a Clay table, click
Add enrichmentand search forMarketo. - Under
Integrations, select one of the Marketo options. - In the modal, you will be asked to
Select Marketo account.- If you haven't already connected your Marketo account, click
+ Add accountand enter theClient ID,Client Secret, andMunchkin Account IDfrom the steps above.
- If you haven't already connected your Marketo account, click
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) orCompany. - Fields: Dynamic fields that appear after selecting an object type. For
Person,Emailis required. ForCompany,Company Nameis 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) orCompany. - 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) orCompany. - Marketo object ID: The ID of the Marketo object to update. You can retrieve this using the
Create objectorLookup objectaction.
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.
- Copy the webhook URL from Clay. In a new or existing Clay table, locate the
Webhook URLoption and copy it. This is the endpoint Marketo will POST lead data to. - Go to the Admin area in Marketo. Navigate to the
Adminsection in your Marketo instance. - Open Webhooks. In the Admin area, click
Webhooksin the left-hand menu. - Create a new webhook. Click
New webhookto begin configuration. - Configure the webhook. Fill in the following details:
URL: The webhook URL copied in step 1.Header: Add a custom header with the keyContent-Typeand the valueapplication/json.Request type: POSTRequest token encoding: NoneResponse format: JSONPayload 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
Other popular resources
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!
Hire GTME Talent
Find and connect with GTM talent who've demonstrated expertise in building advanced workflows




