> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conversion.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sync Activity

> Monitor every sync between Conversion and your CRM, understand timestamps and batching, and look up what each sync message means.

The **Sync activity** view shows every sync that has run between Conversion and Salesforce, so you can confirm data is flowing and spot anything that needs attention.

Reach it from **Settings → CRM & Syncing**, then click **View logs** in the **Recent sync health** card on the **Overview** tab.

## Reviewing runs

Each entry describes what happened in plain language—for example, *Synced contacts from Salesforce* or *Pushed updates to Salesforce*—along with:

* A **status** badge showing whether the run is in progress, completed, or failed.
* A breakdown of how many records were **created**, **updated**, **deleted**, **skipped**, and **failed**.
* How long the run took and when it happened.
* A **View** button to open the run and inspect the individual records that changed, including a message explaining any record that was skipped or failed.

## Filtering activity

To narrow things down:

* Switch between the **All**, **Inbound** (Salesforce → Conversion), and **Outbound** (Conversion → Salesforce) tabs.
* Use the **date range** filter to focus on a specific period.
* Use the **object-type** filter to show only contacts, companies, or other record types.

<Info>
  If you haven't synced yet, you'll see *No sync activity yet*. Activity appears here automatically once data begins syncing.
</Info>

## What the timestamps mean

The time shown on each entry is **when the sync ran**—the moment Conversion started processing that batch—displayed in your local time zone. The duration beside it is how long the batch took from start to finish.

These timestamps reflect *sync* time, not the time a record was changed in Salesforce. When you open an individual record, you'll also see its external created and updated times, which come from Salesforce.

## How syncing is batched

Conversion processes records in **batches**, and each batch is one entry in Sync activity. How those batches are formed depends on direction:

| Direction                              | Timing                     | Batch size                                                                                                                     |
| -------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **Inbound** (Salesforce → Conversion)  | Runs on a regular schedule | Up to \~5,000 records per batch. Large syncs are split across multiple batches, fetched in pages of \~2,000 records at a time. |
| **Outbound** (Conversion → Salesforce) | Near-instant               | Smaller batches, grouped by object type, pushed as changes happen                                                              |

<Info>
  The very first sync of an object type is a one-time **backfill** of all existing records, so it runs in larger batches (up to \~50,000 records each) and may take longer than the steady-state syncs that follow.
</Info>

This is why outbound activity usually appears within seconds of a change in Conversion, while inbound activity appears on each scheduled run.

## Run statuses

A whole run (batch) shows one of:

| Status          | Meaning                                                                                                   |
| --------------- | --------------------------------------------------------------------------------------------------------- |
| **In progress** | The batch is still being processed.                                                                       |
| **Completed**   | The batch finished. Individual records may still have been skipped or failed—open the run to see details. |
| **Failed**      | The whole batch could not be processed. See [When a whole run fails](#when-a-whole-run-fails).            |

Within a completed run, each record has its own status:

| Status      | Meaning                                                                                                  |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| **Success** | The record synced.                                                                                       |
| **Skipped** | The record was intentionally not synced—usually expected behavior (for example, a record with no email). |
| **Failed**  | The record hit an error while syncing and needs attention.                                               |

## Record messages

When a record is skipped or failed, Conversion attaches a message explaining why. Use the tables below to look up what each one means.

### Inbound: why a record was skipped

These records came from Salesforce but were intentionally not brought into Conversion.

| Message                    | What it means                                                                                                                    |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Missing email address**  | The Lead or Contact has no email address. Contacts in Conversion must have an email address.                                     |
| **Invalid email address**  | The Lead or Contact has an invalid email address (for example, it contains invalid characters).                                  |
| **Lead already converted** | This Lead has been converted to a Contact in Salesforce.                                                                         |
| **Do not sync**            | The record is flagged to not sync into Conversion (for example, excluded by sync rules).                                         |
| **Missing external ID**    | The record has no Salesforce ID.                                                                                                 |
| **Outdated record**        | More recent data for this Salesforce ID has already been synced.                                                                 |
| **No account association** | The record could not be associated with an account in Conversion.                                                                |
| **Write mode mismatch**    | The record didn't match the configured write mode (for example, update-only when no existing record was found).                  |
| **Opportunity not found**  | The associated opportunity does not exist in Conversion.                                                                         |
| **Missing identifier**     | No email or user ID was provided to resolve a contact.                                                                           |
| **Contact not found**      | No contact matches the provided identifier.                                                                                      |
| **Conflicting identifier** | The provided identifiers resolved to different contacts (for example, a contact was found by email but has a different user ID). |
| **Missing event name**     | A custom event has no event name.                                                                                                |
| **Unknown reason**         | The record was skipped for an unknown reason.                                                                                    |

### Inbound: why a record failed

These records hit an error while being processed.

| Message                   | What it means                                                                                   |
| ------------------------- | ----------------------------------------------------------------------------------------------- |
| **Malformed data**        | The Salesforce record data was malformed or missing required fields and could not be processed. |
| **Failed to encode data** | The record data could not be encoded for storage.                                               |
| **Invalid timestamp**     | The record's timestamp was missing or could not be read as a valid date.                        |
| **Unknown error**         | An unexpected error occurred while processing the record.                                       |

### Outbound: why a record was skipped

These changes in Conversion were intentionally not pushed to Salesforce.

| Message                   | What it means                                                                                                                |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Object write disabled** | Writing to this Salesforce object type is turned off (for example, *Write changes to Salesforce leads and contacts* is off). |
| **No fields to update**   | No fields were eligible to sync based on your field mapping and write rules.                                                 |

### Outbound: why a record failed

These changes could not be written to Salesforce.

| Message                      | What it means                                                                                                  |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Insufficient permissions** | The integration user lacks permission to create or update this record (for example, due to sharing rules).     |
| **Required field missing**   | A field required by Salesforce is empty in Conversion.                                                         |
| **Invalid picklist value**   | A field value doesn't exist in the Salesforce picklist.                                                        |
| **Field length exceeded**    | A field value is longer than the Salesforce field allows.                                                      |
| **Validation rule failure**  | A Salesforce validation rule rejected the record.                                                              |
| **Record locked**            | Salesforce couldn't lock the record for update, usually due to too many concurrent updates to the same record. |
| **Invalid cross reference**  | The record references another record that's invalid or doesn't exist. Check that the referenced records exist. |
| **Duplicate record**         | The record is a duplicate of an existing Salesforce record.                                                    |
| **Unknown error**            | An unexpected error occurred while processing the record.                                                      |

### When a whole run fails

If an entire batch fails, the failure usually applies to every record in it. These are the most common causes:

| Message                      | What it means                                                   | What to do                                                                |
| ---------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------- |
| **Authentication failure**   | Conversion couldn't authenticate with Salesforce.               | Reconnect Salesforce from the **Overview** tab.                           |
| **Insufficient permissions** | The integration user lacks permission to read this record type. | Review the integration user's permission set in Salesforce.               |
| **API limit exceeded**       | Salesforce's daily API limit has been reached.                  | Wait for the limit to reset, and review your usage under **Rate limits**. |
| **Unknown error**            | An unexpected error occurred while processing the sync.         | Retry on the next run; contact support if it persists.                    |
