> For the complete documentation index, see [llms.txt](https://help.getmobly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.getmobly.com/help-center/integrations/marketing-automation/campaign-mapping.md).

# Marketo Program sync

Mobly can push the leads captured at an event into a **Marketo Program**, adding them as Program Members with a Program Status. That's how event attribution shows up on the Marketo side.

{% hint style="info" %}
**Mobly Labels ≠ Marketo Programs.** These are two different features that are easy to confuse.

**Mobly Labels** are a Mobly-side grouping feature — you define a Label by qualifier value, events, activations, and a scan-count threshold, and it groups leads inside Mobly. See [How to use Mobly Labels](/help-center/labels/how-to-use-mobly-labels.md).

**Marketo Programs** are objects in Marketo that Mobly syncs event leads into. That's what this article covers.
{% endhint %}

{% hint style="warning" %}
**Marketo only.** Pardot, Eloqua and Ortto don't have Program sync in Mobly today. For Pardot, use Automation Rules keyed off a Mobly field change. For Eloqua, use a Campaign Canvas or Program Canvas keyed off a Mobly field change. For Ortto, map a value into the `Tags` field and build the audience on that.
{% endhint %}

## Where Program sync is configured

**Per event, from the Sync Event bar** on the event detail page — the bar above the tabs, not a tab itself. Each Mobly event connects to its own Program.

Activations have a parallel **Sync Activation** bar, so a breakout or dinner can map to its own Program separately from the parent event.

This is a change from how Program sync worked on the legacy integration, where mappings lived in a per-integration tab. On the new integration platform, the mapping lives with the event it belongs to.

## How a lead ends up in the Program

When a lead is captured at an event connected to a Program:

1. Mobly waits for [enrichment](/help-center/integrations/marketing-automation/how-data-flows.md) to complete
2. Mobly pushes the lead to Marketo (creating or updating per the [matching logic](/help-center/integrations/marketing-automation/how-data-flows.md#marketo))
3. Mobly adds the lead as a Program Member
4. Mobly sets the Program Status based on your mapping

A single lead can land in multiple Programs if it was captured at multiple Mobly events that each connect to a different one.

## Program Status mapping

The last step of the connect wizard is **Map Status**.

**With Registration mappings configured**, you get a row per Mobly registration state — **Registered**, **Checked-in**, **Live Capture** — each pre-filled from your org-wide defaults, with a per-event override available.

**Without them**, it's a single Program Status that every lead captured at the event receives.

{% hint style="warning" %}
**Program Statuses are exact-match strings in Marketo.** "Attended" and "attended" are different. Mobly loads the valid statuses from the Program you selected, so picking from the list is safest. Also note that Engagement, Email, and Default Programs each have their own valid status sets — make sure the status you pick exists for that Program type.
{% endhint %}

## Creating the Program from Mobly

You don't need the Program to exist first. The wizard's **Create new** option builds it in Marketo and maps it in one step — name, dates (pre-filled from the Mobly event), and an optional description.

## Best practices

* **One Program per event series, not per event.** Cleaner than dozens of sub-Programs. Use activations mapped to their own Programs when you genuinely need booth-vs-dinner separation.
* **Sync the parent event before its activations.** Mobly warns you if you don't — event-level attribution is missing until the parent is connected.
* **Match archived state.** If you archive a Program in Marketo, disconnect the Mobly mapping too — Mobly can't add members to an archived Program, and those leads land in [Reconciliation](/help-center/integrations/marketing-automation/reconciliation.md).
* **Build Smart Campaigns off field changes, not Mobly triggers.** Mobly writes Program membership and status; it doesn't fire Smart Campaign-style triggers directly. Build Smart Campaigns to listen for the Mobly-set field changes (e.g. `Mobly Last Capture Date is changed`).

## Related articles

* [Connecting Marketo Programs to Mobly Events](/help-center/integrations/marketing-automation/marketo/connecting-programs.md) — the step-by-step walkthrough
* [How to use Mobly Labels](/help-center/labels/how-to-use-mobly-labels.md) — the Mobly-side grouping feature, not this
* [Field mapping](/help-center/integrations/marketing-automation/field-mapping.md)
* [Qualifiers](/help-center/integrations/marketing-automation/qualifiers.md)
* [How data flows from Mobly to your MA tool](/help-center/integrations/marketing-automation/how-data-flows.md)
* [Reconciliation](/help-center/integrations/marketing-automation/reconciliation.md)
