Marketo ⇄ Salesforce Integration Playbook: MQL→SQL Handoff, Program/Campaign Sync, and Revenue Guardrails

Published by Bles Software, a custom software and AI company based in Yehud-Monoson, Israel, building web apps, AI agents and API integrations for clients in Israel, the US, the UK and the EU.

A well‑run Marketo ⇄ Salesforce integration is the backbone of B2B demand engines. When Program membership and Campaign history are coherent, SDRs see the right context, AEs trust pipeline sources, and marketing can defend budget with pipeline and revenue—not clicks. This playbook lays out a practical blueprint for data contracts, MQL→SQL handoff, Program/Campaign sync, activity capture, and the guardrails that keep your revenue data clean over time.

Outcomes and Non‑Goals

Outcomes:

Non‑goals:

Operating Model and Environments

Data Contract: Objects and Keys

Objects and match keys:

Email is a powerful but imperfect natural key. Support aliasing (e.g., plus‑addressing) via normalization and store secondary emails without using them as automatic merge triggers.

Lifecycle, Qualification, and Handoff

Define lifecycle stages with explicit owners and triggers:

Document recycling: if a Lead is not progressed within SLA or is disqualified, set Recycled/Disqualified fields with reasons; Marketo resumes nurture with a cooling‑off period.

Field Mapping and Directionality

Group fields by category and specify directionality:

Two‑way fields should be rare (phone, title) and defined with conflict winners (e.g., SFDC wins for Title).

Program ⇄ Campaign Sync

Program/Campaign alignment is where many stacks succeed or fail. Implement the following:

  1. One‑to‑one mapping: For each Marketo Program that represents a marketable tactic (webinar, event, content syndication), create a corresponding Salesforce Campaign with a matching name and parent hierarchy.
  2. Member statuses: Define a tight list of statuses (e.g., Sent/Invited, Registered, Attended, No‑Show, Engaged). Keep the list short and reusable. Mirror exactly in Salesforce Campaign Member Statuses.
  3. Timestamps: Capture First Responded Date and Last Responded Date; ensure Marketo writes meaningful Responded flags that match your definition (e.g., Registered counts as Responded for webinars).
  4. Primary Campaign Source: When Opportunities are created, set Primary Campaign Source based on the most meaningful Responded Program within a lookback window, not simply the last touch.

Keep Campaign hierarchies simple: a Year → Channel → Program structure often provides the best roll‑up without exploding counts.

Activity Capture and Sales Context

SDRs and AEs need context without noise:

Routing, Tasking, and SLAs

On MQL, Marketo should propose ownership and create a Salesforce Task for SDRs with due dates aligned to your SLA (e.g., 24 hours). Salesforce rules finalize owner and territory. Avoid creating duplicate tasks on incremental updates; use idempotent external IDs on Task creation if possible.

Deduplication and Conversion

Opportunity Influence and Attribution

Marketo can calculate multi‑touch program influence; Salesforce can store Primary Campaign Source and Campaign Influence models. Choose one place to calculate multi‑touch to avoid conflicting reports. If you use Marketo’s RCE/Measure (or a BI model), keep Salesforce focused on operational attribution (Primary Campaign Source + auto influence). Publish a standard report pack so finance and marketing agree on numbers.

Testing, Cutover, and Monitoring

Testing steps:

  1. Seed: Load test people and run through key scenarios (event registration, content download, demo request, recycled lead, disqualify). Validate Program and Campaign statuses.
  2. Pilot: Enable sync for a single segment; verify Task creation, SLA adherence, and Campaign membership.
  3. Cutover: Freeze Campaign hierarchy edits during cutover; backfill recent Program responses.

Monitoring:

Guardrails and Change Management

FAQ

How many Program statuses are too many?

Four to six reusable statuses per channel is a healthy ceiling. More than that usually indicates status semantics doing reporting work that should be handled in analytics, not in the CRM.

Should we sync every Marketo activity to Salesforce?

No. Sync only meaningful milestones—form submissions, event registrations, attended, and explicit “interesting moments.” Leave clicks/opens in Marketo; bring context to sales, not noise.

Where should MQL logic live—Marketo or Salesforce?

Marketo should calculate MQL using fit and intent with a timestamp and reason. Salesforce should accept and enforce SLAs via routing and tasks. Duplicating MQL logic in both systems creates drift.

Who should own Primary Campaign Source on Opportunities?

Salesforce. Marketo can propose a candidate based on Responded Programs, but Salesforce should set Primary Campaign Source at creation (or within a defined window) to keep reporting consistent.

How do we prevent duplicate tasks for the same MQL?

Use idempotent external IDs or derive a composite key (person ID + event). Before creating a Task, check if an open MQL task exists for that person.

What’s the best approach to recycled leads?

Stamp Recycled Date and Reason, remove from SDR queues, and resume nurture with suppression windows. Don’t erase the first MQL date; attribute separately for re‑MQl events.

More RevOps Playbooks from Bles Software