> 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).

# Mapping program fields

Mobly's per-event Program sync lets you push leads into specific Marketo Programs based on which event they were captured at. Configure it on the **Campaigns** tab inside the Marketo integration (**Integrations → Marketo → Campaigns**).

> **Pardot doesn't have a campaign-object sync** in Mobly. The Campaigns tab is empty for Pardot integrations. Use Pardot Automation Rules keyed off Mobly field updates if you want per-event attribution in Pardot.

## What's on the Campaigns tab (Marketo)

A list of every Marketo Program Mobly is currently configured to sync to, with:

* **Name** — the Program's display name
* **Program ID** — the 4–5 digit Marketo identifier
* **Is Archived** — whether the Program is archived in Marketo (archived Programs won't accept new members)
* **Qualifier Option** — which Mobly qualifier (if any) drives Program Status for members
* **Lead Scan Threshold** — minimum scans required for a lead to be added (0 = every captured lead)
* **Leads** — current count of leads attached
* **Events** — the Mobly events that feed into this Program
* **Activator** — which person or process triggers the sync

Plus a **+ New Campaign** button to add a new mapping and an **Export CSV** option for offline review.

## How Program sync works

When a lead is captured at an event mapped to a Marketo 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 member of the linked Program(s) in Marketo
4. If your **Qualifier Option** mapping is configured, Mobly sets the Program Status based on the qualifier value the rep applied

A single lead can be added to multiple Programs if it was captured at multiple Mobly events that each map to a different Program.

## Program Status from qualifiers

Marketo Programs have Member Statuses (e.g., Registered, Attended, Engaged). You can drive those statuses from a Mobly qualifier.

Example: a qualifier called **Follow up** with values **Yes** / **No** / **Already a customer**. Map:

* Yes → "Engaged"
* No → "Member"
* Already a customer → "Attended"

Now when a rep picks a qualifier value on a lead, the corresponding Program Member Status is set automatically.

> Status text in Marketo is exact-match. "Engaged" and "engaged" are different. Copy the status text directly from your Program's Member Status configuration in Marketo to avoid typos.

## Lead Scan Threshold

This sets a minimum number of badge scans before a lead syncs to the Program. Most teams keep this at **0** (every captured lead syncs). Use a higher threshold when:

* A booth attendant scans by accident (raise to 1+ to filter out single-scan accidents)
* You want to flag highly-engaged leads who hit your booth multiple times

## Adding a new Program sync

1. Go to **Integrations → Marketo → Campaigns**
2. Click **+ New Campaign**
3. Enter the **Program ID** from Marketo. Find it in the Program's URL — strip the workspace prefix and suffix character. E.g., if the URL ends in `AB1234C1`, the Program ID is `1234`
4. Pick which Mobly events feed into it (you can pick multiple)
5. Optionally set **Qualifier Option** (the qualifier that drives Member Status)
6. Optionally set **Lead Scan Threshold**
7. Save

The mapping takes effect for new captures going forward. Leads already captured at the linked events don't retroactively sync to the Program — for those, retry from [Reconciliation](/help-center/integrations/marketing-automation/reconciliation.md).

## Editing or removing a Program sync

The three-dot menu at the right of each row has:

* **Edit** — change linked events, qualifier option, threshold, etc.
* **Remove** — stops new syncs to this Program. Existing Program Members in Marketo are not removed.

## Best practices

* **One Program per event series, not per event.** Cleaner than dozens of sub-Programs per booth/dinner/activation.
* **Use Qualifier Option for high-signal status.** "Did they engage?" "Did they convert?" These are the highest-value Status drivers. Skip qualifiers where the value is just metadata.
* **Match archived state.** If you archive a Program in Marketo, remove the Mobly mapping — Mobly will fail to add new members to an archived Program and those leads will land in [Reconciliation](/help-center/integrations/marketing-automation/reconciliation.md).

## Related articles

* [Connecting Marketo Programs to Mobly Events](/help-center/integrations/marketing-automation/marketo/connecting-programs.md) — the per-event flow
* [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)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.getmobly.com/help-center/integrations/marketing-automation/campaign-mapping.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
