Skip to main content

How to set up Marketo

Authentication

Marketo uses a LaunchPoint custom service for API access:
  1. In Marketo, go to Admin → LaunchPoint and create (or open) a custom service
  2. Copy the service’s Client ID and Client Secret
  3. Find your Munchkin ID under Admin → Munchkin (e.g. 123-ABC-456)
  4. In Cargo, paste the Munchkin ID, Client ID, and Client Secret when connecting
Code slugs — integration slug: marketo. Actions: createObject, updateObjects, upsertObjects, deleteObjects, getObject, findObjects. Call them as integrations.marketo.<action>(...).
Cargo spreads requests at up to 5 calls per second to stay within Marketo’s API limits (100 calls per 20 seconds) while leaving headroom for concurrency. All actions operate on Marketo custom objects, selected by their API name.

Marketo actions

Create object

Insert a new object (action: createOnly, dedupeBy: dedupeFields). Marketo skips objects whose dedupe key already exists; check the response data for status: skipped to detect duplicates. Required fields:
  • Object type: API name of the Marketo object type
  • Fields: Fields to write on the new object. Must include every dedupe field configured on the object — Marketo rejects creates that don’t supply the full dedupe key
Use case: Push new records from your workflows into Marketo custom objects.

Update objects

Look up objects by a searchable field, then update every match by marketoGUID. Required fields:
  • Object type: API name of the Marketo object type
  • Matching field: Field used to look up the objects to update. Must be one of the object’s searchable fields (marketoGUID, dedupe fields, or any other indexed field)
  • Matching value: Value to match against the matching field. All matched objects are updated
  • Fields to update: Fields to write on every matched object
Use case: Keep Marketo custom object records in sync when data changes upstream.

Upsert objects

Look up objects by a dedupe field; update every match by marketoGUID, or create a new object if none match. Required fields:
  • Object type: API name of the Marketo object type
  • Matching field: Field used to look up the objects. Must be one of the object’s dedupe fields so the object can be created if no match is found. For objects with compound dedupe keys, include the other dedupe field(s) in the mappings
  • Matching value: Value to match. All matched objects are updated; if no match is found, a new object is created with this value on the matching field
  • Fields to write: Fields to write on the matched records (or the new record)
Use case: Sync records into Marketo without worrying whether they already exist.

Delete objects

Look up objects by a searchable field, then delete every match by marketoGUID. Required fields:
  • Object type: API name of the Marketo object type
  • Matching field: Field used to look up the objects to delete. Must be one of the object’s searchable fields
  • Matching value: Value to match. All matched objects are deleted
Use case: Clean up stale or invalid custom object records from workflows.

Get object

Get a single object by marketoGUID. Required fields:
  • Object type: API name of the Marketo object type
  • Marketo GUID: The marketoGUID of the object to retrieve
Use case: Fetch the full record for an object you already have a GUID for.

Find objects

Look up objects by any searchable-field value. Returns every match. Required fields:
  • Object type: API name of the Marketo object type
  • Filter field: Field to filter on. Must be one of the object’s searchable fields
  • Filter values: Values to look up. Larger inputs are automatically chunked
Use case: Retrieve matching Marketo records to enrich or branch on in a workflow.

Best practices

  • Include every dedupe field when creating objects — Marketo rejects partial dedupe keys
  • Prefer Upsert objects when you can’t guarantee whether a record exists
  • Use dedupe fields or indexed fields for lookups; non-searchable fields will fail
  • Watch for status: skipped in create responses to detect duplicates