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

# Syncing Pipelines

> How to sync an entire pipeline into another pipeline, including Sync from main and reading the results

## Overview

A whole-pipeline sync moves every entity's mapping configuration from a source pipeline into a target pipeline in a single operation. Because related entities move together, relationships stay consistent — which is why this is the recommended default over syncing entities one at a time.

<Info>
  Nothing in the source pipeline changes. A sync only writes to the target.
</Info>

## Syncing a Pipeline

<Steps>
  <Step title="Open the Sync Dialog">
    From the pipelines list, click the three-dot menu (⋮) on the pipeline you're syncing **from**, hover **Manage**, and click **Sync**.

    A dialog opens, titled **Sync `{source}` to `{target}`**.
  </Step>

  <Step title="Check the Direction">
    A blue panel labeled **Syncing** shows **From** (the pipeline you clicked) and **To** (the target).

    Read this before anything else — it's the fastest way to catch a backwards sync.
  </Step>

  <Step title="Pick the Target">
    The **Target pipeline** dropdown defaults to your main pipeline, shown as `{name} (main)`. Change it if you're syncing somewhere else.

    The source pipeline is never offered as its own target.
  </Step>

  <Step title="Pick a Strategy">
    Three cards are available: **Overwrite**, **Merge (review changes)**, and **Overlay**. Selecting one shows a banner describing exactly what it will do.

    <Warning>
      Overwrite deletes anything in the target that doesn't exist in the source. If you're unsure what the target contains, choose Overlay or Merge.
    </Warning>
  </Step>

  <Step title="Write a Reason">
    The **Reason for Sync** box is **required** for Overwrite and Overlay — the **Sync** button stays disabled until you fill it in.

    Your reason is saved to the target's change history, so write something a colleague would understand in three months:

    > "Syncing new billing-attorney fields validated on test."

    If you chose Merge, you'll enter the reason later, at commit time.
  </Step>

  <Step title="Decide About Publishing">
    The **Publish the target pipeline after syncing** checkbox is **off** by default. Until the target is published, it keeps running the mappings it had before the sync.

    This is the step people miss — see [Publishing After a Sync](/data/pipeline/sync-overview#publishing-after-a-sync).
  </Step>

  <Step title="Click Sync">
    Click **Sync** to apply.

    If you chose Merge, the button reads **Review changes** instead, and takes you into the review wizard rather than applying anything.

    A full-screen overlay reads `Syncing "{source}" to "{target}"...` while it runs.
  </Step>

  <Step title="Read the Result">
    When it finishes you'll get a notification summarizing the outcome, for example:

    ```text theme={null}
    Synced "Test Pipeline" to "Main": 12 changed, 0 unchanged, 0 skipped. Published "Main".
    ```

    If anything needs your attention — a skipped entity, a failed publish, or nothing having changed — a **Sync Result** window also opens.
  </Step>
</Steps>

## Sync from Main

**⋮** → **Manage** → **Sync from main** opens the same dialog with the direction already reversed: **main is the source**, and the pipeline whose menu you opened is already selected as the target. Everything else works identically.

This is the "reset my test pipeline to match production" shortcut. Overwrite is usually what you want here.

<Tip>
  **Sync from Main Before Starting New Work**

  Starting a change on a test pipeline that has drifted from production means you're building on a configuration that no longer reflects reality. Resetting first keeps your eventual sync clean.
</Tip>

## Reading the Results

Every sync reports a per-entity outcome. A notification always appears; the **Sync Result** window opens on top of it when something is worth a closer look.

The result table has three columns — **Entity**, **Outcome**, and **Reason**:

| Outcome       | What it means                                                                                                                                                                   |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Changed**   | The entity was updated in the target, and a new version was written to its change history.                                                                                      |
| **Unchanged** | The entity was considered, but there was nothing to bring across.                                                                                                               |
| **Skipped**   | The strategy deliberately left it alone. In practice this means Overlay found an entity that only the target has, and Overlay never deletes. The **Reason** column will say so. |

If you asked to publish, a banner reports how that went separately from the sync itself — green (*"Published `{target}` — it now runs the synced mappings."*) or red, with the failing entities listed.

### Where to Look Later

Every entity a sync changed gets an entry in the target's **change history**, stamped with your reason, your user, and the time. That history is a full snapshot of the entity, so a sync is reviewable — and revertible — after the fact. This is why the reason field is required.

## Best Practices

<Tip>
  **Diff First, Sync Second**

  Run **Manage → Diff** against the same target before syncing. It's read-only, it takes a minute, and it turns "I think this is right" into "I know what's about to change."
</Tip>

<Tip>
  **Verify the Target After Syncing**

  Open the target pipeline and spot-check the entities you expected to change. Confirm the publish banner was green before assuming the new configuration is live.
</Tip>

## Troubleshooting

### The Sync Button Is Disabled

**Problem:** You've selected a target and strategy but **Sync** stays greyed out.

**Solution:**

* Fill in the **Reason for Sync** field — it's required for Overwrite and Overlay.
* Confirm a target pipeline is selected in the dropdown.

### Nothing Changed

**Problem:** The result reports `0 changed` and every entity as **Unchanged**.

**Solution:**

* The two pipelines already match for the strategy you chose. Run a Diff to confirm.
* If you expected deletions to be applied, check whether you used Overlay — Overlay never deletes. Use Merge or Overwrite instead.
* Confirm you saved your work on the source pipeline before syncing.

### Entities Reported as Skipped

**Problem:** One or more entities show **Skipped** in the Sync Result window.

**Solution:**

* This is Overlay behaving as designed: it found entities that only exist in the target, and Overlay never deletes. Read the **Reason** column to confirm.
* If you intended to remove those entities, re-run with Merge and explicitly turn on the removals.

### The Target Still Runs the Old Mappings

**Problem:** The sync succeeded but reports and scheduled runs still reflect the old configuration.

**Solution:** The target hasn't been published. See [Publishing After a Sync](/data/pipeline/sync-overview#publishing-after-a-sync).

### No Manage Submenu

**Problem:** The pipeline's three-dot menu doesn't show **Manage**.

**Solution:** The main pipeline has no **Manage** submenu by design. To sync *into* main, start from the pipeline you're syncing *from*.

## Related Topics

<CardGroup cols={2}>
  <Card title="Syncing a Single Entity" icon="table-list" href="/data/pipeline/syncing-entities">
    Move just one entity instead
  </Card>

  <Card title="Sync Strategies" icon="code-branch" href="/data/pipeline/sync-strategies">
    Choose between Overwrite, Overlay, and Merge
  </Card>

  <Card title="Reviewing Changes with Merge" icon="clipboard-check" href="/data/pipeline/reviewing-sync-changes">
    Approve differences one at a time
  </Card>

  <Card title="Sync Overview" icon="arrows-rotate" href="/data/pipeline/sync-overview">
    Scopes, limits, and publishing
  </Card>
</CardGroup>
