> 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/crm/how-data-flows.md).

# How data flows from Mobly to your CRM

When a lead is captured in Mobly, here's what happens before it reaches your CRM — and how Mobly decides whether to create a new record or update an existing one.

## The journey of a captured lead

1. **Capture.** Someone scans a badge in the Mobly app, manually adds a lead, uploads from camera roll, or your team bulk-uploads a CSV in the Hub.
2. **Enrichment.** Mobly's enrichment waterfall fills in missing fields (email, company, job title, LinkedIn, etc.) using 20+ data partners. This typically takes minutes.
3. **Sync to your CRM.** Once enriched, Mobly runs the lead through your field, qualifier, and campaign mappings, then pushes it to your CRM. The push uses [Sync mode](/help-center/integrations/crm/sync-modes.md) — Automatic by default, Manual if you've configured it that way.
4. **Match or create.** Mobly looks for an existing record in the CRM that matches this lead. If it finds one, Mobly updates it. If not, Mobly creates a new record. Per-CRM matching logic is below.
5. **Reconciliation.** If anything goes wrong (auth issue, validation failure, missing field, etc.), the lead lands in [Reconciliation](/help-center/integrations/crm/reconciliation.md) so you can see why and fix it.

## Per-CRM matching logic

### HubSpot

Mobly searches for an existing Contact by **Contact ID**, then by **Email**. The first match is updated. If nothing matches, Mobly creates a new Contact. Companies follow the same logic — match by **Company ID** then **domain**, otherwise create.

### Salesforce

Salesforce has three matching strategies, set during connection.

| Strategy                             | Match priority                                              | Create behavior                                                           |
| ------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------- |
| **Leads and Contacts** (recommended) | Contact ID → Contact Email → Lead ID → Lead Email           | Creates a new Lead if no match                                            |
| **Leads only**                       | Lead ID → Lead Email                                        | Creates a new Lead if no match                                            |
| **Accounts and Contacts**            | Contact ID → Contact Email → website domain or company name | Creates a new Contact in the matched Account, or creates both if no match |

Choose the strategy that matches how your team wants Mobly leads to appear in Salesforce. **Leads and Contacts** is the most common for org-wide rollouts.

### Pipedrive

Mobly matches Persons by **Email**. If the lead's company name or domain matches an existing Organization in Pipedrive, Mobly links the new Person to that Organization. If not, Mobly creates both.

### Zoho

Mobly searches for an existing Lead by **Lead ID** first, then by **Email**. If your Mobly account is configured to also use Contacts, Mobly checks Contacts before Leads. The first match is updated; otherwise, a new Lead (or Contact) is created.

## What Mobly sends

Three categories of data flow per lead, configured under each integration's tabs:

* **Field values** — name, email, phone, company, job title, custom fields, etc. Configured under the **Mapping** tab. See [Field mapping](/help-center/integrations/crm/field-mapping.md).
* **Qualifier values** — qualifiers you've defined in Mobly (badge color, lead type, follow-up status, etc.). Configured under the **Qualifiers** tab. See [Qualifiers](/help-center/integrations/crm/qualifiers.md).
* **Campaign membership** — per-event campaign assignment when you've set up the Campaigns tab. See [Mapping campaign fields](/help-center/integrations/crm/campaign-mapping.md).

## When something goes wrong

If Mobly can't push a lead to your CRM — auth failure, format mismatch, missing required field, validation rule, anything — the lead lands in **Reconciliation → Failed**, grouped by the type of error. See [Reconciliation](/help-center/integrations/crm/reconciliation.md) for how to read the error and fix it, and the per-CRM troubleshooting article for the specific fix path.

## Related articles

* [Connecting a CRM](/help-center/integrations/crm/connecting.md)
* [Sync modes](/help-center/integrations/crm/sync-modes.md)
* [Reconciliation](/help-center/integrations/crm/reconciliation.md)
* Per-CRM setup guides: [HubSpot](/help-center/integrations/crm/hubspot/setup-guide.md) · [Salesforce](/help-center/integrations/crm/salesforce/setup-guide.md) · [Pipedrive](/help-center/integrations/crm/pipedrive/setup-guide.md) · [Zoho](/help-center/integrations/crm/zoho/setup-guide.md)
* Marketing Automation flow: [How data flows from Mobly to your MA tool](/help-center/integrations/marketing-automation/how-data-flows.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/crm/how-data-flows.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.
