Skip to main content
Default works with Marketo in 3 ways. The Default Pixel captures submissions from Marketo forms embedded on your website, a Marketo webhook sends lead data to a Default workflow through the Incoming Webhook trigger, and results flow back to Marketo through your CRM’s sync or through a Send to Webhook node that calls a service connected to Marketo’s REST API. Marketo is not a native integration in Default. It has no card under Settings → Integrations, and Default does not sign in to Marketo or sync with it. Every connection on this page runs through the Pixel, a webhook, your CRM’s sync, or the Marketo API.

How Default connects to Marketo

If Marketo syncs with your Salesforce instance, the fields Default writes to a Salesforce record, such as the owner, reach Marketo through that sync when Marketo syncs those fields. No webhook is needed for them.

Choose a path for each Marketo event

  • A visitor submits a Marketo form on your site. Use the Pixel. Default gets the submission while the visitor is still on the page, so the workflow can route the lead and show a scheduler right after the submit.
  • Something changes inside Marketo. Use a Marketo webhook. Examples are a lead score crossing your threshold, a program status change, or a lead joining a list.
  • Send each event through 1 path. If a form submission reaches Default through the Pixel and also through a Marketo webhook, the lead runs through 2 workflows and can be routed twice.

Capture Marketo forms with the Pixel

The Default Pixel recognizes forms rendered by Marketo’s Forms 2.0 embed code. It listens for the form’s success event, so Default receives the submitted values after Marketo accepts the submission. Marketo still receives every submission.
1

Install the Pixel

Connect the domain in Signals and add the Pixel snippet to the pages that hold your Marketo forms. For a Marketo landing page, add the snippet to the landing page template. A connected domain covers its subdomains, so example.com also covers a landing page on go.example.com. See Set up the Pixel and Forms SDK.
2

Catalog the form

In Signals, open the domain’s actions menu and select Catalog forms. Under Start on, pick the page with the Marketo form, then select Open catalog mode. On your page, select Add form on the Marketo form and confirm. See Add forms from your site.
3

Map its fields

Map the Marketo fields you route on, such as Email, Company, and Country, to Person and Company fields. See Map form fields.
4

Start a workflow from it

In Workflows, add the Form Submission trigger and set Connected Form to the Marketo form. To offer a meeting right after the submit, add a Display Scheduler node. See How Default books a meeting from a form submission.
The Pixel reads Marketo forms that render into your page. It cannot read into a form inside a cross-origin iframe. See Automatic detection.

Send Marketo leads to Default with a webhook

A Marketo webhook can post lead data to a Default Ingestion URL. Each request starts the published, enabled workflows that use that webhook in their Incoming Webhook trigger.
1

Create the webhook in Default

In Workflows, create a workflow and add the Incoming Webhook trigger. Under Connected Webhook, select Create new webhook.
2

Copy the URL and the secret

The trigger shows the Ingestion URL and the Bearer secret. Copy the URL, then reveal and copy the secret. The secret is shared by every incoming webhook in your workspace. See Webhook Secret.
3

Create the webhook in Marketo

In Marketo, go to Admin → Webhooks and select New Webhook:
  • URL: the Ingestion URL from Default.
  • Request Type: POST.
  • Template: a JSON body built from Marketo tokens, like the example below.
  • Request Token Encoding: JSON.
Then select the webhook, open Webhook Actions, and select Set Custom Header. Add a header named Authorization with the value Bearer <your secret>.
4

Give Default a sample

Back in the Default trigger, under Test event, select Paste a sample and paste the template with example values. You can also select Listen for test event and have Marketo call the webhook within 5 minutes. A captured request builds the field list and does not run the workflow.
5

Map the lead's email

Under Identity mapping, set Person email to the field that holds the email, for example email. Later nodes, such as Enrich Data, then treat the request as that person.
6

Build and publish the workflow

Add the nodes that act on the lead and select Publish. Then check that the status next to the deployment switch reads Live. A new workflow goes live when you first publish it. If the status reads Paused, turn the switch on.
7

Call the webhook from a smart campaign

In Marketo, add the Call Webhook flow step to the smart campaign that should send leads, choose the webhook, and activate the campaign.
A Marketo template for this webhook can look like this:
Every field in the sample becomes available in the data picker. Type {{ in a later node to use them.

How the Ingestion URL responds

Send 1 lead per request. A request whose body is a list starts 1 workflow run with the whole list.

Route Marketo leads when they reach a lead score threshold

Marketo keeps scoring the lead, and Default decides who owns it. A common setup:
  1. Marketo decides when a lead qualifies. A smart campaign runs when the lead’s score crosses your threshold, for example with Marketo’s Score is Changed trigger, and calls the Default webhook with a Call Webhook flow step.
  2. Default checks the CRM. A Match Record node looks up the lead by email in Salesforce or HubSpot.
  3. Default picks an owner for new records. On the No Match branch, a Round-Robin node picks a rep from a queue, and Create Record writes the rep as the owner. See Queues and Round-Robin.
  4. Existing owners stay in place. On the Match branch, notify the current owner with Send Slack Message and leave the record’s owner as it is. If some matched records still belong to a placeholder owner, such as your Marketo sync user, send only those through Round-Robin and Update Record with a Multi-Branch node on the owner.
  5. Default tells the new owner. On the No Match branch, add Send Slack Message with the lead’s score and company, so the rep follows up while the lead is active.
If Marketo also syncs leads to your CRM, keep Match Record before Create Record, so Default does not add a second record for a lead that Marketo already synced. To follow up automatically, add the lead to a sequence as the assigned rep. See Send routed leads to sales sequences.

Send data from Default back to Marketo

Through your CRM

If Marketo syncs with Salesforce, write the result to the Salesforce record with Update Record or Create Record. Marketo picks it up through its own sync. This keeps 1 system of record and needs no Marketo credentials in Default.

Through the Marketo REST API

Marketo’s REST API accepts an access token that Marketo issues in exchange for an API user’s client ID and client secret. Keep that exchange out of Send to Webhook. Its run logs show a request’s URL parameters and body fields, and hide only common credential names such as secret, token, and password, so a client_secret value would appear in the log. To write to Marketo from a workflow, send the data to a service you control that holds the Marketo credentials and calls the Marketo REST API, such as your own backend:
  1. Add Send to Webhook with Request Type set to POST and Request URL set to your service’s endpoint.
  2. Set Authorization to API Key or Token so the service can check the caller. Default hides the API Key and Bearer Token values in run logs.
  3. Under Body, send the lead’s email and the values to write, for example the assigned rep. Type {{ to insert them.
  4. The service requests a Marketo access token and updates the lead. See Marketo’s REST API documentation for the lead endpoints.
Send to Webhook cancels a request after 30 seconds, does not follow redirects, and cannot reach private network addresses. See Send to Webhook.

Troubleshoot Marketo and Default

Related: Default integrations