# NocoDB Sync

> Part of the NocoDB documentation (Product docs > Sync). Index of all pages: https://nocodb.com/llms.txt. Any docs page is available as Markdown by adding `.md` to its URL.

URL: https://nocodb.com/docs/product/sync/nocodb-sync
Last updated: 2026-09-25

Mirror a shared view from one NocoDB base into another, kept up to date automatically or on demand.

**NocoDB Sync** mirrors a Grid view from one base into another as a read-only table. The mirror keeps up with the source, either automatically as the source changes or on demand, so downstream teams stay current without exports or manual rebuilds.

{/* ![NocoDB Sync banner](/img/v2/table-sync/table-sync-banner.png) */}

### Creating a Sync

Create the sync in the **destination** base — the base that will receive the live copy. The **Create sync** dialog can be opened from two places:

* **Sidebar** — click **+ Create New**, hover **Sync**, and pick **NocoDB Sync**. The **Sync** entry is a two-option submenu: **NocoDB Sync** (mirror a view from another NocoDB base) and **App Sync** (pull data from an external service).

  <img alt="Create sync entry point from the sidebar" src={__img0} placeholder="blur" />

* **Base settings** — open **Settings → Manage → Sync**, then click **+ New Sync → NocoDB Sync**.

  <img alt="Create sync entry point from base settings" src={__img1} placeholder="blur" />

The dialog is organized into three sections: **General**, **Source**, and **Sync settings**.

#### General

Enter a **Sync name**. The same name is used as the title of the mirrored table by default.

#### Source

Pick the Grid view to mirror. The source view must have **Allow sync** enabled (see [Sharing a View for Sync](#sharing-a-view-for-sync)). Two source modes are available:

* **Browse** — walk down **Base → Table → View** from bases you already have access to in this workspace. The view picker only lists Grid views.

  <img alt="Create sync — Browse mode" src={__img2} placeholder="blur" />

  If the picked view doesn't have **Allow sync** turned on yet, an inline **Enable sync** button appears so you can enable it without leaving the dialog.

  <img alt="Enable sync inline from the create dialog" src={__img3} placeholder="blur" />

* **Paste link** — paste a shared view URL, and a password if the link is protected. Use this mode to sync from a base in another workspace. The dialog resolves and displays the source it points at.

  <img alt="Create sync — Paste link mode" src={__img4} placeholder="blur" />

#### Fields to sync

By default, every field in the source view is mirrored. Field additions, removals, and type changes at the source flow through to the mirrored table automatically.

Turn on **Select specific fields to sync** to pick a subset:

* The primary field is always included.
* Field types that can't be synced — Barcode, QR Code, and Button — are locked off.
* For **linked record** fields, pick a Grid view of the related table to bring those records across as a companion mirrored table — the link is preserved in the destination. The related view must also have **Allow sync** enabled. If no related view is picked, the field is brought across as comma-separated text of the linked records' primary fields.

<img alt="Select specific fields to sync" src={__img5} placeholder="blur" />

#### Sync settings

* **Sync method**
  * **Automatically** — changes at the source propagate to the destination within seconds. Available on **NocoDB Cloud** (Business plan and above) and self-hosted Scale and Enterprise plans. On lower paid plans this option shows an upgrade prompt, and the form defaults to **Manually**.
  * **Manually** — the destination only refreshes when someone clicks **Sync now**.
* **Records deleted in source will be**
  * **Retained in mirrored table** (default) — the mirrored row stays in place, preserving history in the destination.
  * **Deleted in mirrored table** — the row is removed from the destination too, keeping it a strict mirror.

A record is considered deleted at the source when it is either removed from the source table or filtered out of the source view.

<img alt="Sync settings" src={__img6} placeholder="blur" />

Click **Create**. A progress panel runs while the initial copy is brought across; once it finishes, you can download the logs and close the panel.

<img alt="Sync completion panel" src={__img7} placeholder="blur" />

The mirrored table appears in the destination's sidebar with a lightning-bolt icon. If the sync brings linked records across, the companion mirrored table appears too.

<img alt="Mirrored table in the sidebar" src={__img8} placeholder="blur" />

<Callout type="warning">
  The source table must have a single-column primary key. Tables with composite primary keys cannot be used as a sync source, either directly or as a linked table.
</Callout>

### Sharing a View for Sync

The owner of the source view enables sharing before another base can mirror it.

1. Open the source table and switch to the Grid view to share.
2. Click **Share** in the top bar, then open the **Share to web** tab.
3. Turn on **Public link to \<view name>**.
4. Toggle **Allow sync** on.
5. Optionally enable **Restrict access with password** — anyone creating a sync from this link will need it.
6. Send the shared view link (and password, if set) to the team that will create the sync.

See [Share View](/docs/product/tables/views/share-view#allow-sync) for the other options on that tab.

<img alt="Allow sync toggle in share dialog" src={__img9} placeholder="blur" />

**Allow sync** is only available on Grid views with public sharing enabled. Form, Kanban, Gallery, Calendar, and Map views cannot back a sync.

### Working with the Mirrored Table

Mirrored fields are read-only and refresh automatically. To change a value, edit it at the source.

<img alt="Synced field indicator" src={__img10} placeholder="blur" />

<img alt="Edit restricted on a synced cell" src={__img11} placeholder="blur" />

The mirrored table behaves like a regular table in most other ways. You can add non-synced fields, create your own views and filters on top, and link other tables to it.

Right-click a mirrored table in the sidebar for quick sync actions without opening **Manage** → **Sync**:

* **Sync now** — trigger an immediate update from the source.
* **Update sync configuration** — open the sync's edit dialog (see [Editing a Sync](#editing-a-sync)).

<img alt="Sidebar sync actions on a mirrored table" src={__img12} placeholder="blur" />

The following operations are blocked on synced tables:

* Records cannot be inserted, duplicated, deleted, or pasted into.
* Synced fields cannot be renamed, retyped, or have default values set.
* Form views cannot be created on synced tables.
* Field and table permissions do not apply to synced columns or tables.

### Managing Syncs

All syncs in a base are listed under **Settings → Manage → Sync**, with columns for **Name**, **Source** (showing the sync method), **Status**, and **Last trigger**.

<img alt="Sync list" src={__img13} placeholder="blur" />

Each sync is in one of these states:

| Status  | What it means                                                                              |
| ------- | ------------------------------------------------------------------------------------------ |
| Active  | Sync is healthy. Source changes flow through automatically, or on demand for manual syncs. |
| Syncing | An initial copy or a fresh update is in progress.                                          |
| Paused  | Sync is frozen until someone resumes it.                                                   |
| Error   | The last update failed. Hover the status to see the error.                                 |

<img alt="Error status with hover tooltip" src={__img14} placeholder="blur" />

The three-dot **Actions** menu on each row exposes:

* **Sync now** — force an immediate update.
* **Pause sync** — stop receiving updates until resumed.
* **Resume sync** — resume after a pause. When the sync is in the **Error** state, this becomes **Retry sync**.
* **Edit** — see [Editing a Sync](#editing-a-sync).
* **Delete** — see [Deleting a Sync](#deleting-a-sync).

Actions are disabled while a sync is mid-update.

<img alt="Sync row actions menu" src={__img15} placeholder="blur" />

### Editing a Sync

From the **Actions** menu, pick **Edit** to change:

* **Sync name**
* **Sync method**
* **Records deleted in source will be**
* **Source view** — re-bind the sync to a different Grid view of the same source table. The new view must have **Allow sync** enabled. Re-binding triggers a full re-sync against the new view.
* **Fields to sync** — add, remove, or change linked-record view picks.

The source mode, source base, and source table cannot be changed in edit mode — only the source *view* within the same table can be re-bound.

<Callout type="warning">
  Removing a field from the sync drops the matching column in the mirrored table. Removing a linked-record field also drops the companion mirrored table for those records, unless another linked field still references it. NocoDB shows a confirmation listing the affected fields before applying the change.
</Callout>

If the source becomes unrecoverable — the source table has been deleted, or the sync's main column mapping is missing — the edit dialog enters a recovery state. The only available action then is **Delete sync**.

### Deleting a Sync

From the **Actions** menu, pick **Delete**. The dialog asks how to handle the mirrored tables:

* **Convert to plain tables** — keep the mirrored data, unlock it for editing, and remove the sync configuration. The tables stop receiving updates from the source.
* **Delete synced tables** — drop the mirrored tables and remove the sync configuration.

The source is not affected either way.

<img alt="Delete sync dialog" src={__img16} placeholder="blur" />

<Callout type="warning">
  Deleting the synced tables is irreversible. Any extra fields, views, or links added on top of the mirrored tables are lost.
</Callout>

### Field Type Mapping

Most field types are mirrored as their native type. A few are handled specially:

| Source field type                                                        | In the mirrored table                               |
| ------------------------------------------------------------------------ | --------------------------------------------------- |
| Formula, Rollup, User (single/multi), Created by, Last modified by, UUID | Plain text                                          |
| Lookup                                                                   | Plain text (long)                                   |
| Created time, Last modified time                                         | Date/time                                           |
| AutoNumber                                                               | Number                                              |
| Links (the link-counter field)                                           | Number                                              |
| Linked record (with a related view picked)                               | Linked record (companion mirrored table is created) |
| Linked record (no related view picked)                                   | Plain text (comma-separated primary fields)         |
| Barcode, QR Code, Button                                                 | Not synced                                          |

Cross-base links and custom links from the source are not mirrored. If you need them in the destination, recreate them on the mirrored table.

## Availability

* **Plan availability:** NocoDB Sync is available on **NocoDB Cloud** (Plus plan and above) and licensed self-hosted deployments (Business plan and above). **Automatic (real-time) sync** requires **NocoDB Cloud** (Business plan and above) or self-hosted Scale and Enterprise plans. On lower paid plans you can still create a sync and refresh it on demand with **Sync now**.
