# Salesforce Marketo integration

*Salesforce → Marketo*

**In short:** A Salesforce to Marketo integration keeps one shared view of every person and account across your CRM and your marketing automation platform. Leads and contacts sync into Marketo as a single deduplicated person, campaign members map to program membership with matching status values, and Marketo pushes scores, activities, and MQL signals back onto the Salesforce record so sales acts on them. Done properly it is not a one-time field mapping: it is a governed, idempotent pipeline that reconciles both systems continuously, respects each platform's API limits, and never overwrites the wrong field or creates duplicate people.

## What a Salesforce to Marketo integration actually does

Salesforce is where your revenue team lives: leads, contacts, accounts, opportunities, ownership, pipeline. Marketo is where marketing runs the demand engine: programs, nurture, scoring, email engagement. The two only create value when they share one honest view of every person and account - so marketing nurtures the right people, sales sees the marketing signal, and nobody argues about whose number is correct.

A Salesforce to Marketo integration builds that shared view. It moves leads, contacts, accounts, and campaign membership into Marketo as governed, deduplicated records, and it pushes scores, engagement, and MQL signals back onto the Salesforce record where sales acts on them. The job is not a one-time field mapping. It is keeping two systems that model people differently continuously reconciled, without duplicates, overwrites, or stalls.

## What data moves

| Salesforce object / event | Becomes in Marketo | Notes |
| --- | --- | --- |
| Lead | Person record | Deduplicated by email; a new lead may match an existing person |
| Contact | Person record | Same person model as leads; conversion must not split the record |
| Account | Company | Links the person to their firmographics for ABM and segmentation |
| Campaign & Campaign Member | Program & program membership | Member status maps to program status - values must be agreed, not guessed |
| Opportunity & Contact Role | Opportunity + person role | Needed for revenue attribution and pipeline reporting in Marketo |
| Lead / Contact owner (User) | Person owner | Ownership drives routing, alerts, and Sales Insight visibility |
| Custom fields & custom objects | Custom fields / custom objects | Each field carries an explicit sync direction |
| *Writeback:* Marketo score, activity, MQL | Salesforce lead/contact fields, tasks, interesting moments | Throttled and idempotent so sales sees the signal without duplicates |

The exact field mappings, sync directions, and status-value pairs are agreed once and encoded in the pipeline. After that, nobody reconciles them by hand.

## The details that break naive syncs

The native connector or a quick field mapping gets you most of the way and leaves the expensive edge cases to fail quietly:

- **Lead versus contact.** Salesforce holds leads and contacts as two objects; Marketo holds one person deduplicated by email. When a lead is converted, the person must follow the transition and keep its score and activity history. Get this wrong and you split people or lose behaviour.
- **Deduplication mismatch.** Salesforce tolerates multiple records with the same email; Marketo does not. Two Salesforce leads sharing an address will collide into one Marketo person unless the matching logic is made explicit.
- **Field direction and ownership.** For every synced field you have to decide which system wins. The Marketo sync user only sees the Salesforce fields its profile allows, so a silently hidden field looks like a broken mapping. Direction has to be governed, not left to whoever edited last.
- **API limits.** Salesforce meters daily API calls by edition and licences; Marketo caps daily REST calls and concurrent connections. A backfill or a busy campaign day can exhaust either quota and stall the sync with no obvious error.
- **Campaign status mapping.** A Salesforce campaign member status and a Marketo program status are different vocabularies. They only reconcile if the value pairs are agreed up front.
- **Deletes and idempotency.** Deleting a lead in Salesforce does not delete the Marketo person. A re-run or retry must never create a duplicate person, double-post an activity, or corrupt a running score. Every record needs a stable identity the pipeline can recognise.

## How we build and run it

We treat this as a pipeline, not a set-and-forget connector. Salesforce changes are read on a schedule or by event, validated, matched against the correct Marketo person and company, and applied with the agreed field direction. Marketo scores, activities, and MQL signals are written back onto Salesforce with the same discipline.

The pipeline is idempotent: every person, campaign member, and activity carries a stable identifier, so a retry or a re-run never produces a duplicate or a corrupted score. It respects both platforms' API limits - bulk endpoints for backfills, throttled deltas for steady state - so it never exhausts your Salesforce daily allowance or trips Marketo concurrency. It runs on cloud-native, fully EU-hosted infrastructure, so lead and contact data never leaves the EU, which keeps your DPA / AVV and GDPR obligations clean.

And then we keep it running. Monitoring, alerting, incident response, and - critically - watching for Salesforce and Marketo API changes are our responsibility under contract. You get a named owner and an SLA, not a connector that stalls the week your biggest campaign launches.

## When this integration is worth building

If you run a single Salesforce org with standard objects and a straightforward person sync, Marketo's native connector is genuinely capable and we will tell you so. A managed pipeline earns its place when the reality is messier: multiple Salesforce orgs feeding one Marketo instance, custom-object sync at volume, dedup rules that go beyond email, governed field direction across a large marketing-ops team, or a warehouse that needs the same records alongside the CRM. It earns its place when a stalled or duplicating sync quietly costs you campaign accuracy and sales trust - problems a governed pipeline prevents rather than cleans up.

## Frequently asked questions

### Does Marketo not already ship a native Salesforce connector?

It does, and for a clean single-org setup with standard objects it is genuinely capable - we will tell you when it is enough. The native sync handles the core bidirectional person and campaign sync out of the box. Where it strains is multiple Salesforce orgs, non-standard routing, custom-object sync at volume, dedup rules beyond email, or governed field-direction control across a large marketing-ops team. That is where a managed pipeline around or alongside the native sync earns its place.

### How do leads and contacts in Salesforce map to Marketo?

Salesforce keeps leads and contacts as two separate objects; Marketo unifies them into a single person, deduplicated by email address by default. That mismatch is the root of most sync pain. When a lead is converted to a contact in Salesforce, the Marketo person has to follow that transition without splitting into two records or losing its activity history and score. We make the matching logic explicit rather than leaving it to chance.

### What happens to lead scores and marketing activity?

They flow back the other way. Marketo behavioural scores, interesting moments, email engagement, and MQL status are written onto the Salesforce lead or contact so sales sees them in the CRM and, where you use it, in Marketo Sales Insight. The writeback is throttled to respect Salesforce API limits and is idempotent, so a retry never double-posts an activity or corrupts a running score.

### How do you handle Salesforce and Marketo API limits?

Both platforms are quota-bound. Salesforce meters daily API requests by edition and licence count; Marketo caps daily REST calls and concurrent connections and offers a separate bulk extract path. We size batch windows, use bulk endpoints for backfills, and back off gracefully so the sync never exhausts your Salesforce daily allowance or trips Marketo concurrency limits - which is exactly the failure mode that silently stalls a naive sync.

### Who operates the integration after go-live?

We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. If Salesforce or Marketo changes an API, deprecates an endpoint, or a field mapping drifts, that is our problem to catch and fix, not a gap your marketing team discovers when a campaign fails to sync. You get a named owner, alerting, incident response, and an SLA rather than a connector nobody owns.

## Related integrations

- [HubSpot ↔ Salesforce](https://seamless.engineering/integrations/hubspot-salesforce/): HubSpot Salesforce integration
- [Salesforce ↔ ActiveCampaign](https://seamless.engineering/integrations/salesforce-activecampaign/): Salesforce ActiveCampaign integration
- [Salesforce ↔ Pardot](https://seamless.engineering/integrations/salesforce-pardot/): Salesforce Pardot integration
- [Airtable ↔ Salesforce](https://seamless.engineering/integrations/airtable-salesforce/): Airtable Salesforce integration
- [Dynamics 365 ↔ Salesforce](https://seamless.engineering/integrations/dynamics-365-salesforce/): Dynamics 365 Salesforce integration
- [Intercom ↔ Salesforce](https://seamless.engineering/integrations/intercom-salesforce/): Intercom Salesforce integration

## Browse by system

- [All Salesforce integrations](https://seamless.engineering/integrations/salesforce/)
- [Salesforce API changelog](https://seamless.engineering/api-changelog/salesforce/): No breaking changes or deprecations in the last 90 days

## Request a scoping call

Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.

- Email: hello@seamless.engineering
- Contact form: https://seamless.engineering/#contact
